summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--install/po/bn_IN.po7297
-rw-r--r--install/po/de.po7176
-rw-r--r--install/po/es.po7922
-rw-r--r--install/po/fr.po7176
-rw-r--r--install/po/he.po7176
-rw-r--r--install/po/id.po7449
-rw-r--r--install/po/ipa.pot1916
-rw-r--r--install/po/it.po7176
-rw-r--r--install/po/ja.po7163
-rw-r--r--install/po/kn.po7855
-rw-r--r--install/po/ko.po7163
-rw-r--r--install/po/pl.po7982
-rw-r--r--install/po/pt.po7176
-rw-r--r--install/po/pt_BR.po7176
-rw-r--r--install/po/ru.po7513
-rw-r--r--install/po/uk.po8006
-rw-r--r--install/po/zh_CN.po7636
-rw-r--r--install/po/zh_TW.po7176
18 files changed, 110008 insertions, 18126 deletions
diff --git a/install/po/bn_IN.po b/install/po/bn_IN.po
index 0c2c9bc1e..445156d24 100644
--- a/install/po/bn_IN.po
+++ b/install/po/bn_IN.po
@@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: ipa\n"
"Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/"
"newticket\n"
-"POT-Creation-Date: 2010-10-13 14:22-0400\n"
+"POT-Creation-Date: 2011-06-06 13:27-0400\n"
"PO-Revision-Date: 2010-02-19 12:34+0530\n"
"Last-Translator: sankarshan mukhopadhyay <sankarshan@fedoraproject.org>\n"
"Language-Team: anubad@lists.ankur.org.in\n"
@@ -18,1511 +18,4786 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Virtaal 0.5.1\n"
-#: ipalib/cli.py:507
-#, python-format
-msgid "Enter %(label)s again to verify: "
+#: ipalib/plugins/__init__.py:20
+msgid ""
+"\n"
+"Sub-package containing all core plugins.\n"
msgstr ""
-#: ipalib/cli.py:511 ipa-client/ipa-getkeytab.c:730
-#, c-format
-msgid "Passwords do not match!"
+#: ipalib/plugins/aci.py:20
+msgid ""
+"\n"
+"Directory Server Access Control Instructions (ACIs)\n"
+"\n"
+"ACIs are used to allow or deny access to information. This module is\n"
+"currently designed to allow, not deny, access.\n"
+"\n"
+"The aci commands are designed to grant permissions that allow updating\n"
+"existing entries or adding or deleting new ones. The goal of the ACIs\n"
+"that ship with IPA is to provide a set of low-level permissions that\n"
+"grant access to special groups called taskgroups. These low-level\n"
+"permissions can be combined into roles that grant broader access. These\n"
+"roles are another type of group, roles.\n"
+"\n"
+"For example, if you have taskgroups that allow adding and modifying users "
+"you\n"
+"could create a role, useradmin. You would assign users to the useradmin\n"
+"role to allow them to do the operations defined by the taskgroups.\n"
+"\n"
+"You can create ACIs that delegate permission so users in group A can write\n"
+"attributes on group B.\n"
+"\n"
+"The type option is a map that applies to all entries in the users, groups "
+"or\n"
+"host location. It is primarily designed to be used when granting add\n"
+"permissions (to write new entries).\n"
+"\n"
+"An ACI consists of three parts:\n"
+"1. target\n"
+"2. permissions\n"
+"3. bind rules\n"
+"\n"
+"The target is a set of rules that define which LDAP objects are being\n"
+"targeted. This can include a list of attributes, an area of that LDAP\n"
+"tree or an LDAP filter.\n"
+"\n"
+"The targets include:\n"
+"- attrs: list of attributes affected\n"
+"- type: an object type (user, group, host, service, etc)\n"
+"- memberof: members of a group\n"
+"- targetgroup: grant access to modify a specific group. This is primarily\n"
+" designed to enable users to add or remove members of a specific group.\n"
+"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
+"- subtree: Used to apply a rule across an entire set of objects. For "
+"example,\n"
+" to allow adding users you need to grant \"add\" permission to the subtree\n"
+" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
+" is a fail-safe for objects that may not be covered by the type option.\n"
+"\n"
+"The permissions define what the the ACI is allowed to do, and are one or\n"
+"more of:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
+"allows this to be any valid LDAP entry but we encourage the use of\n"
+"taskgroups so that the rights can be easily shared through roles.\n"
+"\n"
+"For a more thorough description of access controls see\n"
+"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control."
+"html\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
+"demonstrate how the various options work but this is done via the "
+"permission\n"
+"command-line now (see last example).\n"
+"\n"
+" Add an ACI so that the group \"secretaries\" can update the address on any "
+"user:\n"
+" ipa group-add --desc=\"Office secretaries\" secretaries\n"
+" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries "
+"--permissions=write --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Show the new ACI:\n"
+" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Add an ACI that allows members of the \"addusers\" permission to add new "
+"users:\n"
+" ipa aci-add --type=user --permission=addusers --permissions=add --"
+"prefix=none \"Add new users\"\n"
+"\n"
+" Add an ACI that allows members of the editors manage members of the admins "
+"group:\n"
+" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --"
+"group=editors --prefix=none \"Editors manage admins\"\n"
+"\n"
+" Add an ACI that allows members of the admin group to manage the street and "
+"zip code of those in the editors group:\n"
+" ipa aci-add --permissions=write --memberof=editors --group=admins --"
+"attrs=street,postalcode --prefix=none \"admins edit the address of editors"
+"\"\n"
+"\n"
+" Add an ACI that allows the admins group manage the street and zipcode of "
+"those who work for the boss:\n"
+" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode "
+"--filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --"
+"prefix=none \"Edit the address of those who work for the boss\"\n"
+"\n"
+" Add an entirely new kind of record to IPA that isn't covered by any of the "
+"--type options, creating a permission:\n"
+" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,"
+"cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
+"\n"
+"\n"
+"The show command shows the raw 389-ds ACI.\n"
+"\n"
+"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
+"must include all existing attributes as well. When doing an aci-mod the\n"
+"targetattr REPLACES the current attributes, it does not add to them.\n"
+"\n"
msgstr ""
-#: ipalib/cli.py:516
-msgid "Cancelled."
-msgstr "বাতিল করা হয়েছে।"
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
+msgstr ""
-#: ipalib/errors.py:297
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+#: ipalib/plugins/aci.py:172
+msgid ""
+"\n"
+" Given a name and a prefix construct an ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:315
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
+#: ipalib/plugins/aci.py:181
+msgid ""
+"\n"
+" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
+" and the actual ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:331
-msgid "an internal error has occurred"
+#: ipalib/plugins/aci.py:193
+msgid ""
+"\n"
+" Pull the group name out of a memberOf filter\n"
+" "
msgstr ""
-#: ipalib/errors.py:353
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
+#: ipalib/plugins/aci.py:204
+msgid ""
+"\n"
+" Given a name and a set of keywords construct an ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:369
-#, python-format
-msgid "unknown command %(name)r"
-msgstr "অজানা কম্যান্ড %(name)r"
+#: ipalib/plugins/aci.py:215
+msgid "type, filter, subtree and targetgroup are mutually exclusive"
+msgstr ""
-#: ipalib/errors.py:386 ipalib/errors.py:411
-#, python-format
-msgid "error on server %(server)r: %(error)s"
+#: ipalib/plugins/aci.py:218
+msgid "ACI prefix is required"
msgstr ""
-#: ipalib/errors.py:402
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+#: ipalib/plugins/aci.py:221
+msgid ""
+"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
+"required"
msgstr ""
-#: ipalib/errors.py:420
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
+#: ipalib/plugins/aci.py:224
+msgid "filter and memberof are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:448
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
+#: ipalib/plugins/aci.py:230
+msgid "group, permission and self are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:465
-msgid "did not receive Kerberos credentials"
+#: ipalib/plugins/aci.py:232
+msgid "One of group, permission or self is required"
msgstr ""
-#: ipalib/errors.py:481
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
+#: ipalib/plugins/aci.py:251
+msgid "Group '%s' does not exist"
msgstr ""
-#: ipalib/errors.py:497
-msgid "No credentials cache found"
+#: ipalib/plugins/aci.py:273
+msgid "empty filter"
msgstr ""
-#: ipalib/errors.py:513
-msgid "Ticket expired"
+#: ipalib/plugins/aci.py:294
+msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/errors.py:529
-msgid "Credentials cache permissions incorrect"
+#: ipalib/plugins/aci.py:299
+msgid ""
+"Convert an ACI into its equivalent keywords.\n"
+"\n"
+" This is used for the modify operation so we can merge the\n"
+" incoming kw and existing ACI and pass the result to\n"
+" _make_aci().\n"
+" "
msgstr ""
-#: ipalib/errors.py:545
-msgid "Bad format in credentials cache"
+#: ipalib/plugins/aci.py:379
+msgid "ACI with name \"%s\" not found"
msgstr ""
-#: ipalib/errors.py:561
-msgid "Cannot resolve KDC for requested realm"
+#: ipalib/plugins/aci.py:400
+msgid "ACI prefix"
msgstr ""
-#: ipalib/errors.py:580
-#, python-format
-msgid "Insufficient access: %(info)s"
+#: ipalib/plugins/aci.py:401
+msgid ""
+"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
+"none)"
msgstr ""
-#: ipalib/errors.py:624
-#, python-format
-msgid "command %(name)r takes no arguments"
+#: ipalib/plugins/aci.py:407
+msgid ""
+"\n"
+" ACI object.\n"
+" "
msgstr ""
-#: ipalib/errors.py:644
-#, python-format
-msgid "command %(name)r takes at most %(count)d argument"
-msgid_plural "command %(name)r takes at most %(count)d arguments"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/aci.py:412
+msgid "ACIs"
+msgstr ""
-#: ipalib/errors.py:674
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
+#: ipalib/plugins/aci.py:417
+msgid "ACI name"
msgstr ""
-#: ipalib/errors.py:690
-#, python-format
-msgid "%(name)r is required"
+#: ipalib/plugins/aci.py:422
+msgid "Permission"
msgstr ""
-#: ipalib/errors.py:706 ipalib/errors.py:722
-#, python-format
-msgid "invalid %(name)r: %(error)s"
+#: ipalib/plugins/aci.py:423
+msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/errors.py:738
-#, python-format
-msgid "api has no such namespace: %(name)r"
+#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+msgid "User group"
msgstr ""
-#: ipalib/errors.py:747
-msgid "Passwords do not match"
-msgstr "পাসওয়ার্ড দুটি মিলছে না"
+#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+msgid "User group ACI grants access to"
+msgstr ""
-#: ipalib/errors.py:755
-msgid "Command not implemented"
+#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
+#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
+#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+msgid "Permissions"
msgstr ""
-#: ipalib/errors.py:783 ipalib/errors.py:1023 ipalib/errors.py:1254
-#, python-format
-msgid "%(reason)s"
+#: ipalib/plugins/aci.py:433
+msgid ""
+"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/errors.py:799
-msgid "This entry already exists"
+#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
+#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+msgid "Attributes"
msgstr ""
-#: ipalib/errors.py:815
-msgid "You must enroll a host in order to create a host service"
+#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
+#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/errors.py:831
-#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
+#: ipalib/plugins/permission.py:131
+msgid "Type"
msgstr ""
-#: ipalib/errors.py:847
-msgid ""
-"The realm for the principal does not match the realm for this IPA server"
+#: ipalib/plugins/aci.py:445
+msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/errors.py:863
-msgid "This command requires root access"
+#: ipalib/plugins/aci.py:450
+msgid "Member of"
msgstr ""
-#: ipalib/errors.py:879
-msgid "This is already a posix group"
-msgstr "একটি পসিক্স (posix) গ্রুপ আগে থেকে উপস্থিত"
+#: ipalib/plugins/aci.py:451
+msgid "Member of a group"
+msgstr ""
-#: ipalib/errors.py:895
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
+#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
+#: ipalib/plugins/permission.py:144
+msgid "Filter"
msgstr ""
-#: ipalib/errors.py:911
-msgid "This entry is already unlocked"
+#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/errors.py:927
-msgid "This entry is already locked"
+#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+msgid "Subtree"
msgstr ""
-#: ipalib/errors.py:943
-msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
+#: ipalib/plugins/aci.py:461
+msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/errors.py:959
-msgid "This entry is not a member of the group"
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+msgid "Target group"
msgstr ""
-#: ipalib/errors.py:975
-msgid "A group may not be a member of itself"
+#: ipalib/plugins/aci.py:466
+msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/errors.py:991
-msgid "This entry is already a member of the group"
+#: ipalib/plugins/aci.py:470
+msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/errors.py:1007
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
+#: ipalib/plugins/aci.py:471
+msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/errors.py:1039
-msgid "A group may not be added as a member of itself"
+#: ipalib/plugins/aci.py:478
+msgid ""
+"\n"
+" Create new ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1055
-msgid "The default users group cannot be removed"
+#: ipalib/plugins/aci.py:482
+msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1071
-msgid "Host does not have corresponding DNS A record"
+#: ipalib/plugins/aci.py:487
+msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/errors.py:1086
-msgid "Deleting a managed group is not allowed. It must be detached first."
+#: ipalib/plugins/aci.py:493
+msgid ""
+"\n"
+" Execute the aci-create operation.\n"
+"\n"
+" Returns the entry as it will be created in LDAP.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: Keyword arguments for the other LDAP attributes.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1109
-#, python-format
-msgid "no command nor help topic %(topic)r"
+#: ipalib/plugins/aci.py:533
+msgid ""
+"\n"
+" Delete ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1133
-msgid "change collided with another change"
+#: ipalib/plugins/aci.py:538
+msgid "Deleted ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1149
-msgid "no modifications to be performed"
+#: ipalib/plugins/aci.py:543
+msgid ""
+"\n"
+" Execute the aci-delete operation.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/errors.py:1165
-#, python-format
-msgid "%(desc)s:%(info)s"
-msgstr "%(desc)s:%(info)s"
+#: ipalib/plugins/aci.py:576
+msgid ""
+"\n"
+" Modify ACI.\n"
+" "
+msgstr ""
-#: ipalib/errors.py:1181
-msgid "limits exceeded for this query"
+#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
+#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
+#: ipalib/plugins/selfservice.py:212
+msgid "ACI"
msgstr ""
-#: ipalib/errors.py:1196
-#, python-format
-msgid "%(info)s"
-msgstr "%(info)s"
+#: ipalib/plugins/aci.py:588
+msgid "Modified ACI \"%(value)s\""
+msgstr ""
-#: ipalib/errors.py:1221
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
+#: ipalib/plugins/aci.py:633
+msgid ""
+"\n"
+" Search for ACIs.\n"
+"\n"
+" Returns a list of ACIs\n"
+"\n"
+" EXAMPLES:\n"
+"\n"
+" To find all ACIs that apply directly to members of the group ipausers:\n"
+" ipa aci-find --memberof=ipausers\n"
+"\n"
+" To find all ACIs that grant add access:\n"
+" ipa aci-find --permissions=add\n"
+"\n"
+" Note that the find command only looks for the given text in the set of\n"
+" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
+" For example, searching on memberof=ipausers will find all ACIs that\n"
+" have ipausers as a memberof. There may be other ACIs that apply to\n"
+" members of that group indirectly.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:653
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/aci.py:823
+msgid ""
+"\n"
+" Display a single ACI given an ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1237
-#, python-format
-msgid "Certificate format error: %(error)s"
+#: ipalib/plugins/aci.py:837
+msgid ""
+"\n"
+" Execute the aci-show operation.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param uid: The login name of the user to retrieve.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/frontend.py:380
-msgid "Results are truncated, try a more specific search"
+#: ipalib/plugins/aci.py:865
+msgid ""
+"\n"
+" Rename an ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:878
+msgid "New ACI name"
msgstr ""
-#: ipalib/frontend.py:797 ipalib/plugins/misc.py:47
-msgid "retrieve all attributes"
+#: ipalib/plugins/aci.py:882
+#, fuzzy
+msgid "Renamed ACI to \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/automount.py:20
+msgid ""
+"\n"
+"Automount\n"
+"\n"
+"Stores automount(8) configuration for autofs(8) in IPA.\n"
+"\n"
+"The base of an automount configuration is the configuration file auto."
+"master.\n"
+"This is also the base location in IPA. Multiple auto.master configurations\n"
+"can be stored in separate locations. A location is implementation-specific\n"
+"with the default being a location named 'default'. For example, you can "
+"have\n"
+"locations by geographic region, by floor, by type, etc.\n"
+"\n"
+"Automount has three basic object types: locations, maps and keys.\n"
+"\n"
+"A location defines a set of maps anchored in auto.master. This allows you\n"
+"to store multiple automount configurations. A location in itself isn't\n"
+"very interesting, it is just a point to start a new automount map.\n"
+"\n"
+"A map is roughly equivalent to a discrete automount file and provides\n"
+"storage for keys.\n"
+"\n"
+"A key is a mount point associated with a map.\n"
+"\n"
+"When a new location is created, two maps are automatically created for\n"
+"it: auto.master and auto.direct. auto.master is the root map for all\n"
+"automount maps for the location. auto.direct is the default map for\n"
+"direct mounts and is mounted on /-.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"Locations:\n"
+"\n"
+" Create a named location, \"Baltimore\":\n"
+" ipa automountlocation-add baltimore\n"
+"\n"
+" Display the new location:\n"
+" ipa automountlocation-show baltimore\n"
+"\n"
+" Find available locations:\n"
+" ipa automountlocation-find\n"
+"\n"
+" Remove a named automount location:\n"
+" ipa automountlocation-del baltimore\n"
+"\n"
+" Show what the automount maps would look like if they were in the "
+"filesystem:\n"
+" ipa automountlocation-tofiles baltimore\n"
+"\n"
+" Import an existing configuration into a location:\n"
+" ipa automountlocation-import baltimore /etc/auto.master\n"
+"\n"
+" The import will fail if any duplicate entries are found. For\n"
+" continuous operation where errors are ignored, use the --continue\n"
+" option.\n"
+"\n"
+"Maps:\n"
+"\n"
+" Create a new map, \"auto.share\":\n"
+" ipa automountmap-add baltimore auto.share\n"
+"\n"
+" Display the new map:\n"
+" ipa automountmap-show baltimore auto.share\n"
+"\n"
+" Find maps in the location baltimore:\n"
+" ipa automountmap-find baltimore\n"
+"\n"
+" Remove the auto.share map:\n"
+" ipa automountmap-del baltimore auto.share\n"
+"\n"
+"Keys:\n"
+"\n"
+" Create a new key for the auto.share map in location baltimore. This ties\n"
+" the map we previously created to auto.master:\n"
+" ipa automountkey-add baltimore auto.master --key=/share --info=auto."
+"share\n"
+"\n"
+" Create a new key for our auto.share map, an NFS mount for man pages:\n"
+" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,"
+"rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n"
+"\n"
+" Find all keys for the auto.share map:\n"
+" ipa automountkey-find baltimore auto.share\n"
+"\n"
+" Find all direct automount keys:\n"
+" ipa automountkey-find baltimore --key=/-\n"
+"\n"
+" Remove the man key from the auto.share map:\n"
+" ipa automountkey-del baltimore auto.share --key=man\n"
+msgstr ""
+
+#: ipalib/plugins/automount.py:182
+msgid ""
+"\n"
+" Location container for automount maps.\n"
+" "
msgstr ""
-#: ipalib/frontend.py:803
-msgid "print entries as stored on the server"
+#: ipalib/plugins/automount.py:190
+msgid "Automount Locations"
msgstr ""
-#: ipalib/frontend.py:940
-msgid "Forward to server instead of running locally"
+#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+msgid "Location"
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
+#: ipalib/plugins/automount.py:197
+msgid "Automount location name."
msgstr ""
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
+#: ipalib/plugins/automount.py:206
+msgid ""
+"\n"
+" Create a new automount location.\n"
+" "
msgstr ""
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
+#: ipalib/plugins/automount.py:221
+msgid ""
+"\n"
+" Delete an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:295
-msgid "incorrect type"
-msgstr "ভুল প্রকার"
+#: ipalib/plugins/automount.py:229
+msgid ""
+"\n"
+" Display an automount location.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:298
-msgid "Only one value is allowed"
-msgstr "কেবলমাত্র একটি মান অনুমদিত"
+#: ipalib/plugins/automount.py:237
+msgid ""
+"\n"
+" Search for an automount location.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:877
-msgid "must be True or False"
+#: ipalib/plugins/automount.py:245
+msgid ""
+"\n"
+" Generate automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:978
-msgid "must be an integer"
+#: ipalib/plugins/automount.py:308
+msgid ""
+"\n"
+" Import automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1029
-#, python-format
-msgid "must be at least %(minvalue)d"
+#: ipalib/plugins/automount.py:314
+msgid "Master file"
msgstr ""
-#: ipalib/parameters.py:1039
-#, python-format
-msgid "can be at most %(maxvalue)d"
+#: ipalib/plugins/automount.py:315
+msgid "Automount master file."
msgstr ""
-#: ipalib/parameters.py:1049
-msgid "must be a decimal number"
-msgstr "একটি দশমিক সংখ্যা হওয়া জরুরি"
+#: ipalib/plugins/automount.py:322
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues."
+msgstr ""
-#: ipalib/parameters.py:1071
-#, python-format
-msgid "must be at least %(minvalue)f"
+#: ipalib/plugins/automount.py:334
+msgid "File %(file)s not found"
msgstr ""
-#: ipalib/parameters.py:1081
-#, python-format
-msgid "can be at most %(maxvalue)f"
+#: ipalib/plugins/automount.py:341
+msgid ""
+"\n"
+" The basic idea is to read the master file and create all the maps\n"
+" we need, then read each map file and add all the keys for the map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1145
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
+#: ipalib/plugins/automount.py:492
+msgid ""
+"\n"
+" Automount map object.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1163
-msgid "must be binary data"
+#: ipalib/plugins/automount.py:505
+msgid "Map"
msgstr ""
-#: ipalib/parameters.py:1179
-#, python-format
-msgid "must be at least %(minlength)d bytes"
+#: ipalib/plugins/automount.py:506
+msgid "Automount map name."
msgstr ""
-#: ipalib/parameters.py:1189
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
+#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
+#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
+#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
+#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
+#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
+#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
+#: ipalib/plugins/sudorule.py:78
+msgid "Description"
msgstr ""
-#: ipalib/parameters.py:1199
-#, python-format
-msgid "must be exactly %(length)d bytes"
+#: ipalib/plugins/automount.py:515
+msgid "Automount Maps"
msgstr ""
-#: ipalib/parameters.py:1217
-msgid "must be Unicode text"
+#: ipalib/plugins/automount.py:521
+msgid ""
+"\n"
+" Create a new automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1248
-#, python-format
-msgid "must be at least %(minlength)d characters"
+#: ipalib/plugins/automount.py:529
+msgid ""
+"\n"
+" Delete an automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1258
-#, python-format
-msgid "can be at most %(maxlength)d characters"
+#: ipalib/plugins/automount.py:548
+msgid ""
+"\n"
+" Modify an automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1268
-#, python-format
-msgid "must be exactly %(length)d characters"
+#: ipalib/plugins/automount.py:556
+msgid ""
+"\n"
+" Search for an automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1307
-#, python-format
-msgid "must be one of %(values)r"
+#: ipalib/plugins/automount.py:564
+msgid ""
+"\n"
+" Display an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:111
-msgid "A list of ACI values"
+#: ipalib/plugins/automount.py:572
+msgid ""
+"\n"
+" Automount key object.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:142
-msgid "type, filter, subtree and targetgroup are mutually exclusive"
+#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
+#: ipalib/plugins/automount.py:850
+msgid "Key"
+msgstr ""
+
+#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
+#: ipalib/plugins/automount.py:851
+msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/aci.py:145
+#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
+#: ipalib/plugins/automount.py:855
+msgid "Mount information"
+msgstr ""
+
+#: ipalib/plugins/automount.py:597
+msgid "description"
+msgstr ""
+
+#: ipalib/plugins/automount.py:606
+msgid "Automount Keys"
+msgstr ""
+
+#: ipalib/plugins/automount.py:607
msgid ""
-"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
-"required"
+"The key,info pair must be unique. A key named %(key)s with info %(info)s "
+"already exists"
msgstr ""
-#: ipalib/plugins/aci.py:151
-msgid "group, taskgroup and self are mutually exclusive"
+#: ipalib/plugins/automount.py:608
+msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "One of group, taskgroup or self is required"
+#: ipalib/plugins/automount.py:609
+msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/aci.py:172
-#, python-format
-msgid "Group '%s' does not exist"
+#: ipalib/plugins/automount.py:659
+msgid ""
+"More than one entry with key %(key)s found, use --info to select specific "
+"entry."
msgstr ""
-#: ipalib/plugins/aci.py:269
-#, python-format
-msgid "ACI with name \"%s\" not found"
+#: ipalib/plugins/automount.py:717
+msgid ""
+"\n"
+" Create a new automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:286
-msgid "ACIs"
+#: ipalib/plugins/automount.py:742
+msgid ""
+"\n"
+" Create a new indirect mount point.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:291
-msgid "ACI name"
+#: ipalib/plugins/automount.py:748
+msgid "Mount point"
msgstr ""
-#: ipalib/plugins/aci.py:296
-msgid "Taskgroup"
+#: ipalib/plugins/automount.py:752
+msgid "Parent map"
msgstr ""
-#: ipalib/plugins/aci.py:297
-msgid "Taskgroup ACI grants access to"
+#: ipalib/plugins/automount.py:753
+msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/aci.py:301
-msgid "User group"
+#: ipalib/plugins/automount.py:772
+msgid ""
+"\n"
+" Delete an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:302
-msgid "User group ACI grants access to"
+#: ipalib/plugins/automount.py:803
+msgid ""
+"\n"
+" Modify an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:306
-msgid "Permissions"
+#: ipalib/plugins/automount.py:809
+msgid "New mount information"
msgstr ""
-#: ipalib/plugins/aci.py:307
+#: ipalib/plugins/automount.py:836
msgid ""
-"comma-separated list of permissions to grant(read, write, add, delete, all)"
+"\n"
+" Search for an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:313
-msgid "Attributes"
+#: ipalib/plugins/automount.py:844
+msgid ""
+"\n"
+" Display an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:314
-msgid "Comma-separated list of attributes"
+#: ipalib/plugins/baseldap.py:19
+msgid ""
+"\n"
+"Base classes for LDAP plugins.\n"
msgstr ""
-#: ipalib/plugins/aci.py:318
-msgid "Type"
+#: ipalib/plugins/baseldap.py:39
+msgid "Failed members"
msgstr ""
-#: ipalib/plugins/aci.py:319
-msgid "type of IPA object (user, group, host)"
+#: ipalib/plugins/baseldap.py:42
+msgid "Member users"
msgstr ""
-#: ipalib/plugins/aci.py:324
-msgid "Member of"
+#: ipalib/plugins/baseldap.py:45
+msgid "Member groups"
msgstr ""
-#: ipalib/plugins/aci.py:325
-msgid "Member of a group"
+#: ipalib/plugins/baseldap.py:48
+msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/aci.py:329
-msgid "Filter"
+#: ipalib/plugins/baseldap.py:51
+msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/aci.py:330
-msgid "Legal LDAP filter (e.g. ou=Engineering)"
+#: ipalib/plugins/baseldap.py:54
+msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:334
-msgid "Subtree"
+#: ipalib/plugins/baseldap.py:57
+msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:335
-msgid "Subtree to apply ACI to"
+#: ipalib/plugins/baseldap.py:66
+msgid "Roles"
msgstr ""
-#: ipalib/plugins/aci.py:339
-msgid "Target group"
+#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
+#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
+#: ipalib/plugins/sudorule.py:143
+msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/aci.py:340
-msgid "Group to apply ACI to"
+#: ipalib/plugins/baseldap.py:75
+msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/aci.py:344
-msgid "Target your own entry (self)"
+#: ipalib/plugins/baseldap.py:78
+msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:345
-msgid "Apply ACI to your own entry (self)"
+#: ipalib/plugins/baseldap.py:81
+msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:357
-#, python-format
-msgid "Created ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:84
+msgid "Member services"
msgstr ""
-#: ipalib/plugins/aci.py:407
-#, python-format
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:87
+msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/aci.py:447
-#, python-format
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:93
+#, fuzzy
+msgid "Member HBAC service groups"
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/baseldap.py:102
+msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/aci.py:519
-#, python-format
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/baseldap.py:105
+msgid "Indirect Member groups"
+msgstr ""
-#: ipalib/plugins/automount.py:103
-msgid "Automount"
+#: ipalib/plugins/baseldap.py:108
+msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/automount.py:109 ipalib/plugins/host.py:134
-msgid "Location"
+#: ipalib/plugins/baseldap.py:111
+msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/automount.py:110
-msgid "Automount location name"
+#: ipalib/plugins/baseldap.py:114
+msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/automount.py:226
-msgid "Map"
+#: ipalib/plugins/baseldap.py:117
+msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/automount.py:227
-msgid "Automount map name"
+#: ipalib/plugins/baseldap.py:120
+msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/automount.py:232 ipalib/plugins/group.py:108
-#: ipalib/plugins/hbac.py:151 ipalib/plugins/hbacsvc.py:72
-#: ipalib/plugins/hbacsvcgroup.py:77 ipalib/plugins/host.py:124
-#: ipalib/plugins/hostgroup.py:81 ipalib/plugins/netgroup.py:96
-#: ipalib/plugins/rolegroup.py:90 ipalib/plugins/sudocmd.py:71
-#: ipalib/plugins/sudocmdgroup.py:77 ipalib/plugins/sudorule.py:58
-#: ipalib/plugins/taskgroup.py:62
-msgid "Description"
+#: ipalib/plugins/baseldap.py:123
+msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/automount.py:236
-msgid "Automount Maps"
+#: ipalib/plugins/baseldap.py:126
+msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid "Key"
+#: ipalib/plugins/baseldap.py:141
+msgid "External host"
msgstr ""
-#: ipalib/plugins/automount.py:309
-msgid "Automount key name"
+#: ipalib/plugins/baseldap.py:144
+msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/automount.py:314
-msgid "Mount information"
+#: ipalib/plugins/baseldap.py:147
+msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/automount.py:318
-msgid "description"
+#: ipalib/plugins/baseldap.py:150
+msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/automount.py:322
-msgid "Automount Keys"
+#: ipalib/plugins/baseldap.py:153
+msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/automount.py:342
-msgid "Mount point"
+#: ipalib/plugins/baseldap.py:171
+msgid ""
+"\n"
+" Given a list of values in the form name=value, return a list of name.\n"
+" "
msgstr ""
-#: ipalib/plugins/automount.py:346
-msgid "Parent map"
+#: ipalib/plugins/baseldap.py:197
+msgid ""
+"\n"
+" When adding or removing reverse members we are faking an update to\n"
+" object A by updating the member attribute in object B. The memberof\n"
+" plugin makes this work by adding or removing the memberof attribute\n"
+" to/from object A, it just takes a little bit of time.\n"
+"\n"
+" This will loop for 6+ seconds, retrieving object A so we can see\n"
+" if all the memberof attributes have been updated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:241
+msgid ""
+"\n"
+" Object representing a LDAP entry.\n"
+" "
msgstr ""
-#: ipalib/plugins/automount.py:347
-msgid "Name of parent automount map (default: auto.master)"
+#: ipalib/plugins/baseldap.py:281
+msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:79
-#, python-format
+#: ipalib/plugins/baseldap.py:283
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:80
-#, python-format
+#: ipalib/plugins/baseldap.py:284
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
-#, python-format
+#: ipalib/plugins/baseldap.py:285
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
-msgid "Add an attribute/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:286
+msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:155
-msgid "Set an attribute to an name/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:415
+msgid ""
+"Add an attribute/value pair. Format is attr=value. The attribute must be "
+"part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:359
+#: ipalib/plugins/baseldap.py:420
+msgid ""
+"Set an attribute to a name/value pair. Format is attr=value.\n"
+"For multi-valued attributes, the command replaces the values already present."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:444
+msgid ""
+"\n"
+" If the set of objectclasses is limited enforce that only those\n"
+" are updated in entry_attrs (plus dn)\n"
+"\n"
+" allow_only tells us what mode to check in:\n"
+"\n"
+" If True then we enforce that the attributes must be in the list of\n"
+" allowed.\n"
+"\n"
+" If False then those attributes are not allowed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:474
+msgid ""
+"\n"
+" Callback registration interface\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:561
+msgid ""
+"\n"
+" Create a new entry in LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:703
+msgid ""
+"\n"
+" Base class for commands that need to retrieve an existing entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:727
+msgid ""
+"\n"
+" Base class for commands that need to retrieve one or more existing "
+"entries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:733
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:517
+#: ipalib/plugins/baseldap.py:750
+msgid ""
+"\n"
+" Retrieve an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
+#: ipalib/plugins/internal.py:232
+msgid "Rights"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+msgid ""
+"Display the access rights of this entry (requires --all). See ipa man page "
+"for details."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:821
+msgid ""
+"\n"
+" Update an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:837
+msgid "Rename"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:838
+msgid "Rename the %(ldap_obj_name)s object"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:957
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:674
+#: ipalib/plugins/baseldap.py:988
+msgid ""
+"\n"
+" Delete an LDAP entry and all of its direct subentries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1078
+msgid ""
+"\n"
+" Base class for member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1120
+msgid ""
+"\n"
+" Add other LDAP entries to members.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
+#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
+#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
msgid "Members that could not be added"
msgstr ""
-#: ipalib/plugins/baseldap.py:678
+#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:684 ipalib/plugins/baseldap.py:789
-msgid "Failed members"
+#: ipalib/plugins/baseldap.py:1226
+msgid ""
+"\n"
+" Remove LDAP entries from members.\n"
+" "
msgstr ""
-#: ipalib/plugins/baseldap.py:779
+#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:783
+#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:880
+#: ipalib/plugins/baseldap.py:1335
+msgid ""
+"\n"
+" Retrieve all LDAP entries matching the given criteria.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1344
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:881
+#: ipalib/plugins/baseldap.py:1345
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:887
+#: ipalib/plugins/baseldap.py:1351
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:888
+#: ipalib/plugins/baseldap.py:1352
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/cert.py:93
+#: ipalib/plugins/baseldap.py:1552
+msgid ""
+"\n"
+" Base class for reverse member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1574
+msgid ""
+"\n"
+" Add other LDAP entries to members in reverse.\n"
+"\n"
+" The call looks like \"add A to B\" but in fact executes\n"
+" add B to A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1654
+msgid "added"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1687
+msgid ""
+"\n"
+" Remove other LDAP entries from members in reverse.\n"
+"\n"
+" The call looks like \"remove A from B\" but in fact executes\n"
+" remove B from A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1767
+msgid "removed"
+msgstr ""
+
+#: ipalib/plugins/batch.py:21
+msgid ""
+"\n"
+"Plugin to make multiple ipa calls via one remote procedure call\n"
+"\n"
+"To run this code in the lite-server\n"
+"\n"
+"curl -H \"Content-Type:application/json\" -H \"Accept:application/"
+"json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /"
+"etc/ipa/ca.crt -d @batch_request.json -X POST http://"
+"localhost:8888/ipa/json\n"
+"\n"
+"where the contents of the file batch_request.json follow the below example\n"
+"\n"
+"{\"method\":\"batch\",\"params\":[[\n"
+" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
+" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all"
+"\":\"true\"}]},\n"
+" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
+" ],{}],\"id\":1}\n"
+"\n"
+"The format of the response is nested the same way. At the top you will see\n"
+" \"error\": null,\n"
+" \"id\": 1,\n"
+" \"result\": {\n"
+" \"count\": 3,\n"
+" \"results\": [\n"
+"\n"
+"\n"
+"And then a nested response for each IPA command method sent in the request\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/batch.py:61
+msgid "Nested Methods to execute"
+msgstr ""
+
+#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/plugins/cert.py:22
+msgid ""
+"\n"
+"IPA certificate operations\n"
+"\n"
+"Implements a set of commands for managing server SSL certificates.\n"
+"\n"
+"Certificate requests exist in the form of a Certificate Signing Request "
+"(CSR)\n"
+"in PEM format.\n"
+"\n"
+"If using the selfsign back end then the subject in the CSR needs to match\n"
+"the subject configured in the server. The dogtag CA uses just the CN\n"
+"value of the CSR and forces the rest of the subject.\n"
+"\n"
+"A certificate is stored with a service principal and a service principal\n"
+"needs a host.\n"
+"\n"
+"In order to request a certificate:\n"
+"\n"
+"* The host must exist\n"
+"* The service must exist (or you use the --add option to automatically add "
+"it)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Request a new certificate and add the principal:\n"
+" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n"
+"\n"
+" Retrieve an existing certificate:\n"
+" ipa cert-show 1032\n"
+"\n"
+" Revoke a certificate (see RFC 5280 for reason details):\n"
+" ipa cert-revoke --revocation-reason=6 1032\n"
+"\n"
+" Remove a certificate from revocation hold status:\n"
+" ipa cert-remove-hold 1032\n"
+"\n"
+" Check the status of a signing request:\n"
+" ipa cert-status 10\n"
+"\n"
+"IPA currently immediately issues (or declines) all certificate requests so\n"
+"the status of a request is not normally useful. This is for future use\n"
+"or the case where a CA does not immediately issue a certificate.\n"
+"\n"
+"The following revocation reasons are supported:\n"
+"\n"
+" * 0 - unspecified\n"
+" * 1 - keyCompromise\n"
+" * 2 - cACompromise\n"
+" * 3 - affiliationChanged\n"
+" * 4 - superseded\n"
+" * 5 - cessationOfOperation\n"
+" * 6 - certificateHold\n"
+" * 8 - removeFromCRL\n"
+" * 9 - privilegeWithdrawn\n"
+" * 10 - aACompromise\n"
+"\n"
+"Note that reason code 7 is not used. See RFC 5280 for more details:\n"
+"\n"
+"http://www.ietf.org/rfc/rfc5280.txt\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/cert.py:104
+msgid ""
+"\n"
+" Return the value of CN in the subject of the request or None\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:106 ipalib/plugins/cert.py:118
+#: ipalib/plugins/cert.py:115
+msgid ""
+"\n"
+" Return the first value of the subject alt name, if any\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:120
-#, python-format
+#: ipalib/plugins/cert.py:128
+msgid ""
+"\n"
+" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
+" parser.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:139
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:171 ipalib/plugins/service.py:197
+#: ipalib/plugins/cert.py:142
+msgid ""
+"\n"
+" Strip any leading and trailing cruft around the BEGIN/END block\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:162
+msgid ""
+"\n"
+" Convert a SN given in decimal or hexadecimal.\n"
+" Returns the number or None if conversion fails.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:188
+msgid ""
+"\n"
+" Given a principal with or without a realm return the\n"
+" host portion.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:202
+msgid ""
+"\n"
+" Submit a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:172
+#: ipalib/plugins/cert.py:217
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:179
+#: ipalib/plugins/cert.py:224
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:187 ipalib/plugins/cert.py:392
-#: ipalib/plugins/host.py:154 ipalib/plugins/service.py:204
+#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
+#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
+#: ipalib/plugins/service.py:232
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:191 ipalib/plugins/cert.py:395
+#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:195 ipalib/plugins/cert.py:398
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:199 ipalib/plugins/cert.py:401
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:203 ipalib/plugins/cert.py:404
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:207 ipalib/plugins/cert.py:407
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:211 ipalib/plugins/cert.py:410
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:215 ipalib/plugins/cert.py:379
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:223 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:357
+#: ipalib/plugins/cert.py:396
+msgid ""
+"\n"
+" Check the status of a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:402
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:363
+#: ipalib/plugins/cert.py:408
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:380
+#: ipalib/plugins/cert.py:426
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:413
+#: ipalib/plugins/cert.py:431
+msgid ""
+"\n"
+" Retrieve an existing certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
+#: ipalib/plugins/service.py:114
msgid "Revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:458
+#: ipalib/plugins/cert.py:466
+msgid "Output filename"
+msgstr ""
+
+#: ipalib/plugins/cert.py:467
+msgid "File to store the certificate in."
+msgstr ""
+
+#: ipalib/plugins/cert.py:518
+msgid ""
+"\n"
+" Revoke a certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:526
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:466
+#: ipalib/plugins/cert.py:534
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:467
+#: ipalib/plugins/cert.py:535
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:502
+#: ipalib/plugins/cert.py:562
+msgid ""
+"\n"
+" Take a revoked certificate off hold.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:570
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:505
+#: ipalib/plugins/cert.py:573
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:73
+#: ipalib/plugins/config.py:20
+msgid ""
+"\n"
+"Manage the IPA configuration\n"
+"\n"
+"Manage the default values that IPA uses and some of its tuning parameters.\n"
+"\n"
+" To show the current configuration:\n"
+" ipa config-show\n"
+"\n"
+" To modify the configuration:\n"
+" ipa config-mod --maxusername=99\n"
+"\n"
+"The available options are:\n"
+"\n"
+"User management options:\n"
+"\n"
+" --maxusername=INT Max. username length when creating/modifying a user\n"
+" --homedirectory=STR Default location of home directories (default /"
+"home)\n"
+" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
+" --defaultgroup=STR Default group for new users (default ipausers). The\n"
+" group must exist, or adding new users will fail.\n"
+" --emaildomain=STR Default e-mail domain for new users\n"
+"\n"
+"Search tuning options. These impact how much data is searched through and\n"
+"how many records may be returned on a given search.\n"
+"\n"
+" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 "
+"for\n"
+" unlimited)\n"
+" --searchrecordslimit=INT Max. number of records to search (-1 is "
+"unlimited)\n"
+"\n"
+"Server Configuration.\n"
+"\n"
+" --enable-migration=BOOL Enable migration mode\n"
+" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+"\n"
+"The password notification value is stored here so it will be replicated.\n"
+"It is not currently used to notify users in advance of an expiring\n"
+"password.\n"
+"\n"
+"Some attributes are read-only, provided only for information purposes. "
+"These\n"
+"include:\n"
+"\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
+msgstr ""
+
+#: ipalib/plugins/config.py:76
+msgid "searchtimelimit must be -1 or > 1."
+msgstr ""
+
+#: ipalib/plugins/config.py:80
+msgid ""
+"\n"
+" IPA configuration object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:78
-msgid "Max username length"
+#: ipalib/plugins/config.py:96
+msgid "Max. username length"
msgstr ""
-#: ipalib/plugins/config.py:83
+#: ipalib/plugins/config.py:101
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:84
-msgid "Default location of home directories"
+#: ipalib/plugins/config.py:102
+msgid "Default location of home directories."
msgstr ""
-#: ipalib/plugins/config.py:88
+#: ipalib/plugins/config.py:106
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:89
-msgid "Default shell for new users"
+#: ipalib/plugins/config.py:107
+msgid "Default shell for new users."
msgstr ""
-#: ipalib/plugins/config.py:93
+#: ipalib/plugins/config.py:111
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:94
-msgid "Default group for new users"
+#: ipalib/plugins/config.py:112
+msgid "Default group for new users."
msgstr ""
-#: ipalib/plugins/config.py:98
-msgid "Default e-mail domain"
+#: ipalib/plugins/config.py:116
+msgid "Default e-mail domain for new users"
msgstr ""
-#: ipalib/plugins/config.py:99
-msgid "Default e-mail domain new users"
+#: ipalib/plugins/config.py:117
+msgid "Default e-mail domain new users."
msgstr ""
-#: ipalib/plugins/config.py:103
+#: ipalib/plugins/config.py:121
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:104
-msgid "Max. amount of time (sec.) for a search (-1 is unlimited)"
+#: ipalib/plugins/config.py:122
+msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:109
+#: ipalib/plugins/config.py:127
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:110
-msgid "Max. number of records to search (-1 is unlimited)"
+#: ipalib/plugins/config.py:128
+msgid "Max. number of records to search (-1 is unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:115
+#: ipalib/plugins/config.py:133
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:116
-msgid "A comma-separated list of fields to search when searching for users"
+#: ipalib/plugins/config.py:134
+msgid "A comma-separated list of fields to search when searching for users."
msgstr ""
-#: ipalib/plugins/config.py:121
-msgid "A comma-separated list of fields to search when searching for groups"
+#: ipalib/plugins/config.py:139
+msgid "A comma-separated list of fields to search when searching for groups."
msgstr ""
-#: ipalib/plugins/config.py:125
+#: ipalib/plugins/config.py:143
msgid "Migration mode"
msgstr ""
-#: ipalib/plugins/config.py:126
-msgid "Enable migration mode"
+#: ipalib/plugins/config.py:144
+msgid "Enable migration mode."
msgstr ""
-#: ipalib/plugins/config.py:130
+#: ipalib/plugins/config.py:148
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:131
-msgid "Base for certificate subjects (OU=Test,O=Example)"
+#: ipalib/plugins/config.py:149
+msgid "Base for certificate subjects (OU=Test,O=Example)."
+msgstr ""
+
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:155
+msgid "Default group objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:159
+msgid "Default user objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:160
+msgid "Default user objectclassses (comma-separated list)."
msgstr ""
-#: ipalib/plugins/dns.py:131
+#: ipalib/plugins/config.py:164
+msgid "Password Expiration Notification"
+msgstr ""
+
+#: ipalib/plugins/config.py:165
+msgid "Number of days's notice of impending password expiration."
+msgstr ""
+
+#: ipalib/plugins/config.py:170
+msgid "Password plugin features"
+msgstr ""
+
+#: ipalib/plugins/config.py:171
+msgid "Extra hashes to generate in password plug-in."
+msgstr ""
+
+#: ipalib/plugins/config.py:183
+msgid ""
+"\n"
+" Modify configuration options.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:220
+msgid ""
+"\n"
+" Show the current configuration.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:19
+msgid ""
+"\n"
+"Group to Group Delegation\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"Group to Group Delegations grants the members of one group to update a set\n"
+"of attributes of members of another group.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a delegation rule to allow editors to edit admin's addresses:\n"
+" ipa delegation-add --attrs=street --membergroup=admins --group=editors "
+"'editors edit admins street'\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add postalCode to the list:\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --"
+"group=editors 'editors edit admins street'\n"
+"\n"
+" Display our updated rule:\n"
+" ipa delegation-show 'editors edit admins street'\n"
+"\n"
+" Delete a rule:\n"
+" ipa delegation-del 'editors edit admins street'\n"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:56
+msgid ""
+"\n"
+" memberOf is in filter but we want to pull out the group for easier\n"
+" displaying.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+msgid "Delegation '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:70
+msgid "Error retrieving member group %(group)s: %(error)s"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:79
+msgid ""
+"\n"
+" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a delegation ACI, adding a new attribute\n"
+" membergroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:95
+msgid ""
+"\n"
+" Delegation object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:102
+msgid "Delegation"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+msgid "Delegation name"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+msgid ""
+"Comma-separated list of permissions to grant (read, write). Default is write."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:125
+msgid "Member user group"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:126
+msgid "User group to apply delegation to"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:152
+msgid ""
+"\n"
+" Add a new delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:156
+#, fuzzy
+msgid "Added delegation \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/delegation.py:176
+msgid ""
+"\n"
+" Delete a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:181
+#, fuzzy
+msgid "Deleted delegation \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/delegation.py:197
+msgid ""
+"\n"
+" Modify a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:201
+#, fuzzy
+msgid "Modified delegation \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/delegation.py:219
+msgid ""
+"\n"
+" Search for delegations.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:223
+#, fuzzy
+msgid "%(count)d delegation matched"
+msgid_plural "%(count)d delegations matched"
+msgstr[0] "%(count)d ভেরিয়াবেল"
+msgstr[1] "%(count)d ভেরিয়াবেল"
+
+#: ipalib/plugins/delegation.py:250
+msgid ""
+"\n"
+" Display information about a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:20
+msgid ""
+"\n"
+"Domain Name System (DNS)\n"
+"\n"
+"Manage DNS zone and resource records.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add new zone:\n"
+" ipa dnszone-add example.com --name-server nameserver.example.com\n"
+" --admin-email admin@example.com\n"
+"\n"
+" Add second nameserver for example.com:\n"
+" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add a mail server for example.com:\n"
+" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n"
+"\n"
+" Delete previously added nameserver from example.com:\n"
+" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add new A record for www.example.com: (random IP)\n"
+" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n"
+"\n"
+" Add new PTR record for www.example.com\n"
+" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n"
+"\n"
+" Add new SRV records for LDAP servers. Three quarters of the requests\n"
+" should go to fast.example.com, one quarter to slow.example.com. If neither\n"
+" is available, switch to backup.example.com.\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup."
+"example.com\"\n"
+"\n"
+" When dnsrecord-add command is executed with no option to add a specific "
+"record\n"
+" an interactive mode is started. The mode interactively prompts for the "
+"most\n"
+" typical record types for the respective zone:\n"
+" ipa dnsrecord-add example.com www\n"
+" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random "
+"IPs)\n"
+" [AAAA record]: (no AAAA address entered)\n"
+" Record name: www\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" The interactive mode can also be used for deleting the DNS records:\n"
+" ipa dnsrecord-del example.com www\n"
+" No option to delete specific record provided.\n"
+" Delete all? Yes/No (default No): (do not delete all records)\n"
+" Current DNS record contents:\n"
+"\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
+" Record name: www\n"
+" A record: 1.2.3.4 (A record 11.22.33.44 has been "
+"deleted)\n"
+"\n"
+" Show zone example.com:\n"
+" ipa dnszone-show example.com\n"
+"\n"
+" Find zone with \"example\" in its domain name:\n"
+" ipa dnszone-find example\n"
+"\n"
+" Find records for resources with \"www\" in their name in zone example.com:\n"
+" ipa dnsrecord-find example.com www\n"
+"\n"
+" Find A records with value 10.10.0.1 in zone example.com\n"
+" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n"
+"\n"
+" Show records for resource www in zone example.com\n"
+" ipa dnsrecord-show example.com www\n"
+"\n"
+" Delete zone example.com with all resource records:\n"
+" ipa dnszone-del example.com\n"
+"\n"
+" Resolve a host name to see if it exists (will add default IPA domain\n"
+" if one is not included):\n"
+" ipa dns-resolve www.example.com\n"
+" ipa dns-resolve www\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:140
+msgid "Generate serial number for zones."
+msgstr ""
+
+#: ipalib/plugins/dns.py:189
+msgid "see RFC 2915 "
+msgstr ""
+
+#: ipalib/plugins/dns.py:249
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:272
+msgid ""
+"\n"
+" DNS Zone, container for resource records.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:284
msgid "DNS"
msgstr ""
-#: ipalib/plugins/dns.py:136
-msgid "Zone"
+#: ipalib/plugins/dns.py:289
+msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:137
+#: ipalib/plugins/dns.py:290
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:143
-msgid "Authoritative name server"
+#: ipalib/plugins/dns.py:296
+msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:147
-msgid "administrator e-mail address"
+#: ipalib/plugins/dns.py:297
+msgid "Authoritative nameserver."
msgstr ""
-#: ipalib/plugins/dns.py:153
+#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+msgid "Administrator e-mail address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:308
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:157
+#: ipalib/plugins/dns.py:309
+msgid "SOA record serial number"
+msgstr ""
+
+#: ipalib/plugins/dns.py:316
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:161
+#: ipalib/plugins/dns.py:317
+msgid "SOA record refresh time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:324
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:165
+#: ipalib/plugins/dns.py:325
+msgid "SOA record retry time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:169
+#: ipalib/plugins/dns.py:333
+msgid "SOA record expire time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:173
+#: ipalib/plugins/dns.py:341
+msgid "How long should negative responses be cached"
+msgstr ""
+
+#: ipalib/plugins/dns.py:349
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:177
+#: ipalib/plugins/dns.py:350
+msgid "SOA record time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:354
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:182
-msgid "allow dynamic update?"
+#: ipalib/plugins/dns.py:355
+msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:186
+#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:426 ipalib/plugins/dns.py:460
-#: ipalib/plugins/dns.py:495 ipalib/plugins/dns.py:610
-#: ipalib/plugins/dns.py:695 ipalib/plugins/dns.py:819
-msgid "Zone name"
+#: ipalib/plugins/dns.py:365
+msgid "Active zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:366
+msgid "Is zone active?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:372
+msgid "Dynamic update"
+msgstr ""
+
+#: ipalib/plugins/dns.py:373
+msgid "Allow dynamic updates."
+msgstr ""
+
+#: ipalib/plugins/dns.py:382
+msgid ""
+"\n"
+" Create new DNS zone (SOA record).\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:500
-msgid "resource name"
+#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
+#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:505 ipalib/plugins/dns.py:620
-#: ipalib/plugins/dns.py:711
+#: ipalib/plugins/dns.py:388
+msgid "Force DNS zone creation even if nameserver not in DNS."
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+msgid "Add the nameserver to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:397
+msgid "DNS is not configured"
+msgstr ""
+
+#: ipalib/plugins/dns.py:431
+msgid ""
+"\n"
+" Delete DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"\n"
+" Modify DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:452
+msgid ""
+"\n"
+" Search for DNS zones (SOA records).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:460
+msgid ""
+"\n"
+" Display information about a DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+msgid ""
+"\n"
+" Disable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:472
#, fuzzy
-msgid "Record type"
-msgstr "ভুল প্রকার"
+msgid "Disabled DNS zone \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
-#: ipalib/plugins/dns.py:509 ipalib/plugins/dns.py:624
-msgid "Data"
+#: ipalib/plugins/dns.py:490
+msgid ""
+"\n"
+" Enable DNS Zone.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:510 ipalib/plugins/dns.py:625
-msgid "Type-specific data"
+#: ipalib/plugins/dns.py:494
+#, fuzzy
+msgid "Enabled DNS zone \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/dns.py:512
+msgid ""
+"\n"
+" DNS record.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:517
+#: ipalib/plugins/dns.py:522
+msgid "DNS resource record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
+#, fuzzy
+msgid "Record name"
+msgstr "ভুল প্রকার"
+
+#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:522
+#: ipalib/plugins/dns.py:538
msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:615 ipalib/plugins/dns.py:707
-#: ipalib/plugins/dns.py:824
-msgid "Resource name"
+#: ipalib/plugins/dns.py:539
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:700
-msgid "Search criteria"
+#: ipalib/plugins/dns.py:566
+msgid ""
+"\n"
+" Base class for DNS record commands with record options.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:715
-msgid "type-specific data"
+#: ipalib/plugins/dns.py:610
+msgid ""
+"\n"
+" Base class for adding/removing records from DNS resource entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:865
-#, python-format
+#: ipalib/plugins/dns.py:674
+msgid ""
+"\n"
+" Add records to DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:690
+msgid ""
+"\n"
+" Add new DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:699
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:735
+msgid ""
+"Reverse zone for PTR record should be a sub-zone of one the following fully "
+"qualified domains: %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:740
+msgid "Reverse zone %s requires exactly %d IP address components, %d given"
+msgstr ""
+
+#: ipalib/plugins/dns.py:746
+msgid "PTR record '%s' is not fully qualified (check traling '.')"
+msgstr ""
+
+#: ipalib/plugins/dns.py:789
+msgid ""
+"\n"
+" Delete DNS record entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:792
+#, fuzzy
+msgid "Deleted record \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/dns.py:799
+msgid ""
+"\n"
+" Delete DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:802
+msgid ""
+"Neither --del-all nor options to delete a specific record provided.\n"
+"Command help may be consulted for all supported record types."
+msgstr ""
+
+#: ipalib/plugins/dns.py:807
+msgid "Delete all associated records"
+msgstr ""
+
+#: ipalib/plugins/dns.py:834
+msgid "No option to delete specific record provided."
+msgstr ""
+
+#: ipalib/plugins/dns.py:835
+msgid "Delete all?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:845
+msgid "Current DNS record contents:\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:875
+msgid "%s record with value %s not found"
+msgstr ""
+
+#: ipalib/plugins/dns.py:889
+msgid ""
+"\n"
+" Display DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:905
+msgid ""
+"\n"
+" Search for DNS resources.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:932
+msgid ""
+"\n"
+" Resolve a host name in DNS\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:936
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:869
+#: ipalib/plugins/dns.py:940
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:882
-#, python-format
+#: ipalib/plugins/dns.py:962
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/group.py:94
+#: ipalib/plugins/dns.py:970
+msgid ""
+"\n"
+" Checks if any of the servers has the DNS service enabled.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:19
+msgid ""
+"\n"
+"Entitlements\n"
+"\n"
+"Manage entitlements for client machines\n"
+"\n"
+"Entitlements can be managed either by registering with an entitlement\n"
+"server with a username and password or by manually importing entitlement\n"
+"certificates. An entitlement certificate contains embedded information\n"
+"such as the product being entitled, the quantity and the validity dates.\n"
+"\n"
+"An entitlement server manages the number of client entitlements available.\n"
+"To mark these entitlements as used by the IPA server you provide a quantity\n"
+"and they are marked as consumed on the entitlement server.\n"
+"\n"
+" Register with an entitlement server:\n"
+" ipa entitle-register consumer\n"
+"\n"
+" Import an entitlement certificate:\n"
+" ipa entitle-import /home/user/ipaclient.pem\n"
+"\n"
+" Display current entitlements:\n"
+" ipa entitle-status\n"
+"\n"
+" Retrieve details on entitlement certificates:\n"
+" ipa entitle-get\n"
+"\n"
+" Consume some entitlements from the entitlement server:\n"
+" ipa entitle-consume 50\n"
+"\n"
+"The registration ID is a Unique Identifier (UUID). This ID will be\n"
+"IMPORTED if you have used entitle-import.\n"
+"\n"
+"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:106
+msgid ""
+"\n"
+" Get our entitlement pool. Assume there is only one pool.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:129
+msgid ""
+"\n"
+" Retrieve our UUID, certificate and key from LDAP.\n"
+"\n"
+" Except on error the caller is responsible for removing temporary files\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:178
+msgid ""
+"\n"
+" Entitlement object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:189
+msgid "Entitlements"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:206
+msgid ""
+"\n"
+" Display current entitlements\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+msgid "UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
+#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
+#: ipalib/plugins/entitle.py:690
+msgid "Product"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
+#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
+#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+msgid "Quantity"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
+#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+msgid "Consumed"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:276
+msgid ""
+"\n"
+" Consume an entitlement\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:282
+msgid "Consumed %(value)s entitlement(s)."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:314
+msgid ""
+"\n"
+" Override this so we can set value to the number of entitlements\n"
+" consumed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
+msgid ""
+"\n"
+" Returning the certificates isn't very interesting. Return the\n"
+" status of entitlements instead.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:380
+msgid ""
+"\n"
+" Retrieve the entitlement certs\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:394
+msgid "Start"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:397
+msgid "End"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
+#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+msgid "Serial Number"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
+#: ipalib/plugins/entitle.py:628
+msgid "Not an entitlement certificate"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:460
+msgid ""
+"\n"
+" Search for entitlement accounts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:473
+msgid ""
+"\n"
+" Register to the entitlement system\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:479
+msgid "Registered to entitlement server."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:483
+msgid "Username"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
+msgid "Enrollment UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
+#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
+msgid "Password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:495
+msgid "Registration password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:569
+msgid ""
+"\n"
+" Import an entitlement certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:646
+msgid ""
+"\n"
+" If we are adding the first entry there are no updates so "
+"EmptyModlist\n"
+" will get thrown. Ignore it.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:667
+msgid ""
+"\n"
+" Re-sync the local entitlement cache with the entitlement server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:673
+msgid "Entitlement(s) synchronized."
+msgstr ""
+
+#: ipalib/plugins/group.py:20
+msgid ""
+"\n"
+"Groups of users\n"
+"\n"
+"Manage groups of users. By default, new groups are POSIX groups. You\n"
+"can add the --nonposix option to the group-add command to mark a new group\n"
+"as non-POSIX, and you can use the same argument to the group-mod command\n"
+"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"converted to non-POSIX groups.\n"
+"\n"
+"Every group must have a description.\n"
+"\n"
+"POSIX groups must have a Group ID (GID) number. Changing a GID is\n"
+"supported but can have an impact on your file permissions. It is not "
+"necessary\n"
+"to supply a GID when creating a group. IPA will generate one automatically\n"
+"if it is not provided.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new group:\n"
+" ipa group-add --desc='local administrators' localadmins\n"
+"\n"
+" Add a new non-POSIX group:\n"
+" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n"
+"\n"
+" Convert a non-POSIX group to posix:\n"
+" ipa group-mod --posix remoteadmins\n"
+"\n"
+" Add a new POSIX group with a specific Group ID number:\n"
+" ipa group-add --gid=500 --desc='unix admins' unixadmins\n"
+"\n"
+" Add a new POSIX group and let IPA assign a Group ID number:\n"
+" ipa group-add --desc='printer admins' printeradmins\n"
+"\n"
+" Remove a group:\n"
+" ipa group-del unixadmins\n"
+"\n"
+" To add the \"remoteadmins\" group to the \"localadmins\" group:\n"
+" ipa group-add-member --groups=remoteadmins localadmins\n"
+"\n"
+" Add a list of users to the \"localadmins\" group:\n"
+" ipa group-add-member --users=test1,test2 localadmins\n"
+"\n"
+" Remove a user from the \"localadmins\" group:\n"
+" ipa group-remove-member --users=test2 localadmins\n"
+"\n"
+" Display information about a named group.\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/group.py:76
+msgid ""
+"\n"
+" Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:100
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:102
+#: ipalib/plugins/group.py:108
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:109 ipalib/plugins/sudocmdgroup.py:78
+#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:113
+#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:114
+#: ipalib/plugins/group.py:120
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:117 ipalib/plugins/rolegroup.py:94
-#: ipalib/plugins/taskgroup.py:66
-msgid "Member groups"
-msgstr ""
-
-#: ipalib/plugins/group.py:121 ipalib/plugins/rolegroup.py:98
-#: ipalib/plugins/taskgroup.py:70
-msgid "Member users"
+#: ipalib/plugins/group.py:128
+msgid ""
+"\n"
+" Create a new group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:134
-#, python-format
+#: ipalib/plugins/group.py:132
msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:139
+#: ipalib/plugins/group.py:137
#, fuzzy
-msgid "Create as a non-POSIX group?"
+msgid "Create as a non-POSIX group"
msgstr "একটি পসিক্স (posix) গ্রুপ আগে থেকে উপস্থিত"
-#: ipalib/plugins/group.py:160
-#, python-format
+#: ipalib/plugins/group.py:154
+msgid ""
+"\n"
+" Delete group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:158
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:191
-#, python-format
+#: ipalib/plugins/group.py:186
+msgid ""
+"\n"
+" Modify a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:189
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:196
+#: ipalib/plugins/group.py:194
#, fuzzy
msgid "change to a POSIX group"
msgstr "একটি পসিক্স (posix) গ্রুপ আগে থেকে উপস্থিত"
-#: ipalib/plugins/group.py:222 ipalib/plugins/hbacsvcgroup.py:129
-#, python-format
+#: ipalib/plugins/group.py:215
+msgid ""
+"\n"
+" Search for groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:220
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
+#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+msgid "search for private groups"
+msgstr ""
+
#: ipalib/plugins/group.py:257
-#, python-format
-msgid "Detached group \"%(value)s\" from user \"%(value)s\""
+msgid ""
+"\n"
+" Display information about a named group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:265
+msgid ""
+"\n"
+" Add members to a group.\n"
+" "
msgstr ""
#: ipalib/plugins/group.py:273
+msgid ""
+"\n"
+" Remove members from a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:281
+msgid ""
+"\n"
+" Detach a managed group from a user\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:285
+msgid "Detached group \"%(value)s\" from user \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/group.py:288
+msgid ""
+"\n"
+" This requires updating both the user and the group. We first need "
+"to\n"
+" verify that both the user and group can be updated, then we go\n"
+" about our work. We don't want a situation where only the user or\n"
+" group can be modified and we're left in a bad state.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:306
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:277
+#: ipalib/plugins/group.py:312
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:284 ipalib/plugins/group.py:295
+#: ipalib/plugins/group.py:331
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbac.py:106
-msgid "HBAC"
+#: ipalib/plugins/hbacrule.py:19
+msgid ""
+"\n"
+"Host-based access control\n"
+"\n"
+"Control who can access what services on what hosts and from where. You\n"
+"can use HBAC to control which users or groups on a source host can\n"
+"access a service, or group of services, on a target host.\n"
+"\n"
+"You can also specify a category of users, target hosts, and source\n"
+"hosts. This is currently limited to \"all\", but might be expanded in the\n"
+"future.\n"
+"\n"
+"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n"
+"\n"
+"The available services and groups of services are controlled by the\n"
+"hbacsvc and hbacsvcgroup plug-ins respectively.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a rule, \"test1\", that grants all users access to the host \"server"
+"\" from\n"
+" anywhere:\n"
+" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add-host --hosts=server.example.com test1\n"
+"\n"
+" Display the properties of a named HBAC rule:\n"
+" ipa hbacrule-show test1\n"
+"\n"
+" Create a rule for a specific service. This lets the user john access\n"
+" the sshd service on any machine from any machine:\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add-user --users=john john_sshd\n"
+" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
+"\n"
+" Create a rule for a new service group. This lets the user john access\n"
+" the FTP service on any machine from any machine:\n"
+" ipa hbacsvcgroup-add ftpers\n"
+" ipa hbacsvc-add sftp\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add-user --users=john john_ftp\n"
+" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
+"\n"
+" Disable a named HBAC rule:\n"
+" ipa hbacrule-disable test1\n"
+"\n"
+" Remove a named HBAC rule:\n"
+" ipa hbacrule-del allow_server\n"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:91
+msgid ""
+"\n"
+" See if options[attribute] is lower-case 'all' in a safe way.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:103
+msgid ""
+"\n"
+" HBAC object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbac.py:111 ipalib/plugins/sudorule.py:53
+#: ipalib/plugins/hbacrule.py:126
+msgid "HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbac.py:116
+#: ipalib/plugins/hbacrule.py:136
msgid "Rule type (allow or deny)"
msgstr ""
-#: ipalib/plugins/hbac.py:117
+#: ipalib/plugins/hbacrule.py:137
#, fuzzy
msgid "Rule type"
msgstr "ভুল প্রকার"
-#: ipalib/plugins/hbac.py:123
+#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
+#: ipalib/plugins/sudorule.py:86
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbac.py:124
+#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
+#: ipalib/plugins/sudorule.py:87
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:129
+#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
+#: ipalib/plugins/sudorule.py:92
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbac.py:130
+#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
+#: ipalib/plugins/sudorule.py:93
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:135
+#: ipalib/plugins/hbacrule.py:155
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbac.py:136
+#: ipalib/plugins/hbacrule.py:156
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:141
+#: ipalib/plugins/hbacrule.py:161
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbac.py:142
+#: ipalib/plugins/hbacrule.py:162
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:147 ipalib/plugins/hbac.py:325
-#: ipalib/plugins/hbac.py:363
-msgid "Access time"
-msgstr ""
-
-#: ipalib/plugins/hbac.py:154
+#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbac.py:158 ipalib/plugins/sudorule.py:61
-#: ipalib/plugins/user.py:76
+#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
+#: ipalib/plugins/user.py:108
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbac.py:162 ipalib/plugins/host.py:113
-#: ipalib/plugins/sudorule.py:65
+#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
+#: ipalib/plugins/sudorule.py:119
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
+#: ipalib/plugins/sudorule.py:123
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:166 ipalib/plugins/hostgroup.py:69
-#: ipalib/plugins/sudorule.py:69
+#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
+#: ipalib/plugins/sudorule.py:127
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbac.py:170
+#: ipalib/plugins/hbacrule.py:194
msgid "Source hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:174 ipalib/plugins/hbacsvc.py:60
-#: ipalib/plugins/service.py:192
+#: ipalib/plugins/hbacrule.py:198
+msgid "Source host groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
+#: ipalib/plugins/service.py:220
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbac.py:178
+#: ipalib/plugins/hbacrule.py:206
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:65
-msgid "Service name"
+#: ipalib/plugins/hbacrule.py:215
+msgid ""
+"\n"
+" Create a new HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:219
+#, fuzzy
+msgid "Added HBAC rule \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/hbacrule.py:230
+msgid ""
+"\n"
+" Delete an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:234
+#, fuzzy
+msgid "Deleted HBAC rule \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/hbacrule.py:240
+msgid ""
+"\n"
+" Modify an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:244
+#, fuzzy
+msgid "Modified HBAC rule \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/hbacrule.py:266
+msgid ""
+"\n"
+" Search for HBAC rules.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:270
+#, fuzzy
+msgid "%(count)d HBAC rule matched"
+msgid_plural "%(count)d HBAC rules matched"
+msgstr[0] "%(count)d ভেরিয়াবেল"
+msgstr[1] "%(count)d ভেরিয়াবেল"
+
+#: ipalib/plugins/hbacrule.py:278
+msgid ""
+"\n"
+" Display the properties of an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:286
+msgid ""
+"\n"
+" Enable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:290
+#, fuzzy
+msgid "Enabled HBAC rule \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/hbacrule.py:315
+msgid ""
+"\n"
+" Disable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:319
+#, fuzzy
+msgid "Disabled HBAC rule \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/hbacrule.py:344
+msgid ""
+"\n"
+" Add an access time to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+msgid "Access time"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:385
+msgid ""
+"\n"
+" Remove access time to HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:425
+msgid ""
+"\n"
+" Add users and groups to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:442
+msgid ""
+"\n"
+" Remove users and groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:452
+msgid ""
+"\n"
+" Add target hosts and hostgroups to an HBAC rule\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:469
+msgid ""
+"\n"
+" Remove target hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:479
+msgid ""
+"\n"
+" Add source hosts and hostgroups from a HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:496
+msgid ""
+"\n"
+" Remove source hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:506
+msgid ""
+"\n"
+" Add services to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:523
+msgid ""
+"\n"
+" Remove service and service groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:19
+msgid ""
+"\n"
+"HBAC Services\n"
+"\n"
+"The PAM services that HBAC can control access to. The name used here\n"
+"must match the service name that PAM is evaluating.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service:\n"
+" ipa hbacsvc-add tftp\n"
+"\n"
+" Modify an existing HBAC service:\n"
+" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n"
+"\n"
+" Search for HBAC services. This example will return two results, the FTP\n"
+" service and the newly-added tftp service:\n"
+" ipa hbacsvc-find ftp\n"
+"\n"
+" Delete an HBAC service:\n"
+" ipa hbacsvc-del tftp\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:51
+msgid ""
+"\n"
+" HBAC Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:61
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "HBAC Service"
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:73
-msgid "Description of service"
+#: ipalib/plugins/hbacsvc.py:67
+msgid "HBAC service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:84 ipalib/plugins/service.py:216
-#, fuzzy, python-format
-msgid "Added service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:74
+msgid "HBAC service description"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:82
+msgid ""
+"\n"
+" Add a new HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:85
+#, fuzzy
+msgid "Added HBAC service \"%(value)s\""
msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
-#: ipalib/plugins/hbacsvc.py:93 ipalib/plugins/service.py:255
-#, fuzzy, python-format
-msgid "Deleted service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:91
+msgid ""
+"\n"
+" Delete an existing HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:94
+#, fuzzy
+msgid "Deleted HBAC service \"%(value)s\""
msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
-#: ipalib/plugins/hbacsvcgroup.py:66
-msgid "HBAC Service Groups"
+#: ipalib/plugins/hbacsvc.py:100
+msgid ""
+"\n"
+" Modify an HBAC service.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:71
-msgid "Service group name"
+#: ipalib/plugins/hbacsvc.py:104
+#, fuzzy
+msgid "Modified HBAC service \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/hbacsvc.py:110
+msgid ""
+"\n"
+" Search for HBAC services.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:78
-msgid "HBAC service group description"
+#: ipalib/plugins/hbacsvc.py:114
+#, fuzzy
+msgid "%(count)d HBAC service matched"
+msgid_plural "%(count)d HBAC services matched"
+msgstr[0] "%(count)d ভেরিয়াবেল"
+msgstr[1] "%(count)d ভেরিয়াবেল"
+
+#: ipalib/plugins/hbacsvc.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:81
-msgid "Member services"
+#: ipalib/plugins/hbacsvcgroup.py:19
+msgid ""
+"\n"
+"HBAC Service Groups\n"
+"\n"
+"HBAC service groups can contain any number of individual services,\n"
+"or \"members\". Every group must have a description.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service group:\n"
+" ipa hbacsvcgroup-add --desc=\"login services\" login\n"
+"\n"
+" Add members to an HBAC service group:\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n"
+"\n"
+" Display information about a named group:\n"
+" ipa hbacsvcgroup-show login\n"
+"\n"
+" Add a new group to the \"login\" group:\n"
+" ipa hbacsvcgroup-add --desc=\"switch users\" login\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n"
+"\n"
+" Delete an HBAC service group:\n"
+" ipa hbacsvcgroup-del login\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:51
+msgid ""
+"\n"
+" HBAC service group object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:85
-msgid "Member service groups"
+#: ipalib/plugins/hbacsvcgroup.py:64
+#, fuzzy
+msgid "HBAC service Groups"
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/hbacsvcgroup.py:69
+msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:101
-#, fuzzy, python-format
-msgid "Added HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:76
+msgid "HBAC service group description"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:84
+#, fuzzy
+msgid ""
+"\n"
+" Add a new HBAC service group.\n"
+" "
msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
-#: ipalib/plugins/hbacsvcgroup.py:110
-#, fuzzy, python-format
-msgid "Deleted HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:87
+#, fuzzy
+msgid "Added HBAC service group \"%(value)s\""
msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
-#: ipalib/plugins/hbacsvcgroup.py:119
-#, fuzzy, python-format
-msgid "Modified HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:93
+#, fuzzy
+msgid ""
+"\n"
+" Delete an HBAC service group.\n"
+" "
msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
-#: ipalib/plugins/host.py:86
+#: ipalib/plugins/hbacsvcgroup.py:96
+#, fuzzy
+msgid "Deleted HBAC service group \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/hbacsvcgroup.py:102
+#, fuzzy
+msgid ""
+"\n"
+" Modify an HBAC service group.\n"
+" "
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/hbacsvcgroup.py:105
+#, fuzzy
+msgid "Modified HBAC service group \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/hbacsvcgroup.py:111
+msgid ""
+"\n"
+" Search for an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:114
+#, fuzzy
+msgid "%(count)d HBAC service group matched"
+msgid_plural "%(count)d HBAC service groups matched"
+msgstr[0] "%(count)d ভেরিয়াবেল"
+msgstr[1] "%(count)d ভেরিয়াবেল"
+
+#: ipalib/plugins/hbacsvcgroup.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:130
+msgid ""
+"\n"
+" Add members to an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:138
+msgid ""
+"\n"
+" Remove members from an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:20
+msgid ""
+"\n"
+"Hosts/Machines\n"
+"\n"
+"A host represents a machine. It can be used in a number of contexts:\n"
+"- service entries are associated with a host\n"
+"- a host stores the host/ service principal\n"
+"- a host can be used in Host-based Access Control (HBAC) rules\n"
+"- every enrolled client generates a host entry\n"
+"\n"
+"ENROLLMENT:\n"
+"\n"
+"There are three enrollment scenarios when enrolling a new client:\n"
+"\n"
+"1. You are enrolling as a full administrator. The host entry may exist\n"
+" or not. A full administrator is a member of the hostadmin role\n"
+" or the admins group.\n"
+"2. You are enrolling as a limited administrator. The host must already\n"
+" exist. A limited administrator is a member a role with the\n"
+" Host Enrollment privilege.\n"
+"3. The host has been created with a one-time password.\n"
+"\n"
+"A host can only be enrolled once. If a client has enrolled and needs to\n"
+"be re-enrolled, the host entry must be removed and re-created. Note that\n"
+"re-creating the host entry will result in all services for the host being\n"
+"removed, and all SSL certificates associated with those services being\n"
+"revoked.\n"
+"\n"
+"A host can optionally store information such as where it is located,\n"
+"the OS that it runs, etc.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host:\n"
+" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example."
+"com\n"
+"\n"
+" Delete a host:\n"
+" ipa host-del test.example.com\n"
+"\n"
+" Add a new host with a one-time password:\n"
+" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n"
+"\n"
+" Add a new host with a random one-time password:\n"
+" ipa host-add --os='Fedora 12' --random test.example.com\n"
+"\n"
+" Modify information about a host:\n"
+" ipa host-mod --os='Fedora 12' test.example.com\n"
+"\n"
+" Disable the host Kerberos key, SSL certificate and all of its services:\n"
+" ipa host-disable test.example.com\n"
+"\n"
+" Add a host that can manage this host's keytab and certificate:\n"
+" ipa host-add-managedby --hosts=test2 test\n"
+msgstr ""
+
+#: ipalib/plugins/host.py:97
+msgid ""
+"\n"
+" Require at least one dot in the hostname (to support localhost."
+"localdomain)\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:118
+#: ipalib/plugins/host.py:129
+msgid "DNS reverse zone for IP address %(addr)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+msgid "Keytab"
+msgstr ""
+
+#: ipalib/plugins/host.py:185
+msgid ""
+"\n"
+" Verify that we have either an IPv4 or IPv6 address.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:189
+msgid "invalid IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:194
+msgid ""
+"\n"
+" Host object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:231
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:125
+#: ipalib/plugins/host.py:238
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:242
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:130
+#: ipalib/plugins/host.py:243
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:135
+#: ipalib/plugins/host.py:248
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:139
+#: ipalib/plugins/host.py:252
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:140
+#: ipalib/plugins/host.py:253
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:144
+#: ipalib/plugins/host.py:257
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:145
+#: ipalib/plugins/host.py:258
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:149
+#: ipalib/plugins/host.py:262
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:150
+#: ipalib/plugins/host.py:263
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:155 ipalib/plugins/service.py:205
-msgid "Base-64 encoded server certificate"
+#: ipalib/plugins/host.py:266
+msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:158 ipalib/plugins/host.py:274
-msgid "Principal name"
+#: ipalib/plugins/host.py:271
+msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:162 ipalib/plugins/hostgroup.py:93
-msgid "Member of host-groups"
+#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:166
-msgid "Member of net-groups"
+#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:170
-msgid "Member of role-groups"
+#: ipalib/plugins/host.py:306
+msgid ""
+"\n"
+" Add a new host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:199
-#, python-format
+#: ipalib/plugins/host.py:311
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:202
+#: ipalib/plugins/host.py:316
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:235
-#, python-format
+#: ipalib/plugins/host.py:319
+msgid "skip reverse DNS detection"
+msgstr ""
+
+#: ipalib/plugins/host.py:322
+msgid "Add the host to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+msgid "DNS zone %(zone)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:413
+msgid "The host was added but the DNS update failed with: %(exc)s"
+msgstr ""
+
+#: ipalib/plugins/host.py:422
+msgid ""
+"\n"
+" Delete a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:426
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:269
-#, python-format
+#: ipalib/plugins/host.py:431
+msgid "Remove entries from DNS"
+msgstr ""
+
+#: ipalib/plugins/host.py:537
+msgid ""
+"\n"
+" Modify information about a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:542
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:275
+#: ipalib/plugins/host.py:549
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:319
-#, python-format
+#: ipalib/plugins/host.py:618
+msgid ""
+"\n"
+" Search for hosts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:623
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:337 ipalib/plugins/service.py:84
-msgid "Keytab"
+#: ipalib/plugins/host.py:643
+msgid ""
+"\n"
+" Display information about a host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:359 ipalib/plugins/service.py:399
-#, fuzzy, python-format
-msgid "Removed kerberos key from \"%(value)s\""
+#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+msgid "file to store certificate in"
+msgstr ""
+
+#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+msgid "Certificate stored in file '%(file)s'"
+msgstr ""
+
+#: ipalib/plugins/host.py:684
+msgid ""
+"\n"
+" Disable the Kerberos key, SSL certificate and all services of a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:688
+#, fuzzy
+msgid "Disabled host \"%(value)s\""
msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
-#: ipalib/plugins/host.py:368
-msgid "Host principal has no kerberos key"
+#: ipalib/plugins/host.py:770
+msgid ""
+"\n"
+" Add hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:781
+msgid ""
+"\n"
+" Remove hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:20
+msgid ""
+"\n"
+"Groups of hosts.\n"
+"\n"
+"Manage groups of hosts. This is useful for applying access control to a\n"
+"number of hosts by using Host-based Access Control.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host group:\n"
+" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n"
+"\n"
+" Add another new host group:\n"
+" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n"
+"\n"
+" Add members to the hostgroup:\n"
+" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n"
+"\n"
+" Add a hostgroup as a member of another hostgroup:\n"
+" ipa hostgroup-add-member --hostgroups=baltimore maryland\n"
+"\n"
+" Remove a host from the hostgroup:\n"
+" ipa hostgroup-remove-member --hosts=box2 baltimore\n"
+"\n"
+" Display a host group:\n"
+" ipa hostgroup-show baltimore\n"
+"\n"
+" Delete a hostgroup:\n"
+" ipa hostgroup-del baltimore\n"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:55
+msgid ""
+"\n"
+" Hostgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/hostgroup.py:78
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:75
+#: ipalib/plugins/hostgroup.py:79
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:82
+#: ipalib/plugins/hostgroup.py:86
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:85
-msgid "Member hosts"
+#: ipalib/plugins/hostgroup.py:94
+msgid ""
+"\n"
+" Add a new hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:89
-msgid "Member host-groups"
+#: ipalib/plugins/hostgroup.py:98
+msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:106
-#, python-format
-msgid "Added hostgroup \"%(value)s\""
+#: ipalib/plugins/hostgroup.py:104
+msgid ""
+"\n"
+" Delete a hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:116
-#, python-format
+#: ipalib/plugins/hostgroup.py:108
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:126
-#, python-format
+#: ipalib/plugins/hostgroup.py:114
+msgid ""
+"\n"
+" Modify a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:118
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:137
-#, python-format
+#: ipalib/plugins/hostgroup.py:124
+msgid ""
+"\n"
+" Search for hostgroups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:128
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/internal.py:39
+#: ipalib/plugins/hostgroup.py:136
+msgid ""
+"\n"
+" Display information about a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:144
+msgid ""
+"\n"
+" Add members to a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:152
+msgid ""
+"\n"
+" Remove members from a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:22
+msgid ""
+"\n"
+"Plugins not accessible directly through the CLI, commands used internally\n"
+msgstr ""
+
+#: ipalib/plugins/internal.py:36
+msgid ""
+"\n"
+" Export plugin meta-data for the webUI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:44
+msgid "Name of object to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:47
+msgid "Name of method to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:52
+msgid "Dict of JSON encoded IPA Objects"
+msgstr ""
+
+#: ipalib/plugins/internal.py:53
+msgid "Dict of JSON encoded IPA Methods"
+msgstr ""
+
+#: ipalib/plugins/internal.py:96
msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:41
+#: ipalib/plugins/internal.py:99
+msgid "Attribute"
+msgstr ""
+
+#: ipalib/plugins/internal.py:102
+msgid "Add Automount Location"
+msgstr ""
+
+#: ipalib/plugins/internal.py:103
+msgid "Automount Location Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:106
+msgid "Add Automount Map"
+msgstr ""
+
+#: ipalib/plugins/internal.py:109
+msgid "Add Automount Key"
+msgstr ""
+
+#: ipalib/plugins/internal.py:112
+msgid "Unspecified"
+msgstr ""
+
+#: ipalib/plugins/internal.py:113
+msgid "Key Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:114
+msgid "CA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:115
+msgid "Affiliation Changed"
+msgstr ""
+
+#: ipalib/plugins/internal.py:116
+msgid "Superseded"
+msgstr ""
+
+#: ipalib/plugins/internal.py:117
+#, fuzzy
+msgid "Cessation of Operation"
+msgstr "ফাইল কার্য"
+
+#: ipalib/plugins/internal.py:118
+msgid "Certificate Hold"
+msgstr ""
+
+#: ipalib/plugins/internal.py:119
+msgid "Remove from CRL"
+msgstr ""
+
+#: ipalib/plugins/internal.py:120
+msgid "Privilege Withdrawn"
+msgstr ""
+
+#: ipalib/plugins/internal.py:121
+msgid "AA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:122
+msgid ""
+"To confirm your intention to revoke this certificate, select a reason from "
+"the pull-down list, and click the \"Revoke\" button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:124
+msgid "Note"
+msgstr ""
+
+#: ipalib/plugins/internal.py:125
+msgid "Reason for Revocation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:126
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\" "
+"button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:128
+msgid "Issued To"
+msgstr ""
+
+#: ipalib/plugins/internal.py:129
+msgid "Common Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:130
+msgid "Organization"
+msgstr ""
+
+#: ipalib/plugins/internal.py:131
+msgid "Organizational Unit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:133
+msgid "Issued By"
+msgstr ""
+
+#: ipalib/plugins/internal.py:134
+msgid "Validity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:135
+msgid "Issued On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:136
+msgid "Expires On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:137
+msgid "Fingerprints"
+msgstr ""
+
+#: ipalib/plugins/internal.py:138
+msgid "SHA1 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:139
+msgid "MD5 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:140
+msgid "Enter the Base64-encoded CSR below"
+msgstr ""
+
+#: ipalib/plugins/internal.py:141
+msgid "Valid Certificate Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:142
+msgid "New Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:143
+msgid "Certificate Revoked"
+msgstr ""
+
+#: ipalib/plugins/internal.py:144
+msgid "No Valid Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:145
+msgid "Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:146
+msgid "Issue New Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:147
+msgid "Revoke Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:148
+msgid "Restore Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:152
+msgid "Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:155
+msgid "Add Delegation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:158
+msgid "Add DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:159
+msgid "DNS Zone Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:162
+msgid "Add DNS Resource Record"
+msgstr ""
+
+#: ipalib/plugins/internal.py:163
+msgid "Resource"
+msgstr ""
+
+#: ipalib/plugins/internal.py:165
+msgid "Data"
+msgstr ""
+
+#: ipalib/plugins/internal.py:166
+msgid "Records for DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:169
+msgid "Add Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:170
+msgid "Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
+#, fuzzy
+msgid "Is this a POSIX group?"
+msgstr "একটি পসিক্স (posix) গ্রুপ আগে থেকে উপস্থিত"
+
+#: ipalib/plugins/internal.py:174
+msgid "Add HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:306
+msgid "Active"
+msgstr ""
+
+#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:308
+msgid "Inactive"
+msgstr ""
+
+#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
+#, fuzzy
+msgid "Rule status"
+msgstr "ভুল প্রকার"
+
+#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
+msgid "Who"
+msgstr ""
+
+#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
+msgid "Anyone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
+msgid "Specified Users and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:183
+msgid "Accessing"
+msgstr ""
+
+#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
+msgid "Any Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
+msgid "Specified Hosts and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:186
+msgid "Via Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:187
+msgid "Any Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:188
+msgid "Specified Services and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:189
+msgid "From"
+msgstr ""
+
+#: ipalib/plugins/internal.py:192
+#, fuzzy
+msgid "Add HBAC Service"
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/internal.py:195
+#, fuzzy
+msgid "Add HBAC Service Group"
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/internal.py:199
+msgid "Add Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:200
+msgid "Host Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:202
+msgid "Host Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:203
+msgid "Enrolled?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:204
+msgid "Enrollment"
+msgstr ""
+
+#: ipalib/plugins/internal.py:205
+msgid "Fully Qualified Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
+msgid "Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:208
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
+msgid "Delete Key, Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:211
+msgid "Enroll via One-Time-Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:212
+msgid "Set OTP"
+msgstr ""
+
+#: ipalib/plugins/internal.py:213
+msgid "One-Time-Password has been set."
+msgstr ""
+
+#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
+msgid "Unprovisioning ${entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:215
+msgid "Are you sure you want to unprovision this host?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
+msgid "Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:219
+msgid "Add Host Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:220
+msgid "Host Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:223
+msgid "Kerberos ticket policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:226
+msgid "Add Netgroup"
+msgstr ""
+
+#: ipalib/plugins/internal.py:227
+msgid "Netgroup Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:230
+msgid "Add Permission"
+msgstr ""
+
+#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
+msgid "Identity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:233
+msgid "Target"
+msgstr ""
+
+#: ipalib/plugins/internal.py:235
+msgid "By Subtree"
+msgstr ""
+
+#: ipalib/plugins/internal.py:236
+msgid "Target Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:237
+msgid "Object By Type"
+msgstr ""
+
+#: ipalib/plugins/internal.py:238
+msgid "Permission with invalid target specification"
+msgstr ""
+
+#: ipalib/plugins/internal.py:241
+msgid "Add Privilege"
+msgstr ""
+
+#: ipalib/plugins/internal.py:242
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:245
+msgid "Add Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:249
+msgid "Add Role"
+msgstr ""
+
+#: ipalib/plugins/internal.py:250
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:253
+msgid "Add Self Service Definition"
+msgstr ""
+
+#: ipalib/plugins/internal.py:256
+msgid "Add Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:257
+msgid "Service Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:258
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:260
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:261
+msgid "Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:263
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:267
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:271
+#, fuzzy
+msgid "Add Sudo Command"
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/internal.py:275
+#, fuzzy
+msgid "Add Sudo Command Group"
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:279
+msgid "Add Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:287
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:290
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:291
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:292
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:293
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:294
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:295
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:297
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:300
+msgid "Add User"
+msgstr ""
+
+#: ipalib/plugins/internal.py:301
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:302
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:303
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:304
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:305
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:307
+msgid "Click to Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:309
+msgid "Click to Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:310
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:311
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:312
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:313
+msgid "Repeat Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:314
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:315
+#, fuzzy
+msgid "Passwords must match"
+msgstr "পাসওয়ার্ড দুটি মিলছে না"
+
+#: ipalib/plugins/internal.py:319
msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:42
+#: ipalib/plugins/internal.py:320
+msgid "Add and Add Another"
+msgstr ""
+
+#: ipalib/plugins/internal.py:321
+msgid "Add and Edit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:322
+msgid "Add and Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:323
+msgid "Add Many"
+msgstr ""
+
+#: ipalib/plugins/internal.py:324
+msgid "Back to List"
+msgstr ""
+
+#: ipalib/plugins/internal.py:325
+#, fuzzy
+msgid "Cancel"
+msgstr "বাতিল করা হয়েছে।"
+
+#: ipalib/plugins/internal.py:326
+msgid "Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:327
+msgid "Enroll"
+msgstr ""
+
+#: ipalib/plugins/internal.py:328
msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:43
+#: ipalib/plugins/internal.py:329
+msgid "Get"
+msgstr ""
+
+#: ipalib/plugins/internal.py:330
+msgid "Issue"
+msgstr ""
+
+#: ipalib/plugins/internal.py:331
+msgid "OK"
+msgstr ""
+
+#: ipalib/plugins/internal.py:332
msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:333
+msgid "Delete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:334
+msgid "Restore"
+msgstr ""
+
+#: ipalib/plugins/internal.py:335
+msgid "Retry"
+msgstr ""
+
+#: ipalib/plugins/internal.py:336
+msgid "Revoke"
+msgstr ""
+
+#: ipalib/plugins/internal.py:337
msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:45
-msgid "Enroll"
+#: ipalib/plugins/internal.py:338
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:46
-msgid "Delete"
+#: ipalib/plugins/internal.py:341
+msgid "Available"
+msgstr ""
+
+#: ipalib/plugins/internal.py:342
+msgid "This page has unsaved changes. Please save or revert."
+msgstr ""
+
+#: ipalib/plugins/internal.py:343
+msgid "Dirty"
+msgstr ""
+
+#: ipalib/plugins/internal.py:344
+msgid "Hide already enrolled."
msgstr ""
-#: ipalib/plugins/internal.py:49
+#: ipalib/plugins/internal.py:345
+msgid "Select ${entity} to be removed."
+msgstr ""
+
+#: ipalib/plugins/internal.py:346
+msgid "Remove ${entity}."
+msgstr ""
+
+#: ipalib/plugins/internal.py:347
+msgid "Prospective"
+msgstr ""
+
+#: ipalib/plugins/internal.py:350
+msgid "Managed by"
+msgstr ""
+
+#: ipalib/plugins/internal.py:351
+msgid "Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:352
+msgid "Indirect Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:353
+msgid "Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:354
+msgid "Indirect Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
+msgid "Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:358
+msgid "Search"
+msgstr ""
+
+#: ipalib/plugins/internal.py:362
msgid "Quick Links"
msgstr ""
-#: ipalib/plugins/internal.py:50
+#: ipalib/plugins/internal.py:363
msgid "Select All"
msgstr ""
-#: ipalib/plugins/internal.py:51
+#: ipalib/plugins/internal.py:364
msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Do you really want to delete the selected entries?"
+#: ipalib/plugins/internal.py:365
+msgid "Are you sure you want to delete selected entries?"
msgstr ""
-#: ipalib/plugins/internal.py:55
-msgid "Identity Details"
+#: ipalib/plugins/internal.py:366
+msgid ""
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
msgstr ""
-#: ipalib/plugins/internal.py:56
-msgid "Account Details"
+#: ipalib/plugins/internal.py:370
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:57
-msgid "Contact Details"
+#: ipalib/plugins/internal.py:371
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:58
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:372
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:59
-msgid " Employee Information"
+#: ipalib/plugins/internal.py:373
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:60
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:377
+msgid "Policy"
msgstr ""
-#: ipalib/plugins/internal.py:61
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:378
+msgid "Audit"
msgstr ""
-#: ipalib/plugins/internal.py:66
-msgid "Name of object to export"
+#: ipalib/plugins/internal.py:379
+msgid "IPA Server"
msgstr ""
-#: ipalib/plugins/internal.py:71
-msgid "Dict of JSON encoded IPA Objects"
+#: ipalib/plugins/internal.py:380
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:381
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:382
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:383
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:386
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:387
+msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:388
+msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:389
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:392
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:395
+msgid ""
+"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."
msgstr ""
-#: ipalib/plugins/internal.py:72
+#: ipalib/plugins/internal.py:399
msgid "Dict of I18N messages"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:59
+#: ipalib/plugins/kerberos.py:20
+msgid ""
+"\n"
+"Backend plugin for Kerberos.\n"
+"\n"
+"This wraps the python-kerberos and python-krbV bindings.\n"
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:35
+msgid ""
+"\n"
+" Kerberos backend plugin.\n"
+"\n"
+" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
+" bindings also). Importantly, this plugin does correct Unicode\n"
+" encoding/decoding of values going-to/coming-from the bindings.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:44
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:50
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:56
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:62
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:68
+msgid ""
+"\n"
+" Return the default ccache file name.\n"
+"\n"
+" This will return something like '/tmp/krb5cc_500'.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:79
+msgid ""
+"\n"
+" Return the principal name in default credential cache.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'. If no "
+"credential\n"
+" cache exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:91
+msgid ""
+"\n"
+" Return the realm from the default credential cache.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'. If no credential "
+"cache\n"
+" exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:103
+msgid ""
+"\n"
+" Return the principal from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:111
+msgid ""
+"\n"
+" Return the realm from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:19
+msgid ""
+"\n"
+"Kerberos ticket policy\n"
+"\n"
+"There is a single Kerberos ticket policy. This policy defines the\n"
+"maximum ticket lifetime and the maximum renewal age, the period during\n"
+"which the ticket is renewable.\n"
+"\n"
+"You can also create a per-user ticket policy by specifying the user login.\n"
+"\n"
+"For changes to the global policy to take effect, restarting the KDC service\n"
+"is required, which can be achieved using:\n"
+"\n"
+"service krb5kdc restart\n"
+"\n"
+"Changes to per-user policies take effect immediately for newly requested\n"
+"tickets (e.g. when the user next runs kinit).\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Display the current Kerberos ticket policy:\n"
+" ipa krbtpolicy-show\n"
+"\n"
+" Reset the policy to the default:\n"
+" ipa krbtpolicy-reset\n"
+"\n"
+" Modify the policy to 8 hours max life, 1-day max renewal:\n"
+" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n"
+"\n"
+" Display effective Kerberos ticket policy for user 'admin':\n"
+" ipa krbtpolicy-show admin\n"
+"\n"
+" Reset per-user policy for user 'admin':\n"
+" ipa krbtpolicy-reset admin\n"
+"\n"
+" Modify per-user policy for user 'admin':\n"
+" ipa krbtpolicy-mod admin --maxlife=3600\n"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:71
+msgid ""
+"\n"
+" Kerberos Ticket Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:79
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:64 ipalib/plugins/passwd.py:52
+#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
msgid "User name"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:65
+#: ipalib/plugins/krbtpolicy.py:85
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:70
+#: ipalib/plugins/krbtpolicy.py:90
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:75
+#: ipalib/plugins/krbtpolicy.py:96
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:76
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/migration.py:44
-#, python-format
+#: ipalib/plugins/krbtpolicy.py:111
+msgid ""
+"\n"
+" Modify Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:125
+msgid ""
+"\n"
+" Display the current Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:149
+msgid ""
+"\n"
+" Reset Kerberos ticket policy to the default values.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:19
+msgid ""
+"\n"
+"Migration to IPA\n"
+"\n"
+"Migrate users and groups from an LDAP server to IPA.\n"
+"\n"
+"This performs an LDAP query against the remote server searching for\n"
+"users and groups in a container. In order to migrate passwords you need\n"
+"to bind as a user that can read the userPassword attribute on the remote\n"
+"server. This is generally restricted to high-level admins such as\n"
+"cn=Directory Manager in 389-ds (this is the default bind user).\n"
+"\n"
+"The default user container is ou=People.\n"
+"\n"
+"The default group container is ou=Groups.\n"
+"\n"
+"Users and groups that already exist on the IPA server are skipped.\n"
+"\n"
+"Two LDAP schemas define how group members are stored: RFC2307 and\n"
+"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n"
+"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n"
+"\n"
+"Migrated users do not have Kerberos credentials, they have only their\n"
+"LDAP password. To complete the migration process, users need to go\n"
+"to http://ipa.example.com/ipa/migration and authenticate using their\n"
+"LDAP password in order to generate their Kerberos credentials.\n"
+"\n"
+"Migration is disabled by default. Use the command ipa config-mod to\n"
+"enable it:\n"
+"\n"
+" ipa config-mod --enable-migration=TRUE\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" The simplest migration, accepting all defaults:\n"
+" ipa migrate-ds ldap://ds.example.com:389\n"
+"\n"
+" Specify the user and group container. This can be used to migrate user and\n"
+" group data from an IPA v1 server:\n"
+" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-"
+"container='cn=groups,cn=accounts' ldap://ds.example.com:389\n"
+msgstr ""
+
+#: ipalib/plugins/migration.py:78
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:45
+#: ipalib/plugins/migration.py:79
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:169
+#: ipalib/plugins/migration.py:175
+msgid ""
+"\n"
+" Convert usernames in member attributes to work in IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:220
+msgid "Invalid LDAP URI."
+msgstr ""
+
+#: ipalib/plugins/migration.py:225
+msgid ""
+"\n"
+" Migrate users and groups from DS to IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:266
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:170
+#: ipalib/plugins/migration.py:267
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:174
+#: ipalib/plugins/migration.py:272
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:181
+#: ipalib/plugins/migration.py:279
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:187
+#: ipalib/plugins/migration.py:285
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:188
+#: ipalib/plugins/migration.py:286
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:194
+#: ipalib/plugins/migration.py:292
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:195
+#: ipalib/plugins/migration.py:293
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:200
-msgid "Continous operation mode. Errors are reported but the process continues"
+#: ipalib/plugins/migration.py:299
+msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:208
+#: ipalib/plugins/migration.py:300
+msgid ""
+"Comma-separated list of objectclasses used to search for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:306
+msgid "Group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:307
+msgid ""
+"Comma-separated list of objectclasses used to search for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:313
+msgid "LDAP schema"
+msgstr ""
+
+#: ipalib/plugins/migration.py:314
+msgid ""
+"The schema used on the LDAP server. Supported values are RFC2307 and "
+"RFC2307bis. The default is RFC2307bis"
+msgstr ""
+
+#: ipalib/plugins/migration.py:320
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues"
+msgstr ""
+
+#: ipalib/plugins/migration.py:328
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:212
+#: ipalib/plugins/migration.py:332
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:216
+#: ipalib/plugins/migration.py:336
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:220
-#, python-format
+#: ipalib/plugins/migration.py:340
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:222
+#: ipalib/plugins/migration.py:342
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
-"migration process might be uncomplete\n"
+"migration process might be incomplete\n"
msgstr ""
-#: ipalib/plugins/migration.py:227
+#: ipalib/plugins/migration.py:347
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:230
+#: ipalib/plugins/migration.py:350
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -1531,16 +4806,55 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:297
-#, python-format
+#: ipalib/plugins/migration.py:358
+msgid ""
+"\n"
+" Call get_options of the baseclass and add \"exclude\" options\n"
+" for each type of object being migrated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:375
+msgid ""
+"\n"
+" Convert all \"exclude\" option values to lower-case.\n"
+"\n"
+" Also, empty List parameters are converted to None, but the "
+"migration\n"
+" plugin doesn't like that - convert back to empty lists.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:399
+msgid ""
+"\n"
+" Migrate objects from DS to LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:425
msgid "Container for %(container)s not found"
msgstr ""
+#: ipalib/plugins/misc.py:20
+msgid ""
+"\n"
+"Misc plug-ins\n"
+msgstr ""
+
+#: ipalib/plugins/misc.py:36
+msgid "Show environment variables"
+msgstr ""
+
#: ipalib/plugins/misc.py:38
-#, python-format
msgid "%(count)d variables"
msgstr "%(count)d ভেরিয়াবেল"
+#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115
+msgid ""
+"retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
#: ipalib/plugins/misc.py:61
msgid "Total number of variables env (>= count)"
msgstr ""
@@ -1549,436 +4863,2442 @@ msgstr ""
msgid "Number of variables returned (<= total)"
msgstr ""
-#: ipalib/plugins/misc.py:109
-#, python-format
+#: ipalib/plugins/misc.py:106
+msgid "Show all loaded plugins"
+msgstr ""
+
+#: ipalib/plugins/misc.py:108
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] "%(count)d প্লাগ-ইন লোড করা হয়েছে"
msgstr[1] "%(count)d প্লাগ-ইন লোড করা হয়েছে"
-#: ipalib/plugins/misc.py:116
+#: ipalib/plugins/misc.py:126
#, fuzzy
msgid "Number of plugins loaded"
msgstr "%(count)d প্লাগ-ইন লোড করা হয়েছে"
-#: ipalib/plugins/netgroup.py:57
+#: ipalib/plugins/netgroup.py:20
+msgid ""
+"\n"
+"Netgroups\n"
+"\n"
+"A netgroup is a group used for permission checking. It can contain both\n"
+"user and host values.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new netgroup:\n"
+" ipa netgroup-add --desc=\"NFS admins\" admins\n"
+"\n"
+" Add members to the netgroup:\n"
+" ipa netgroup-add-member --users=tuser1,tuser2 admins\n"
+"\n"
+" Remove a member from the netgroup:\n"
+" ipa netgroup-remove-member --users=tuser2 admins\n"
+"\n"
+" Display information about a netgroup:\n"
+" ipa netgroup-show admins\n"
+"\n"
+" Delete a netgroup:\n"
+" ipa netgroup-del admins\n"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:59
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:63
-msgid "External host"
+#: ipalib/plugins/netgroup.py:67
+msgid ""
+"\n"
+" Netgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/netgroup.py:85
-msgid "Net Groups"
+#: ipalib/plugins/netgroup.py:98
+msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:90
+#: ipalib/plugins/netgroup.py:103
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:97
+#: ipalib/plugins/netgroup.py:110
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:101
+#: ipalib/plugins/netgroup.py:114
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:106
+#: ipalib/plugins/netgroup.py:119
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:84
-#, python-format
+#: ipalib/plugins/netgroup.py:140
+msgid ""
+"\n"
+" Add a new netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:144
+#, fuzzy
+msgid "Added netgroup \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/netgroup.py:153
+msgid ""
+"\n"
+" Delete a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:156
+#, fuzzy
+msgid "Deleted netgroup \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/netgroup.py:162
+msgid ""
+"\n"
+" Modify a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:166
+#, fuzzy
+msgid "Modified netgroup \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/netgroup.py:180
+msgid ""
+"\n"
+" Search for a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:185
+#, fuzzy
+msgid "%(count)d netgroup matched"
+msgid_plural "%(count)d netgroups matched"
+msgstr[0] "%(count)d ভেরিয়াবেল"
+msgstr[1] "%(count)d ভেরিয়াবেল"
+
+#: ipalib/plugins/netgroup.py:213
+msgid ""
+"\n"
+" Display information about a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:222
+msgid ""
+"\n"
+" Add members to a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:258
+msgid ""
+"\n"
+" Remove members from a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:19
+msgid ""
+"\n"
+"Set a user's password\n"
+"\n"
+"If someone other than a user changes that user's password (e.g., Helpdesk\n"
+"resets it) then the password will need to be changed the first time it\n"
+"is used. This is so the end-user is the only one who knows the password.\n"
+"\n"
+"The IPA password policy controls how often a password may be changed,\n"
+"what strength requirements exist, and the length of the password history.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" To reset your own password:\n"
+" ipa passwd\n"
+"\n"
+" To change another user's password:\n"
+" ipa passwd tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/passwd.py:46
+msgid ""
+"\n"
+" Set a user's password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:64
+#, fuzzy
+msgid "Changed password for \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/passwd.py:67
+msgid ""
+"\n"
+" Execute the passwd operation.\n"
+"\n"
+" The dn should not be passed as a keyword argument as it is "
+"constructed\n"
+" by this method.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param principal: The login name or principal of the user\n"
+" :param password: the new password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:19
+msgid ""
+"\n"
+"Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of rights. A permission is\n"
+"a human-readable form of a 389-ds Access Control Rule, or instruction "
+"(ACI).\n"
+"A permission grants the right to perform a specific task such as adding a\n"
+"user, modifying a group, etc.\n"
+"\n"
+"A permission may not contain other permissions.\n"
+"\n"
+"* A permission grants access to read, write, add or delete.\n"
+"* A privilege combines similar permissions (for example all the permissions\n"
+" needed to add a user).\n"
+"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n"
+"\n"
+"A permission is made up of a number of different parts:\n"
+"\n"
+"1. The name of the permission.\n"
+"2. The target of the permission.\n"
+"3. The rights granted by the permission.\n"
+"\n"
+"Rights define what operations are allowed, and may be one or more\n"
+"of the following:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Read permission is granted for most attributes by default so the read\n"
+"permission is not expected to be used very often.\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"There are a number of allowed targets:\n"
+"1. type: a type of object (user, group, etc).\n"
+"2. memberof: a member of a group or hostgroup\n"
+"3. filter: an LDAP filter\n"
+"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n"
+" super-set of the \"type\" target.\n"
+"5. targetgroup: grant access to modify a specific group (such as granting\n"
+" the rights to manage group membership)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a permission that grants the creation of users:\n"
+" ipa permission-add --type=user --permissions=add \"Add Users\"\n"
+"\n"
+" Add a permission that grants the ability to manage group membership:\n"
+" ipa permission-add --attrs=member --permissions=write --type=group "
+"\"Manage Group Members\"\n"
+msgstr ""
+
+#: ipalib/plugins/permission.py:84
+msgid "Permission Type"
+msgstr ""
+
+#: ipalib/plugins/permission.py:89
+msgid ""
+"\n"
+" Permission object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:112
+msgid "Permission name"
+msgstr ""
+
+#: ipalib/plugins/permission.py:119
+msgid ""
+"Comma-separated list of permissions to grant (read, write, add, delete, all)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:132
+msgid ""
+"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:138
+msgid "Member of group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:139
+msgid "Target members of a group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:151
+msgid "Subtree to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:157
+msgid "User group to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:177
+msgid ""
+"\n"
+" Add a new permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:181
+#, fuzzy
+msgid "Added permission \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/permission.py:236
+msgid ""
+"\n"
+" Delete a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:240
+#, fuzzy
+msgid "Deleted permission \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/permission.py:256
+msgid ""
+"\n"
+" Modify a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:260
+#, fuzzy
+msgid "Modified permission \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/permission.py:352
+msgid ""
+"\n"
+" Search for permissions.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:356
+#, fuzzy
+msgid "%(count)d permission matched"
+msgid_plural "%(count)d permissions matched"
+msgstr[0] "%(count)d ভেরিয়াবেল"
+msgstr[1] "%(count)d ভেরিয়াবেল"
+
+#: ipalib/plugins/permission.py:405
+msgid ""
+"\n"
+" Display information about a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:428
+msgid ""
+"\n"
+" Add members to a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:437
+msgid ""
+"\n"
+" Remove members from a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:19
+msgid ""
+"\n"
+"Ping the remote IPA server\n"
+msgstr ""
+
+#: ipalib/plugins/ping.py:29
+msgid ""
+"\n"
+" ping a remote server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:37
+msgid ""
+"\n"
+" A possible enhancement would be to take an argument and echo it\n"
+" back but a fixed value works for now.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:19
+msgid ""
+"\n"
+"Kerberos pkinit options\n"
+"\n"
+"Enable or disable anonymous pkinit using the principal\n"
+"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n"
+"pkinit support.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Enable anonymous pkinit:\n"
+" ipa pkinit-anonymous enable\n"
+"\n"
+" Disable anonymous pkinit:\n"
+" ipa pkinit-anonymous disable\n"
+"\n"
+"For more information on anonymous pkinit see:\n"
+"\n"
+"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:46
+msgid ""
+"\n"
+" PKINIT Options\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:51
+msgid "PKINIT"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:56
+msgid ""
+"\n"
+" Accepts only Enable/Disable.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:67
+msgid ""
+"\n"
+" Enable or Disable Anonymous PKINIT\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:19
+msgid ""
+"\n"
+"Privileges\n"
+"\n"
+"A privilege combines permissions into a logical task. A permission provides\n"
+"the rights to do a single task. There are some IPA operations that require\n"
+"multiple permissions to succeed. A privilege is where permissions are\n"
+"combined in order to perform a specific task.\n"
+"\n"
+"For example, adding a user requires the following permissions:\n"
+" * Creating a new user entry\n"
+" * Resetting a user password\n"
+" * Adding the new user to the default IPA users group\n"
+"\n"
+"Combining these three low-level tasks into a higher level task in the\n"
+"form of a privilege named \"Add User\" makes it easier to manage Roles.\n"
+"\n"
+"A privilege may not contain other privileges.\n"
+"\n"
+"See role and permission for additional information.\n"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:45
+msgid ""
+"\n"
+" Privilege object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:65
+msgid "Privileges"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:70
+msgid "Privilege name"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:77
+msgid "Privilege description"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:85
+msgid ""
+"\n"
+" Add a new privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:89
+#, fuzzy
+msgid "Added privilege \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/privilege.py:95
+msgid ""
+"\n"
+" Delete a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:99
+#, fuzzy
+msgid "Deleted privilege \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/privilege.py:105
+msgid ""
+"\n"
+" Modify a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:109
+#, fuzzy
+msgid "Modified privilege \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/privilege.py:115
+msgid ""
+"\n"
+" Search for privileges.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:119
+#, fuzzy
+msgid "%(count)d privilege matched"
+msgid_plural "%(count)d privileges matched"
+msgstr[0] "%(count)d ভেরিয়াবেল"
+msgstr[1] "%(count)d ভেরিয়াবেল"
+
+#: ipalib/plugins/privilege.py:127
+msgid ""
+"\n"
+" Display information about a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:135
+msgid ""
+"\n"
+" Add members to a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:144
+msgid ""
+"\n"
+" Remove members from a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:153
+msgid ""
+"\n"
+" Add permissions to a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:169
+#, fuzzy
+msgid "Number of permissions added"
+msgstr "%(count)d প্লাগ-ইন লোড করা হয়েছে"
+
+#: ipalib/plugins/privilege.py:177
+msgid ""
+"\n"
+" Remove permissions from a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:195
+#, fuzzy
+msgid "Number of permissions removed"
+msgstr "%(count)d প্লাগ-ইন লোড করা হয়েছে"
+
+#: ipalib/plugins/pwpolicy.py:20
+msgid ""
+"\n"
+"Password policy\n"
+"\n"
+"A password policy sets limitations on IPA passwords, including maximum\n"
+"lifetime, minimum lifetime, the number of passwords to save in\n"
+"history, the number of character classes required (for stronger passwords)\n"
+"and the minimum password length.\n"
+"\n"
+"By default there is a single, global policy for all users. You can also\n"
+"create a password policy to apply to a group. Each user is only subject\n"
+"to one password policy, either the group policy or the global policy. A\n"
+"group policy stands alone; it is not a super-set of the global policy plus\n"
+"custom settings.\n"
+"\n"
+"Each group password policy requires a unique priority setting. If a user\n"
+"is in multiple groups that have password policies, this priority determines\n"
+"which password policy is applied. A lower value indicates a higher priority\n"
+"policy.\n"
+"\n"
+"Group password policies are automatically removed when the groups they\n"
+"are associated with are removed.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Modify the global policy:\n"
+" ipa pwpolicy-mod --minlength=10\n"
+"\n"
+" Add a new group password policy:\n"
+" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --"
+"minlength=8 --priority=10 localadmins\n"
+"\n"
+" Display the global password policy:\n"
+" ipa pwpolicy-show\n"
+"\n"
+" Display a group password policy:\n"
+" ipa pwpolicy-show localadmins\n"
+"\n"
+" Display the policy that would be applied to a given user:\n"
+" ipa pwpolicy-show --user=tuser1\n"
+"\n"
+" Modify a group password policy:\n"
+" ipa pwpolicy-mod --minclasses=2 localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:72
+msgid ""
+"\n"
+" Class of Service object used for linking policies with groups\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:87
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:170
-msgid "Password Policy"
+#: ipalib/plugins/pwpolicy.py:172
+msgid ""
+"\n"
+" Password Policy object\n"
+" "
msgstr ""
-#: ipalib/plugins/pwpolicy.py:175
+#: ipalib/plugins/pwpolicy.py:201
+msgid "Max failures"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:202
+msgid "Consecutive failures before lockout"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:207
+msgid "Failure reset interval"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:208
+msgid "Period after which failure count will be reset (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:213
+msgid "Lockout duration"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:214
+msgid "Period for which lockout is enforced (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:224
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:176
+#: ipalib/plugins/pwpolicy.py:225
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:181
+#: ipalib/plugins/pwpolicy.py:230
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:182
+#: ipalib/plugins/pwpolicy.py:231
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:187
+#: ipalib/plugins/pwpolicy.py:236
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:188
+#: ipalib/plugins/pwpolicy.py:237
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:193
+#: ipalib/plugins/pwpolicy.py:242
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:194
+#: ipalib/plugins/pwpolicy.py:243
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:199
+#: ipalib/plugins/pwpolicy.py:248
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:200
+#: ipalib/plugins/pwpolicy.py:249
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:206
+#: ipalib/plugins/pwpolicy.py:255
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:256
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:212
+#: ipalib/plugins/pwpolicy.py:261
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:262
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:265
+#: ipalib/plugins/pwpolicy.py:294
+msgid ""
+"\n"
+" Ensure that the maximum lifetime is greater than the minimum.\n"
+" If there is no minimum lifetime set then don't return an error.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:314
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:330
+#: ipalib/plugins/pwpolicy.py:333
+msgid ""
+"\n"
+" Add a new group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:361
+msgid ""
+"\n"
+" Delete a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:380
+msgid ""
+"\n"
+" Modify a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:391
msgid "priority cannot be set on global policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:369
+#: ipalib/plugins/pwpolicy.py:423
+msgid ""
+"\n"
+" Display information about password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:428
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:370
+#: ipalib/plugins/pwpolicy.py:429
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/rolegroup.py:79
-msgid "Role Groups"
+#: ipalib/plugins/pwpolicy.py:452
+msgid ""
+"\n"
+" Search for group password policies.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:20
+msgid ""
+"\n"
+"Roles\n"
+"\n"
+"A role is used for fine-grained delegation. A permission grants the ability\n"
+"to perform given low-level tasks (add a user, modify a group, etc.). A\n"
+"privilege combines one or more permissions into a higher-level abstraction\n"
+"such as useradmin. A useradmin would be able to add, delete and modify "
+"users.\n"
+"\n"
+"Privileges are assigned to Roles.\n"
+"\n"
+"Users, groups, hosts and hostgroups may be members of a Role.\n"
+"\n"
+"Roles can not contain other roles.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new role:\n"
+" ipa role-add --desc=\"Junior-level admin\" junioradmin\n"
+"\n"
+" Add some privileges to this role:\n"
+" ipa role-add-privilege --privileges=addusers junioradmin\n"
+" ipa role-add-privilege --privileges=change_password junioradmin\n"
+" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n"
+"\n"
+" Add a group of users to this role:\n"
+" ipa group-add --desc=\"User admins\" useradmins\n"
+" ipa role-add-member --groups=useradmins junioradmin\n"
+"\n"
+" Display information about a role:\n"
+" ipa role-show junioradmin\n"
+"\n"
+" The result of this is that any users in the group 'useradmins' can\n"
+" add users, reset passwords or add a user to the default IPA user group.\n"
+msgstr ""
+
+#: ipalib/plugins/role.py:62
+msgid ""
+"\n"
+" Role object.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:84
-msgid "Role-group name"
+#: ipalib/plugins/role.py:81
+msgid "Role"
msgstr ""
-#: ipalib/plugins/rolegroup.py:91
+#: ipalib/plugins/role.py:86
+msgid "Role name"
+msgstr ""
+
+#: ipalib/plugins/role.py:93
msgid "A description of this role-group"
msgstr ""
-#: ipalib/plugins/rolegroup.py:102
-msgid "Member of task-groups"
+#: ipalib/plugins/role.py:101
+msgid ""
+"\n"
+" Add a new role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:115
-#, python-format
-msgid "Added rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:105
+#, fuzzy
+msgid "Added role \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/role.py:111
+msgid ""
+"\n"
+" Delete a role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:125
-#, python-format
-msgid "Deleted rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:115
+#, fuzzy
+msgid "Deleted role \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/role.py:121
+msgid ""
+"\n"
+" Modify a role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:135
-#, python-format
-msgid "Modified rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:125
+#, fuzzy
+msgid "Modified role \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/role.py:131
+msgid ""
+"\n"
+" Search for roles.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:146
-#, python-format
-msgid "%(count)d rolegroup matched"
-msgid_plural "%(count)d rolegroups matched"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/role.py:135
+#, fuzzy
+msgid "%(count)d role matched"
+msgid_plural "%(count)d roles matched"
+msgstr[0] "%(count)d ভেরিয়াবেল"
+msgstr[1] "%(count)d ভেরিয়াবেল"
+
+#: ipalib/plugins/role.py:143
+msgid ""
+"\n"
+" Display information about a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:151
+msgid ""
+"\n"
+" Add members to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:159
+msgid ""
+"\n"
+" Remove members from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:167
+msgid ""
+"\n"
+" Add privileges to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:183
+#, fuzzy
+msgid "Number of privileges added"
+msgstr "%(count)d প্লাগ-ইন লোড করা হয়েছে"
+
+#: ipalib/plugins/role.py:191
+msgid ""
+"\n"
+" Remove privileges from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:207
+#, fuzzy
+msgid "Number of privileges removed"
+msgstr "%(count)d প্লাগ-ইন লোড করা হয়েছে"
+
+#: ipalib/plugins/selfservice.py:19
+msgid ""
+"\n"
+"Self-service Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"A Self-service permission defines what an object can change in its own "
+"entry.\n"
+"\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a self-service rule to allow users to manage their address:\n"
+" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st "
+"\"Users manage their own address\"\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add telephoneNumber to the list:\n"
+" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber "
+"\"Users manage their own address\"\n"
+"\n"
+" Display our updated rule:\n"
+" ipa selfservice-show \"Users manage their own address\"\n"
+"\n"
+" Delete a rule:\n"
+" ipa selfservice-del \"Users manage their own address\"\n"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:56
+msgid ""
+"\n"
+" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a self-service ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:64
+msgid "Self-service permission '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:68
+msgid ""
+"\n"
+" Selfservice object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:75
+msgid "Self Service Permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
+msgid "Self-service name"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:114
+msgid ""
+"\n"
+" Add a new self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:118
+#, fuzzy
+msgid "Added selfservice \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/selfservice.py:137
+msgid ""
+"\n"
+" Delete a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:142
+#, fuzzy
+msgid "Deleted selfservice \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
-#: ipalib/plugins/service.py:198
+#: ipalib/plugins/selfservice.py:158
+msgid ""
+"\n"
+" Modify a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:162
+#, fuzzy
+msgid "Modified selfservice \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/selfservice.py:181
+msgid ""
+"\n"
+" Search for a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:185
+#, fuzzy
+msgid "%(count)d selfservice matched"
+msgid_plural "%(count)d selfservices matched"
+msgstr[0] "%(count)d ভেরিয়াবেল"
+msgstr[1] "%(count)d ভেরিয়াবেল"
+
+#: ipalib/plugins/selfservice.py:207
+msgid ""
+"\n"
+" Display information about a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:21
+msgid ""
+"\n"
+"Services\n"
+"\n"
+"A IPA service represents a service that runs on a host. The IPA service\n"
+"record can store a Kerberos principal, an SSL certificate, or both.\n"
+"\n"
+"An IPA service can be managed directly from a machine, provided that\n"
+"machine has been given the correct permission. This is true even for\n"
+"machines other than the one the service is associated with. For example,\n"
+"requesting an SSL certificate using the host service principal credentials\n"
+"of the host. To manage a service using host credentials you need to\n"
+"kinit as the host:\n"
+"\n"
+" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n"
+"\n"
+"Adding an IPA service allows the associated service to request an SSL\n"
+"certificate or keytab, but this is performed as a separate step; they\n"
+"are not produced as a result of adding the service.\n"
+"\n"
+"Only the public aspect of a certificate is stored in a service record;\n"
+"the private key is not stored.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new IPA service:\n"
+" ipa service-add HTTP/web.example.com\n"
+"\n"
+" Allow a host to manage an IPA service certificate:\n"
+" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n"
+" ipa role-add-member --hosts=web.example.com certadmin\n"
+"\n"
+" Delete an IPA service:\n"
+" ipa service-del HTTP/web.example.com\n"
+"\n"
+" Find all IPA services associated with a host:\n"
+" ipa service-find web.example.com\n"
+"\n"
+" Find all HTTP services:\n"
+" ipa service-find HTTP\n"
+"\n"
+" Disable the service Kerberos key and SSL certificate:\n"
+" ipa service-disable HTTP/web.example.com\n"
+"\n"
+" Request a certificate for an IPA service:\n"
+" ipa cert-request --principal=HTTP/web.example.com example.csr\n"
+"\n"
+" Generate and retrieve a keytab for an IPA service:\n"
+" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/"
+"httpd.keytab\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/service.py:162
+msgid ""
+"\n"
+" For now just verify that it is properly base64-encoded.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:175
+msgid ""
+"\n"
+" Set individual attributes from some values from a certificate.\n"
+"\n"
+" entry_attrs is a dict of an entry\n"
+"\n"
+" returns nothing\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:199
+msgid ""
+"\n"
+" Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:226
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:221
+#: ipalib/plugins/service.py:242
+msgid ""
+"\n"
+" Add a new IPA new service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:245
+#, fuzzy
+msgid "Added service \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/service.py:251
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:292
-#, fuzzy, python-format
+#: ipalib/plugins/service.py:284
+msgid ""
+"\n"
+" Delete an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:287
+#, fuzzy
+msgid "Deleted service \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/service.py:321
+msgid ""
+"\n"
+" Modify an existing IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:324
+#, fuzzy
msgid "Modified service \"%(value)s\""
msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
-#: ipalib/plugins/service.py:323
-#, fuzzy, python-format
+#: ipalib/plugins/service.py:356
+msgid ""
+"\n"
+" Search for IPA services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:359
+#, fuzzy
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] "%(count)d ভেরিয়াবেল"
msgstr[1] "%(count)d ভেরিয়াবেল"
-#: ipalib/plugins/service.py:409
-msgid "Service principal has no kerberos key"
+#: ipalib/plugins/service.py:394
+msgid ""
+"\n"
+" Display information about an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:432
+msgid ""
+"\n"
+" Add hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:442
+msgid ""
+"\n"
+" Remove hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:452
+msgid ""
+"\n"
+" Disable the Kerberos key and SSL certificate of a service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:456
+#, fuzzy
+msgid "Disabled service \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/sudocmd.py:19
+msgid ""
+"\n"
+"Sudo Commands\n"
+"\n"
+"Commands used as building blocks for sudo\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a new command\n"
+" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n"
+"\n"
+" Remove a command\n"
+" ipa sudocmd-del /usr/bin/less\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:46
+msgid ""
+"\n"
+" Sudo Command object.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmd.py:60
-msgid "SudoCmds"
+#: ipalib/plugins/sudocmd.py:64
+msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:65
+#: ipalib/plugins/sudocmd.py:69
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:72
+#: ipalib/plugins/sudocmd.py:75
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:99
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:98
+msgid ""
+"\n"
+" Create new sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:102
+#, fuzzy
msgid "Added sudo command \"%(value)s\""
msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
-#: ipalib/plugins/sudocmd.py:108
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:107
+#, fuzzy
+msgid ""
+"\n"
+" Delete sudo command.\n"
+" "
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/sudocmd.py:111
+#, fuzzy
msgid "Deleted sudo command \"%(value)s\""
msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
-#: ipalib/plugins/sudocmd.py:117
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:116
+msgid ""
+"\n"
+" Modify command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:120
+#, fuzzy
msgid "Modified sudo command \"%(value)s\""
msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
-#: ipalib/plugins/sudocmd.py:127
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:125
+msgid ""
+"\n"
+" Search for commands.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:129
+#, fuzzy
msgid "%(count)d sudo command matched"
msgid_plural "%(count)d sudo command matched"
msgstr[0] "%(count)d ভেরিয়াবেল"
msgstr[1] "%(count)d ভেরিয়াবেল"
-#: ipalib/plugins/sudocmdgroup.py:66 ipalib/plugins/sudocmdgroup.py:85
-#: ipalib/plugins/sudorule.py:81 ipalib/plugins/sudorule.py:85
-msgid "Sudo Command Groups"
+#: ipalib/plugins/sudocmd.py:136
+msgid ""
+"\n"
+" Display sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:19
+msgid ""
+"\n"
+"Groups of Sudo commands\n"
+"\n"
+"Manage groups of Sudo commands.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new Sudo command group:\n"
+" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
+"\n"
+" Remove a Sudo command group:\n"
+" ipa sudocmdgroup-del admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim "
+"admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
+"\n"
+" Show a Sudo command group:\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:50
+msgid ""
+"\n"
+" Sudo Group object.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:71
+#: ipalib/plugins/sudocmdgroup.py:70
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:81
-msgid "Commands"
+#: ipalib/plugins/sudocmdgroup.py:93
+msgid ""
+"\n"
+" Create new sudo command group.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:98
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:97
+#, fuzzy
msgid "Added sudo command group \"%(value)s\""
msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
-#: ipalib/plugins/sudocmdgroup.py:108
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:103
+#, fuzzy
+msgid ""
+"\n"
+" Delete sudo command group.\n"
+" "
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/sudocmdgroup.py:107
+#, fuzzy
msgid "Deleted sudo command group \"%(value)s\""
msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
-#: ipalib/plugins/sudocmdgroup.py:118
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:113
+msgid ""
+"\n"
+" Modify group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:117
+#, fuzzy
msgid "Modified sudo command group \"%(value)s\""
msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
-#: ipalib/plugins/sudocmdgroup.py:129
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:123
+msgid ""
+"\n"
+" Search for sudo command groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:127
+#, fuzzy
msgid "%(count)d sudo command group matched"
msgid_plural "%(count)d sudo command groups matched"
msgstr[0] "%(count)d ভেরিয়াবেল"
msgstr[1] "%(count)d ভেরিয়াবেল"
-#: ipalib/plugins/sudorule.py:48
-msgid "SudoRule"
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid ""
+"\n"
+" Display sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:144
+#, fuzzy
+msgid ""
+"\n"
+" Add members to sudo command group.\n"
+" "
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/sudocmdgroup.py:152
+msgid ""
+"\n"
+" Remove members from sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:19
+msgid ""
+"\n"
+"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
+"give certain users (or groups of users) the ability to run some (or all)\n"
+"commands as root or another user while providing an audit trail of the\n"
+"commands and their arguments.\n"
+"\n"
+"FreeIPA provides a designated binddn to use with Sudo located at:\n"
+"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
+"\n"
+"To enable the binddn run the following command to set the password:\n"
+"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -"
+"ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,"
+"dc=com\n"
+"\n"
+"For more information, see the FreeIPA Documentation to Sudo.\n"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:44
+msgid ""
+"\n"
+" Sudo Rule management\n"
+" "
msgstr ""
-#: ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/sudorule.py:68
+msgid "Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:98
+msgid "Command category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:99
+msgid "Command category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:104
+msgid "Run As User category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:105
+msgid "Run As User category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:110
+msgid "Run As Group category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:111
+msgid "Run As Group category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:131
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:77
+#: ipalib/plugins/sudorule.py:135
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:109
-#, fuzzy, python-format
+#: ipalib/plugins/sudorule.py:147
+msgid "Run As User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:151
+msgid "Run As Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:156
+msgid "External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:157
+msgid "External User the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:161
+msgid "RunAs External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:162
+msgid "External User the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:166
+msgid "RunAs External Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:167
+msgid "External Group the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:175
+msgid ""
+"\n"
+" Create new Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
+#, fuzzy
msgid "Added sudo rule \"%(value)s\""
msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
-#: ipalib/plugins/taskgroup.py:51
-msgid "Task Groups"
+#: ipalib/plugins/sudorule.py:189
+msgid ""
+"\n"
+" Delete Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:56
-msgid "Task-group name"
+#: ipalib/plugins/sudorule.py:197
+msgid ""
+"\n"
+" Modify Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:63
-msgid "Task-group description"
+#: ipalib/plugins/sudorule.py:205
+msgid ""
+"\n"
+" Search for Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:74
-msgid "Member role-groups"
+#: ipalib/plugins/sudorule.py:213
+msgid ""
+"\n"
+" Display Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:87
-#, python-format
-msgid "Added taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:221
+msgid ""
+"\n"
+" Enable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:97
-#, python-format
-msgid "Deleted taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:247
+msgid ""
+"\n"
+" Disable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:107
-#, python-format
-msgid "Modified taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
+msgid ""
+"\n"
+" Add commands and sudo command groups affected by Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:118
-#, python-format
-msgid "%(count)d taskgroup matched"
-msgid_plural "%(count)d taskgroups matched"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
+msgid ""
+"\n"
+" Remove commands and sudo command groups affected by Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/user.py:84
+#: ipalib/plugins/sudorule.py:313
+msgid ""
+"\n"
+" Add users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:349
+msgid ""
+"\n"
+" Remove users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:383
+msgid ""
+"\n"
+" Add hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:419
+msgid ""
+"\n"
+" Remove hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:453
+msgid ""
+"\n"
+" Add user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:489
+msgid ""
+"\n"
+" Remove user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:523
+msgid ""
+"\n"
+" Add group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:559
+msgid ""
+"\n"
+" Remove group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:593
+msgid ""
+"\n"
+" Add an option to the Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
+msgid "Sudo Option"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:635
+msgid ""
+"\n"
+" Remove an option from Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:20
+msgid ""
+"\n"
+"Users\n"
+"\n"
+"Manage user entries. All users are POSIX users.\n"
+"\n"
+"IPA supports a wide range of username formats, but you need to be aware of "
+"any\n"
+"restrictions that may apply to your particular environment. For example,\n"
+"usernames that start with a digit or usernames that exceed a certain length\n"
+"may cause problems for some UNIX systems.\n"
+"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n"
+"\n"
+"Disabling a user account prevents that user from obtaining new Kerberos\n"
+"credentials. It does not invalidate any credentials that have already\n"
+"been issued.\n"
+"\n"
+"Password management is not a part of this module. For more information\n"
+"about this topic please see: ipa help passwd\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1\n"
+"\n"
+" Find all users whose entries include the string \"Tim\":\n"
+" ipa user-find Tim\n"
+"\n"
+" Find all users with \"Tim\" as the first name:\n"
+" ipa user-find --first=Tim\n"
+"\n"
+" Disable a user account:\n"
+" ipa user-disable tuser1\n"
+"\n"
+" Enable a user account:\n"
+" ipa user-enable tuser1\n"
+"\n"
+" Delete a user:\n"
+" ipa user-del tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/user.py:79
+msgid ""
+"\n"
+" User object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:116
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:91
+#: ipalib/plugins/user.py:123
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:95
+#: ipalib/plugins/user.py:127
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:103
+#: ipalib/plugins/user.py:130
+msgid "Full name"
+msgstr ""
+
+#: ipalib/plugins/user.py:135
+msgid "Display name"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "Initials"
+msgstr ""
+
+#: ipalib/plugins/user.py:146
+msgid "Home directory"
+msgstr ""
+
+#: ipalib/plugins/user.py:150
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:109
+#: ipalib/plugins/user.py:156
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:114
+#: ipalib/plugins/user.py:161
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:120
+#: ipalib/plugins/user.py:168
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:124
-msgid "Password"
+#: ipalib/plugins/user.py:173
+msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:125
-msgid "Set the user password"
-msgstr ""
-
-#: ipalib/plugins/user.py:132
+#: ipalib/plugins/user.py:180
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:133
+#: ipalib/plugins/user.py:181
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:139
-msgid "Street address"
+#: ipalib/plugins/user.py:188
+msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:142
-msgid "Groups"
+#: ipalib/plugins/user.py:193
+msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:146
-msgid "Netgroups"
+#: ipalib/plugins/user.py:197
+msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:150
-msgid "Rolegroups"
+#: ipalib/plugins/user.py:201
+msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:154
-msgid "Taskgroups"
+#: ipalib/plugins/user.py:204
+msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:159
+#: ipalib/plugins/user.py:208
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:211
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:163
+#: ipalib/plugins/user.py:214
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:166
+#: ipalib/plugins/user.py:218
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:177
-#, python-format
+#: ipalib/plugins/user.py:222
+msgid "Org. Unit"
+msgstr ""
+
+#: ipalib/plugins/user.py:225
+msgid "Job Title"
+msgstr ""
+
+#: ipalib/plugins/user.py:228
+msgid "Manager"
+msgstr ""
+
+#: ipalib/plugins/user.py:231
+msgid "Car License"
+msgstr ""
+
+#: ipalib/plugins/user.py:234
+#, fuzzy
+msgid "Account disabled"
+msgstr "%(count)d ভেরিয়াবেল"
+
+#: ipalib/plugins/user.py:258
+msgid ""
+"\n"
+" Given a userid verify the user's existence and return the dn.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:276
+msgid "manager %(manager)s not found"
+msgstr ""
+
+#: ipalib/plugins/user.py:281
+msgid ""
+"\n"
+" Convert a manager dn into a userid\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:295
+msgid ""
+"\n"
+" Add a new user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:298
msgid "Added user \"%(value)s\""
msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
-#: ipalib/plugins/user.py:226
-#, python-format
+#: ipalib/plugins/user.py:303
+msgid "Don't create user private group"
+msgstr ""
+
+#: ipalib/plugins/user.py:333
+msgid "can be at most %(len)d characters"
+msgstr ""
+
+#: ipalib/plugins/user.py:400
+msgid ""
+"\n"
+" Delete a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:404
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:240
-#, python-format
+#: ipalib/plugins/user.py:413
+msgid ""
+"\n"
+" Modify a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:417
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:252
+#: ipalib/plugins/user.py:437
+msgid ""
+"\n"
+" Search for users.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:444
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:253
+#: ipalib/plugins/user.py:445
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:263
-#, python-format
+#: ipalib/plugins/user.py:463
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:283
-#, fuzzy, python-format
+#: ipalib/plugins/user.py:471
+msgid ""
+"\n"
+" Display information about a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:484
+#, fuzzy
+msgid ""
+"\n"
+" Disable a user account.\n"
+" "
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/user.py:489
+#, fuzzy
msgid "Disabled user account \"%(value)s\""
msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
-#: ipalib/plugins/user.py:309
-#, fuzzy, python-format
+#: ipalib/plugins/user.py:507
+#, fuzzy
+msgid ""
+"\n"
+" Enable a user account.\n"
+" "
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/user.py:512
+#, fuzzy
msgid "Enabled user account \"%(value)s\""
msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
-#: ipaserver/install/certs.py:599 ipaserver/plugins/dogtag.py:1313
-#: ipaserver/plugins/dogtag.py:1398 ipaserver/plugins/dogtag.py:1463
-#: ipaserver/plugins/dogtag.py:1543 ipaserver/plugins/dogtag.py:1602
+#: ipalib/plugins/user.py:529
+msgid ""
+"\n"
+" Unlock a user account\n"
+"\n"
+" An account may become locked if the password is entered incorrectly too\n"
+" many times within a specific time period as controlled by password\n"
+" policy. A locked account is a temporary condition and may be unlocked "
+"by\n"
+" an administrator.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:538
+#, fuzzy
+msgid "Unlocked account \"%(value)s\""
+msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
+
+#: ipalib/plugins/virtual.py:20
+msgid ""
+"\n"
+"Base classes for non-LDAP backend plugins.\n"
+msgstr ""
+
+#: ipalib/plugins/virtual.py:28
+msgid ""
+"\n"
+" A command that doesn't use the LDAP backend but wants to use the\n"
+" LDAP access control system to make authorization decisions.\n"
+"\n"
+" The class variable operation is the commonName attribute of the\n"
+" entry to be tested against.\n"
+"\n"
+" In advance, you need to create an entry of the form:\n"
+" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
+"\n"
+" Ex.\n"
+" cn=request certificate, cn=virtual operations,cn=etc, dc=example, "
+"dc=com\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/virtual.py:44
+msgid ""
+"\n"
+" Perform an LDAP query to determine authorization.\n"
+"\n"
+" This should be executed before any actual work is done.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/xmlclient.py:21
+msgid ""
+"\n"
+"XML-RPC client plugin.\n"
+msgstr ""
+
+#: ipalib/cli.py:581
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:590
+msgid "Cancelled."
+msgstr "বাতিল করা হয়েছে।"
+
+#: ipalib/cli.py:819
+#, fuzzy
+msgid "Command name"
+msgstr "অজানা কম্যান্ড %(name)r"
+
+#: ipalib/cli.py:1117
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:300
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:318
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:334
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:356
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:372
+#, python-format
+msgid "unknown command %(name)r"
+msgstr "অজানা কম্যান্ড %(name)r"
+
+#: ipalib/errors.py:389 ipalib/errors.py:414
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:405
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:423
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:439
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:465
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:482
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:498
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:514
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:530
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:546
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:562
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:578
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:597
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:641
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:661
+#, python-format
+msgid "command %(name)r takes at most %(count)d argument"
+msgid_plural "command %(name)r takes at most %(count)d arguments"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/errors.py:691
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:707
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:723 ipalib/errors.py:739
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:755
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:764
+msgid "Passwords do not match"
+msgstr "পাসওয়ার্ড দুটি মিলছে না"
+
+#: ipalib/errors.py:773
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:782
+msgid "Client is not configured. Run ipa-client-install."
+msgstr ""
+
+#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
+#: ipalib/errors.py:1424 ipalib/errors.py:1441
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:826
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:842
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:858
+#, python-format
+msgid ""
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:874
+msgid ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr ""
+
+#: ipalib/errors.py:890
+msgid "This command requires root access"
+msgstr ""
+
+#: ipalib/errors.py:906
+msgid "This is already a posix group"
+msgstr "একটি পসিক্স (posix) গ্রুপ আগে থেকে উপস্থিত"
+
+#: ipalib/errors.py:922
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:938
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:954
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:970
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:986
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1002
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1018
+#, fuzzy
+msgid "This entry is already a member"
+msgstr "একটি পসিক্স (posix) গ্রুপ আগে থেকে উপস্থিত"
+
+#: ipalib/errors.py:1034
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1066
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1082
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1098
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1113
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1128
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1160
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1176
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1192
+#, python-format
+msgid ""
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1216
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1240
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1256
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1272
+#, fuzzy, python-format
+msgid "%(desc)s: %(info)s"
+msgstr "%(desc)s:%(info)s"
+
+#: ipalib/errors.py:1288
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1303
+#, python-format
+msgid "%(info)s"
+msgstr "%(info)s"
+
+#: ipalib/errors.py:1318
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1334
+#, fuzzy, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr "কেবলমাত্র একটি মান অনুমদিত"
+
+#: ipalib/errors.py:1350
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1366
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1391
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1407
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1458
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1474
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:398
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:850
+msgid ""
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:856
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:985
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:296
+msgid "incorrect type"
+msgstr "ভুল প্রকার"
+
+#: ipalib/parameters.py:299
+msgid "Only one value is allowed"
+msgstr "কেবলমাত্র একটি মান অনুমদিত"
+
+#: ipalib/parameters.py:901
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1002
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1054
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1064
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1074
+msgid "must be a decimal number"
+msgstr "একটি দশমিক সংখ্যা হওয়া জরুরি"
+
+#: ipalib/parameters.py:1097
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1107
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1174
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1192
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1208
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1218
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1228
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1246
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1277
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1287
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1297
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1315
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1355
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/util.py:200
+#, python-format
+msgid "Permission denied: %(file)s"
+msgstr ""
+
+#: ipalib/x509.py:174
+#, python-format
+msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
+msgstr ""
+
+#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
+#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
+#: ipaserver/plugins/dogtag.py:1600
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -1999,27 +7319,27 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
-#: ipaserver/plugins/selfsign.py:98
+#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
"Request subject \"%(request_subject)s\" does not match the form "
"\"%(subject_base)s\""
msgstr ""
-#: ipaserver/plugins/selfsign.py:103
+#: ipaserver/plugins/selfsign.py:104
#, python-format
msgid "unable to decode csr: %s"
msgstr ""
-#: ipaserver/plugins/selfsign.py:124 ipaserver/plugins/selfsign.py:139
+#: ipaserver/plugins/selfsign.py:125 ipaserver/plugins/selfsign.py:140
msgid "file operation"
msgstr "ফাইল কার্য"
-#: ipaserver/plugins/selfsign.py:153
+#: ipaserver/plugins/selfsign.py:154
msgid "cannot obtain next serial number"
msgstr "সিরিয়াল নম্বর পাওয়া সম্ভব হয়নি"
-#: ipaserver/plugins/selfsign.py:188
+#: ipaserver/plugins/selfsign.py:189
msgid "certutil failure"
msgstr ""
@@ -2033,543 +7353,573 @@ msgstr ""
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:75
+#: ipa-client/config.c:68
+#, c-format
+msgid "out of memory\n"
+msgstr ""
+
+#: ipa-client/config.c:79
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:138 ipa-client/ipa-getkeytab.c:838
+#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
+#: ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:146
+#: ipa-client/ipa-getkeytab.c:155
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:164 ipa-client/ipa-getkeytab.c:179
+#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:194
+#: ipa-client/ipa-getkeytab.c:203
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:209
+#: ipa-client/ipa-getkeytab.c:218
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:235
+#: ipa-client/ipa-getkeytab.c:245
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:297
+#: ipa-client/ipa-getkeytab.c:307
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:310 ipa-client/ipa-getkeytab.c:327
-#: ipa-client/ipa-getkeytab.c:335 ipa-client/ipa-getkeytab.c:372
+#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
+#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:317 ipa-client/ipa-getkeytab.c:350
+#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
+#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
+#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
+#: ipa-client/ipa-join.c:819
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:361
+#: ipa-client/ipa-getkeytab.c:371
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:481
+#: ipa-client/ipa-getkeytab.c:492
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:496
+#: ipa-client/ipa-getkeytab.c:507
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:534
+#: ipa-client/ipa-getkeytab.c:545
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:541
+#: ipa-client/ipa-getkeytab.c:552
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:565
+#: ipa-client/ipa-getkeytab.c:576
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:572
+#: ipa-client/ipa-getkeytab.c:583
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:579
+#: ipa-client/ipa-getkeytab.c:596
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:589
+#: ipa-client/ipa-getkeytab.c:606
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:605 ipa-client/ipa-getkeytab.c:618
-#: ipa-client/ipa-getkeytab.c:625 ipa-client/ipa-getkeytab.c:632
+#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
+#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:638 ipa-client/ipa-getkeytab.c:648
+#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655
+#: ipa-client/ipa-getkeytab.c:672
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:674
+#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:715
+#: ipa-client/ipa-getkeytab.c:736
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:721
+#: ipa-client/ipa-getkeytab.c:742
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781
+#: ipa-client/ipa-getkeytab.c:778
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782
+#: ipa-client/ipa-getkeytab.c:779
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:189
+#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:787
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:788
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:790
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:794
+#: ipa-client/ipa-getkeytab.c:791
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:796
+#: ipa-client/ipa-getkeytab.c:793
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:825 ipa-client/ipa-rmkeytab.c:207
-#, c-format
-msgid "Kerberos context initialization failed\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:837
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:845
+#: ipa-client/ipa-getkeytab.c:841
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:864
+#: ipa-client/ipa-getkeytab.c:860
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:877
+#: ipa-client/ipa-getkeytab.c:873
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. -P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:889
+#: ipa-client/ipa-getkeytab.c:885
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:897
+#: ipa-client/ipa-getkeytab.c:893
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:905
+#: ipa-client/ipa-getkeytab.c:901
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:913
+#: ipa-client/ipa-getkeytab.c:909
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:920
+#: ipa-client/ipa-getkeytab.c:916
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:939
+#: ipa-client/ipa-getkeytab.c:935
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:948
+#: ipa-client/ipa-getkeytab.c:944
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:954
+#: ipa-client/ipa-getkeytab.c:950
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:67
+#: ipa-client/ipa-join.c:65
#, c-format
msgid "No permission to join this host to the IPA domain.\n"
msgstr ""
-#: ipa-client/ipa-join.c:104 ipa-client/ipa-join.c:116
+#: ipa-client/ipa-join.c:94 ipa-client/ipa-join.c:106
#, c-format
msgid "No write permissions on keytab file '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:121
+#: ipa-client/ipa-join.c:111
#, c-format
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:200
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#, c-format
+msgid "Out of memory!"
+msgstr ""
+
+#: ipa-client/ipa-join.c:204
+#, c-format
+msgid "Unable to initialize connection to ldap server: %s"
+msgstr ""
+
+#: ipa-client/ipa-join.c:210
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:206
+#: ipa-client/ipa-join.c:216
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:236
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:249
+#: ipa-client/ipa-join.c:269
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:259 ipa-client/ipa-join.c:311
+#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:302
+#: ipa-client/ipa-join.c:322
#, c-format
msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:368
+#: ipa-client/ipa-join.c:390
#, c-format
msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:377
+#: ipa-client/ipa-join.c:399
#, c-format
msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:385
+#: ipa-client/ipa-join.c:407
#, c-format
msgid "Unable to make an LDAP connection to %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:394
+#: ipa-client/ipa-join.c:432
#, c-format
msgid "Searching with %s in %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:400
+#: ipa-client/ipa-join.c:438
#, c-format
msgid "ldap_search_ext_s: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:408
+#: ipa-client/ipa-join.c:446
#, c-format
msgid "Unable to find host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:415
+#: ipa-client/ipa-join.c:453
#, c-format
msgid "Unable to get binddn for host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:428
+#: ipa-client/ipa-join.c:466
#, c-format
msgid "Host already has principal, trying bind anyway\n"
msgstr ""
-#: ipa-client/ipa-join.c:442 ipa-client/ipa-join.c:579
+#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:484
#, c-format
msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:457
+#: ipa-client/ipa-join.c:495
#, c-format
msgid "principal not found in host entry\n"
msgstr ""
-#: ipa-client/ipa-join.c:564
+#: ipa-client/ipa-join.c:618
#, c-format
msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:646 ipa-client/ipa-join.c:823
+#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:662 ipa-client/ipa-join.c:838
+#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:671 ipa-client/ipa-join.c:848
+#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:679
+#: ipa-client/ipa-join.c:732
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:689
+#: ipa-client/ipa-join.c:741
+#, c-format
+msgid "Error getting default Kerberos realm: %s.\n"
+msgstr ""
+
+#: ipa-client/ipa-join.c:759
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:707
+#: ipa-client/ipa-join.c:777
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:718
+#: ipa-client/ipa-join.c:788
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:726
+#: ipa-client/ipa-join.c:796
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:769
+#: ipa-client/ipa-join.c:846
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:772
+#: ipa-client/ipa-join.c:849
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:854
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:855
+#: ipa-client/ipa-join.c:932
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:863
+#: ipa-client/ipa-join.c:940
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not "
"provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:877
+#: ipa-client/ipa-join.c:954
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:906
+#: ipa-client/ipa-join.c:983
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:909
+#: ipa-client/ipa-join.c:986
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:912
+#: ipa-client/ipa-join.c:989
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:924
+#: ipa-client/ipa-join.c:1001
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:930
+#: ipa-client/ipa-join.c:1007
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "Print the raw XML-RPC output"
-msgstr ""
-
-#: ipa-client/ipa-join.c:963
-msgid "XML-RPC debugging Output"
+#: ipa-client/ipa-join.c:1042
+msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:967
-msgid "Unenroll this host"
+#: ipa-client/ipa-join.c:1044
+msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:967
+#: ipa-client/ipa-join.c:1046
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Use this hostname instead of the node name"
+#: ipa-client/ipa-join.c:1048
+msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Host Name"
+#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:971
+#: ipa-client/ipa-join.c:1050
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:971
-msgid "IPA Server Name"
+#: ipa-client/ipa-join.c:1052
+msgid "Specifies where to store keytab information."
+msgstr ""
+
+#: ipa-client/ipa-join.c:1052
+msgid "filename"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1054
+msgid "LDAP password (if not using Kerberos)"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1054
+msgid "password"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:44
+#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:46
+#: ipa-client/ipa-rmkeytab.c:45
#, c-format
msgid "krb5_parse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:56
+#: ipa-client/ipa-rmkeytab.c:55
#, c-format
msgid "Removing principal %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:69
+#: ipa-client/ipa-rmkeytab.c:68
#, c-format
msgid "Failed to open keytab\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:73
+#: ipa-client/ipa-rmkeytab.c:72
#, c-format
msgid "principal not found\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:75
+#: ipa-client/ipa-rmkeytab.c:74
#, c-format
msgid "krb5_kt_get_entry %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:83
+#: ipa-client/ipa-rmkeytab.c:82
#, c-format
msgid "Unable to remove entry\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:85
+#: ipa-client/ipa-rmkeytab.c:84
#, c-format
msgid "kvno %d\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:86
+#: ipa-client/ipa-rmkeytab.c:85
#, c-format
msgid "krb5_kt_remove_entry %d: %s\n"
msgstr ""
@@ -2584,33 +7934,42 @@ msgstr ""
msgid "krb5_unparse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:143
+#, c-format
+msgid "realm not found\n"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Print debugging information"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Debugging output"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Remove all principals in this realm"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Realm name"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:241
+#: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237
#, c-format
-msgid "Failed to open keytab '%s'\n"
+msgid "Failed to open keytab '%s': %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:255
+#: ipa-client/ipa-rmkeytab.c:253
#, c-format
msgid "Closing keytab failed\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:257
+#: ipa-client/ipa-rmkeytab.c:255
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
+
+#, fuzzy
+#~ msgid "Removed kerberos key from \"%(value)s\""
+#~ msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে"
diff --git a/install/po/de.po b/install/po/de.po
index 63a43f5f2..7350d7248 100644
--- a/install/po/de.po
+++ b/install/po/de.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: ipa\n"
"Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/"
"newticket\n"
-"POT-Creation-Date: 2010-10-13 14:22-0400\n"
+"POT-Creation-Date: 2011-06-06 13:27-0400\n"
"PO-Revision-Date: 2010-09-27 10:25-0400\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -18,1507 +18,4745 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ipalib/cli.py:507
-#, python-format
-msgid "Enter %(label)s again to verify: "
+#: ipalib/plugins/__init__.py:20
+msgid ""
+"\n"
+"Sub-package containing all core plugins.\n"
msgstr ""
-#: ipalib/cli.py:511 ipa-client/ipa-getkeytab.c:730
-#, c-format
-msgid "Passwords do not match!"
+#: ipalib/plugins/aci.py:20
+msgid ""
+"\n"
+"Directory Server Access Control Instructions (ACIs)\n"
+"\n"
+"ACIs are used to allow or deny access to information. This module is\n"
+"currently designed to allow, not deny, access.\n"
+"\n"
+"The aci commands are designed to grant permissions that allow updating\n"
+"existing entries or adding or deleting new ones. The goal of the ACIs\n"
+"that ship with IPA is to provide a set of low-level permissions that\n"
+"grant access to special groups called taskgroups. These low-level\n"
+"permissions can be combined into roles that grant broader access. These\n"
+"roles are another type of group, roles.\n"
+"\n"
+"For example, if you have taskgroups that allow adding and modifying users "
+"you\n"
+"could create a role, useradmin. You would assign users to the useradmin\n"
+"role to allow them to do the operations defined by the taskgroups.\n"
+"\n"
+"You can create ACIs that delegate permission so users in group A can write\n"
+"attributes on group B.\n"
+"\n"
+"The type option is a map that applies to all entries in the users, groups "
+"or\n"
+"host location. It is primarily designed to be used when granting add\n"
+"permissions (to write new entries).\n"
+"\n"
+"An ACI consists of three parts:\n"
+"1. target\n"
+"2. permissions\n"
+"3. bind rules\n"
+"\n"
+"The target is a set of rules that define which LDAP objects are being\n"
+"targeted. This can include a list of attributes, an area of that LDAP\n"
+"tree or an LDAP filter.\n"
+"\n"
+"The targets include:\n"
+"- attrs: list of attributes affected\n"
+"- type: an object type (user, group, host, service, etc)\n"
+"- memberof: members of a group\n"
+"- targetgroup: grant access to modify a specific group. This is primarily\n"
+" designed to enable users to add or remove members of a specific group.\n"
+"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
+"- subtree: Used to apply a rule across an entire set of objects. For "
+"example,\n"
+" to allow adding users you need to grant \"add\" permission to the subtree\n"
+" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
+" is a fail-safe for objects that may not be covered by the type option.\n"
+"\n"
+"The permissions define what the the ACI is allowed to do, and are one or\n"
+"more of:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
+"allows this to be any valid LDAP entry but we encourage the use of\n"
+"taskgroups so that the rights can be easily shared through roles.\n"
+"\n"
+"For a more thorough description of access controls see\n"
+"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control."
+"html\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
+"demonstrate how the various options work but this is done via the "
+"permission\n"
+"command-line now (see last example).\n"
+"\n"
+" Add an ACI so that the group \"secretaries\" can update the address on any "
+"user:\n"
+" ipa group-add --desc=\"Office secretaries\" secretaries\n"
+" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries "
+"--permissions=write --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Show the new ACI:\n"
+" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Add an ACI that allows members of the \"addusers\" permission to add new "
+"users:\n"
+" ipa aci-add --type=user --permission=addusers --permissions=add --"
+"prefix=none \"Add new users\"\n"
+"\n"
+" Add an ACI that allows members of the editors manage members of the admins "
+"group:\n"
+" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --"
+"group=editors --prefix=none \"Editors manage admins\"\n"
+"\n"
+" Add an ACI that allows members of the admin group to manage the street and "
+"zip code of those in the editors group:\n"
+" ipa aci-add --permissions=write --memberof=editors --group=admins --"
+"attrs=street,postalcode --prefix=none \"admins edit the address of editors"
+"\"\n"
+"\n"
+" Add an ACI that allows the admins group manage the street and zipcode of "
+"those who work for the boss:\n"
+" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode "
+"--filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --"
+"prefix=none \"Edit the address of those who work for the boss\"\n"
+"\n"
+" Add an entirely new kind of record to IPA that isn't covered by any of the "
+"--type options, creating a permission:\n"
+" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,"
+"cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
+"\n"
+"\n"
+"The show command shows the raw 389-ds ACI.\n"
+"\n"
+"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
+"must include all existing attributes as well. When doing an aci-mod the\n"
+"targetattr REPLACES the current attributes, it does not add to them.\n"
+"\n"
msgstr ""
-#: ipalib/cli.py:516
-msgid "Cancelled."
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
-#: ipalib/errors.py:297
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+#: ipalib/plugins/aci.py:172
+msgid ""
+"\n"
+" Given a name and a prefix construct an ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:315
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
+#: ipalib/plugins/aci.py:181
+msgid ""
+"\n"
+" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
+" and the actual ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:331
-msgid "an internal error has occurred"
+#: ipalib/plugins/aci.py:193
+msgid ""
+"\n"
+" Pull the group name out of a memberOf filter\n"
+" "
msgstr ""
-#: ipalib/errors.py:353
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
+#: ipalib/plugins/aci.py:204
+msgid ""
+"\n"
+" Given a name and a set of keywords construct an ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:369
-#, python-format
-msgid "unknown command %(name)r"
+#: ipalib/plugins/aci.py:215
+msgid "type, filter, subtree and targetgroup are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:386 ipalib/errors.py:411
-#, python-format
-msgid "error on server %(server)r: %(error)s"
+#: ipalib/plugins/aci.py:218
+msgid "ACI prefix is required"
msgstr ""
-#: ipalib/errors.py:402
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+#: ipalib/plugins/aci.py:221
+msgid ""
+"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
+"required"
msgstr ""
-#: ipalib/errors.py:420
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
+#: ipalib/plugins/aci.py:224
+msgid "filter and memberof are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:448
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
+#: ipalib/plugins/aci.py:230
+msgid "group, permission and self are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:465
-msgid "did not receive Kerberos credentials"
+#: ipalib/plugins/aci.py:232
+msgid "One of group, permission or self is required"
msgstr ""
-#: ipalib/errors.py:481
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
+#: ipalib/plugins/aci.py:251
+msgid "Group '%s' does not exist"
msgstr ""
-#: ipalib/errors.py:497
-msgid "No credentials cache found"
+#: ipalib/plugins/aci.py:273
+msgid "empty filter"
msgstr ""
-#: ipalib/errors.py:513
-msgid "Ticket expired"
+#: ipalib/plugins/aci.py:294
+msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/errors.py:529
-msgid "Credentials cache permissions incorrect"
+#: ipalib/plugins/aci.py:299
+msgid ""
+"Convert an ACI into its equivalent keywords.\n"
+"\n"
+" This is used for the modify operation so we can merge the\n"
+" incoming kw and existing ACI and pass the result to\n"
+" _make_aci().\n"
+" "
msgstr ""
-#: ipalib/errors.py:545
-msgid "Bad format in credentials cache"
+#: ipalib/plugins/aci.py:379
+msgid "ACI with name \"%s\" not found"
msgstr ""
-#: ipalib/errors.py:561
-msgid "Cannot resolve KDC for requested realm"
+#: ipalib/plugins/aci.py:400
+msgid "ACI prefix"
msgstr ""
-#: ipalib/errors.py:580
-#, python-format
-msgid "Insufficient access: %(info)s"
+#: ipalib/plugins/aci.py:401
+msgid ""
+"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
+"none)"
msgstr ""
-#: ipalib/errors.py:624
-#, python-format
-msgid "command %(name)r takes no arguments"
+#: ipalib/plugins/aci.py:407
+msgid ""
+"\n"
+" ACI object.\n"
+" "
msgstr ""
-#: ipalib/errors.py:644
-#, python-format
-msgid "command %(name)r takes at most %(count)d argument"
-msgid_plural "command %(name)r takes at most %(count)d arguments"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/aci.py:412
+msgid "ACIs"
+msgstr ""
-#: ipalib/errors.py:674
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
+#: ipalib/plugins/aci.py:417
+msgid "ACI name"
msgstr ""
-#: ipalib/errors.py:690
-#, python-format
-msgid "%(name)r is required"
+#: ipalib/plugins/aci.py:422
+msgid "Permission"
msgstr ""
-#: ipalib/errors.py:706 ipalib/errors.py:722
-#, python-format
-msgid "invalid %(name)r: %(error)s"
+#: ipalib/plugins/aci.py:423
+msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/errors.py:738
-#, python-format
-msgid "api has no such namespace: %(name)r"
+#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+msgid "User group"
msgstr ""
-#: ipalib/errors.py:747
-msgid "Passwords do not match"
+#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/errors.py:755
-msgid "Command not implemented"
+#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
+#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
+#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+msgid "Permissions"
msgstr ""
-#: ipalib/errors.py:783 ipalib/errors.py:1023 ipalib/errors.py:1254
-#, python-format
-msgid "%(reason)s"
+#: ipalib/plugins/aci.py:433
+msgid ""
+"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/errors.py:799
-msgid "This entry already exists"
+#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
+#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+msgid "Attributes"
msgstr ""
-#: ipalib/errors.py:815
-msgid "You must enroll a host in order to create a host service"
+#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
+#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/errors.py:831
-#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
+#: ipalib/plugins/permission.py:131
+msgid "Type"
msgstr ""
-#: ipalib/errors.py:847
-msgid ""
-"The realm for the principal does not match the realm for this IPA server"
+#: ipalib/plugins/aci.py:445
+msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/errors.py:863
-msgid "This command requires root access"
+#: ipalib/plugins/aci.py:450
+msgid "Member of"
msgstr ""
-#: ipalib/errors.py:879
-msgid "This is already a posix group"
+#: ipalib/plugins/aci.py:451
+msgid "Member of a group"
msgstr ""
-#: ipalib/errors.py:895
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
+#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
+#: ipalib/plugins/permission.py:144
+msgid "Filter"
msgstr ""
-#: ipalib/errors.py:911
-msgid "This entry is already unlocked"
+#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/errors.py:927
-msgid "This entry is already locked"
+#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+msgid "Subtree"
msgstr ""
-#: ipalib/errors.py:943
-msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
+#: ipalib/plugins/aci.py:461
+msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/errors.py:959
-msgid "This entry is not a member of the group"
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+msgid "Target group"
msgstr ""
-#: ipalib/errors.py:975
-msgid "A group may not be a member of itself"
+#: ipalib/plugins/aci.py:466
+msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/errors.py:991
-msgid "This entry is already a member of the group"
+#: ipalib/plugins/aci.py:470
+msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/errors.py:1007
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
+#: ipalib/plugins/aci.py:471
+msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/errors.py:1039
-msgid "A group may not be added as a member of itself"
+#: ipalib/plugins/aci.py:478
+msgid ""
+"\n"
+" Create new ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1055
-msgid "The default users group cannot be removed"
+#: ipalib/plugins/aci.py:482
+msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1071
-msgid "Host does not have corresponding DNS A record"
+#: ipalib/plugins/aci.py:487
+msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/errors.py:1086
-msgid "Deleting a managed group is not allowed. It must be detached first."
+#: ipalib/plugins/aci.py:493
+msgid ""
+"\n"
+" Execute the aci-create operation.\n"
+"\n"
+" Returns the entry as it will be created in LDAP.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: Keyword arguments for the other LDAP attributes.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1109
-#, python-format
-msgid "no command nor help topic %(topic)r"
+#: ipalib/plugins/aci.py:533
+msgid ""
+"\n"
+" Delete ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1133
-msgid "change collided with another change"
+#: ipalib/plugins/aci.py:538
+msgid "Deleted ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1149
-msgid "no modifications to be performed"
+#: ipalib/plugins/aci.py:543
+msgid ""
+"\n"
+" Execute the aci-delete operation.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/errors.py:1165
-#, python-format
-msgid "%(desc)s:%(info)s"
+#: ipalib/plugins/aci.py:576
+msgid ""
+"\n"
+" Modify ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1181
-msgid "limits exceeded for this query"
+#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
+#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
+#: ipalib/plugins/selfservice.py:212
+msgid "ACI"
msgstr ""
-#: ipalib/errors.py:1196
-#, python-format
-msgid "%(info)s"
+#: ipalib/plugins/aci.py:588
+msgid "Modified ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1221
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
+#: ipalib/plugins/aci.py:633
+msgid ""
+"\n"
+" Search for ACIs.\n"
+"\n"
+" Returns a list of ACIs\n"
+"\n"
+" EXAMPLES:\n"
+"\n"
+" To find all ACIs that apply directly to members of the group ipausers:\n"
+" ipa aci-find --memberof=ipausers\n"
+"\n"
+" To find all ACIs that grant add access:\n"
+" ipa aci-find --permissions=add\n"
+"\n"
+" Note that the find command only looks for the given text in the set of\n"
+" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
+" For example, searching on memberof=ipausers will find all ACIs that\n"
+" have ipausers as a memberof. There may be other ACIs that apply to\n"
+" members of that group indirectly.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:653
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/aci.py:823
+msgid ""
+"\n"
+" Display a single ACI given an ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1237
-#, python-format
-msgid "Certificate format error: %(error)s"
+#: ipalib/plugins/aci.py:837
+msgid ""
+"\n"
+" Execute the aci-show operation.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param uid: The login name of the user to retrieve.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/frontend.py:380
-msgid "Results are truncated, try a more specific search"
+#: ipalib/plugins/aci.py:865
+msgid ""
+"\n"
+" Rename an ACI.\n"
+" "
msgstr ""
-#: ipalib/frontend.py:797 ipalib/plugins/misc.py:47
-msgid "retrieve all attributes"
+#: ipalib/plugins/aci.py:878
+msgid "New ACI name"
msgstr ""
-#: ipalib/frontend.py:803
-msgid "print entries as stored on the server"
+#: ipalib/plugins/aci.py:882
+msgid "Renamed ACI to \"%(value)s\""
msgstr ""
-#: ipalib/frontend.py:940
-msgid "Forward to server instead of running locally"
+#: ipalib/plugins/automount.py:20
+msgid ""
+"\n"
+"Automount\n"
+"\n"
+"Stores automount(8) configuration for autofs(8) in IPA.\n"
+"\n"
+"The base of an automount configuration is the configuration file auto."
+"master.\n"
+"This is also the base location in IPA. Multiple auto.master configurations\n"
+"can be stored in separate locations. A location is implementation-specific\n"
+"with the default being a location named 'default'. For example, you can "
+"have\n"
+"locations by geographic region, by floor, by type, etc.\n"
+"\n"
+"Automount has three basic object types: locations, maps and keys.\n"
+"\n"
+"A location defines a set of maps anchored in auto.master. This allows you\n"
+"to store multiple automount configurations. A location in itself isn't\n"
+"very interesting, it is just a point to start a new automount map.\n"
+"\n"
+"A map is roughly equivalent to a discrete automount file and provides\n"
+"storage for keys.\n"
+"\n"
+"A key is a mount point associated with a map.\n"
+"\n"
+"When a new location is created, two maps are automatically created for\n"
+"it: auto.master and auto.direct. auto.master is the root map for all\n"
+"automount maps for the location. auto.direct is the default map for\n"
+"direct mounts and is mounted on /-.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"Locations:\n"
+"\n"
+" Create a named location, \"Baltimore\":\n"
+" ipa automountlocation-add baltimore\n"
+"\n"
+" Display the new location:\n"
+" ipa automountlocation-show baltimore\n"
+"\n"
+" Find available locations:\n"
+" ipa automountlocation-find\n"
+"\n"
+" Remove a named automount location:\n"
+" ipa automountlocation-del baltimore\n"
+"\n"
+" Show what the automount maps would look like if they were in the "
+"filesystem:\n"
+" ipa automountlocation-tofiles baltimore\n"
+"\n"
+" Import an existing configuration into a location:\n"
+" ipa automountlocation-import baltimore /etc/auto.master\n"
+"\n"
+" The import will fail if any duplicate entries are found. For\n"
+" continuous operation where errors are ignored, use the --continue\n"
+" option.\n"
+"\n"
+"Maps:\n"
+"\n"
+" Create a new map, \"auto.share\":\n"
+" ipa automountmap-add baltimore auto.share\n"
+"\n"
+" Display the new map:\n"
+" ipa automountmap-show baltimore auto.share\n"
+"\n"
+" Find maps in the location baltimore:\n"
+" ipa automountmap-find baltimore\n"
+"\n"
+" Remove the auto.share map:\n"
+" ipa automountmap-del baltimore auto.share\n"
+"\n"
+"Keys:\n"
+"\n"
+" Create a new key for the auto.share map in location baltimore. This ties\n"
+" the map we previously created to auto.master:\n"
+" ipa automountkey-add baltimore auto.master --key=/share --info=auto."
+"share\n"
+"\n"
+" Create a new key for our auto.share map, an NFS mount for man pages:\n"
+" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,"
+"rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n"
+"\n"
+" Find all keys for the auto.share map:\n"
+" ipa automountkey-find baltimore auto.share\n"
+"\n"
+" Find all direct automount keys:\n"
+" ipa automountkey-find baltimore --key=/-\n"
+"\n"
+" Remove the man key from the auto.share map:\n"
+" ipa automountkey-del baltimore auto.share --key=man\n"
+msgstr ""
+
+#: ipalib/plugins/automount.py:182
+msgid ""
+"\n"
+" Location container for automount maps.\n"
+" "
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
+#: ipalib/plugins/automount.py:190
+msgid "Automount Locations"
msgstr ""
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
+#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+msgid "Location"
msgstr ""
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
+#: ipalib/plugins/automount.py:197
+msgid "Automount location name."
msgstr ""
-#: ipalib/parameters.py:295
-msgid "incorrect type"
+#: ipalib/plugins/automount.py:206
+msgid ""
+"\n"
+" Create a new automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:298
-msgid "Only one value is allowed"
+#: ipalib/plugins/automount.py:221
+msgid ""
+"\n"
+" Delete an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:877
-msgid "must be True or False"
+#: ipalib/plugins/automount.py:229
+msgid ""
+"\n"
+" Display an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:978
-msgid "must be an integer"
+#: ipalib/plugins/automount.py:237
+msgid ""
+"\n"
+" Search for an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1029
-#, python-format
-msgid "must be at least %(minvalue)d"
+#: ipalib/plugins/automount.py:245
+msgid ""
+"\n"
+" Generate automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1039
-#, python-format
-msgid "can be at most %(maxvalue)d"
+#: ipalib/plugins/automount.py:308
+msgid ""
+"\n"
+" Import automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1049
-msgid "must be a decimal number"
+#: ipalib/plugins/automount.py:314
+msgid "Master file"
msgstr ""
-#: ipalib/parameters.py:1071
-#, python-format
-msgid "must be at least %(minvalue)f"
+#: ipalib/plugins/automount.py:315
+msgid "Automount master file."
msgstr ""
-#: ipalib/parameters.py:1081
-#, python-format
-msgid "can be at most %(maxvalue)f"
+#: ipalib/plugins/automount.py:322
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/parameters.py:1145
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
+#: ipalib/plugins/automount.py:334
+msgid "File %(file)s not found"
msgstr ""
-#: ipalib/parameters.py:1163
-msgid "must be binary data"
+#: ipalib/plugins/automount.py:341
+msgid ""
+"\n"
+" The basic idea is to read the master file and create all the maps\n"
+" we need, then read each map file and add all the keys for the map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1179
-#, python-format
-msgid "must be at least %(minlength)d bytes"
+#: ipalib/plugins/automount.py:492
+msgid ""
+"\n"
+" Automount map object.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1189
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
+#: ipalib/plugins/automount.py:505
+msgid "Map"
msgstr ""
-#: ipalib/parameters.py:1199
-#, python-format
-msgid "must be exactly %(length)d bytes"
+#: ipalib/plugins/automount.py:506
+msgid "Automount map name."
msgstr ""
-#: ipalib/parameters.py:1217
-msgid "must be Unicode text"
+#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
+#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
+#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
+#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
+#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
+#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
+#: ipalib/plugins/sudorule.py:78
+msgid "Description"
msgstr ""
-#: ipalib/parameters.py:1248
-#, python-format
-msgid "must be at least %(minlength)d characters"
+#: ipalib/plugins/automount.py:515
+msgid "Automount Maps"
msgstr ""
-#: ipalib/parameters.py:1258
-#, python-format
-msgid "can be at most %(maxlength)d characters"
+#: ipalib/plugins/automount.py:521
+msgid ""
+"\n"
+" Create a new automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1268
-#, python-format
-msgid "must be exactly %(length)d characters"
+#: ipalib/plugins/automount.py:529
+msgid ""
+"\n"
+" Delete an automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1307
-#, python-format
-msgid "must be one of %(values)r"
+#: ipalib/plugins/automount.py:548
+msgid ""
+"\n"
+" Modify an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:111
-msgid "A list of ACI values"
+#: ipalib/plugins/automount.py:556
+msgid ""
+"\n"
+" Search for an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:142
-msgid "type, filter, subtree and targetgroup are mutually exclusive"
+#: ipalib/plugins/automount.py:564
+msgid ""
+"\n"
+" Display an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:145
+#: ipalib/plugins/automount.py:572
msgid ""
-"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
-"required"
+"\n"
+" Automount key object.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:151
-msgid "group, taskgroup and self are mutually exclusive"
+#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
+#: ipalib/plugins/automount.py:850
+msgid "Key"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "One of group, taskgroup or self is required"
+#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
+#: ipalib/plugins/automount.py:851
+msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/aci.py:172
-#, python-format
-msgid "Group '%s' does not exist"
+#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
+#: ipalib/plugins/automount.py:855
+msgid "Mount information"
msgstr ""
-#: ipalib/plugins/aci.py:269
-#, python-format
-msgid "ACI with name \"%s\" not found"
+#: ipalib/plugins/automount.py:597
+msgid "description"
msgstr ""
-#: ipalib/plugins/aci.py:286
-msgid "ACIs"
+#: ipalib/plugins/automount.py:606
+msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/aci.py:291
-msgid "ACI name"
+#: ipalib/plugins/automount.py:607
+msgid ""
+"The key,info pair must be unique. A key named %(key)s with info %(info)s "
+"already exists"
msgstr ""
-#: ipalib/plugins/aci.py:296
-msgid "Taskgroup"
+#: ipalib/plugins/automount.py:608
+msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/aci.py:297
-msgid "Taskgroup ACI grants access to"
+#: ipalib/plugins/automount.py:609
+msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/aci.py:301
-msgid "User group"
+#: ipalib/plugins/automount.py:659
+msgid ""
+"More than one entry with key %(key)s found, use --info to select specific "
+"entry."
msgstr ""
-#: ipalib/plugins/aci.py:302
-msgid "User group ACI grants access to"
+#: ipalib/plugins/automount.py:717
+msgid ""
+"\n"
+" Create a new automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:306
-msgid "Permissions"
+#: ipalib/plugins/automount.py:742
+msgid ""
+"\n"
+" Create a new indirect mount point.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:748
+msgid "Mount point"
+msgstr ""
+
+#: ipalib/plugins/automount.py:752
+msgid "Parent map"
msgstr ""
-#: ipalib/plugins/aci.py:307
+#: ipalib/plugins/automount.py:753
+msgid "Name of parent automount map (default: auto.master)."
+msgstr ""
+
+#: ipalib/plugins/automount.py:772
msgid ""
-"comma-separated list of permissions to grant(read, write, add, delete, all)"
+"\n"
+" Delete an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:313
-msgid "Attributes"
+#: ipalib/plugins/automount.py:803
+msgid ""
+"\n"
+" Modify an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:314
-msgid "Comma-separated list of attributes"
+#: ipalib/plugins/automount.py:809
+msgid "New mount information"
msgstr ""
-#: ipalib/plugins/aci.py:318
-msgid "Type"
+#: ipalib/plugins/automount.py:836
+msgid ""
+"\n"
+" Search for an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:319
-msgid "type of IPA object (user, group, host)"
+#: ipalib/plugins/automount.py:844
+msgid ""
+"\n"
+" Display an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:324
-msgid "Member of"
+#: ipalib/plugins/baseldap.py:19
+msgid ""
+"\n"
+"Base classes for LDAP plugins.\n"
msgstr ""
-#: ipalib/plugins/aci.py:325
-msgid "Member of a group"
+#: ipalib/plugins/baseldap.py:39
+msgid "Failed members"
msgstr ""
-#: ipalib/plugins/aci.py:329
-msgid "Filter"
+#: ipalib/plugins/baseldap.py:42
+msgid "Member users"
msgstr ""
-#: ipalib/plugins/aci.py:330
-msgid "Legal LDAP filter (e.g. ou=Engineering)"
+#: ipalib/plugins/baseldap.py:45
+msgid "Member groups"
msgstr ""
-#: ipalib/plugins/aci.py:334
-msgid "Subtree"
+#: ipalib/plugins/baseldap.py:48
+msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/aci.py:335
-msgid "Subtree to apply ACI to"
+#: ipalib/plugins/baseldap.py:51
+msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/aci.py:339
-msgid "Target group"
+#: ipalib/plugins/baseldap.py:54
+msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:340
-msgid "Group to apply ACI to"
+#: ipalib/plugins/baseldap.py:57
+msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:344
-msgid "Target your own entry (self)"
+#: ipalib/plugins/baseldap.py:66
+msgid "Roles"
msgstr ""
-#: ipalib/plugins/aci.py:345
-msgid "Apply ACI to your own entry (self)"
+#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
+#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
+#: ipalib/plugins/sudorule.py:143
+msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/aci.py:357
-#, python-format
-msgid "Created ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:75
+msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/aci.py:407
-#, python-format
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:78
+msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:447
-#, python-format
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:81
+msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:519
-#, python-format
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/baseldap.py:84
+msgid "Member services"
+msgstr ""
-#: ipalib/plugins/automount.py:103
-msgid "Automount"
+#: ipalib/plugins/baseldap.py:87
+msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/automount.py:109 ipalib/plugins/host.py:134
-msgid "Location"
+#: ipalib/plugins/baseldap.py:93
+msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/automount.py:110
-msgid "Automount location name"
+#: ipalib/plugins/baseldap.py:102
+msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/automount.py:226
-msgid "Map"
+#: ipalib/plugins/baseldap.py:105
+msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/automount.py:227
-msgid "Automount map name"
+#: ipalib/plugins/baseldap.py:108
+msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/automount.py:232 ipalib/plugins/group.py:108
-#: ipalib/plugins/hbac.py:151 ipalib/plugins/hbacsvc.py:72
-#: ipalib/plugins/hbacsvcgroup.py:77 ipalib/plugins/host.py:124
-#: ipalib/plugins/hostgroup.py:81 ipalib/plugins/netgroup.py:96
-#: ipalib/plugins/rolegroup.py:90 ipalib/plugins/sudocmd.py:71
-#: ipalib/plugins/sudocmdgroup.py:77 ipalib/plugins/sudorule.py:58
-#: ipalib/plugins/taskgroup.py:62
-msgid "Description"
+#: ipalib/plugins/baseldap.py:111
+msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/automount.py:236
-msgid "Automount Maps"
+#: ipalib/plugins/baseldap.py:114
+msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid "Key"
+#: ipalib/plugins/baseldap.py:117
+msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/automount.py:309
-msgid "Automount key name"
+#: ipalib/plugins/baseldap.py:120
+msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/automount.py:314
-msgid "Mount information"
+#: ipalib/plugins/baseldap.py:123
+msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/automount.py:318
-msgid "description"
+#: ipalib/plugins/baseldap.py:126
+msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/automount.py:322
-msgid "Automount Keys"
+#: ipalib/plugins/baseldap.py:141
+msgid "External host"
msgstr ""
-#: ipalib/plugins/automount.py:342
-msgid "Mount point"
+#: ipalib/plugins/baseldap.py:144
+msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/automount.py:346
-msgid "Parent map"
+#: ipalib/plugins/baseldap.py:147
+msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/automount.py:347
-msgid "Name of parent automount map (default: auto.master)"
+#: ipalib/plugins/baseldap.py:150
+msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:79
-#, python-format
+#: ipalib/plugins/baseldap.py:153
+msgid "Failed to remove"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:171
+msgid ""
+"\n"
+" Given a list of values in the form name=value, return a list of name.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:197
+msgid ""
+"\n"
+" When adding or removing reverse members we are faking an update to\n"
+" object A by updating the member attribute in object B. The memberof\n"
+" plugin makes this work by adding or removing the memberof attribute\n"
+" to/from object A, it just takes a little bit of time.\n"
+"\n"
+" This will loop for 6+ seconds, retrieving object A so we can see\n"
+" if all the memberof attributes have been updated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:241
+msgid ""
+"\n"
+" Object representing a LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:281
+msgid "Entry"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:283
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:80
-#, python-format
+#: ipalib/plugins/baseldap.py:284
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
-#, python-format
+#: ipalib/plugins/baseldap.py:285
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
-msgid "Add an attribute/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:286
+msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:155
-msgid "Set an attribute to an name/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:415
+msgid ""
+"Add an attribute/value pair. Format is attr=value. The attribute must be "
+"part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:359
+#: ipalib/plugins/baseldap.py:420
+msgid ""
+"Set an attribute to a name/value pair. Format is attr=value.\n"
+"For multi-valued attributes, the command replaces the values already present."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:444
+msgid ""
+"\n"
+" If the set of objectclasses is limited enforce that only those\n"
+" are updated in entry_attrs (plus dn)\n"
+"\n"
+" allow_only tells us what mode to check in:\n"
+"\n"
+" If True then we enforce that the attributes must be in the list of\n"
+" allowed.\n"
+"\n"
+" If False then those attributes are not allowed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:474
+msgid ""
+"\n"
+" Callback registration interface\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:561
+msgid ""
+"\n"
+" Create a new entry in LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:703
+msgid ""
+"\n"
+" Base class for commands that need to retrieve an existing entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:727
+msgid ""
+"\n"
+" Base class for commands that need to retrieve one or more existing "
+"entries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:733
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:517
+#: ipalib/plugins/baseldap.py:750
+msgid ""
+"\n"
+" Retrieve an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
+#: ipalib/plugins/internal.py:232
+msgid "Rights"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+msgid ""
+"Display the access rights of this entry (requires --all). See ipa man page "
+"for details."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:821
+msgid ""
+"\n"
+" Update an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:837
+msgid "Rename"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:838
+msgid "Rename the %(ldap_obj_name)s object"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:957
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:674
+#: ipalib/plugins/baseldap.py:988
+msgid ""
+"\n"
+" Delete an LDAP entry and all of its direct subentries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1078
+msgid ""
+"\n"
+" Base class for member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1120
+msgid ""
+"\n"
+" Add other LDAP entries to members.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
+#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
+#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
msgid "Members that could not be added"
msgstr ""
-#: ipalib/plugins/baseldap.py:678
+#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:684 ipalib/plugins/baseldap.py:789
-msgid "Failed members"
+#: ipalib/plugins/baseldap.py:1226
+msgid ""
+"\n"
+" Remove LDAP entries from members.\n"
+" "
msgstr ""
-#: ipalib/plugins/baseldap.py:779
+#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:783
+#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:880
+#: ipalib/plugins/baseldap.py:1335
+msgid ""
+"\n"
+" Retrieve all LDAP entries matching the given criteria.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1344
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:881
+#: ipalib/plugins/baseldap.py:1345
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:887
+#: ipalib/plugins/baseldap.py:1351
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:888
+#: ipalib/plugins/baseldap.py:1352
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/cert.py:93
+#: ipalib/plugins/baseldap.py:1552
+msgid ""
+"\n"
+" Base class for reverse member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1574
+msgid ""
+"\n"
+" Add other LDAP entries to members in reverse.\n"
+"\n"
+" The call looks like \"add A to B\" but in fact executes\n"
+" add B to A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1654
+msgid "added"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1687
+msgid ""
+"\n"
+" Remove other LDAP entries from members in reverse.\n"
+"\n"
+" The call looks like \"remove A from B\" but in fact executes\n"
+" remove B from A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1767
+msgid "removed"
+msgstr ""
+
+#: ipalib/plugins/batch.py:21
+msgid ""
+"\n"
+"Plugin to make multiple ipa calls via one remote procedure call\n"
+"\n"
+"To run this code in the lite-server\n"
+"\n"
+"curl -H \"Content-Type:application/json\" -H \"Accept:application/"
+"json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /"
+"etc/ipa/ca.crt -d @batch_request.json -X POST http://"
+"localhost:8888/ipa/json\n"
+"\n"
+"where the contents of the file batch_request.json follow the below example\n"
+"\n"
+"{\"method\":\"batch\",\"params\":[[\n"
+" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
+" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all"
+"\":\"true\"}]},\n"
+" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
+" ],{}],\"id\":1}\n"
+"\n"
+"The format of the response is nested the same way. At the top you will see\n"
+" \"error\": null,\n"
+" \"id\": 1,\n"
+" \"result\": {\n"
+" \"count\": 3,\n"
+" \"results\": [\n"
+"\n"
+"\n"
+"And then a nested response for each IPA command method sent in the request\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/batch.py:61
+msgid "Nested Methods to execute"
+msgstr ""
+
+#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/plugins/cert.py:22
+msgid ""
+"\n"
+"IPA certificate operations\n"
+"\n"
+"Implements a set of commands for managing server SSL certificates.\n"
+"\n"
+"Certificate requests exist in the form of a Certificate Signing Request "
+"(CSR)\n"
+"in PEM format.\n"
+"\n"
+"If using the selfsign back end then the subject in the CSR needs to match\n"
+"the subject configured in the server. The dogtag CA uses just the CN\n"
+"value of the CSR and forces the rest of the subject.\n"
+"\n"
+"A certificate is stored with a service principal and a service principal\n"
+"needs a host.\n"
+"\n"
+"In order to request a certificate:\n"
+"\n"
+"* The host must exist\n"
+"* The service must exist (or you use the --add option to automatically add "
+"it)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Request a new certificate and add the principal:\n"
+" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n"
+"\n"
+" Retrieve an existing certificate:\n"
+" ipa cert-show 1032\n"
+"\n"
+" Revoke a certificate (see RFC 5280 for reason details):\n"
+" ipa cert-revoke --revocation-reason=6 1032\n"
+"\n"
+" Remove a certificate from revocation hold status:\n"
+" ipa cert-remove-hold 1032\n"
+"\n"
+" Check the status of a signing request:\n"
+" ipa cert-status 10\n"
+"\n"
+"IPA currently immediately issues (or declines) all certificate requests so\n"
+"the status of a request is not normally useful. This is for future use\n"
+"or the case where a CA does not immediately issue a certificate.\n"
+"\n"
+"The following revocation reasons are supported:\n"
+"\n"
+" * 0 - unspecified\n"
+" * 1 - keyCompromise\n"
+" * 2 - cACompromise\n"
+" * 3 - affiliationChanged\n"
+" * 4 - superseded\n"
+" * 5 - cessationOfOperation\n"
+" * 6 - certificateHold\n"
+" * 8 - removeFromCRL\n"
+" * 9 - privilegeWithdrawn\n"
+" * 10 - aACompromise\n"
+"\n"
+"Note that reason code 7 is not used. See RFC 5280 for more details:\n"
+"\n"
+"http://www.ietf.org/rfc/rfc5280.txt\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/cert.py:104
+msgid ""
+"\n"
+" Return the value of CN in the subject of the request or None\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:106 ipalib/plugins/cert.py:118
+#: ipalib/plugins/cert.py:115
+msgid ""
+"\n"
+" Return the first value of the subject alt name, if any\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:120
-#, python-format
+#: ipalib/plugins/cert.py:128
+msgid ""
+"\n"
+" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
+" parser.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:139
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:171 ipalib/plugins/service.py:197
+#: ipalib/plugins/cert.py:142
+msgid ""
+"\n"
+" Strip any leading and trailing cruft around the BEGIN/END block\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:162
+msgid ""
+"\n"
+" Convert a SN given in decimal or hexadecimal.\n"
+" Returns the number or None if conversion fails.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:188
+msgid ""
+"\n"
+" Given a principal with or without a realm return the\n"
+" host portion.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:202
+msgid ""
+"\n"
+" Submit a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:172
+#: ipalib/plugins/cert.py:217
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:179
+#: ipalib/plugins/cert.py:224
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:187 ipalib/plugins/cert.py:392
-#: ipalib/plugins/host.py:154 ipalib/plugins/service.py:204
+#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
+#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
+#: ipalib/plugins/service.py:232
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:191 ipalib/plugins/cert.py:395
+#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:195 ipalib/plugins/cert.py:398
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:199 ipalib/plugins/cert.py:401
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:203 ipalib/plugins/cert.py:404
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:207 ipalib/plugins/cert.py:407
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:211 ipalib/plugins/cert.py:410
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:215 ipalib/plugins/cert.py:379
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:223 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:357
+#: ipalib/plugins/cert.py:396
+msgid ""
+"\n"
+" Check the status of a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:402
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:363
+#: ipalib/plugins/cert.py:408
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:380
+#: ipalib/plugins/cert.py:426
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:413
+#: ipalib/plugins/cert.py:431
+msgid ""
+"\n"
+" Retrieve an existing certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
+#: ipalib/plugins/service.py:114
msgid "Revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:458
+#: ipalib/plugins/cert.py:466
+msgid "Output filename"
+msgstr ""
+
+#: ipalib/plugins/cert.py:467
+msgid "File to store the certificate in."
+msgstr ""
+
+#: ipalib/plugins/cert.py:518
+msgid ""
+"\n"
+" Revoke a certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:526
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:466
+#: ipalib/plugins/cert.py:534
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:467
+#: ipalib/plugins/cert.py:535
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:502
+#: ipalib/plugins/cert.py:562
+msgid ""
+"\n"
+" Take a revoked certificate off hold.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:570
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:505
+#: ipalib/plugins/cert.py:573
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:73
+#: ipalib/plugins/config.py:20
+msgid ""
+"\n"
+"Manage the IPA configuration\n"
+"\n"
+"Manage the default values that IPA uses and some of its tuning parameters.\n"
+"\n"
+" To show the current configuration:\n"
+" ipa config-show\n"
+"\n"
+" To modify the configuration:\n"
+" ipa config-mod --maxusername=99\n"
+"\n"
+"The available options are:\n"
+"\n"
+"User management options:\n"
+"\n"
+" --maxusername=INT Max. username length when creating/modifying a user\n"
+" --homedirectory=STR Default location of home directories (default /"
+"home)\n"
+" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
+" --defaultgroup=STR Default group for new users (default ipausers). The\n"
+" group must exist, or adding new users will fail.\n"
+" --emaildomain=STR Default e-mail domain for new users\n"
+"\n"
+"Search tuning options. These impact how much data is searched through and\n"
+"how many records may be returned on a given search.\n"
+"\n"
+" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 "
+"for\n"
+" unlimited)\n"
+" --searchrecordslimit=INT Max. number of records to search (-1 is "
+"unlimited)\n"
+"\n"
+"Server Configuration.\n"
+"\n"
+" --enable-migration=BOOL Enable migration mode\n"
+" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+"\n"
+"The password notification value is stored here so it will be replicated.\n"
+"It is not currently used to notify users in advance of an expiring\n"
+"password.\n"
+"\n"
+"Some attributes are read-only, provided only for information purposes. "
+"These\n"
+"include:\n"
+"\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
+msgstr ""
+
+#: ipalib/plugins/config.py:76
+msgid "searchtimelimit must be -1 or > 1."
+msgstr ""
+
+#: ipalib/plugins/config.py:80
+msgid ""
+"\n"
+" IPA configuration object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:78
-msgid "Max username length"
+#: ipalib/plugins/config.py:96
+msgid "Max. username length"
msgstr ""
-#: ipalib/plugins/config.py:83
+#: ipalib/plugins/config.py:101
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:84
-msgid "Default location of home directories"
+#: ipalib/plugins/config.py:102
+msgid "Default location of home directories."
msgstr ""
-#: ipalib/plugins/config.py:88
+#: ipalib/plugins/config.py:106
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:89
-msgid "Default shell for new users"
+#: ipalib/plugins/config.py:107
+msgid "Default shell for new users."
msgstr ""
-#: ipalib/plugins/config.py:93
+#: ipalib/plugins/config.py:111
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:94
-msgid "Default group for new users"
+#: ipalib/plugins/config.py:112
+msgid "Default group for new users."
msgstr ""
-#: ipalib/plugins/config.py:98
-msgid "Default e-mail domain"
+#: ipalib/plugins/config.py:116
+msgid "Default e-mail domain for new users"
msgstr ""
-#: ipalib/plugins/config.py:99
-msgid "Default e-mail domain new users"
+#: ipalib/plugins/config.py:117
+msgid "Default e-mail domain new users."
msgstr ""
-#: ipalib/plugins/config.py:103
+#: ipalib/plugins/config.py:121
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:104
-msgid "Max. amount of time (sec.) for a search (-1 is unlimited)"
+#: ipalib/plugins/config.py:122
+msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:109
+#: ipalib/plugins/config.py:127
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:110
-msgid "Max. number of records to search (-1 is unlimited)"
+#: ipalib/plugins/config.py:128
+msgid "Max. number of records to search (-1 is unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:115
+#: ipalib/plugins/config.py:133
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:116
-msgid "A comma-separated list of fields to search when searching for users"
+#: ipalib/plugins/config.py:134
+msgid "A comma-separated list of fields to search when searching for users."
msgstr ""
-#: ipalib/plugins/config.py:121
-msgid "A comma-separated list of fields to search when searching for groups"
+#: ipalib/plugins/config.py:139
+msgid "A comma-separated list of fields to search when searching for groups."
msgstr ""
-#: ipalib/plugins/config.py:125
+#: ipalib/plugins/config.py:143
msgid "Migration mode"
msgstr ""
-#: ipalib/plugins/config.py:126
-msgid "Enable migration mode"
+#: ipalib/plugins/config.py:144
+msgid "Enable migration mode."
msgstr ""
-#: ipalib/plugins/config.py:130
+#: ipalib/plugins/config.py:148
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:131
-msgid "Base for certificate subjects (OU=Test,O=Example)"
+#: ipalib/plugins/config.py:149
+msgid "Base for certificate subjects (OU=Test,O=Example)."
msgstr ""
-#: ipalib/plugins/dns.py:131
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:155
+msgid "Default group objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:159
+msgid "Default user objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:160
+msgid "Default user objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:164
+msgid "Password Expiration Notification"
+msgstr ""
+
+#: ipalib/plugins/config.py:165
+msgid "Number of days's notice of impending password expiration."
+msgstr ""
+
+#: ipalib/plugins/config.py:170
+msgid "Password plugin features"
+msgstr ""
+
+#: ipalib/plugins/config.py:171
+msgid "Extra hashes to generate in password plug-in."
+msgstr ""
+
+#: ipalib/plugins/config.py:183
+msgid ""
+"\n"
+" Modify configuration options.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:220
+msgid ""
+"\n"
+" Show the current configuration.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:19
+msgid ""
+"\n"
+"Group to Group Delegation\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"Group to Group Delegations grants the members of one group to update a set\n"
+"of attributes of members of another group.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a delegation rule to allow editors to edit admin's addresses:\n"
+" ipa delegation-add --attrs=street --membergroup=admins --group=editors "
+"'editors edit admins street'\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add postalCode to the list:\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --"
+"group=editors 'editors edit admins street'\n"
+"\n"
+" Display our updated rule:\n"
+" ipa delegation-show 'editors edit admins street'\n"
+"\n"
+" Delete a rule:\n"
+" ipa delegation-del 'editors edit admins street'\n"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:56
+msgid ""
+"\n"
+" memberOf is in filter but we want to pull out the group for easier\n"
+" displaying.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+msgid "Delegation '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:70
+msgid "Error retrieving member group %(group)s: %(error)s"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:79
+msgid ""
+"\n"
+" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a delegation ACI, adding a new attribute\n"
+" membergroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:95
+msgid ""
+"\n"
+" Delegation object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:102
+msgid "Delegation"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+msgid "Delegation name"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+msgid ""
+"Comma-separated list of permissions to grant (read, write). Default is write."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:125
+msgid "Member user group"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:126
+msgid "User group to apply delegation to"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:152
+msgid ""
+"\n"
+" Add a new delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:156
+msgid "Added delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:176
+msgid ""
+"\n"
+" Delete a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:181
+msgid "Deleted delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:197
+msgid ""
+"\n"
+" Modify a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:201
+msgid "Modified delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:219
+msgid ""
+"\n"
+" Search for delegations.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:223
+msgid "%(count)d delegation matched"
+msgid_plural "%(count)d delegations matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/delegation.py:250
+msgid ""
+"\n"
+" Display information about a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:20
+msgid ""
+"\n"
+"Domain Name System (DNS)\n"
+"\n"
+"Manage DNS zone and resource records.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add new zone:\n"
+" ipa dnszone-add example.com --name-server nameserver.example.com\n"
+" --admin-email admin@example.com\n"
+"\n"
+" Add second nameserver for example.com:\n"
+" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add a mail server for example.com:\n"
+" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n"
+"\n"
+" Delete previously added nameserver from example.com:\n"
+" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add new A record for www.example.com: (random IP)\n"
+" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n"
+"\n"
+" Add new PTR record for www.example.com\n"
+" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n"
+"\n"
+" Add new SRV records for LDAP servers. Three quarters of the requests\n"
+" should go to fast.example.com, one quarter to slow.example.com. If neither\n"
+" is available, switch to backup.example.com.\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup."
+"example.com\"\n"
+"\n"
+" When dnsrecord-add command is executed with no option to add a specific "
+"record\n"
+" an interactive mode is started. The mode interactively prompts for the "
+"most\n"
+" typical record types for the respective zone:\n"
+" ipa dnsrecord-add example.com www\n"
+" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random "
+"IPs)\n"
+" [AAAA record]: (no AAAA address entered)\n"
+" Record name: www\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" The interactive mode can also be used for deleting the DNS records:\n"
+" ipa dnsrecord-del example.com www\n"
+" No option to delete specific record provided.\n"
+" Delete all? Yes/No (default No): (do not delete all records)\n"
+" Current DNS record contents:\n"
+"\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
+" Record name: www\n"
+" A record: 1.2.3.4 (A record 11.22.33.44 has been "
+"deleted)\n"
+"\n"
+" Show zone example.com:\n"
+" ipa dnszone-show example.com\n"
+"\n"
+" Find zone with \"example\" in its domain name:\n"
+" ipa dnszone-find example\n"
+"\n"
+" Find records for resources with \"www\" in their name in zone example.com:\n"
+" ipa dnsrecord-find example.com www\n"
+"\n"
+" Find A records with value 10.10.0.1 in zone example.com\n"
+" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n"
+"\n"
+" Show records for resource www in zone example.com\n"
+" ipa dnsrecord-show example.com www\n"
+"\n"
+" Delete zone example.com with all resource records:\n"
+" ipa dnszone-del example.com\n"
+"\n"
+" Resolve a host name to see if it exists (will add default IPA domain\n"
+" if one is not included):\n"
+" ipa dns-resolve www.example.com\n"
+" ipa dns-resolve www\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:140
+msgid "Generate serial number for zones."
+msgstr ""
+
+#: ipalib/plugins/dns.py:189
+msgid "see RFC 2915 "
+msgstr ""
+
+#: ipalib/plugins/dns.py:249
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:272
+msgid ""
+"\n"
+" DNS Zone, container for resource records.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:284
msgid "DNS"
msgstr ""
-#: ipalib/plugins/dns.py:136
-msgid "Zone"
+#: ipalib/plugins/dns.py:289
+msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:137
+#: ipalib/plugins/dns.py:290
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:143
-msgid "Authoritative name server"
+#: ipalib/plugins/dns.py:296
+msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:147
-msgid "administrator e-mail address"
+#: ipalib/plugins/dns.py:297
+msgid "Authoritative nameserver."
msgstr ""
-#: ipalib/plugins/dns.py:153
+#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+msgid "Administrator e-mail address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:308
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:157
+#: ipalib/plugins/dns.py:309
+msgid "SOA record serial number"
+msgstr ""
+
+#: ipalib/plugins/dns.py:316
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:161
+#: ipalib/plugins/dns.py:317
+msgid "SOA record refresh time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:324
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:165
+#: ipalib/plugins/dns.py:325
+msgid "SOA record retry time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:169
+#: ipalib/plugins/dns.py:333
+msgid "SOA record expire time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:173
+#: ipalib/plugins/dns.py:341
+msgid "How long should negative responses be cached"
+msgstr ""
+
+#: ipalib/plugins/dns.py:349
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:177
+#: ipalib/plugins/dns.py:350
+msgid "SOA record time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:354
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:182
-msgid "allow dynamic update?"
+#: ipalib/plugins/dns.py:355
+msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:186
+#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:426 ipalib/plugins/dns.py:460
-#: ipalib/plugins/dns.py:495 ipalib/plugins/dns.py:610
-#: ipalib/plugins/dns.py:695 ipalib/plugins/dns.py:819
-msgid "Zone name"
+#: ipalib/plugins/dns.py:365
+msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:500
-msgid "resource name"
+#: ipalib/plugins/dns.py:366
+msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:505 ipalib/plugins/dns.py:620
-#: ipalib/plugins/dns.py:711
-msgid "Record type"
+#: ipalib/plugins/dns.py:372
+msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:509 ipalib/plugins/dns.py:624
-msgid "Data"
+#: ipalib/plugins/dns.py:373
+msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:510 ipalib/plugins/dns.py:625
-msgid "Type-specific data"
+#: ipalib/plugins/dns.py:382
+msgid ""
+"\n"
+" Create new DNS zone (SOA record).\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:517
-msgid "Time to live"
+#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
+#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+msgid "Force"
+msgstr ""
+
+#: ipalib/plugins/dns.py:388
+msgid "Force DNS zone creation even if nameserver not in DNS."
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+msgid "Add the nameserver to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:397
+msgid "DNS is not configured"
+msgstr ""
+
+#: ipalib/plugins/dns.py:431
+msgid ""
+"\n"
+" Delete DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"\n"
+" Modify DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:452
+msgid ""
+"\n"
+" Search for DNS zones (SOA records).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:460
+msgid ""
+"\n"
+" Display information about a DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+msgid ""
+"\n"
+" Disable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:472
+msgid "Disabled DNS zone \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:490
+msgid ""
+"\n"
+" Enable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:494
+msgid "Enabled DNS zone \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:512
+msgid ""
+"\n"
+" DNS record.\n"
+" "
msgstr ""
#: ipalib/plugins/dns.py:522
+msgid "DNS resource record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
+msgid "Record name"
+msgstr ""
+
+#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
+msgid "Time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:538
msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:615 ipalib/plugins/dns.py:707
-#: ipalib/plugins/dns.py:824
-msgid "Resource name"
+#: ipalib/plugins/dns.py:539
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:700
-msgid "Search criteria"
+#: ipalib/plugins/dns.py:566
+msgid ""
+"\n"
+" Base class for DNS record commands with record options.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:715
-msgid "type-specific data"
+#: ipalib/plugins/dns.py:610
+msgid ""
+"\n"
+" Base class for adding/removing records from DNS resource entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:865
-#, python-format
+#: ipalib/plugins/dns.py:674
+msgid ""
+"\n"
+" Add records to DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:690
+msgid ""
+"\n"
+" Add new DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:699
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:735
+msgid ""
+"Reverse zone for PTR record should be a sub-zone of one the following fully "
+"qualified domains: %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:740
+msgid "Reverse zone %s requires exactly %d IP address components, %d given"
+msgstr ""
+
+#: ipalib/plugins/dns.py:746
+msgid "PTR record '%s' is not fully qualified (check traling '.')"
+msgstr ""
+
+#: ipalib/plugins/dns.py:789
+msgid ""
+"\n"
+" Delete DNS record entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:792
+msgid "Deleted record \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:799
+msgid ""
+"\n"
+" Delete DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:802
+msgid ""
+"Neither --del-all nor options to delete a specific record provided.\n"
+"Command help may be consulted for all supported record types."
+msgstr ""
+
+#: ipalib/plugins/dns.py:807
+msgid "Delete all associated records"
+msgstr ""
+
+#: ipalib/plugins/dns.py:834
+msgid "No option to delete specific record provided."
+msgstr ""
+
+#: ipalib/plugins/dns.py:835
+msgid "Delete all?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:845
+msgid "Current DNS record contents:\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:875
+msgid "%s record with value %s not found"
+msgstr ""
+
+#: ipalib/plugins/dns.py:889
+msgid ""
+"\n"
+" Display DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:905
+msgid ""
+"\n"
+" Search for DNS resources.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:932
+msgid ""
+"\n"
+" Resolve a host name in DNS\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:936
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:869
+#: ipalib/plugins/dns.py:940
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:882
-#, python-format
+#: ipalib/plugins/dns.py:962
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/group.py:94
+#: ipalib/plugins/dns.py:970
+msgid ""
+"\n"
+" Checks if any of the servers has the DNS service enabled.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:19
+msgid ""
+"\n"
+"Entitlements\n"
+"\n"
+"Manage entitlements for client machines\n"
+"\n"
+"Entitlements can be managed either by registering with an entitlement\n"
+"server with a username and password or by manually importing entitlement\n"
+"certificates. An entitlement certificate contains embedded information\n"
+"such as the product being entitled, the quantity and the validity dates.\n"
+"\n"
+"An entitlement server manages the number of client entitlements available.\n"
+"To mark these entitlements as used by the IPA server you provide a quantity\n"
+"and they are marked as consumed on the entitlement server.\n"
+"\n"
+" Register with an entitlement server:\n"
+" ipa entitle-register consumer\n"
+"\n"
+" Import an entitlement certificate:\n"
+" ipa entitle-import /home/user/ipaclient.pem\n"
+"\n"
+" Display current entitlements:\n"
+" ipa entitle-status\n"
+"\n"
+" Retrieve details on entitlement certificates:\n"
+" ipa entitle-get\n"
+"\n"
+" Consume some entitlements from the entitlement server:\n"
+" ipa entitle-consume 50\n"
+"\n"
+"The registration ID is a Unique Identifier (UUID). This ID will be\n"
+"IMPORTED if you have used entitle-import.\n"
+"\n"
+"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:106
+msgid ""
+"\n"
+" Get our entitlement pool. Assume there is only one pool.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:129
+msgid ""
+"\n"
+" Retrieve our UUID, certificate and key from LDAP.\n"
+"\n"
+" Except on error the caller is responsible for removing temporary files\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:178
+msgid ""
+"\n"
+" Entitlement object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:189
+msgid "Entitlements"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:206
+msgid ""
+"\n"
+" Display current entitlements\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+msgid "UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
+#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
+#: ipalib/plugins/entitle.py:690
+msgid "Product"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
+#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
+#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+msgid "Quantity"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
+#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+msgid "Consumed"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:276
+msgid ""
+"\n"
+" Consume an entitlement\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:282
+msgid "Consumed %(value)s entitlement(s)."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:314
+msgid ""
+"\n"
+" Override this so we can set value to the number of entitlements\n"
+" consumed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
+msgid ""
+"\n"
+" Returning the certificates isn't very interesting. Return the\n"
+" status of entitlements instead.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:380
+msgid ""
+"\n"
+" Retrieve the entitlement certs\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:394
+msgid "Start"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:397
+msgid "End"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
+#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+msgid "Serial Number"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
+#: ipalib/plugins/entitle.py:628
+msgid "Not an entitlement certificate"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:460
+msgid ""
+"\n"
+" Search for entitlement accounts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:473
+msgid ""
+"\n"
+" Register to the entitlement system\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:479
+msgid "Registered to entitlement server."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:483
+msgid "Username"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
+msgid "Enrollment UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
+#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
+msgid "Password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:495
+msgid "Registration password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:569
+msgid ""
+"\n"
+" Import an entitlement certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:646
+msgid ""
+"\n"
+" If we are adding the first entry there are no updates so "
+"EmptyModlist\n"
+" will get thrown. Ignore it.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:667
+msgid ""
+"\n"
+" Re-sync the local entitlement cache with the entitlement server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:673
+msgid "Entitlement(s) synchronized."
+msgstr ""
+
+#: ipalib/plugins/group.py:20
+msgid ""
+"\n"
+"Groups of users\n"
+"\n"
+"Manage groups of users. By default, new groups are POSIX groups. You\n"
+"can add the --nonposix option to the group-add command to mark a new group\n"
+"as non-POSIX, and you can use the same argument to the group-mod command\n"
+"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"converted to non-POSIX groups.\n"
+"\n"
+"Every group must have a description.\n"
+"\n"
+"POSIX groups must have a Group ID (GID) number. Changing a GID is\n"
+"supported but can have an impact on your file permissions. It is not "
+"necessary\n"
+"to supply a GID when creating a group. IPA will generate one automatically\n"
+"if it is not provided.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new group:\n"
+" ipa group-add --desc='local administrators' localadmins\n"
+"\n"
+" Add a new non-POSIX group:\n"
+" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n"
+"\n"
+" Convert a non-POSIX group to posix:\n"
+" ipa group-mod --posix remoteadmins\n"
+"\n"
+" Add a new POSIX group with a specific Group ID number:\n"
+" ipa group-add --gid=500 --desc='unix admins' unixadmins\n"
+"\n"
+" Add a new POSIX group and let IPA assign a Group ID number:\n"
+" ipa group-add --desc='printer admins' printeradmins\n"
+"\n"
+" Remove a group:\n"
+" ipa group-del unixadmins\n"
+"\n"
+" To add the \"remoteadmins\" group to the \"localadmins\" group:\n"
+" ipa group-add-member --groups=remoteadmins localadmins\n"
+"\n"
+" Add a list of users to the \"localadmins\" group:\n"
+" ipa group-add-member --users=test1,test2 localadmins\n"
+"\n"
+" Remove a user from the \"localadmins\" group:\n"
+" ipa group-remove-member --users=test2 localadmins\n"
+"\n"
+" Display information about a named group.\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/group.py:76
+msgid ""
+"\n"
+" Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:100
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:102
+#: ipalib/plugins/group.py:108
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:109 ipalib/plugins/sudocmdgroup.py:78
+#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:113
+#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:114
+#: ipalib/plugins/group.py:120
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:117 ipalib/plugins/rolegroup.py:94
-#: ipalib/plugins/taskgroup.py:66
-msgid "Member groups"
+#: ipalib/plugins/group.py:128
+msgid ""
+"\n"
+" Create a new group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:121 ipalib/plugins/rolegroup.py:98
-#: ipalib/plugins/taskgroup.py:70
-msgid "Member users"
+#: ipalib/plugins/group.py:132
+msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:134
-#, python-format
-msgid "Added group \"%(value)s\""
+#: ipalib/plugins/group.py:137
+msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:139
-msgid "Create as a non-POSIX group?"
+#: ipalib/plugins/group.py:154
+msgid ""
+"\n"
+" Delete group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:160
-#, python-format
+#: ipalib/plugins/group.py:158
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:191
-#, python-format
+#: ipalib/plugins/group.py:186
+msgid ""
+"\n"
+" Modify a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:189
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:196
+#: ipalib/plugins/group.py:194
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:222 ipalib/plugins/hbacsvcgroup.py:129
-#, python-format
+#: ipalib/plugins/group.py:215
+msgid ""
+"\n"
+" Search for groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:220
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
+#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+msgid "search for private groups"
+msgstr ""
+
#: ipalib/plugins/group.py:257
-#, python-format
-msgid "Detached group \"%(value)s\" from user \"%(value)s\""
+msgid ""
+"\n"
+" Display information about a named group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:265
+msgid ""
+"\n"
+" Add members to a group.\n"
+" "
msgstr ""
#: ipalib/plugins/group.py:273
+msgid ""
+"\n"
+" Remove members from a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:281
+msgid ""
+"\n"
+" Detach a managed group from a user\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:285
+msgid "Detached group \"%(value)s\" from user \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/group.py:288
+msgid ""
+"\n"
+" This requires updating both the user and the group. We first need "
+"to\n"
+" verify that both the user and group can be updated, then we go\n"
+" about our work. We don't want a situation where only the user or\n"
+" group can be modified and we're left in a bad state.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:306
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:277
+#: ipalib/plugins/group.py:312
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:284 ipalib/plugins/group.py:295
+#: ipalib/plugins/group.py:331
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbac.py:106
-msgid "HBAC"
+#: ipalib/plugins/hbacrule.py:19
+msgid ""
+"\n"
+"Host-based access control\n"
+"\n"
+"Control who can access what services on what hosts and from where. You\n"
+"can use HBAC to control which users or groups on a source host can\n"
+"access a service, or group of services, on a target host.\n"
+"\n"
+"You can also specify a category of users, target hosts, and source\n"
+"hosts. This is currently limited to \"all\", but might be expanded in the\n"
+"future.\n"
+"\n"
+"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n"
+"\n"
+"The available services and groups of services are controlled by the\n"
+"hbacsvc and hbacsvcgroup plug-ins respectively.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a rule, \"test1\", that grants all users access to the host \"server"
+"\" from\n"
+" anywhere:\n"
+" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add-host --hosts=server.example.com test1\n"
+"\n"
+" Display the properties of a named HBAC rule:\n"
+" ipa hbacrule-show test1\n"
+"\n"
+" Create a rule for a specific service. This lets the user john access\n"
+" the sshd service on any machine from any machine:\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add-user --users=john john_sshd\n"
+" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
+"\n"
+" Create a rule for a new service group. This lets the user john access\n"
+" the FTP service on any machine from any machine:\n"
+" ipa hbacsvcgroup-add ftpers\n"
+" ipa hbacsvc-add sftp\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add-user --users=john john_ftp\n"
+" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
+"\n"
+" Disable a named HBAC rule:\n"
+" ipa hbacrule-disable test1\n"
+"\n"
+" Remove a named HBAC rule:\n"
+" ipa hbacrule-del allow_server\n"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:91
+msgid ""
+"\n"
+" See if options[attribute] is lower-case 'all' in a safe way.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:103
+msgid ""
+"\n"
+" HBAC object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbac.py:111 ipalib/plugins/sudorule.py:53
+#: ipalib/plugins/hbacrule.py:126
+msgid "HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbac.py:116
+#: ipalib/plugins/hbacrule.py:136
msgid "Rule type (allow or deny)"
msgstr ""
-#: ipalib/plugins/hbac.py:117
+#: ipalib/plugins/hbacrule.py:137
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbac.py:123
+#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
+#: ipalib/plugins/sudorule.py:86
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbac.py:124
+#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
+#: ipalib/plugins/sudorule.py:87
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:129
+#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
+#: ipalib/plugins/sudorule.py:92
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbac.py:130
+#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
+#: ipalib/plugins/sudorule.py:93
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:135
+#: ipalib/plugins/hbacrule.py:155
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbac.py:136
+#: ipalib/plugins/hbacrule.py:156
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:141
+#: ipalib/plugins/hbacrule.py:161
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbac.py:142
+#: ipalib/plugins/hbacrule.py:162
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:147 ipalib/plugins/hbac.py:325
-#: ipalib/plugins/hbac.py:363
-msgid "Access time"
-msgstr ""
-
-#: ipalib/plugins/hbac.py:154
+#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbac.py:158 ipalib/plugins/sudorule.py:61
-#: ipalib/plugins/user.py:76
+#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
+#: ipalib/plugins/user.py:108
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbac.py:162 ipalib/plugins/host.py:113
-#: ipalib/plugins/sudorule.py:65
+#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
+#: ipalib/plugins/sudorule.py:119
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
+#: ipalib/plugins/sudorule.py:123
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:166 ipalib/plugins/hostgroup.py:69
-#: ipalib/plugins/sudorule.py:69
+#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
+#: ipalib/plugins/sudorule.py:127
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbac.py:170
+#: ipalib/plugins/hbacrule.py:194
msgid "Source hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:174 ipalib/plugins/hbacsvc.py:60
-#: ipalib/plugins/service.py:192
+#: ipalib/plugins/hbacrule.py:198
+msgid "Source host groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
+#: ipalib/plugins/service.py:220
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbac.py:178
+#: ipalib/plugins/hbacrule.py:206
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:65
-msgid "Service name"
+#: ipalib/plugins/hbacrule.py:215
+msgid ""
+"\n"
+" Create a new HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:219
+msgid "Added HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:230
+msgid ""
+"\n"
+" Delete an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:234
+msgid "Deleted HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:240
+msgid ""
+"\n"
+" Modify an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:244
+msgid "Modified HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:266
+msgid ""
+"\n"
+" Search for HBAC rules.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:270
+msgid "%(count)d HBAC rule matched"
+msgid_plural "%(count)d HBAC rules matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/hbacrule.py:278
+msgid ""
+"\n"
+" Display the properties of an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:286
+msgid ""
+"\n"
+" Enable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:290
+msgid "Enabled HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:315
+msgid ""
+"\n"
+" Disable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:319
+msgid "Disabled HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:344
+msgid ""
+"\n"
+" Add an access time to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+msgid "Access time"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:385
+msgid ""
+"\n"
+" Remove access time to HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:425
+msgid ""
+"\n"
+" Add users and groups to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:442
+msgid ""
+"\n"
+" Remove users and groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:452
+msgid ""
+"\n"
+" Add target hosts and hostgroups to an HBAC rule\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:469
+msgid ""
+"\n"
+" Remove target hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:479
+msgid ""
+"\n"
+" Add source hosts and hostgroups from a HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:496
+msgid ""
+"\n"
+" Remove source hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:506
+msgid ""
+"\n"
+" Add services to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:523
+msgid ""
+"\n"
+" Remove service and service groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:19
+msgid ""
+"\n"
+"HBAC Services\n"
+"\n"
+"The PAM services that HBAC can control access to. The name used here\n"
+"must match the service name that PAM is evaluating.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service:\n"
+" ipa hbacsvc-add tftp\n"
+"\n"
+" Modify an existing HBAC service:\n"
+" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n"
+"\n"
+" Search for HBAC services. This example will return two results, the FTP\n"
+" service and the newly-added tftp service:\n"
+" ipa hbacsvc-find ftp\n"
+"\n"
+" Delete an HBAC service:\n"
+" ipa hbacsvc-del tftp\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:51
+msgid ""
+"\n"
+" HBAC Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:61
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "HBAC Service"
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:73
-msgid "Description of service"
+#: ipalib/plugins/hbacsvc.py:67
+msgid "HBAC service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:84 ipalib/plugins/service.py:216
-#, python-format
-msgid "Added service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:74
+msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:93 ipalib/plugins/service.py:255
-#, python-format
-msgid "Deleted service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:82
+msgid ""
+"\n"
+" Add a new HBAC service.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:66
-msgid "HBAC Service Groups"
+#: ipalib/plugins/hbacsvc.py:85
+msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:71
+#: ipalib/plugins/hbacsvc.py:91
+msgid ""
+"\n"
+" Delete an existing HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:94
+msgid "Deleted HBAC service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:100
+msgid ""
+"\n"
+" Modify an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modified HBAC service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:110
+msgid ""
+"\n"
+" Search for HBAC services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:114
+msgid "%(count)d HBAC service matched"
+msgid_plural "%(count)d HBAC services matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/hbacsvc.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:19
+msgid ""
+"\n"
+"HBAC Service Groups\n"
+"\n"
+"HBAC service groups can contain any number of individual services,\n"
+"or \"members\". Every group must have a description.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service group:\n"
+" ipa hbacsvcgroup-add --desc=\"login services\" login\n"
+"\n"
+" Add members to an HBAC service group:\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n"
+"\n"
+" Display information about a named group:\n"
+" ipa hbacsvcgroup-show login\n"
+"\n"
+" Add a new group to the \"login\" group:\n"
+" ipa hbacsvcgroup-add --desc=\"switch users\" login\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n"
+"\n"
+" Delete an HBAC service group:\n"
+" ipa hbacsvcgroup-del login\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:51
+msgid ""
+"\n"
+" HBAC service group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:64
+msgid "HBAC service Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:69
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:78
+#: ipalib/plugins/hbacsvcgroup.py:76
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:81
-msgid "Member services"
+#: ipalib/plugins/hbacsvcgroup.py:84
+msgid ""
+"\n"
+" Add a new HBAC service group.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:85
-msgid "Member service groups"
+#: ipalib/plugins/hbacsvcgroup.py:87
+msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:101
-#, python-format
-msgid "Added HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:93
+msgid ""
+"\n"
+" Delete an HBAC service group.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:110
-#, python-format
-msgid "Deleted HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:96
+msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:119
-#, python-format
-msgid "Modified HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:102
+msgid ""
+"\n"
+" Modify an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:105
+msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:86
+#: ipalib/plugins/hbacsvcgroup.py:111
+msgid ""
+"\n"
+" Search for an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:114
+msgid "%(count)d HBAC service group matched"
+msgid_plural "%(count)d HBAC service groups matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/hbacsvcgroup.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:130
+msgid ""
+"\n"
+" Add members to an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:138
+msgid ""
+"\n"
+" Remove members from an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:20
+msgid ""
+"\n"
+"Hosts/Machines\n"
+"\n"
+"A host represents a machine. It can be used in a number of contexts:\n"
+"- service entries are associated with a host\n"
+"- a host stores the host/ service principal\n"
+"- a host can be used in Host-based Access Control (HBAC) rules\n"
+"- every enrolled client generates a host entry\n"
+"\n"
+"ENROLLMENT:\n"
+"\n"
+"There are three enrollment scenarios when enrolling a new client:\n"
+"\n"
+"1. You are enrolling as a full administrator. The host entry may exist\n"
+" or not. A full administrator is a member of the hostadmin role\n"
+" or the admins group.\n"
+"2. You are enrolling as a limited administrator. The host must already\n"
+" exist. A limited administrator is a member a role with the\n"
+" Host Enrollment privilege.\n"
+"3. The host has been created with a one-time password.\n"
+"\n"
+"A host can only be enrolled once. If a client has enrolled and needs to\n"
+"be re-enrolled, the host entry must be removed and re-created. Note that\n"
+"re-creating the host entry will result in all services for the host being\n"
+"removed, and all SSL certificates associated with those services being\n"
+"revoked.\n"
+"\n"
+"A host can optionally store information such as where it is located,\n"
+"the OS that it runs, etc.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host:\n"
+" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example."
+"com\n"
+"\n"
+" Delete a host:\n"
+" ipa host-del test.example.com\n"
+"\n"
+" Add a new host with a one-time password:\n"
+" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n"
+"\n"
+" Add a new host with a random one-time password:\n"
+" ipa host-add --os='Fedora 12' --random test.example.com\n"
+"\n"
+" Modify information about a host:\n"
+" ipa host-mod --os='Fedora 12' test.example.com\n"
+"\n"
+" Disable the host Kerberos key, SSL certificate and all of its services:\n"
+" ipa host-disable test.example.com\n"
+"\n"
+" Add a host that can manage this host's keytab and certificate:\n"
+" ipa host-add-managedby --hosts=test2 test\n"
+msgstr ""
+
+#: ipalib/plugins/host.py:97
+msgid ""
+"\n"
+" Require at least one dot in the hostname (to support localhost."
+"localdomain)\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:118
+#: ipalib/plugins/host.py:129
+msgid "DNS reverse zone for IP address %(addr)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+msgid "Keytab"
+msgstr ""
+
+#: ipalib/plugins/host.py:185
+msgid ""
+"\n"
+" Verify that we have either an IPv4 or IPv6 address.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:189
+msgid "invalid IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:194
+msgid ""
+"\n"
+" Host object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:231
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:125
+#: ipalib/plugins/host.py:238
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:242
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:130
+#: ipalib/plugins/host.py:243
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:135
+#: ipalib/plugins/host.py:248
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:139
+#: ipalib/plugins/host.py:252
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:140
+#: ipalib/plugins/host.py:253
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:144
+#: ipalib/plugins/host.py:257
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:145
+#: ipalib/plugins/host.py:258
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:149
+#: ipalib/plugins/host.py:262
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:150
+#: ipalib/plugins/host.py:263
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:155 ipalib/plugins/service.py:205
-msgid "Base-64 encoded server certificate"
+#: ipalib/plugins/host.py:266
+msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:158 ipalib/plugins/host.py:274
-msgid "Principal name"
+#: ipalib/plugins/host.py:271
+msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:162 ipalib/plugins/hostgroup.py:93
-msgid "Member of host-groups"
+#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:166
-msgid "Member of net-groups"
+#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:170
-msgid "Member of role-groups"
+#: ipalib/plugins/host.py:306
+msgid ""
+"\n"
+" Add a new host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:199
-#, python-format
+#: ipalib/plugins/host.py:311
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:202
+#: ipalib/plugins/host.py:316
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:235
-#, python-format
+#: ipalib/plugins/host.py:319
+msgid "skip reverse DNS detection"
+msgstr ""
+
+#: ipalib/plugins/host.py:322
+msgid "Add the host to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+msgid "DNS zone %(zone)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:413
+msgid "The host was added but the DNS update failed with: %(exc)s"
+msgstr ""
+
+#: ipalib/plugins/host.py:422
+msgid ""
+"\n"
+" Delete a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:426
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:269
-#, python-format
+#: ipalib/plugins/host.py:431
+msgid "Remove entries from DNS"
+msgstr ""
+
+#: ipalib/plugins/host.py:537
+msgid ""
+"\n"
+" Modify information about a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:542
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:275
+#: ipalib/plugins/host.py:549
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:319
-#, python-format
+#: ipalib/plugins/host.py:618
+msgid ""
+"\n"
+" Search for hosts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:623
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:337 ipalib/plugins/service.py:84
-msgid "Keytab"
+#: ipalib/plugins/host.py:643
+msgid ""
+"\n"
+" Display information about a host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:359 ipalib/plugins/service.py:399
-#, python-format
-msgid "Removed kerberos key from \"%(value)s\""
+#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+msgid "file to store certificate in"
+msgstr ""
+
+#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+msgid "Certificate stored in file '%(file)s'"
+msgstr ""
+
+#: ipalib/plugins/host.py:684
+msgid ""
+"\n"
+" Disable the Kerberos key, SSL certificate and all services of a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:688
+msgid "Disabled host \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/host.py:770
+msgid ""
+"\n"
+" Add hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:781
+msgid ""
+"\n"
+" Remove hosts that can manage this host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:368
-msgid "Host principal has no kerberos key"
+#: ipalib/plugins/hostgroup.py:20
+msgid ""
+"\n"
+"Groups of hosts.\n"
+"\n"
+"Manage groups of hosts. This is useful for applying access control to a\n"
+"number of hosts by using Host-based Access Control.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host group:\n"
+" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n"
+"\n"
+" Add another new host group:\n"
+" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n"
+"\n"
+" Add members to the hostgroup:\n"
+" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n"
+"\n"
+" Add a hostgroup as a member of another hostgroup:\n"
+" ipa hostgroup-add-member --hostgroups=baltimore maryland\n"
+"\n"
+" Remove a host from the hostgroup:\n"
+" ipa hostgroup-remove-member --hosts=box2 baltimore\n"
+"\n"
+" Display a host group:\n"
+" ipa hostgroup-show baltimore\n"
+"\n"
+" Delete a hostgroup:\n"
+" ipa hostgroup-del baltimore\n"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:55
+msgid ""
+"\n"
+" Hostgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/hostgroup.py:78
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:75
+#: ipalib/plugins/hostgroup.py:79
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:82
+#: ipalib/plugins/hostgroup.py:86
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:85
-msgid "Member hosts"
+#: ipalib/plugins/hostgroup.py:94
+msgid ""
+"\n"
+" Add a new hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:89
-msgid "Member host-groups"
+#: ipalib/plugins/hostgroup.py:98
+msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:106
-#, python-format
-msgid "Added hostgroup \"%(value)s\""
+#: ipalib/plugins/hostgroup.py:104
+msgid ""
+"\n"
+" Delete a hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:116
-#, python-format
+#: ipalib/plugins/hostgroup.py:108
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:126
-#, python-format
+#: ipalib/plugins/hostgroup.py:114
+msgid ""
+"\n"
+" Modify a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:118
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:137
-#, python-format
+#: ipalib/plugins/hostgroup.py:124
+msgid ""
+"\n"
+" Search for hostgroups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:128
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/internal.py:39
+#: ipalib/plugins/hostgroup.py:136
+msgid ""
+"\n"
+" Display information about a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:144
+msgid ""
+"\n"
+" Add members to a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:152
+msgid ""
+"\n"
+" Remove members from a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:22
+msgid ""
+"\n"
+"Plugins not accessible directly through the CLI, commands used internally\n"
+msgstr ""
+
+#: ipalib/plugins/internal.py:36
+msgid ""
+"\n"
+" Export plugin meta-data for the webUI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:44
+msgid "Name of object to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:47
+msgid "Name of method to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:52
+msgid "Dict of JSON encoded IPA Objects"
+msgstr ""
+
+#: ipalib/plugins/internal.py:53
+msgid "Dict of JSON encoded IPA Methods"
+msgstr ""
+
+#: ipalib/plugins/internal.py:96
msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:41
+#: ipalib/plugins/internal.py:99
+msgid "Attribute"
+msgstr ""
+
+#: ipalib/plugins/internal.py:102
+msgid "Add Automount Location"
+msgstr ""
+
+#: ipalib/plugins/internal.py:103
+msgid "Automount Location Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:106
+msgid "Add Automount Map"
+msgstr ""
+
+#: ipalib/plugins/internal.py:109
+msgid "Add Automount Key"
+msgstr ""
+
+#: ipalib/plugins/internal.py:112
+msgid "Unspecified"
+msgstr ""
+
+#: ipalib/plugins/internal.py:113
+msgid "Key Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:114
+msgid "CA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:115
+msgid "Affiliation Changed"
+msgstr ""
+
+#: ipalib/plugins/internal.py:116
+msgid "Superseded"
+msgstr ""
+
+#: ipalib/plugins/internal.py:117
+msgid "Cessation of Operation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:118
+msgid "Certificate Hold"
+msgstr ""
+
+#: ipalib/plugins/internal.py:119
+msgid "Remove from CRL"
+msgstr ""
+
+#: ipalib/plugins/internal.py:120
+msgid "Privilege Withdrawn"
+msgstr ""
+
+#: ipalib/plugins/internal.py:121
+msgid "AA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:122
+msgid ""
+"To confirm your intention to revoke this certificate, select a reason from "
+"the pull-down list, and click the \"Revoke\" button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:124
+msgid "Note"
+msgstr ""
+
+#: ipalib/plugins/internal.py:125
+msgid "Reason for Revocation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:126
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\" "
+"button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:128
+msgid "Issued To"
+msgstr ""
+
+#: ipalib/plugins/internal.py:129
+msgid "Common Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:130
+msgid "Organization"
+msgstr ""
+
+#: ipalib/plugins/internal.py:131
+msgid "Organizational Unit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:133
+msgid "Issued By"
+msgstr ""
+
+#: ipalib/plugins/internal.py:134
+msgid "Validity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:135
+msgid "Issued On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:136
+msgid "Expires On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:137
+msgid "Fingerprints"
+msgstr ""
+
+#: ipalib/plugins/internal.py:138
+msgid "SHA1 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:139
+msgid "MD5 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:140
+msgid "Enter the Base64-encoded CSR below"
+msgstr ""
+
+#: ipalib/plugins/internal.py:141
+msgid "Valid Certificate Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:142
+msgid "New Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:143
+msgid "Certificate Revoked"
+msgstr ""
+
+#: ipalib/plugins/internal.py:144
+msgid "No Valid Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:145
+msgid "Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:146
+msgid "Issue New Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:147
+msgid "Revoke Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:148
+msgid "Restore Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:152
+msgid "Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:155
+msgid "Add Delegation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:158
+msgid "Add DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:159
+msgid "DNS Zone Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:162
+msgid "Add DNS Resource Record"
+msgstr ""
+
+#: ipalib/plugins/internal.py:163
+msgid "Resource"
+msgstr ""
+
+#: ipalib/plugins/internal.py:165
+msgid "Data"
+msgstr ""
+
+#: ipalib/plugins/internal.py:166
+msgid "Records for DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:169
+msgid "Add Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:170
+msgid "Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
+msgid "Is this a POSIX group?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:174
+msgid "Add HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:306
+msgid "Active"
+msgstr ""
+
+#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:308
+msgid "Inactive"
+msgstr ""
+
+#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
+msgid "Rule status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
+msgid "Who"
+msgstr ""
+
+#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
+msgid "Anyone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
+msgid "Specified Users and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:183
+msgid "Accessing"
+msgstr ""
+
+#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
+msgid "Any Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
+msgid "Specified Hosts and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:186
+msgid "Via Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:187
+msgid "Any Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:188
+msgid "Specified Services and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:189
+msgid "From"
+msgstr ""
+
+#: ipalib/plugins/internal.py:192
+msgid "Add HBAC Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:195
+msgid "Add HBAC Service Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:199
+msgid "Add Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:200
+msgid "Host Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:202
+msgid "Host Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:203
+msgid "Enrolled?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:204
+msgid "Enrollment"
+msgstr ""
+
+#: ipalib/plugins/internal.py:205
+msgid "Fully Qualified Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
+msgid "Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:208
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
+msgid "Delete Key, Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:211
+msgid "Enroll via One-Time-Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:212
+msgid "Set OTP"
+msgstr ""
+
+#: ipalib/plugins/internal.py:213
+msgid "One-Time-Password has been set."
+msgstr ""
+
+#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
+msgid "Unprovisioning ${entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:215
+msgid "Are you sure you want to unprovision this host?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
+msgid "Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:219
+msgid "Add Host Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:220
+msgid "Host Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:223
+msgid "Kerberos ticket policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:226
+msgid "Add Netgroup"
+msgstr ""
+
+#: ipalib/plugins/internal.py:227
+msgid "Netgroup Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:230
+msgid "Add Permission"
+msgstr ""
+
+#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
+msgid "Identity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:233
+msgid "Target"
+msgstr ""
+
+#: ipalib/plugins/internal.py:235
+msgid "By Subtree"
+msgstr ""
+
+#: ipalib/plugins/internal.py:236
+msgid "Target Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:237
+msgid "Object By Type"
+msgstr ""
+
+#: ipalib/plugins/internal.py:238
+msgid "Permission with invalid target specification"
+msgstr ""
+
+#: ipalib/plugins/internal.py:241
+msgid "Add Privilege"
+msgstr ""
+
+#: ipalib/plugins/internal.py:242
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:245
+msgid "Add Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:249
+msgid "Add Role"
+msgstr ""
+
+#: ipalib/plugins/internal.py:250
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:253
+msgid "Add Self Service Definition"
+msgstr ""
+
+#: ipalib/plugins/internal.py:256
+msgid "Add Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:257
+msgid "Service Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:258
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:260
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:261
+msgid "Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:263
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:267
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:271
+msgid "Add Sudo Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:275
+msgid "Add Sudo Command Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:279
+msgid "Add Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:287
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:290
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:291
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:292
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:293
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:294
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:295
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:297
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:300
+msgid "Add User"
+msgstr ""
+
+#: ipalib/plugins/internal.py:301
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:302
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:303
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:304
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:305
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:307
+msgid "Click to Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:309
+msgid "Click to Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:310
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:311
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:312
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:313
+msgid "Repeat Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:314
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:315
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:319
msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:42
+#: ipalib/plugins/internal.py:320
+msgid "Add and Add Another"
+msgstr ""
+
+#: ipalib/plugins/internal.py:321
+msgid "Add and Edit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:322
+msgid "Add and Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:323
+msgid "Add Many"
+msgstr ""
+
+#: ipalib/plugins/internal.py:324
+msgid "Back to List"
+msgstr ""
+
+#: ipalib/plugins/internal.py:325
+msgid "Cancel"
+msgstr ""
+
+#: ipalib/plugins/internal.py:326
+msgid "Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:327
+msgid "Enroll"
+msgstr ""
+
+#: ipalib/plugins/internal.py:328
msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:43
+#: ipalib/plugins/internal.py:329
+msgid "Get"
+msgstr ""
+
+#: ipalib/plugins/internal.py:330
+msgid "Issue"
+msgstr ""
+
+#: ipalib/plugins/internal.py:331
+msgid "OK"
+msgstr ""
+
+#: ipalib/plugins/internal.py:332
msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:333
+msgid "Delete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:334
+msgid "Restore"
+msgstr ""
+
+#: ipalib/plugins/internal.py:335
+msgid "Retry"
+msgstr ""
+
+#: ipalib/plugins/internal.py:336
+msgid "Revoke"
+msgstr ""
+
+#: ipalib/plugins/internal.py:337
msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:45
-msgid "Enroll"
+#: ipalib/plugins/internal.py:338
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:46
-msgid "Delete"
+#: ipalib/plugins/internal.py:341
+msgid "Available"
+msgstr ""
+
+#: ipalib/plugins/internal.py:342
+msgid "This page has unsaved changes. Please save or revert."
+msgstr ""
+
+#: ipalib/plugins/internal.py:343
+msgid "Dirty"
msgstr ""
-#: ipalib/plugins/internal.py:49
+#: ipalib/plugins/internal.py:344
+msgid "Hide already enrolled."
+msgstr ""
+
+#: ipalib/plugins/internal.py:345
+msgid "Select ${entity} to be removed."
+msgstr ""
+
+#: ipalib/plugins/internal.py:346
+msgid "Remove ${entity}."
+msgstr ""
+
+#: ipalib/plugins/internal.py:347
+msgid "Prospective"
+msgstr ""
+
+#: ipalib/plugins/internal.py:350
+msgid "Managed by"
+msgstr ""
+
+#: ipalib/plugins/internal.py:351
+msgid "Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:352
+msgid "Indirect Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:353
+msgid "Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:354
+msgid "Indirect Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
+msgid "Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:358
+msgid "Search"
+msgstr ""
+
+#: ipalib/plugins/internal.py:362
msgid "Quick Links"
msgstr ""
-#: ipalib/plugins/internal.py:50
+#: ipalib/plugins/internal.py:363
msgid "Select All"
msgstr ""
-#: ipalib/plugins/internal.py:51
+#: ipalib/plugins/internal.py:364
msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Do you really want to delete the selected entries?"
+#: ipalib/plugins/internal.py:365
+msgid "Are you sure you want to delete selected entries?"
msgstr ""
-#: ipalib/plugins/internal.py:55
-msgid "Identity Details"
+#: ipalib/plugins/internal.py:366
+msgid ""
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
msgstr ""
-#: ipalib/plugins/internal.py:56
-msgid "Account Details"
+#: ipalib/plugins/internal.py:370
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:57
-msgid "Contact Details"
+#: ipalib/plugins/internal.py:371
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:58
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:372
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:59
-msgid " Employee Information"
+#: ipalib/plugins/internal.py:373
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:60
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:377
+msgid "Policy"
msgstr ""
-#: ipalib/plugins/internal.py:61
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:378
+msgid "Audit"
msgstr ""
-#: ipalib/plugins/internal.py:66
-msgid "Name of object to export"
+#: ipalib/plugins/internal.py:379
+msgid "IPA Server"
msgstr ""
-#: ipalib/plugins/internal.py:71
-msgid "Dict of JSON encoded IPA Objects"
+#: ipalib/plugins/internal.py:380
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:381
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:382
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:383
+msgid "Automount"
msgstr ""
-#: ipalib/plugins/internal.py:72
+#: ipalib/plugins/internal.py:386
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:387
+msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:388
+msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:389
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:392
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:395
+msgid ""
+"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."
+msgstr ""
+
+#: ipalib/plugins/internal.py:399
msgid "Dict of I18N messages"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:59
+#: ipalib/plugins/kerberos.py:20
+msgid ""
+"\n"
+"Backend plugin for Kerberos.\n"
+"\n"
+"This wraps the python-kerberos and python-krbV bindings.\n"
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:35
+msgid ""
+"\n"
+" Kerberos backend plugin.\n"
+"\n"
+" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
+" bindings also). Importantly, this plugin does correct Unicode\n"
+" encoding/decoding of values going-to/coming-from the bindings.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:44
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:50
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:56
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:62
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:68
+msgid ""
+"\n"
+" Return the default ccache file name.\n"
+"\n"
+" This will return something like '/tmp/krb5cc_500'.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:79
+msgid ""
+"\n"
+" Return the principal name in default credential cache.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'. If no "
+"credential\n"
+" cache exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:91
+msgid ""
+"\n"
+" Return the realm from the default credential cache.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'. If no credential "
+"cache\n"
+" exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:103
+msgid ""
+"\n"
+" Return the principal from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:111
+msgid ""
+"\n"
+" Return the realm from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:19
+msgid ""
+"\n"
+"Kerberos ticket policy\n"
+"\n"
+"There is a single Kerberos ticket policy. This policy defines the\n"
+"maximum ticket lifetime and the maximum renewal age, the period during\n"
+"which the ticket is renewable.\n"
+"\n"
+"You can also create a per-user ticket policy by specifying the user login.\n"
+"\n"
+"For changes to the global policy to take effect, restarting the KDC service\n"
+"is required, which can be achieved using:\n"
+"\n"
+"service krb5kdc restart\n"
+"\n"
+"Changes to per-user policies take effect immediately for newly requested\n"
+"tickets (e.g. when the user next runs kinit).\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Display the current Kerberos ticket policy:\n"
+" ipa krbtpolicy-show\n"
+"\n"
+" Reset the policy to the default:\n"
+" ipa krbtpolicy-reset\n"
+"\n"
+" Modify the policy to 8 hours max life, 1-day max renewal:\n"
+" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n"
+"\n"
+" Display effective Kerberos ticket policy for user 'admin':\n"
+" ipa krbtpolicy-show admin\n"
+"\n"
+" Reset per-user policy for user 'admin':\n"
+" ipa krbtpolicy-reset admin\n"
+"\n"
+" Modify per-user policy for user 'admin':\n"
+" ipa krbtpolicy-mod admin --maxlife=3600\n"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:71
+msgid ""
+"\n"
+" Kerberos Ticket Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:79
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:64 ipalib/plugins/passwd.py:52
+#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
msgid "User name"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:65
+#: ipalib/plugins/krbtpolicy.py:85
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:70
+#: ipalib/plugins/krbtpolicy.py:90
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:75
+#: ipalib/plugins/krbtpolicy.py:96
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:76
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/migration.py:44
-#, python-format
+#: ipalib/plugins/krbtpolicy.py:111
+msgid ""
+"\n"
+" Modify Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:125
+msgid ""
+"\n"
+" Display the current Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:149
+msgid ""
+"\n"
+" Reset Kerberos ticket policy to the default values.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:19
+msgid ""
+"\n"
+"Migration to IPA\n"
+"\n"
+"Migrate users and groups from an LDAP server to IPA.\n"
+"\n"
+"This performs an LDAP query against the remote server searching for\n"
+"users and groups in a container. In order to migrate passwords you need\n"
+"to bind as a user that can read the userPassword attribute on the remote\n"
+"server. This is generally restricted to high-level admins such as\n"
+"cn=Directory Manager in 389-ds (this is the default bind user).\n"
+"\n"
+"The default user container is ou=People.\n"
+"\n"
+"The default group container is ou=Groups.\n"
+"\n"
+"Users and groups that already exist on the IPA server are skipped.\n"
+"\n"
+"Two LDAP schemas define how group members are stored: RFC2307 and\n"
+"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n"
+"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n"
+"\n"
+"Migrated users do not have Kerberos credentials, they have only their\n"
+"LDAP password. To complete the migration process, users need to go\n"
+"to http://ipa.example.com/ipa/migration and authenticate using their\n"
+"LDAP password in order to generate their Kerberos credentials.\n"
+"\n"
+"Migration is disabled by default. Use the command ipa config-mod to\n"
+"enable it:\n"
+"\n"
+" ipa config-mod --enable-migration=TRUE\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" The simplest migration, accepting all defaults:\n"
+" ipa migrate-ds ldap://ds.example.com:389\n"
+"\n"
+" Specify the user and group container. This can be used to migrate user and\n"
+" group data from an IPA v1 server:\n"
+" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-"
+"container='cn=groups,cn=accounts' ldap://ds.example.com:389\n"
+msgstr ""
+
+#: ipalib/plugins/migration.py:78
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:45
+#: ipalib/plugins/migration.py:79
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:169
+#: ipalib/plugins/migration.py:175
+msgid ""
+"\n"
+" Convert usernames in member attributes to work in IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:220
+msgid "Invalid LDAP URI."
+msgstr ""
+
+#: ipalib/plugins/migration.py:225
+msgid ""
+"\n"
+" Migrate users and groups from DS to IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:266
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:170
+#: ipalib/plugins/migration.py:267
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:174
+#: ipalib/plugins/migration.py:272
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:181
+#: ipalib/plugins/migration.py:279
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:187
+#: ipalib/plugins/migration.py:285
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:188
+#: ipalib/plugins/migration.py:286
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:194
+#: ipalib/plugins/migration.py:292
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:195
+#: ipalib/plugins/migration.py:293
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:200
-msgid "Continous operation mode. Errors are reported but the process continues"
+#: ipalib/plugins/migration.py:299
+msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:208
+#: ipalib/plugins/migration.py:300
+msgid ""
+"Comma-separated list of objectclasses used to search for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:306
+msgid "Group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:307
+msgid ""
+"Comma-separated list of objectclasses used to search for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:313
+msgid "LDAP schema"
+msgstr ""
+
+#: ipalib/plugins/migration.py:314
+msgid ""
+"The schema used on the LDAP server. Supported values are RFC2307 and "
+"RFC2307bis. The default is RFC2307bis"
+msgstr ""
+
+#: ipalib/plugins/migration.py:320
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues"
+msgstr ""
+
+#: ipalib/plugins/migration.py:328
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:212
+#: ipalib/plugins/migration.py:332
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:216
+#: ipalib/plugins/migration.py:336
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:220
-#, python-format
+#: ipalib/plugins/migration.py:340
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:222
+#: ipalib/plugins/migration.py:342
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
-"migration process might be uncomplete\n"
+"migration process might be incomplete\n"
msgstr ""
-#: ipalib/plugins/migration.py:227
+#: ipalib/plugins/migration.py:347
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:230
+#: ipalib/plugins/migration.py:350
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -1527,16 +4765,55 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:297
-#, python-format
+#: ipalib/plugins/migration.py:358
+msgid ""
+"\n"
+" Call get_options of the baseclass and add \"exclude\" options\n"
+" for each type of object being migrated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:375
+msgid ""
+"\n"
+" Convert all \"exclude\" option values to lower-case.\n"
+"\n"
+" Also, empty List parameters are converted to None, but the "
+"migration\n"
+" plugin doesn't like that - convert back to empty lists.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:399
+msgid ""
+"\n"
+" Migrate objects from DS to LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:425
msgid "Container for %(container)s not found"
msgstr ""
+#: ipalib/plugins/misc.py:20
+msgid ""
+"\n"
+"Misc plug-ins\n"
+msgstr ""
+
+#: ipalib/plugins/misc.py:36
+msgid "Show environment variables"
+msgstr ""
+
#: ipalib/plugins/misc.py:38
-#, python-format
msgid "%(count)d variables"
msgstr ""
+#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115
+msgid ""
+"retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
#: ipalib/plugins/misc.py:61
msgid "Total number of variables env (>= count)"
msgstr ""
@@ -1545,435 +4822,2391 @@ msgstr ""
msgid "Number of variables returned (<= total)"
msgstr ""
-#: ipalib/plugins/misc.py:109
-#, python-format
+#: ipalib/plugins/misc.py:106
+msgid "Show all loaded plugins"
+msgstr ""
+
+#: ipalib/plugins/misc.py:108
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/misc.py:116
+#: ipalib/plugins/misc.py:126
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:57
+#: ipalib/plugins/netgroup.py:20
+msgid ""
+"\n"
+"Netgroups\n"
+"\n"
+"A netgroup is a group used for permission checking. It can contain both\n"
+"user and host values.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new netgroup:\n"
+" ipa netgroup-add --desc=\"NFS admins\" admins\n"
+"\n"
+" Add members to the netgroup:\n"
+" ipa netgroup-add-member --users=tuser1,tuser2 admins\n"
+"\n"
+" Remove a member from the netgroup:\n"
+" ipa netgroup-remove-member --users=tuser2 admins\n"
+"\n"
+" Display information about a netgroup:\n"
+" ipa netgroup-show admins\n"
+"\n"
+" Delete a netgroup:\n"
+" ipa netgroup-del admins\n"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:59
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:63
-msgid "External host"
+#: ipalib/plugins/netgroup.py:67
+msgid ""
+"\n"
+" Netgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/netgroup.py:85
-msgid "Net Groups"
+#: ipalib/plugins/netgroup.py:98
+msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:90
+#: ipalib/plugins/netgroup.py:103
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:97
+#: ipalib/plugins/netgroup.py:110
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:101
+#: ipalib/plugins/netgroup.py:114
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:106
+#: ipalib/plugins/netgroup.py:119
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:84
-#, python-format
+#: ipalib/plugins/netgroup.py:140
+msgid ""
+"\n"
+" Add a new netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:144
+msgid "Added netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:153
+msgid ""
+"\n"
+" Delete a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:156
+msgid "Deleted netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:162
+msgid ""
+"\n"
+" Modify a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:166
+msgid "Modified netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:180
+msgid ""
+"\n"
+" Search for a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:185
+msgid "%(count)d netgroup matched"
+msgid_plural "%(count)d netgroups matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/netgroup.py:213
+msgid ""
+"\n"
+" Display information about a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:222
+msgid ""
+"\n"
+" Add members to a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:258
+msgid ""
+"\n"
+" Remove members from a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:19
+msgid ""
+"\n"
+"Set a user's password\n"
+"\n"
+"If someone other than a user changes that user's password (e.g., Helpdesk\n"
+"resets it) then the password will need to be changed the first time it\n"
+"is used. This is so the end-user is the only one who knows the password.\n"
+"\n"
+"The IPA password policy controls how often a password may be changed,\n"
+"what strength requirements exist, and the length of the password history.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" To reset your own password:\n"
+" ipa passwd\n"
+"\n"
+" To change another user's password:\n"
+" ipa passwd tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/passwd.py:46
+msgid ""
+"\n"
+" Set a user's password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:64
+msgid "Changed password for \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/passwd.py:67
+msgid ""
+"\n"
+" Execute the passwd operation.\n"
+"\n"
+" The dn should not be passed as a keyword argument as it is "
+"constructed\n"
+" by this method.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param principal: The login name or principal of the user\n"
+" :param password: the new password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:19
+msgid ""
+"\n"
+"Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of rights. A permission is\n"
+"a human-readable form of a 389-ds Access Control Rule, or instruction "
+"(ACI).\n"
+"A permission grants the right to perform a specific task such as adding a\n"
+"user, modifying a group, etc.\n"
+"\n"
+"A permission may not contain other permissions.\n"
+"\n"
+"* A permission grants access to read, write, add or delete.\n"
+"* A privilege combines similar permissions (for example all the permissions\n"
+" needed to add a user).\n"
+"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n"
+"\n"
+"A permission is made up of a number of different parts:\n"
+"\n"
+"1. The name of the permission.\n"
+"2. The target of the permission.\n"
+"3. The rights granted by the permission.\n"
+"\n"
+"Rights define what operations are allowed, and may be one or more\n"
+"of the following:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Read permission is granted for most attributes by default so the read\n"
+"permission is not expected to be used very often.\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"There are a number of allowed targets:\n"
+"1. type: a type of object (user, group, etc).\n"
+"2. memberof: a member of a group or hostgroup\n"
+"3. filter: an LDAP filter\n"
+"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n"
+" super-set of the \"type\" target.\n"
+"5. targetgroup: grant access to modify a specific group (such as granting\n"
+" the rights to manage group membership)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a permission that grants the creation of users:\n"
+" ipa permission-add --type=user --permissions=add \"Add Users\"\n"
+"\n"
+" Add a permission that grants the ability to manage group membership:\n"
+" ipa permission-add --attrs=member --permissions=write --type=group "
+"\"Manage Group Members\"\n"
+msgstr ""
+
+#: ipalib/plugins/permission.py:84
+msgid "Permission Type"
+msgstr ""
+
+#: ipalib/plugins/permission.py:89
+msgid ""
+"\n"
+" Permission object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:112
+msgid "Permission name"
+msgstr ""
+
+#: ipalib/plugins/permission.py:119
+msgid ""
+"Comma-separated list of permissions to grant (read, write, add, delete, all)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:132
+msgid ""
+"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:138
+msgid "Member of group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:139
+msgid "Target members of a group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:151
+msgid "Subtree to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:157
+msgid "User group to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:177
+msgid ""
+"\n"
+" Add a new permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:181
+msgid "Added permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:236
+msgid ""
+"\n"
+" Delete a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:240
+msgid "Deleted permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:256
+msgid ""
+"\n"
+" Modify a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:260
+msgid "Modified permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:352
+msgid ""
+"\n"
+" Search for permissions.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:356
+msgid "%(count)d permission matched"
+msgid_plural "%(count)d permissions matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/permission.py:405
+msgid ""
+"\n"
+" Display information about a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:428
+msgid ""
+"\n"
+" Add members to a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:437
+msgid ""
+"\n"
+" Remove members from a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:19
+msgid ""
+"\n"
+"Ping the remote IPA server\n"
+msgstr ""
+
+#: ipalib/plugins/ping.py:29
+msgid ""
+"\n"
+" ping a remote server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:37
+msgid ""
+"\n"
+" A possible enhancement would be to take an argument and echo it\n"
+" back but a fixed value works for now.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:19
+msgid ""
+"\n"
+"Kerberos pkinit options\n"
+"\n"
+"Enable or disable anonymous pkinit using the principal\n"
+"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n"
+"pkinit support.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Enable anonymous pkinit:\n"
+" ipa pkinit-anonymous enable\n"
+"\n"
+" Disable anonymous pkinit:\n"
+" ipa pkinit-anonymous disable\n"
+"\n"
+"For more information on anonymous pkinit see:\n"
+"\n"
+"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:46
+msgid ""
+"\n"
+" PKINIT Options\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:51
+msgid "PKINIT"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:56
+msgid ""
+"\n"
+" Accepts only Enable/Disable.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:67
+msgid ""
+"\n"
+" Enable or Disable Anonymous PKINIT\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:19
+msgid ""
+"\n"
+"Privileges\n"
+"\n"
+"A privilege combines permissions into a logical task. A permission provides\n"
+"the rights to do a single task. There are some IPA operations that require\n"
+"multiple permissions to succeed. A privilege is where permissions are\n"
+"combined in order to perform a specific task.\n"
+"\n"
+"For example, adding a user requires the following permissions:\n"
+" * Creating a new user entry\n"
+" * Resetting a user password\n"
+" * Adding the new user to the default IPA users group\n"
+"\n"
+"Combining these three low-level tasks into a higher level task in the\n"
+"form of a privilege named \"Add User\" makes it easier to manage Roles.\n"
+"\n"
+"A privilege may not contain other privileges.\n"
+"\n"
+"See role and permission for additional information.\n"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:45
+msgid ""
+"\n"
+" Privilege object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:65
+msgid "Privileges"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:70
+msgid "Privilege name"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:77
+msgid "Privilege description"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:85
+msgid ""
+"\n"
+" Add a new privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:89
+msgid "Added privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:95
+msgid ""
+"\n"
+" Delete a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:99
+msgid "Deleted privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:105
+msgid ""
+"\n"
+" Modify a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:109
+msgid "Modified privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:115
+msgid ""
+"\n"
+" Search for privileges.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:119
+msgid "%(count)d privilege matched"
+msgid_plural "%(count)d privileges matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/privilege.py:127
+msgid ""
+"\n"
+" Display information about a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:135
+msgid ""
+"\n"
+" Add members to a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:144
+msgid ""
+"\n"
+" Remove members from a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:153
+msgid ""
+"\n"
+" Add permissions to a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:169
+msgid "Number of permissions added"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:177
+msgid ""
+"\n"
+" Remove permissions from a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:195
+msgid "Number of permissions removed"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:20
+msgid ""
+"\n"
+"Password policy\n"
+"\n"
+"A password policy sets limitations on IPA passwords, including maximum\n"
+"lifetime, minimum lifetime, the number of passwords to save in\n"
+"history, the number of character classes required (for stronger passwords)\n"
+"and the minimum password length.\n"
+"\n"
+"By default there is a single, global policy for all users. You can also\n"
+"create a password policy to apply to a group. Each user is only subject\n"
+"to one password policy, either the group policy or the global policy. A\n"
+"group policy stands alone; it is not a super-set of the global policy plus\n"
+"custom settings.\n"
+"\n"
+"Each group password policy requires a unique priority setting. If a user\n"
+"is in multiple groups that have password policies, this priority determines\n"
+"which password policy is applied. A lower value indicates a higher priority\n"
+"policy.\n"
+"\n"
+"Group password policies are automatically removed when the groups they\n"
+"are associated with are removed.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Modify the global policy:\n"
+" ipa pwpolicy-mod --minlength=10\n"
+"\n"
+" Add a new group password policy:\n"
+" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --"
+"minlength=8 --priority=10 localadmins\n"
+"\n"
+" Display the global password policy:\n"
+" ipa pwpolicy-show\n"
+"\n"
+" Display a group password policy:\n"
+" ipa pwpolicy-show localadmins\n"
+"\n"
+" Display the policy that would be applied to a given user:\n"
+" ipa pwpolicy-show --user=tuser1\n"
+"\n"
+" Modify a group password policy:\n"
+" ipa pwpolicy-mod --minclasses=2 localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:72
+msgid ""
+"\n"
+" Class of Service object used for linking policies with groups\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:87
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:170
-msgid "Password Policy"
+#: ipalib/plugins/pwpolicy.py:172
+msgid ""
+"\n"
+" Password Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:201
+msgid "Max failures"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:202
+msgid "Consecutive failures before lockout"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:207
+msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:175
+#: ipalib/plugins/pwpolicy.py:208
+msgid "Period after which failure count will be reset (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:213
+msgid "Lockout duration"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:214
+msgid "Period for which lockout is enforced (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:224
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:176
+#: ipalib/plugins/pwpolicy.py:225
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:181
+#: ipalib/plugins/pwpolicy.py:230
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:182
+#: ipalib/plugins/pwpolicy.py:231
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:187
+#: ipalib/plugins/pwpolicy.py:236
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:188
+#: ipalib/plugins/pwpolicy.py:237
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:193
+#: ipalib/plugins/pwpolicy.py:242
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:194
+#: ipalib/plugins/pwpolicy.py:243
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:199
+#: ipalib/plugins/pwpolicy.py:248
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:200
+#: ipalib/plugins/pwpolicy.py:249
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:206
+#: ipalib/plugins/pwpolicy.py:255
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:256
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:212
+#: ipalib/plugins/pwpolicy.py:261
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:262
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:265
+#: ipalib/plugins/pwpolicy.py:294
+msgid ""
+"\n"
+" Ensure that the maximum lifetime is greater than the minimum.\n"
+" If there is no minimum lifetime set then don't return an error.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:314
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:330
+#: ipalib/plugins/pwpolicy.py:333
+msgid ""
+"\n"
+" Add a new group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:361
+msgid ""
+"\n"
+" Delete a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:380
+msgid ""
+"\n"
+" Modify a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:391
msgid "priority cannot be set on global policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:369
+#: ipalib/plugins/pwpolicy.py:423
+msgid ""
+"\n"
+" Display information about password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:428
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:370
+#: ipalib/plugins/pwpolicy.py:429
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/rolegroup.py:79
-msgid "Role Groups"
+#: ipalib/plugins/pwpolicy.py:452
+msgid ""
+"\n"
+" Search for group password policies.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:84
-msgid "Role-group name"
+#: ipalib/plugins/role.py:20
+msgid ""
+"\n"
+"Roles\n"
+"\n"
+"A role is used for fine-grained delegation. A permission grants the ability\n"
+"to perform given low-level tasks (add a user, modify a group, etc.). A\n"
+"privilege combines one or more permissions into a higher-level abstraction\n"
+"such as useradmin. A useradmin would be able to add, delete and modify "
+"users.\n"
+"\n"
+"Privileges are assigned to Roles.\n"
+"\n"
+"Users, groups, hosts and hostgroups may be members of a Role.\n"
+"\n"
+"Roles can not contain other roles.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new role:\n"
+" ipa role-add --desc=\"Junior-level admin\" junioradmin\n"
+"\n"
+" Add some privileges to this role:\n"
+" ipa role-add-privilege --privileges=addusers junioradmin\n"
+" ipa role-add-privilege --privileges=change_password junioradmin\n"
+" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n"
+"\n"
+" Add a group of users to this role:\n"
+" ipa group-add --desc=\"User admins\" useradmins\n"
+" ipa role-add-member --groups=useradmins junioradmin\n"
+"\n"
+" Display information about a role:\n"
+" ipa role-show junioradmin\n"
+"\n"
+" The result of this is that any users in the group 'useradmins' can\n"
+" add users, reset passwords or add a user to the default IPA user group.\n"
+msgstr ""
+
+#: ipalib/plugins/role.py:62
+msgid ""
+"\n"
+" Role object.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:91
+#: ipalib/plugins/role.py:81
+msgid "Role"
+msgstr ""
+
+#: ipalib/plugins/role.py:86
+msgid "Role name"
+msgstr ""
+
+#: ipalib/plugins/role.py:93
msgid "A description of this role-group"
msgstr ""
-#: ipalib/plugins/rolegroup.py:102
-msgid "Member of task-groups"
+#: ipalib/plugins/role.py:101
+msgid ""
+"\n"
+" Add a new role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:115
-#, python-format
-msgid "Added rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:105
+msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/rolegroup.py:125
-#, python-format
-msgid "Deleted rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:111
+msgid ""
+"\n"
+" Delete a role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:135
-#, python-format
-msgid "Modified rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:115
+msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/rolegroup.py:146
-#, python-format
-msgid "%(count)d rolegroup matched"
-msgid_plural "%(count)d rolegroups matched"
+#: ipalib/plugins/role.py:121
+msgid ""
+"\n"
+" Modify a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:125
+msgid "Modified role \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/role.py:131
+msgid ""
+"\n"
+" Search for roles.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:135
+msgid "%(count)d role matched"
+msgid_plural "%(count)d roles matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:198
+#: ipalib/plugins/role.py:143
+msgid ""
+"\n"
+" Display information about a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:151
+msgid ""
+"\n"
+" Add members to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:159
+msgid ""
+"\n"
+" Remove members from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:167
+msgid ""
+"\n"
+" Add privileges to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:183
+msgid "Number of privileges added"
+msgstr ""
+
+#: ipalib/plugins/role.py:191
+msgid ""
+"\n"
+" Remove privileges from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:207
+msgid "Number of privileges removed"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:19
+msgid ""
+"\n"
+"Self-service Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"A Self-service permission defines what an object can change in its own "
+"entry.\n"
+"\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a self-service rule to allow users to manage their address:\n"
+" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st "
+"\"Users manage their own address\"\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add telephoneNumber to the list:\n"
+" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber "
+"\"Users manage their own address\"\n"
+"\n"
+" Display our updated rule:\n"
+" ipa selfservice-show \"Users manage their own address\"\n"
+"\n"
+" Delete a rule:\n"
+" ipa selfservice-del \"Users manage their own address\"\n"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:56
+msgid ""
+"\n"
+" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a self-service ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:64
+msgid "Self-service permission '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:68
+msgid ""
+"\n"
+" Selfservice object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:75
+msgid "Self Service Permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
+msgid "Self-service name"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:114
+msgid ""
+"\n"
+" Add a new self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:118
+msgid "Added selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:137
+msgid ""
+"\n"
+" Delete a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:142
+msgid "Deleted selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:158
+msgid ""
+"\n"
+" Modify a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:162
+msgid "Modified selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:181
+msgid ""
+"\n"
+" Search for a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:185
+msgid "%(count)d selfservice matched"
+msgid_plural "%(count)d selfservices matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/selfservice.py:207
+msgid ""
+"\n"
+" Display information about a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:21
+msgid ""
+"\n"
+"Services\n"
+"\n"
+"A IPA service represents a service that runs on a host. The IPA service\n"
+"record can store a Kerberos principal, an SSL certificate, or both.\n"
+"\n"
+"An IPA service can be managed directly from a machine, provided that\n"
+"machine has been given the correct permission. This is true even for\n"
+"machines other than the one the service is associated with. For example,\n"
+"requesting an SSL certificate using the host service principal credentials\n"
+"of the host. To manage a service using host credentials you need to\n"
+"kinit as the host:\n"
+"\n"
+" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n"
+"\n"
+"Adding an IPA service allows the associated service to request an SSL\n"
+"certificate or keytab, but this is performed as a separate step; they\n"
+"are not produced as a result of adding the service.\n"
+"\n"
+"Only the public aspect of a certificate is stored in a service record;\n"
+"the private key is not stored.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new IPA service:\n"
+" ipa service-add HTTP/web.example.com\n"
+"\n"
+" Allow a host to manage an IPA service certificate:\n"
+" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n"
+" ipa role-add-member --hosts=web.example.com certadmin\n"
+"\n"
+" Delete an IPA service:\n"
+" ipa service-del HTTP/web.example.com\n"
+"\n"
+" Find all IPA services associated with a host:\n"
+" ipa service-find web.example.com\n"
+"\n"
+" Find all HTTP services:\n"
+" ipa service-find HTTP\n"
+"\n"
+" Disable the service Kerberos key and SSL certificate:\n"
+" ipa service-disable HTTP/web.example.com\n"
+"\n"
+" Request a certificate for an IPA service:\n"
+" ipa cert-request --principal=HTTP/web.example.com example.csr\n"
+"\n"
+" Generate and retrieve a keytab for an IPA service:\n"
+" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/"
+"httpd.keytab\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/service.py:162
+msgid ""
+"\n"
+" For now just verify that it is properly base64-encoded.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:175
+msgid ""
+"\n"
+" Set individual attributes from some values from a certificate.\n"
+"\n"
+" entry_attrs is a dict of an entry\n"
+"\n"
+" returns nothing\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:199
+msgid ""
+"\n"
+" Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:226
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:221
+#: ipalib/plugins/service.py:242
+msgid ""
+"\n"
+" Add a new IPA new service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:245
+msgid "Added service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/service.py:251
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:292
-#, python-format
+#: ipalib/plugins/service.py:284
+msgid ""
+"\n"
+" Delete an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:287
+msgid "Deleted service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/service.py:321
+msgid ""
+"\n"
+" Modify an existing IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:324
msgid "Modified service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:323
-#, python-format
+#: ipalib/plugins/service.py:356
+msgid ""
+"\n"
+" Search for IPA services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:359
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:409
-msgid "Service principal has no kerberos key"
+#: ipalib/plugins/service.py:394
+msgid ""
+"\n"
+" Display information about an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:432
+msgid ""
+"\n"
+" Add hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:442
+msgid ""
+"\n"
+" Remove hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:452
+msgid ""
+"\n"
+" Disable the Kerberos key and SSL certificate of a service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:456
+msgid "Disabled service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:19
+msgid ""
+"\n"
+"Sudo Commands\n"
+"\n"
+"Commands used as building blocks for sudo\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a new command\n"
+" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n"
+"\n"
+" Remove a command\n"
+" ipa sudocmd-del /usr/bin/less\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:46
+msgid ""
+"\n"
+" Sudo Command object.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmd.py:60
-msgid "SudoCmds"
+#: ipalib/plugins/sudocmd.py:64
+msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:65
+#: ipalib/plugins/sudocmd.py:69
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:72
+#: ipalib/plugins/sudocmd.py:75
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:99
-#, python-format
+#: ipalib/plugins/sudocmd.py:98
+msgid ""
+"\n"
+" Create new sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:102
msgid "Added sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:108
-#, python-format
+#: ipalib/plugins/sudocmd.py:107
+msgid ""
+"\n"
+" Delete sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:111
msgid "Deleted sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:117
-#, python-format
+#: ipalib/plugins/sudocmd.py:116
+msgid ""
+"\n"
+" Modify command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:120
msgid "Modified sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:127
-#, python-format
+#: ipalib/plugins/sudocmd.py:125
+msgid ""
+"\n"
+" Search for commands.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:129
msgid "%(count)d sudo command matched"
msgid_plural "%(count)d sudo command matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmdgroup.py:66 ipalib/plugins/sudocmdgroup.py:85
-#: ipalib/plugins/sudorule.py:81 ipalib/plugins/sudorule.py:85
-msgid "Sudo Command Groups"
+#: ipalib/plugins/sudocmd.py:136
+msgid ""
+"\n"
+" Display sudo command.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:71
+#: ipalib/plugins/sudocmdgroup.py:19
+msgid ""
+"\n"
+"Groups of Sudo commands\n"
+"\n"
+"Manage groups of Sudo commands.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new Sudo command group:\n"
+" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
+"\n"
+" Remove a Sudo command group:\n"
+" ipa sudocmdgroup-del admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim "
+"admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
+"\n"
+" Show a Sudo command group:\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:50
+msgid ""
+"\n"
+" Sudo Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:70
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:81
-msgid "Commands"
+#: ipalib/plugins/sudocmdgroup.py:93
+msgid ""
+"\n"
+" Create new sudo command group.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:98
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:97
msgid "Added sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:108
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:103
+msgid ""
+"\n"
+" Delete sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:107
msgid "Deleted sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:118
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:113
+msgid ""
+"\n"
+" Modify group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:117
msgid "Modified sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:129
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:123
+msgid ""
+"\n"
+" Search for sudo command groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:127
msgid "%(count)d sudo command group matched"
msgid_plural "%(count)d sudo command groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudorule.py:48
-msgid "SudoRule"
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid ""
+"\n"
+" Display sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:144
+msgid ""
+"\n"
+" Add members to sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:152
+msgid ""
+"\n"
+" Remove members from sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:19
+msgid ""
+"\n"
+"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
+"give certain users (or groups of users) the ability to run some (or all)\n"
+"commands as root or another user while providing an audit trail of the\n"
+"commands and their arguments.\n"
+"\n"
+"FreeIPA provides a designated binddn to use with Sudo located at:\n"
+"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
+"\n"
+"To enable the binddn run the following command to set the password:\n"
+"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -"
+"ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,"
+"dc=com\n"
+"\n"
+"For more information, see the FreeIPA Documentation to Sudo.\n"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:44
+msgid ""
+"\n"
+" Sudo Rule management\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:68
+msgid "Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:98
+msgid "Command category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:99
+msgid "Command category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:104
+msgid "Run As User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/sudorule.py:105
+msgid "Run As User category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:110
+msgid "Run As Group category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:111
+msgid "Run As Group category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:131
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:77
+#: ipalib/plugins/sudorule.py:135
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:109
-#, python-format
+#: ipalib/plugins/sudorule.py:147
+msgid "Run As User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:151
+msgid "Run As Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:156
+msgid "External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:157
+msgid "External User the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:161
+msgid "RunAs External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:162
+msgid "External User the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:166
+msgid "RunAs External Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:167
+msgid "External Group the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:175
+msgid ""
+"\n"
+" Create new Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "Added sudo rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/taskgroup.py:51
-msgid "Task Groups"
+#: ipalib/plugins/sudorule.py:189
+msgid ""
+"\n"
+" Delete Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:197
+msgid ""
+"\n"
+" Modify Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:56
-msgid "Task-group name"
+#: ipalib/plugins/sudorule.py:205
+msgid ""
+"\n"
+" Search for Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:63
-msgid "Task-group description"
+#: ipalib/plugins/sudorule.py:213
+msgid ""
+"\n"
+" Display Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:74
-msgid "Member role-groups"
+#: ipalib/plugins/sudorule.py:221
+msgid ""
+"\n"
+" Enable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:87
-#, python-format
-msgid "Added taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:247
+msgid ""
+"\n"
+" Disable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:97
-#, python-format
-msgid "Deleted taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
+msgid ""
+"\n"
+" Add commands and sudo command groups affected by Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:107
-#, python-format
-msgid "Modified taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
+msgid ""
+"\n"
+" Remove commands and sudo command groups affected by Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:118
-#, python-format
-msgid "%(count)d taskgroup matched"
-msgid_plural "%(count)d taskgroups matched"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/sudorule.py:313
+msgid ""
+"\n"
+" Add users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:349
+msgid ""
+"\n"
+" Remove users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:383
+msgid ""
+"\n"
+" Add hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:419
+msgid ""
+"\n"
+" Remove hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:453
+msgid ""
+"\n"
+" Add user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:489
+msgid ""
+"\n"
+" Remove user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:523
+msgid ""
+"\n"
+" Add group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:559
+msgid ""
+"\n"
+" Remove group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:593
+msgid ""
+"\n"
+" Add an option to the Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
+msgid "Sudo Option"
+msgstr ""
-#: ipalib/plugins/user.py:84
+#: ipalib/plugins/sudorule.py:635
+msgid ""
+"\n"
+" Remove an option from Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:20
+msgid ""
+"\n"
+"Users\n"
+"\n"
+"Manage user entries. All users are POSIX users.\n"
+"\n"
+"IPA supports a wide range of username formats, but you need to be aware of "
+"any\n"
+"restrictions that may apply to your particular environment. For example,\n"
+"usernames that start with a digit or usernames that exceed a certain length\n"
+"may cause problems for some UNIX systems.\n"
+"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n"
+"\n"
+"Disabling a user account prevents that user from obtaining new Kerberos\n"
+"credentials. It does not invalidate any credentials that have already\n"
+"been issued.\n"
+"\n"
+"Password management is not a part of this module. For more information\n"
+"about this topic please see: ipa help passwd\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1\n"
+"\n"
+" Find all users whose entries include the string \"Tim\":\n"
+" ipa user-find Tim\n"
+"\n"
+" Find all users with \"Tim\" as the first name:\n"
+" ipa user-find --first=Tim\n"
+"\n"
+" Disable a user account:\n"
+" ipa user-disable tuser1\n"
+"\n"
+" Enable a user account:\n"
+" ipa user-enable tuser1\n"
+"\n"
+" Delete a user:\n"
+" ipa user-del tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/user.py:79
+msgid ""
+"\n"
+" User object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:116
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:91
+#: ipalib/plugins/user.py:123
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:95
+#: ipalib/plugins/user.py:127
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:103
+#: ipalib/plugins/user.py:130
+msgid "Full name"
+msgstr ""
+
+#: ipalib/plugins/user.py:135
+msgid "Display name"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "Initials"
+msgstr ""
+
+#: ipalib/plugins/user.py:146
+msgid "Home directory"
+msgstr ""
+
+#: ipalib/plugins/user.py:150
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:109
+#: ipalib/plugins/user.py:156
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:114
+#: ipalib/plugins/user.py:161
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:120
+#: ipalib/plugins/user.py:168
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:124
-msgid "Password"
-msgstr ""
-
-#: ipalib/plugins/user.py:125
-msgid "Set the user password"
+#: ipalib/plugins/user.py:173
+msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:132
+#: ipalib/plugins/user.py:180
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:133
+#: ipalib/plugins/user.py:181
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:139
-msgid "Street address"
+#: ipalib/plugins/user.py:188
+msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:142
-msgid "Groups"
+#: ipalib/plugins/user.py:193
+msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:146
-msgid "Netgroups"
+#: ipalib/plugins/user.py:197
+msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:150
-msgid "Rolegroups"
+#: ipalib/plugins/user.py:201
+msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:154
-msgid "Taskgroups"
+#: ipalib/plugins/user.py:204
+msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:159
+#: ipalib/plugins/user.py:208
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:211
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:163
+#: ipalib/plugins/user.py:214
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:166
+#: ipalib/plugins/user.py:218
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:177
-#, python-format
+#: ipalib/plugins/user.py:222
+msgid "Org. Unit"
+msgstr ""
+
+#: ipalib/plugins/user.py:225
+msgid "Job Title"
+msgstr ""
+
+#: ipalib/plugins/user.py:228
+msgid "Manager"
+msgstr ""
+
+#: ipalib/plugins/user.py:231
+msgid "Car License"
+msgstr ""
+
+#: ipalib/plugins/user.py:234
+msgid "Account disabled"
+msgstr ""
+
+#: ipalib/plugins/user.py:258
+msgid ""
+"\n"
+" Given a userid verify the user's existence and return the dn.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:276
+msgid "manager %(manager)s not found"
+msgstr ""
+
+#: ipalib/plugins/user.py:281
+msgid ""
+"\n"
+" Convert a manager dn into a userid\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:295
+msgid ""
+"\n"
+" Add a new user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:298
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:226
-#, python-format
+#: ipalib/plugins/user.py:303
+msgid "Don't create user private group"
+msgstr ""
+
+#: ipalib/plugins/user.py:333
+msgid "can be at most %(len)d characters"
+msgstr ""
+
+#: ipalib/plugins/user.py:400
+msgid ""
+"\n"
+" Delete a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:404
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:240
-#, python-format
+#: ipalib/plugins/user.py:413
+msgid ""
+"\n"
+" Modify a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:417
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:252
+#: ipalib/plugins/user.py:437
+msgid ""
+"\n"
+" Search for users.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:444
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:253
+#: ipalib/plugins/user.py:445
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:263
-#, python-format
+#: ipalib/plugins/user.py:463
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:283
-#, python-format
+#: ipalib/plugins/user.py:471
+msgid ""
+"\n"
+" Display information about a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:484
+msgid ""
+"\n"
+" Disable a user account.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:489
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:309
-#, python-format
+#: ipalib/plugins/user.py:507
+msgid ""
+"\n"
+" Enable a user account.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:512
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipaserver/install/certs.py:599 ipaserver/plugins/dogtag.py:1313
-#: ipaserver/plugins/dogtag.py:1398 ipaserver/plugins/dogtag.py:1463
-#: ipaserver/plugins/dogtag.py:1543 ipaserver/plugins/dogtag.py:1602
+#: ipalib/plugins/user.py:529
+msgid ""
+"\n"
+" Unlock a user account\n"
+"\n"
+" An account may become locked if the password is entered incorrectly too\n"
+" many times within a specific time period as controlled by password\n"
+" policy. A locked account is a temporary condition and may be unlocked "
+"by\n"
+" an administrator.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:538
+msgid "Unlocked account \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/virtual.py:20
+msgid ""
+"\n"
+"Base classes for non-LDAP backend plugins.\n"
+msgstr ""
+
+#: ipalib/plugins/virtual.py:28
+msgid ""
+"\n"
+" A command that doesn't use the LDAP backend but wants to use the\n"
+" LDAP access control system to make authorization decisions.\n"
+"\n"
+" The class variable operation is the commonName attribute of the\n"
+" entry to be tested against.\n"
+"\n"
+" In advance, you need to create an entry of the form:\n"
+" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
+"\n"
+" Ex.\n"
+" cn=request certificate, cn=virtual operations,cn=etc, dc=example, "
+"dc=com\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/virtual.py:44
+msgid ""
+"\n"
+" Perform an LDAP query to determine authorization.\n"
+"\n"
+" This should be executed before any actual work is done.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/xmlclient.py:21
+msgid ""
+"\n"
+"XML-RPC client plugin.\n"
+msgstr ""
+
+#: ipalib/cli.py:581
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:590
+msgid "Cancelled."
+msgstr ""
+
+#: ipalib/cli.py:819
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1117
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:300
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:318
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:334
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:356
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:372
+#, python-format
+msgid "unknown command %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:389 ipalib/errors.py:414
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:405
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:423
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:439
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:465
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:482
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:498
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:514
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:530
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:546
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:562
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:578
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:597
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:641
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:661
+#, python-format
+msgid "command %(name)r takes at most %(count)d argument"
+msgid_plural "command %(name)r takes at most %(count)d arguments"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/errors.py:691
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:707
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:723 ipalib/errors.py:739
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:755
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:764
+msgid "Passwords do not match"
+msgstr ""
+
+#: ipalib/errors.py:773
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:782
+msgid "Client is not configured. Run ipa-client-install."
+msgstr ""
+
+#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
+#: ipalib/errors.py:1424 ipalib/errors.py:1441
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:826
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:842
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:858
+#, python-format
+msgid ""
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:874
+msgid ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr ""
+
+#: ipalib/errors.py:890
+msgid "This command requires root access"
+msgstr ""
+
+#: ipalib/errors.py:906
+msgid "This is already a posix group"
+msgstr ""
+
+#: ipalib/errors.py:922
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:938
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:954
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:970
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:986
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1002
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1018
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1034
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1066
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1082
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1098
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1113
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1128
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1160
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1176
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1192
+#, python-format
+msgid ""
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1216
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1240
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1256
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1272
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1288
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1303
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1318
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1334
+#, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr ""
+
+#: ipalib/errors.py:1350
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1366
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1391
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1407
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1458
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1474
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:398
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:850
+msgid ""
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:856
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:985
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:296
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:299
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:901
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1002
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1054
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1064
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1074
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1097
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1107
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1174
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1192
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1208
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1218
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1228
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1246
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1277
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1287
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1297
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1315
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1355
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/util.py:200
+#, python-format
+msgid "Permission denied: %(file)s"
+msgstr ""
+
+#: ipalib/x509.py:174
+#, python-format
+msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
+msgstr ""
+
+#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
+#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
+#: ipaserver/plugins/dogtag.py:1600
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -1994,27 +7227,27 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
-#: ipaserver/plugins/selfsign.py:98
+#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
"Request subject \"%(request_subject)s\" does not match the form "
"\"%(subject_base)s\""
msgstr ""
-#: ipaserver/plugins/selfsign.py:103
+#: ipaserver/plugins/selfsign.py:104
#, python-format
msgid "unable to decode csr: %s"
msgstr ""
-#: ipaserver/plugins/selfsign.py:124 ipaserver/plugins/selfsign.py:139
+#: ipaserver/plugins/selfsign.py:125 ipaserver/plugins/selfsign.py:140
msgid "file operation"
msgstr ""
-#: ipaserver/plugins/selfsign.py:153
+#: ipaserver/plugins/selfsign.py:154
msgid "cannot obtain next serial number"
msgstr ""
-#: ipaserver/plugins/selfsign.py:188
+#: ipaserver/plugins/selfsign.py:189
msgid "certutil failure"
msgstr ""
@@ -2028,543 +7261,573 @@ msgstr ""
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:75
+#: ipa-client/config.c:68
+#, c-format
+msgid "out of memory\n"
+msgstr ""
+
+#: ipa-client/config.c:79
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:138 ipa-client/ipa-getkeytab.c:838
+#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
+#: ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:146
+#: ipa-client/ipa-getkeytab.c:155
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:164 ipa-client/ipa-getkeytab.c:179
+#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:194
+#: ipa-client/ipa-getkeytab.c:203
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:209
+#: ipa-client/ipa-getkeytab.c:218
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:235
+#: ipa-client/ipa-getkeytab.c:245
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:297
+#: ipa-client/ipa-getkeytab.c:307
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:310 ipa-client/ipa-getkeytab.c:327
-#: ipa-client/ipa-getkeytab.c:335 ipa-client/ipa-getkeytab.c:372
+#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
+#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:317 ipa-client/ipa-getkeytab.c:350
+#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
+#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
+#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
+#: ipa-client/ipa-join.c:819
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:361
+#: ipa-client/ipa-getkeytab.c:371
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:481
+#: ipa-client/ipa-getkeytab.c:492
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:496
+#: ipa-client/ipa-getkeytab.c:507
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:534
+#: ipa-client/ipa-getkeytab.c:545
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:541
+#: ipa-client/ipa-getkeytab.c:552
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:565
+#: ipa-client/ipa-getkeytab.c:576
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:572
+#: ipa-client/ipa-getkeytab.c:583
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:579
+#: ipa-client/ipa-getkeytab.c:596
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:589
+#: ipa-client/ipa-getkeytab.c:606
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:605 ipa-client/ipa-getkeytab.c:618
-#: ipa-client/ipa-getkeytab.c:625 ipa-client/ipa-getkeytab.c:632
+#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
+#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:638 ipa-client/ipa-getkeytab.c:648
+#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655
+#: ipa-client/ipa-getkeytab.c:672
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:674
+#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:715
+#: ipa-client/ipa-getkeytab.c:736
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:721
+#: ipa-client/ipa-getkeytab.c:742
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781
+#: ipa-client/ipa-getkeytab.c:778
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782
+#: ipa-client/ipa-getkeytab.c:779
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:189
+#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:787
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:788
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:790
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:794
+#: ipa-client/ipa-getkeytab.c:791
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:796
+#: ipa-client/ipa-getkeytab.c:793
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:825 ipa-client/ipa-rmkeytab.c:207
-#, c-format
-msgid "Kerberos context initialization failed\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:837
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:845
+#: ipa-client/ipa-getkeytab.c:841
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:864
+#: ipa-client/ipa-getkeytab.c:860
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:877
+#: ipa-client/ipa-getkeytab.c:873
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. -P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:889
+#: ipa-client/ipa-getkeytab.c:885
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:897
+#: ipa-client/ipa-getkeytab.c:893
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:905
+#: ipa-client/ipa-getkeytab.c:901
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:913
+#: ipa-client/ipa-getkeytab.c:909
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:920
+#: ipa-client/ipa-getkeytab.c:916
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:939
+#: ipa-client/ipa-getkeytab.c:935
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:948
+#: ipa-client/ipa-getkeytab.c:944
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:954
+#: ipa-client/ipa-getkeytab.c:950
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:67
+#: ipa-client/ipa-join.c:65
#, c-format
msgid "No permission to join this host to the IPA domain.\n"
msgstr ""
-#: ipa-client/ipa-join.c:104 ipa-client/ipa-join.c:116
+#: ipa-client/ipa-join.c:94 ipa-client/ipa-join.c:106
#, c-format
msgid "No write permissions on keytab file '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:121
+#: ipa-client/ipa-join.c:111
#, c-format
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:200
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#, c-format
+msgid "Out of memory!"
+msgstr ""
+
+#: ipa-client/ipa-join.c:204
+#, c-format
+msgid "Unable to initialize connection to ldap server: %s"
+msgstr ""
+
+#: ipa-client/ipa-join.c:210
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:206
+#: ipa-client/ipa-join.c:216
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:236
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:249
+#: ipa-client/ipa-join.c:269
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:259 ipa-client/ipa-join.c:311
+#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:302
+#: ipa-client/ipa-join.c:322
#, c-format
msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:368
+#: ipa-client/ipa-join.c:390
#, c-format
msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:377
+#: ipa-client/ipa-join.c:399
#, c-format
msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:385
+#: ipa-client/ipa-join.c:407
#, c-format
msgid "Unable to make an LDAP connection to %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:394
+#: ipa-client/ipa-join.c:432
#, c-format
msgid "Searching with %s in %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:400
+#: ipa-client/ipa-join.c:438
#, c-format
msgid "ldap_search_ext_s: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:408
+#: ipa-client/ipa-join.c:446
#, c-format
msgid "Unable to find host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:415
+#: ipa-client/ipa-join.c:453
#, c-format
msgid "Unable to get binddn for host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:428
+#: ipa-client/ipa-join.c:466
#, c-format
msgid "Host already has principal, trying bind anyway\n"
msgstr ""
-#: ipa-client/ipa-join.c:442 ipa-client/ipa-join.c:579
+#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:484
#, c-format
msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:457
+#: ipa-client/ipa-join.c:495
#, c-format
msgid "principal not found in host entry\n"
msgstr ""
-#: ipa-client/ipa-join.c:564
+#: ipa-client/ipa-join.c:618
#, c-format
msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:646 ipa-client/ipa-join.c:823
+#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:662 ipa-client/ipa-join.c:838
+#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:671 ipa-client/ipa-join.c:848
+#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:679
+#: ipa-client/ipa-join.c:732
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:689
+#: ipa-client/ipa-join.c:741
+#, c-format
+msgid "Error getting default Kerberos realm: %s.\n"
+msgstr ""
+
+#: ipa-client/ipa-join.c:759
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:707
+#: ipa-client/ipa-join.c:777
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:718
+#: ipa-client/ipa-join.c:788
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:726
+#: ipa-client/ipa-join.c:796
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:769
+#: ipa-client/ipa-join.c:846
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:772
+#: ipa-client/ipa-join.c:849
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:854
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:855
+#: ipa-client/ipa-join.c:932
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:863
+#: ipa-client/ipa-join.c:940
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not "
"provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:877
+#: ipa-client/ipa-join.c:954
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:906
+#: ipa-client/ipa-join.c:983
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:909
+#: ipa-client/ipa-join.c:986
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:912
+#: ipa-client/ipa-join.c:989
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:924
+#: ipa-client/ipa-join.c:1001
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:930
+#: ipa-client/ipa-join.c:1007
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "Print the raw XML-RPC output"
+#: ipa-client/ipa-join.c:1042
+msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "XML-RPC debugging Output"
+#: ipa-client/ipa-join.c:1044
+msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:967
-msgid "Unenroll this host"
-msgstr ""
-
-#: ipa-client/ipa-join.c:967
+#: ipa-client/ipa-join.c:1046
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Use this hostname instead of the node name"
+#: ipa-client/ipa-join.c:1048
+msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Host Name"
+#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:971
+#: ipa-client/ipa-join.c:1050
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:971
-msgid "IPA Server Name"
+#: ipa-client/ipa-join.c:1052
+msgid "Specifies where to store keytab information."
+msgstr ""
+
+#: ipa-client/ipa-join.c:1052
+msgid "filename"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1054
+msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:44
+#: ipa-client/ipa-join.c:1054
+msgid "password"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:46
+#: ipa-client/ipa-rmkeytab.c:45
#, c-format
msgid "krb5_parse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:56
+#: ipa-client/ipa-rmkeytab.c:55
#, c-format
msgid "Removing principal %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:69
+#: ipa-client/ipa-rmkeytab.c:68
#, c-format
msgid "Failed to open keytab\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:73
+#: ipa-client/ipa-rmkeytab.c:72
#, c-format
msgid "principal not found\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:75
+#: ipa-client/ipa-rmkeytab.c:74
#, c-format
msgid "krb5_kt_get_entry %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:83
+#: ipa-client/ipa-rmkeytab.c:82
#, c-format
msgid "Unable to remove entry\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:85
+#: ipa-client/ipa-rmkeytab.c:84
#, c-format
msgid "kvno %d\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:86
+#: ipa-client/ipa-rmkeytab.c:85
#, c-format
msgid "krb5_kt_remove_entry %d: %s\n"
msgstr ""
@@ -2579,33 +7842,38 @@ msgstr ""
msgid "krb5_unparse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:143
+#, c-format
+msgid "realm not found\n"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Print debugging information"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Debugging output"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Remove all principals in this realm"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Realm name"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:241
+#: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237
#, c-format
-msgid "Failed to open keytab '%s'\n"
+msgid "Failed to open keytab '%s': %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:255
+#: ipa-client/ipa-rmkeytab.c:253
#, c-format
msgid "Closing keytab failed\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:257
+#: ipa-client/ipa-rmkeytab.c:255
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
diff --git a/install/po/es.po b/install/po/es.po
index 3244fc517..4d634e32e 100644
--- a/install/po/es.po
+++ b/install/po/es.po
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: freeipa.master.ipa\n"
"Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/"
"newticket\n"
-"POT-Creation-Date: 2010-10-13 14:22-0400\n"
+"POT-Creation-Date: 2011-06-06 13:27-0400\n"
"PO-Revision-Date: \n"
"Last-Translator: Héctor Daniel Cabrera <logan@fedoraproject.org>\n"
"Language-Team: Fedora Spanisg <trans-es@lists.fedoraproject.org. >\n"
@@ -21,394 +21,177 @@ msgstr ""
"X-Poedit-Country: ARGENTINA\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ipalib/cli.py:507
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr "ngrese %(label)s nuevamente para su verificación: "
-
-#: ipalib/cli.py:511 ipa-client/ipa-getkeytab.c:730
-#, c-format
-msgid "Passwords do not match!"
-msgstr "¡Las contraseñas no coinciden!"
-
-#: ipalib/cli.py:516
-msgid "Cancelled."
-msgstr "Cancelado."
-
-#: ipalib/errors.py:297
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+#: ipalib/plugins/__init__.py:20
+msgid ""
+"\n"
+"Sub-package containing all core plugins.\n"
msgstr ""
-"el cliente %(cver)s no es compatible con el servidor %(sver)s en %(server)r"
-
-#: ipalib/errors.py:315
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr "error %(code)d desconocido de %(server)s: %(error)s"
-
-#: ipalib/errors.py:331
-msgid "an internal error has occurred"
-msgstr "ha ocurrido un error interno"
-
-#: ipalib/errors.py:353
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr "ha ocurrido un error interno en el servidor en %(server)r"
-
-#: ipalib/errors.py:369
-#, python-format
-msgid "unknown command %(name)r"
-msgstr "comando desconocido %(name)r"
-
-#: ipalib/errors.py:386 ipalib/errors.py:411
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr "error en el servidor %(server)r: %(error)s"
-
-#: ipalib/errors.py:402
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
-msgstr "no es posible conectar con %(uri)r: %(error)s"
-
-#: ipalib/errors.py:420
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr "Petición JSON-RPC no válida: %(error)s"
-#: ipalib/errors.py:448
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr "Error de kerberos: %(major)s/%(minor)s"
-
-#: ipalib/errors.py:465
-msgid "did not receive Kerberos credentials"
-msgstr "no se ha recibido ninguna credencial Kerberos"
-
-#: ipalib/errors.py:481
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
+#: ipalib/plugins/aci.py:20
+msgid ""
+"\n"
+"Directory Server Access Control Instructions (ACIs)\n"
+"\n"
+"ACIs are used to allow or deny access to information. This module is\n"
+"currently designed to allow, not deny, access.\n"
+"\n"
+"The aci commands are designed to grant permissions that allow updating\n"
+"existing entries or adding or deleting new ones. The goal of the ACIs\n"
+"that ship with IPA is to provide a set of low-level permissions that\n"
+"grant access to special groups called taskgroups. These low-level\n"
+"permissions can be combined into roles that grant broader access. These\n"
+"roles are another type of group, roles.\n"
+"\n"
+"For example, if you have taskgroups that allow adding and modifying users "
+"you\n"
+"could create a role, useradmin. You would assign users to the useradmin\n"
+"role to allow them to do the operations defined by the taskgroups.\n"
+"\n"
+"You can create ACIs that delegate permission so users in group A can write\n"
+"attributes on group B.\n"
+"\n"
+"The type option is a map that applies to all entries in the users, groups "
+"or\n"
+"host location. It is primarily designed to be used when granting add\n"
+"permissions (to write new entries).\n"
+"\n"
+"An ACI consists of three parts:\n"
+"1. target\n"
+"2. permissions\n"
+"3. bind rules\n"
+"\n"
+"The target is a set of rules that define which LDAP objects are being\n"
+"targeted. This can include a list of attributes, an area of that LDAP\n"
+"tree or an LDAP filter.\n"
+"\n"
+"The targets include:\n"
+"- attrs: list of attributes affected\n"
+"- type: an object type (user, group, host, service, etc)\n"
+"- memberof: members of a group\n"
+"- targetgroup: grant access to modify a specific group. This is primarily\n"
+" designed to enable users to add or remove members of a specific group.\n"
+"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
+"- subtree: Used to apply a rule across an entire set of objects. For "
+"example,\n"
+" to allow adding users you need to grant \"add\" permission to the subtree\n"
+" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
+" is a fail-safe for objects that may not be covered by the type option.\n"
+"\n"
+"The permissions define what the the ACI is allowed to do, and are one or\n"
+"more of:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
+"allows this to be any valid LDAP entry but we encourage the use of\n"
+"taskgroups so that the rights can be easily shared through roles.\n"
+"\n"
+"For a more thorough description of access controls see\n"
+"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control."
+"html\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
+"demonstrate how the various options work but this is done via the "
+"permission\n"
+"command-line now (see last example).\n"
+"\n"
+" Add an ACI so that the group \"secretaries\" can update the address on any "
+"user:\n"
+" ipa group-add --desc=\"Office secretaries\" secretaries\n"
+" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries "
+"--permissions=write --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Show the new ACI:\n"
+" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Add an ACI that allows members of the \"addusers\" permission to add new "
+"users:\n"
+" ipa aci-add --type=user --permission=addusers --permissions=add --"
+"prefix=none \"Add new users\"\n"
+"\n"
+" Add an ACI that allows members of the editors manage members of the admins "
+"group:\n"
+" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --"
+"group=editors --prefix=none \"Editors manage admins\"\n"
+"\n"
+" Add an ACI that allows members of the admin group to manage the street and "
+"zip code of those in the editors group:\n"
+" ipa aci-add --permissions=write --memberof=editors --group=admins --"
+"attrs=street,postalcode --prefix=none \"admins edit the address of editors"
+"\"\n"
+"\n"
+" Add an ACI that allows the admins group manage the street and zipcode of "
+"those who work for the boss:\n"
+" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode "
+"--filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --"
+"prefix=none \"Edit the address of those who work for the boss\"\n"
+"\n"
+" Add an entirely new kind of record to IPA that isn't covered by any of the "
+"--type options, creating a permission:\n"
+" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,"
+"cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
+"\n"
+"\n"
+"The show command shows the raw 389-ds ACI.\n"
+"\n"
+"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
+"must include all existing attributes as well. When doing an aci-mod the\n"
+"targetattr REPLACES the current attributes, it does not add to them.\n"
+"\n"
msgstr ""
-"El servicio %(service)r no se ha encontrado en la base de datos Kerberos"
-
-#: ipalib/errors.py:497
-msgid "No credentials cache found"
-msgstr "No se han encontrado credenciales de caché"
-
-#: ipalib/errors.py:513
-msgid "Ticket expired"
-msgstr "El ticket ha expirado"
-
-#: ipalib/errors.py:529
-msgid "Credentials cache permissions incorrect"
-msgstr "Los permisos de credenciales de caché son incorrectos"
-
-#: ipalib/errors.py:545
-msgid "Bad format in credentials cache"
-msgstr "Las credenciales de caché están mal formadas"
-
-#: ipalib/errors.py:561
-msgid "Cannot resolve KDC for requested realm"
-msgstr "No es posible resolver KDC para el reinado solicitado"
-
-#: ipalib/errors.py:580
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr "Acceso insuficiente: %(info)s"
-
-#: ipalib/errors.py:624
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr "el comando %(name)r no tiene argumentos"
-
-#: ipalib/errors.py:644
-#, python-format
-msgid "command %(name)r takes at most %(count)d argument"
-msgid_plural "command %(name)r takes at most %(count)d arguments"
-msgstr[0] "el comando %(name)r lleva al menos %(count)d argumento"
-msgstr[1] "el comando %(name)r lleva al menos %(count)d argumentos"
-
-#: ipalib/errors.py:674
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr "superponiendo argumentos y opciones: %(names)r"
-
-#: ipalib/errors.py:690
-#, python-format
-msgid "%(name)r is required"
-msgstr "%(name)r es necesario"
-
-#: ipalib/errors.py:706 ipalib/errors.py:722
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr "%(name)r inválido: %(error)s"
-#: ipalib/errors.py:738
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr "api no posee tal nombre de espacio: %(name)r"
-
-#: ipalib/errors.py:747
-msgid "Passwords do not match"
-msgstr "Las contraseñas no coinciden"
-
-#: ipalib/errors.py:755
-msgid "Command not implemented"
-msgstr "El comando no se ha implementado"
-
-#: ipalib/errors.py:783 ipalib/errors.py:1023 ipalib/errors.py:1254
-#, python-format
-msgid "%(reason)s"
-msgstr "%(reason)s"
-
-#: ipalib/errors.py:799
-msgid "This entry already exists"
-msgstr "Esta entrada ya existe"
-
-#: ipalib/errors.py:815
-msgid "You must enroll a host in order to create a host service"
-msgstr "Debe registrar un equipo para poder generar un servicio de equipo"
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
+msgstr "Una lista de valores ACI"
-#: ipalib/errors.py:831
-#, python-format
+#: ipalib/plugins/aci.py:172
msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+"\n"
+" Given a name and a prefix construct an ACI name.\n"
+" "
msgstr ""
-"El servicio principal no tiene la forma de servicio/nombre de equipo "
-"totalmente calificado: %(reason)s"
-#: ipalib/errors.py:847
+#: ipalib/plugins/aci.py:181
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr ""
-"El reinado para el principal no coincide con el reinado para este servidor "
-"IPA"
-
-#: ipalib/errors.py:863
-msgid "This command requires root access"
-msgstr "Este comando necesita acceso de usuario root"
-
-#: ipalib/errors.py:879
-msgid "This is already a posix group"
-msgstr "Este ya es un grupo posix"
-
-#: ipalib/errors.py:895
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr "El principal no tiene la forma usuario@REINADO: %(principal)r"
-
-#: ipalib/errors.py:911
-msgid "This entry is already unlocked"
-msgstr "Esta entrada ya se encuentra desbloqueada"
-
-#: ipalib/errors.py:927
-msgid "This entry is already locked"
-msgstr "Esta entrada ya se encuentra bloqueada"
-
-#: ipalib/errors.py:943
-msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
+"\n"
+" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
+" and the actual ACI name.\n"
+" "
msgstr ""
-"Esta entrada posee definido nsAccountLock, no puede ser bloqueada ni "
-"desbloqueada"
-
-#: ipalib/errors.py:959
-msgid "This entry is not a member of the group"
-msgstr "Esta entrada no es miembro del grupo"
-
-#: ipalib/errors.py:975
-msgid "A group may not be a member of itself"
-msgstr "Un grupo no puede ser miembro de sí mismo"
-
-#: ipalib/errors.py:991
-msgid "This entry is already a member of the group"
-msgstr "Esta entrada ya es miembro del grupo"
-
-#: ipalib/errors.py:1007
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr "Falló la decodificación base64: %(reason)s"
-#: ipalib/errors.py:1039
-msgid "A group may not be added as a member of itself"
-msgstr "Un grupo no puede ser agregado como miembro de sí mismo"
-
-#: ipalib/errors.py:1055
-msgid "The default users group cannot be removed"
-msgstr "El grupo de usuarios predeterminado no puede ser eliminado"
-
-#: ipalib/errors.py:1071
-msgid "Host does not have corresponding DNS A record"
-msgstr "El equipo no posee un registro DNS A con el que se corresponda "
-
-#: ipalib/errors.py:1086
-msgid "Deleting a managed group is not allowed. It must be detached first."
+#: ipalib/plugins/aci.py:193
+msgid ""
+"\n"
+" Pull the group name out of a memberOf filter\n"
+" "
msgstr ""
-"No se permite eliminar un grupo administrado. Primero debe ser desasociado. "
-
-#: ipalib/errors.py:1109
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr "no existe un comando para el tópico de ayuda %(topic)r"
-
-#: ipalib/errors.py:1133
-msgid "change collided with another change"
-msgstr "la modificación choca con otra modificación diferente"
-
-#: ipalib/errors.py:1149
-msgid "no modifications to be performed"
-msgstr "no existen modificaciones a ser realizadas"
-
-#: ipalib/errors.py:1165
-#, python-format
-msgid "%(desc)s:%(info)s"
-msgstr "%(desc)s:%(info)s"
-
-#: ipalib/errors.py:1181
-msgid "limits exceeded for this query"
-msgstr "han sido excedidos los límites para esta consulta"
-
-#: ipalib/errors.py:1196
-#, python-format
-msgid "%(info)s"
-msgstr "%(info)s"
-
-#: ipalib/errors.py:1221
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr "La operación certificada no puede ser completada: %(error)s"
-
-#: ipalib/errors.py:1237
-#, fuzzy, python-format
-msgid "Certificate format error: %(error)s"
-msgstr "La operación certificada no puede ser completada: %(error)s"
-#: ipalib/frontend.py:380
-msgid "Results are truncated, try a more specific search"
+#: ipalib/plugins/aci.py:204
+msgid ""
+"\n"
+" Given a name and a set of keywords construct an ACI.\n"
+" "
msgstr ""
-"Los resultados se encuentran truncados, intente realizar una búsqueda más "
-"específica"
-
-#: ipalib/frontend.py:797 ipalib/plugins/misc.py:47
-msgid "retrieve all attributes"
-msgstr "recuperar todos los atributos"
-
-#: ipalib/frontend.py:803
-msgid "print entries as stored on the server"
-msgstr "imprime las entradas como se encuentran almacenadas en el servidor"
-
-#: ipalib/frontend.py:940
-msgid "Forward to server instead of running locally"
-msgstr "Reenvía al servidor en lugar de ejecutarse localmente"
-
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr "Un diccionario representando una entrada LDAP"
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr "Una lista de entradas LDAP"
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr "Todos los comandos deberían por lo menos tener un resultado"
-
-#: ipalib/parameters.py:295
-msgid "incorrect type"
-msgstr "tipo incorrecto"
-
-#: ipalib/parameters.py:298
-msgid "Only one value is allowed"
-msgstr "Sólo se permite un valor"
-
-#: ipalib/parameters.py:877
-msgid "must be True or False"
-msgstr "debe ser True o False"
-#: ipalib/parameters.py:978
-msgid "must be an integer"
-msgstr "debe ser un entero"
-
-#: ipalib/parameters.py:1029
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr "debe ser como mínimo %(minvalue)d"
-
-#: ipalib/parameters.py:1039
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr "puede ser como máximo %(maxvalue)d"
-
-#: ipalib/parameters.py:1049
-msgid "must be a decimal number"
-msgstr "debe ser un número decimal"
-
-#: ipalib/parameters.py:1071
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr "debe ser como mínimo %(minvalue)f"
-
-#: ipalib/parameters.py:1081
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr "puede ser como máximo %(maxvalue)f"
-
-#: ipalib/parameters.py:1145
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr "debe coincidir con el modelo \"%(pattern)s"
-
-#: ipalib/parameters.py:1163
-msgid "must be binary data"
-msgstr "debe ser un dato binario"
-
-#: ipalib/parameters.py:1179
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr "debe ser como mínimo de %(minlength)d bytes"
-
-#: ipalib/parameters.py:1189
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr "puede ser a lo sumo de %(maxlength)d bytes"
-
-#: ipalib/parameters.py:1199
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr "debe ser exactamente de %(length)d bytes"
-
-#: ipalib/parameters.py:1217
-msgid "must be Unicode text"
-msgstr "debe ser texto Unicode"
-
-#: ipalib/parameters.py:1248
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr "debe tener como mínimo %(minlength)d caracteres"
-
-#: ipalib/parameters.py:1258
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr "puede tener a lo sumo %(maxlength)d caracteres"
-
-#: ipalib/parameters.py:1268
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr "debe tener exactamente %(length)d caracteres"
-
-#: ipalib/parameters.py:1307
-#, python-format
-msgid "must be one of %(values)r"
-msgstr "debe ser uno de %(values)r"
-
-#: ipalib/plugins/aci.py:111
-msgid "A list of ACI values"
-msgstr "Una lista de valores ACI"
-
-#: ipalib/plugins/aci.py:142
+#: ipalib/plugins/aci.py:215
msgid "type, filter, subtree and targetgroup are mutually exclusive"
msgstr "tipo, filtro, subárbol y grupo de destino, se excluyen mutuamente"
-#: ipalib/plugins/aci.py:145
+#: ipalib/plugins/aci.py:218
+#, fuzzy
+msgid "ACI prefix is required"
+msgstr "%(name)r es necesario"
+
+#: ipalib/plugins/aci.py:221
msgid ""
"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
"required"
@@ -416,1083 +199,4692 @@ msgstr ""
"es necesario como mínimo alguno de: tipo, filtro, subárbol, grupo de "
"destino, atributos, o miembro de "
-#: ipalib/plugins/aci.py:151
-msgid "group, taskgroup and self are mutually exclusive"
+#: ipalib/plugins/aci.py:224
+#, fuzzy
+msgid "filter and memberof are mutually exclusive"
+msgstr "tipo, filtro, subárbol y grupo de destino, se excluyen mutuamente"
+
+#: ipalib/plugins/aci.py:230
+#, fuzzy
+msgid "group, permission and self are mutually exclusive"
msgstr "grupo, función del grupo y self se excluyen mutuamente"
-#: ipalib/plugins/aci.py:153
-msgid "One of group, taskgroup or self is required"
+#: ipalib/plugins/aci.py:232
+#, fuzzy
+msgid "One of group, permission or self is required"
msgstr "Es necesario o grupo o función del grupo o self"
-#: ipalib/plugins/aci.py:172
-#, python-format
+#: ipalib/plugins/aci.py:251
msgid "Group '%s' does not exist"
msgstr "El grupo '%s' no existe"
-#: ipalib/plugins/aci.py:269
-#, python-format
+#: ipalib/plugins/aci.py:273
+msgid "empty filter"
+msgstr ""
+
+#: ipalib/plugins/aci.py:294
+#, fuzzy
+msgid "Syntax Error: %(error)s"
+msgstr "La operación certificada no puede ser completada: %(error)s"
+
+#: ipalib/plugins/aci.py:299
+msgid ""
+"Convert an ACI into its equivalent keywords.\n"
+"\n"
+" This is used for the modify operation so we can merge the\n"
+" incoming kw and existing ACI and pass the result to\n"
+" _make_aci().\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:379
msgid "ACI with name \"%s\" not found"
msgstr "No se encuentra un ACI cuyo nombre sea \"%s\""
-#: ipalib/plugins/aci.py:286
+#: ipalib/plugins/aci.py:400
+msgid "ACI prefix"
+msgstr ""
+
+#: ipalib/plugins/aci.py:401
+msgid ""
+"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
+"none)"
+msgstr ""
+
+#: ipalib/plugins/aci.py:407
+msgid ""
+"\n"
+" ACI object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr "ACIs"
-#: ipalib/plugins/aci.py:291
+#: ipalib/plugins/aci.py:417
msgid "ACI name"
msgstr "Nombre de ACI"
-#: ipalib/plugins/aci.py:296
-msgid "Taskgroup"
-msgstr "Grupo de tareas"
+#: ipalib/plugins/aci.py:422
+#, fuzzy
+msgid "Permission"
+msgstr "Permisos"
-#: ipalib/plugins/aci.py:297
-msgid "Taskgroup ACI grants access to"
-msgstr "El grupo de tareas ACI permite el acceso a "
+#: ipalib/plugins/aci.py:423
+#, fuzzy
+msgid "Permission ACI grants access to"
+msgstr "El grupo de usuarios ACI permite el acceso a"
-#: ipalib/plugins/aci.py:301
+#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
msgid "User group"
msgstr "Grupo de usuarios"
-#: ipalib/plugins/aci.py:302
+#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
msgid "User group ACI grants access to"
msgstr "El grupo de usuarios ACI permite el acceso a"
-#: ipalib/plugins/aci.py:306
+#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
+#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
+#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
msgid "Permissions"
msgstr "Permisos"
-#: ipalib/plugins/aci.py:307
+#: ipalib/plugins/aci.py:433
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
"lista separada por comas de la concesión de permisos (leer, escribir, "
"agregar, eliminar, todos) "
-#: ipalib/plugins/aci.py:313
+#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
+#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
msgid "Attributes"
msgstr "Atributos"
-#: ipalib/plugins/aci.py:314
+#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
+#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
msgid "Comma-separated list of attributes"
msgstr "Lista de atributos separada por comas"
-#: ipalib/plugins/aci.py:318
+#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
+#: ipalib/plugins/permission.py:131
msgid "Type"
msgstr "Tipo"
-#: ipalib/plugins/aci.py:319
-msgid "type of IPA object (user, group, host)"
+#: ipalib/plugins/aci.py:445
+#, fuzzy
+msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr "tipo de objeto IPA (usuario, grupo, equipo)"
-#: ipalib/plugins/aci.py:324
+#: ipalib/plugins/aci.py:450
msgid "Member of"
msgstr "Miembro de"
-#: ipalib/plugins/aci.py:325
+#: ipalib/plugins/aci.py:451
msgid "Member of a group"
msgstr "Miembro de un grupo"
-#: ipalib/plugins/aci.py:329
+#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
+#: ipalib/plugins/permission.py:144
msgid "Filter"
msgstr "Filtro"
-#: ipalib/plugins/aci.py:330
+#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr "Filtro legal LDAP (p.ej. ou=Ingeniería)"
-#: ipalib/plugins/aci.py:334
+#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
msgid "Subtree"
msgstr "Subárbol"
-#: ipalib/plugins/aci.py:335
+#: ipalib/plugins/aci.py:461
msgid "Subtree to apply ACI to"
msgstr "Subárbol al que aplicar ACI"
-#: ipalib/plugins/aci.py:339
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
msgid "Target group"
msgstr "Grupo elegido"
-#: ipalib/plugins/aci.py:340
+#: ipalib/plugins/aci.py:466
msgid "Group to apply ACI to"
msgstr "Grupo al que aplicar API"
-#: ipalib/plugins/aci.py:344
+#: ipalib/plugins/aci.py:470
msgid "Target your own entry (self)"
msgstr "Dirija su propia entrada (usted)"
-#: ipalib/plugins/aci.py:345
+#: ipalib/plugins/aci.py:471
msgid "Apply ACI to your own entry (self)"
msgstr "Aplique ACI a su propia entrada (usted)"
-#: ipalib/plugins/aci.py:357
-#, python-format
+#: ipalib/plugins/aci.py:478
+msgid ""
+"\n"
+" Create new ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:482
msgid "Created ACI \"%(value)s\""
msgstr "Ha sido creado ACI \"%(value)s\""
-#: ipalib/plugins/aci.py:407
-#, python-format
+#: ipalib/plugins/aci.py:487
+msgid "Test the ACI syntax but don't write anything"
+msgstr ""
+
+#: ipalib/plugins/aci.py:493
+msgid ""
+"\n"
+" Execute the aci-create operation.\n"
+"\n"
+" Returns the entry as it will be created in LDAP.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: Keyword arguments for the other LDAP attributes.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:533
+msgid ""
+"\n"
+" Delete ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:538
msgid "Deleted ACI \"%(value)s\""
msgstr "Ha sido eliminado ACI \"%(value)s\""
-#: ipalib/plugins/aci.py:447
-#, python-format
+#: ipalib/plugins/aci.py:543
+msgid ""
+"\n"
+" Execute the aci-delete operation.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: unused\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:576
+msgid ""
+"\n"
+" Modify ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
+#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
+#: ipalib/plugins/selfservice.py:212
+#, fuzzy
+msgid "ACI"
+msgstr "ACIs"
+
+#: ipalib/plugins/aci.py:588
msgid "Modified ACI \"%(value)s\""
msgstr "Ha sido modificado ACI \"%(value)s\""
-#: ipalib/plugins/aci.py:519
-#, python-format
+#: ipalib/plugins/aci.py:633
+msgid ""
+"\n"
+" Search for ACIs.\n"
+"\n"
+" Returns a list of ACIs\n"
+"\n"
+" EXAMPLES:\n"
+"\n"
+" To find all ACIs that apply directly to members of the group ipausers:\n"
+" ipa aci-find --memberof=ipausers\n"
+"\n"
+" To find all ACIs that grant add access:\n"
+" ipa aci-find --permissions=add\n"
+"\n"
+" Note that the find command only looks for the given text in the set of\n"
+" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
+" For example, searching on memberof=ipausers will find all ACIs that\n"
+" have ipausers as a memberof. There may be other ACIs that apply to\n"
+" members of that group indirectly.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:653
msgid "%(count)d ACI matched"
msgid_plural "%(count)d ACIs matched"
msgstr[0] "%(count)d ACI coincidente"
msgstr[1] "%(count)d ACIs coincidentes"
-#: ipalib/plugins/automount.py:103
+#: ipalib/plugins/aci.py:823
+msgid ""
+"\n"
+" Display a single ACI given an ACI name.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:837
+msgid ""
+"\n"
+" Execute the aci-show operation.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param uid: The login name of the user to retrieve.\n"
+" :param kw: unused\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:865
+msgid ""
+"\n"
+" Rename an ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:878
#, fuzzy
-msgid "Automount"
-msgstr "Mapeos de automontaje"
+msgid "New ACI name"
+msgstr "Nombre de ACI"
+
+#: ipalib/plugins/aci.py:882
+#, fuzzy
+msgid "Renamed ACI to \"%(value)s\""
+msgstr "Ha sido creado ACI \"%(value)s\""
+
+#: ipalib/plugins/automount.py:20
+msgid ""
+"\n"
+"Automount\n"
+"\n"
+"Stores automount(8) configuration for autofs(8) in IPA.\n"
+"\n"
+"The base of an automount configuration is the configuration file auto."
+"master.\n"
+"This is also the base location in IPA. Multiple auto.master configurations\n"
+"can be stored in separate locations. A location is implementation-specific\n"
+"with the default being a location named 'default'. For example, you can "
+"have\n"
+"locations by geographic region, by floor, by type, etc.\n"
+"\n"
+"Automount has three basic object types: locations, maps and keys.\n"
+"\n"
+"A location defines a set of maps anchored in auto.master. This allows you\n"
+"to store multiple automount configurations. A location in itself isn't\n"
+"very interesting, it is just a point to start a new automount map.\n"
+"\n"
+"A map is roughly equivalent to a discrete automount file and provides\n"
+"storage for keys.\n"
+"\n"
+"A key is a mount point associated with a map.\n"
+"\n"
+"When a new location is created, two maps are automatically created for\n"
+"it: auto.master and auto.direct. auto.master is the root map for all\n"
+"automount maps for the location. auto.direct is the default map for\n"
+"direct mounts and is mounted on /-.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"Locations:\n"
+"\n"
+" Create a named location, \"Baltimore\":\n"
+" ipa automountlocation-add baltimore\n"
+"\n"
+" Display the new location:\n"
+" ipa automountlocation-show baltimore\n"
+"\n"
+" Find available locations:\n"
+" ipa automountlocation-find\n"
+"\n"
+" Remove a named automount location:\n"
+" ipa automountlocation-del baltimore\n"
+"\n"
+" Show what the automount maps would look like if they were in the "
+"filesystem:\n"
+" ipa automountlocation-tofiles baltimore\n"
+"\n"
+" Import an existing configuration into a location:\n"
+" ipa automountlocation-import baltimore /etc/auto.master\n"
+"\n"
+" The import will fail if any duplicate entries are found. For\n"
+" continuous operation where errors are ignored, use the --continue\n"
+" option.\n"
+"\n"
+"Maps:\n"
+"\n"
+" Create a new map, \"auto.share\":\n"
+" ipa automountmap-add baltimore auto.share\n"
+"\n"
+" Display the new map:\n"
+" ipa automountmap-show baltimore auto.share\n"
+"\n"
+" Find maps in the location baltimore:\n"
+" ipa automountmap-find baltimore\n"
+"\n"
+" Remove the auto.share map:\n"
+" ipa automountmap-del baltimore auto.share\n"
+"\n"
+"Keys:\n"
+"\n"
+" Create a new key for the auto.share map in location baltimore. This ties\n"
+" the map we previously created to auto.master:\n"
+" ipa automountkey-add baltimore auto.master --key=/share --info=auto."
+"share\n"
+"\n"
+" Create a new key for our auto.share map, an NFS mount for man pages:\n"
+" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,"
+"rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n"
+"\n"
+" Find all keys for the auto.share map:\n"
+" ipa automountkey-find baltimore auto.share\n"
+"\n"
+" Find all direct automount keys:\n"
+" ipa automountkey-find baltimore --key=/-\n"
+"\n"
+" Remove the man key from the auto.share map:\n"
+" ipa automountkey-del baltimore auto.share --key=man\n"
+msgstr ""
+
+#: ipalib/plugins/automount.py:182
+msgid ""
+"\n"
+" Location container for automount maps.\n"
+" "
+msgstr ""
-#: ipalib/plugins/automount.py:109 ipalib/plugins/host.py:134
+#: ipalib/plugins/automount.py:190
+#, fuzzy
+msgid "Automount Locations"
+msgstr "Nombre de la ubicación de automontaje"
+
+#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
msgid "Location"
msgstr "Ubicación"
-#: ipalib/plugins/automount.py:110
-msgid "Automount location name"
+#: ipalib/plugins/automount.py:197
+#, fuzzy
+msgid "Automount location name."
msgstr "Nombre de la ubicación de automontaje"
-#: ipalib/plugins/automount.py:226
+#: ipalib/plugins/automount.py:206
+msgid ""
+"\n"
+" Create a new automount location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:221
+msgid ""
+"\n"
+" Delete an automount location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:229
+msgid ""
+"\n"
+" Display an automount location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:237
+msgid ""
+"\n"
+" Search for an automount location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:245
+msgid ""
+"\n"
+" Generate automount files for a specific location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:308
+msgid ""
+"\n"
+" Import automount files for a specific location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:314
+msgid "Master file"
+msgstr ""
+
+#: ipalib/plugins/automount.py:315
+#, fuzzy
+msgid "Automount master file."
+msgstr "Nombre de mapeo de automontaje"
+
+#: ipalib/plugins/automount.py:322
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues."
+msgstr ""
+
+#: ipalib/plugins/automount.py:334
+#, fuzzy
+msgid "File %(file)s not found"
+msgstr "%(pkey)s: no se encuentra %(oname)s"
+
+#: ipalib/plugins/automount.py:341
+msgid ""
+"\n"
+" The basic idea is to read the master file and create all the maps\n"
+" we need, then read each map file and add all the keys for the map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:492
+#, fuzzy
+msgid ""
+"\n"
+" Automount map object.\n"
+" "
+msgstr "Nombre de mapeo de automontaje"
+
+#: ipalib/plugins/automount.py:505
msgid "Map"
msgstr "Mapeo"
-#: ipalib/plugins/automount.py:227
-msgid "Automount map name"
+#: ipalib/plugins/automount.py:506
+#, fuzzy
+msgid "Automount map name."
msgstr "Nombre de mapeo de automontaje"
-#: ipalib/plugins/automount.py:232 ipalib/plugins/group.py:108
-#: ipalib/plugins/hbac.py:151 ipalib/plugins/hbacsvc.py:72
-#: ipalib/plugins/hbacsvcgroup.py:77 ipalib/plugins/host.py:124
-#: ipalib/plugins/hostgroup.py:81 ipalib/plugins/netgroup.py:96
-#: ipalib/plugins/rolegroup.py:90 ipalib/plugins/sudocmd.py:71
-#: ipalib/plugins/sudocmdgroup.py:77 ipalib/plugins/sudorule.py:58
-#: ipalib/plugins/taskgroup.py:62
+#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
+#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
+#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
+#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
+#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
+#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
+#: ipalib/plugins/sudorule.py:78
msgid "Description"
msgstr "Descripción"
-#: ipalib/plugins/automount.py:236
+#: ipalib/plugins/automount.py:515
msgid "Automount Maps"
msgstr "Mapeos de automontaje"
-#: ipalib/plugins/automount.py:308
+#: ipalib/plugins/automount.py:521
+msgid ""
+"\n"
+" Create a new automount map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:529
+msgid ""
+"\n"
+" Delete an automount map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:548
+msgid ""
+"\n"
+" Modify an automount map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:556
+msgid ""
+"\n"
+" Search for an automount map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:564
+msgid ""
+"\n"
+" Display an automount map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:572
+#, fuzzy
+msgid ""
+"\n"
+" Automount key object.\n"
+" "
+msgstr "Nombre de llave de automontaje"
+
+#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
+#: ipalib/plugins/automount.py:850
msgid "Key"
msgstr "Llave"
-#: ipalib/plugins/automount.py:309
-msgid "Automount key name"
+#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
+#: ipalib/plugins/automount.py:851
+#, fuzzy
+msgid "Automount key name."
msgstr "Nombre de llave de automontaje"
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
+#: ipalib/plugins/automount.py:855
msgid "Mount information"
msgstr "Información de montaje"
-#: ipalib/plugins/automount.py:318
+#: ipalib/plugins/automount.py:597
msgid "description"
msgstr "descripción"
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:606
msgid "Automount Keys"
msgstr "Llaves de automontaje"
-#: ipalib/plugins/automount.py:342
+#: ipalib/plugins/automount.py:607
+msgid ""
+"The key,info pair must be unique. A key named %(key)s with info %(info)s "
+"already exists"
+msgstr ""
+
+#: ipalib/plugins/automount.py:608
+#, fuzzy
+msgid "key named %(key)s already exists"
+msgstr "Esta entrada ya existe"
+
+#: ipalib/plugins/automount.py:609
+msgid "The automount key %(key)s with info %(info)s does not exist"
+msgstr ""
+
+#: ipalib/plugins/automount.py:659
+msgid ""
+"More than one entry with key %(key)s found, use --info to select specific "
+"entry."
+msgstr ""
+
+#: ipalib/plugins/automount.py:717
+msgid ""
+"\n"
+" Create a new automount key.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:742
+msgid ""
+"\n"
+" Create a new indirect mount point.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:748
msgid "Mount point"
msgstr "Punto de montaje"
-#: ipalib/plugins/automount.py:346
+#: ipalib/plugins/automount.py:752
msgid "Parent map"
msgstr "Mapeo del padre"
-#: ipalib/plugins/automount.py:347
-msgid "Name of parent automount map (default: auto.master)"
+#: ipalib/plugins/automount.py:753
+#, fuzzy
+msgid "Name of parent automount map (default: auto.master)."
msgstr "Nombre del mapeo del automontaje padre (predeterminado: auto.master)"
-#: ipalib/plugins/baseldap.py:79
-#, python-format
+#: ipalib/plugins/automount.py:772
+msgid ""
+"\n"
+" Delete an automount key.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:803
+msgid ""
+"\n"
+" Modify an automount key.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:809
+#, fuzzy
+msgid "New mount information"
+msgstr "Información de montaje"
+
+#: ipalib/plugins/automount.py:836
+msgid ""
+"\n"
+" Search for an automount key.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:844
+msgid ""
+"\n"
+" Display an automount key.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:19
+msgid ""
+"\n"
+"Base classes for LDAP plugins.\n"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:39
+msgid "Failed members"
+msgstr "Miembros fallidos"
+
+#: ipalib/plugins/baseldap.py:42
+msgid "Member users"
+msgstr "Usuarios miembros"
+
+#: ipalib/plugins/baseldap.py:45
+msgid "Member groups"
+msgstr "Grupos de miembros"
+
+#: ipalib/plugins/baseldap.py:48
+#, fuzzy
+msgid "Member of groups"
+msgstr "Miembro de un grupo"
+
+#: ipalib/plugins/baseldap.py:51
+msgid "Member hosts"
+msgstr "Equipos miembro"
+
+#: ipalib/plugins/baseldap.py:54
+msgid "Member host-groups"
+msgstr "Grupos de equipo miembro"
+
+#: ipalib/plugins/baseldap.py:57
+msgid "Member of host-groups"
+msgstr "Miembro de los grupos de equipo"
+
+#: ipalib/plugins/baseldap.py:66
+#, fuzzy
+msgid "Roles"
+msgstr "Grupos de funciones"
+
+#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
+#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
+#: ipalib/plugins/sudorule.py:143
+msgid "Sudo Command Groups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:75
+msgid "Granting privilege to roles"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:78
+#, fuzzy
+msgid "Member netgroups"
+msgstr "Grupos de miembros"
+
+#: ipalib/plugins/baseldap.py:81
+#, fuzzy
+msgid "Member of netgroups"
+msgstr "Miembro de los grupos de red"
+
+#: ipalib/plugins/baseldap.py:84
+#, fuzzy
+msgid "Member services"
+msgstr "Usuarios miembros"
+
+#: ipalib/plugins/baseldap.py:87
+#, fuzzy
+msgid "Member service groups"
+msgstr "Grupos de función miembro"
+
+#: ipalib/plugins/baseldap.py:93
+#, fuzzy
+msgid "Member HBAC service groups"
+msgstr "Grupos de función miembro"
+
+#: ipalib/plugins/baseldap.py:102
+#, fuzzy
+msgid "Indirect Member users"
+msgstr "Usuarios miembros"
+
+#: ipalib/plugins/baseldap.py:105
+#, fuzzy
+msgid "Indirect Member groups"
+msgstr "Grupos de miembros"
+
+#: ipalib/plugins/baseldap.py:108
+#, fuzzy
+msgid "Indirect Member hosts"
+msgstr "Equipos miembro"
+
+#: ipalib/plugins/baseldap.py:111
+#, fuzzy
+msgid "Indirect Member host-groups"
+msgstr "Grupos de equipo miembro"
+
+#: ipalib/plugins/baseldap.py:114
+#, fuzzy
+msgid "Indirect Member of roles"
+msgstr "Miembro de los grupos de función"
+
+#: ipalib/plugins/baseldap.py:117
+msgid "Indirect Member permissions"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:120
+#, fuzzy
+msgid "Indirect Member HBAC service"
+msgstr "Usuarios miembros"
+
+#: ipalib/plugins/baseldap.py:123
+#, fuzzy
+msgid "Indirect Member HBAC service group"
+msgstr "Grupos de función miembro"
+
+#: ipalib/plugins/baseldap.py:126
+#, fuzzy
+msgid "Indirect Member netgroups"
+msgstr "Miembro de los grupos de red"
+
+#: ipalib/plugins/baseldap.py:141
+msgid "External host"
+msgstr "Equipo externo"
+
+#: ipalib/plugins/baseldap.py:144
+#, fuzzy
+msgid "Failed hosts/hostgroups"
+msgstr "Nombre del grupo de equipo"
+
+#: ipalib/plugins/baseldap.py:147
+#, fuzzy
+msgid "Failed users/groups"
+msgstr "Grupo de usuarios predeterminado"
+
+#: ipalib/plugins/baseldap.py:150
+#, fuzzy
+msgid "Failed managedby"
+msgstr "Miembros fallidos"
+
+#: ipalib/plugins/baseldap.py:153
+#, fuzzy
+msgid "Failed to remove"
+msgstr "No es posible decodificar el certificado en la entrada"
+
+#: ipalib/plugins/baseldap.py:171
+msgid ""
+"\n"
+" Given a list of values in the form name=value, return a list of name.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:197
+msgid ""
+"\n"
+" When adding or removing reverse members we are faking an update to\n"
+" object A by updating the member attribute in object B. The memberof\n"
+" plugin makes this work by adding or removing the memberof attribute\n"
+" to/from object A, it just takes a little bit of time.\n"
+"\n"
+" This will loop for 6+ seconds, retrieving object A so we can see\n"
+" if all the memberof attributes have been updated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:241
+#, fuzzy
+msgid ""
+"\n"
+" Object representing a LDAP entry.\n"
+" "
+msgstr "Un diccionario representando una entrada LDAP"
+
+#: ipalib/plugins/baseldap.py:281
+msgid "Entry"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:283
msgid "container entry (%(container)s) not found"
msgstr "no se encuentra la entrada (%(container)s) de contenedor"
-#: ipalib/plugins/baseldap.py:80
-#, python-format
+#: ipalib/plugins/baseldap.py:284
msgid "%(parent)s: %(oname)s not found"
msgstr "%(parent)s: no se encuentra %(oname)s"
-#: ipalib/plugins/baseldap.py:81
-#, python-format
+#: ipalib/plugins/baseldap.py:285
msgid "%(pkey)s: %(oname)s not found"
msgstr "%(pkey)s: no se encuentra %(oname)s"
-#: ipalib/plugins/baseldap.py:150
-msgid "Add an attribute/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:286
+msgid "%(oname)s with name \"%(pkey)s\" already exists"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:415
+#, fuzzy
+msgid ""
+"Add an attribute/value pair. Format is attr=value. The attribute must be "
+"part of the schema."
msgstr "Agregar un par de atributo/valor. El formato es attr=value"
-#: ipalib/plugins/baseldap.py:155
-msgid "Set an attribute to an name/value pair. Format is attr=value"
-msgstr "Define un atributo a un par nombre/valor. El formato es attr=value"
+#: ipalib/plugins/baseldap.py:420
+msgid ""
+"Set an attribute to a name/value pair. Format is attr=value.\n"
+"For multi-valued attributes, the command replaces the values already present."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:444
+msgid ""
+"\n"
+" If the set of objectclasses is limited enforce that only those\n"
+" are updated in entry_attrs (plus dn)\n"
+"\n"
+" allow_only tells us what mode to check in:\n"
+"\n"
+" If True then we enforce that the attributes must be in the list of\n"
+" allowed.\n"
+"\n"
+" If False then those attributes are not allowed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:474
+msgid ""
+"\n"
+" Callback registration interface\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:561
+msgid ""
+"\n"
+" Create a new entry in LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:703
+msgid ""
+"\n"
+" Base class for commands that need to retrieve an existing entry.\n"
+" "
+msgstr ""
-#: ipalib/plugins/baseldap.py:359
+#: ipalib/plugins/baseldap.py:727
+msgid ""
+"\n"
+" Base class for commands that need to retrieve one or more existing "
+"entries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:733
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:517
+#: ipalib/plugins/baseldap.py:750
+msgid ""
+"\n"
+" Retrieve an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
+#: ipalib/plugins/internal.py:232
+msgid "Rights"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+msgid ""
+"Display the access rights of this entry (requires --all). See ipa man page "
+"for details."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:821
+msgid ""
+"\n"
+" Update an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:837
+#, fuzzy
+msgid "Rename"
+msgstr "Nombre de la regla"
+
+#: ipalib/plugins/baseldap.py:838
+msgid "Rename the %(ldap_obj_name)s object"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:957
msgid "the entry was deleted while being modified"
msgstr "la entrada fue eliminada mientras estaba siendo modificada"
-#: ipalib/plugins/baseldap.py:674
+#: ipalib/plugins/baseldap.py:988
+msgid ""
+"\n"
+" Delete an LDAP entry and all of its direct subentries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1078
+msgid ""
+"\n"
+" Base class for member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1120
+msgid ""
+"\n"
+" Add other LDAP entries to members.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
+#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
+#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
msgid "Members that could not be added"
msgstr "Miembros que no han podido ser añadidos"
-#: ipalib/plugins/baseldap.py:678
+#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596
msgid "Number of members added"
msgstr "Cantidad de miembros añadidos"
-#: ipalib/plugins/baseldap.py:684 ipalib/plugins/baseldap.py:789
-msgid "Failed members"
-msgstr "Miembros fallidos"
+#: ipalib/plugins/baseldap.py:1226
+msgid ""
+"\n"
+" Remove LDAP entries from members.\n"
+" "
+msgstr ""
-#: ipalib/plugins/baseldap.py:779
+#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
msgid "Members that could not be removed"
msgstr "Miembros que no han podido ser eliminados"
-#: ipalib/plugins/baseldap.py:783
+#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
msgid "Number of members removed"
msgstr "Cantidad de miembros eliminados"
-#: ipalib/plugins/baseldap.py:880
+#: ipalib/plugins/baseldap.py:1335
+msgid ""
+"\n"
+" Retrieve all LDAP entries matching the given criteria.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1344
msgid "Time Limit"
msgstr "Tiempo límite"
-#: ipalib/plugins/baseldap.py:881
+#: ipalib/plugins/baseldap.py:1345
msgid "Time limit of search in seconds"
msgstr "Tiempo máximo de búsqueda en segundos"
-#: ipalib/plugins/baseldap.py:887
+#: ipalib/plugins/baseldap.py:1351
msgid "Size Limit"
msgstr "Tamaño límite"
-#: ipalib/plugins/baseldap.py:888
+#: ipalib/plugins/baseldap.py:1352
msgid "Maximum number of entries returned"
msgstr "Cantidad máxima de entradas obtenidas"
-#: ipalib/plugins/cert.py:93
+#: ipalib/plugins/baseldap.py:1552
+msgid ""
+"\n"
+" Base class for reverse member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1574
+msgid ""
+"\n"
+" Add other LDAP entries to members in reverse.\n"
+"\n"
+" The call looks like \"add A to B\" but in fact executes\n"
+" add B to A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1654
+msgid "added"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1687
+msgid ""
+"\n"
+" Remove other LDAP entries from members in reverse.\n"
+"\n"
+" The call looks like \"remove A from B\" but in fact executes\n"
+" remove B from A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1767
+msgid "removed"
+msgstr ""
+
+#: ipalib/plugins/batch.py:21
+msgid ""
+"\n"
+"Plugin to make multiple ipa calls via one remote procedure call\n"
+"\n"
+"To run this code in the lite-server\n"
+"\n"
+"curl -H \"Content-Type:application/json\" -H \"Accept:application/"
+"json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /"
+"etc/ipa/ca.crt -d @batch_request.json -X POST http://"
+"localhost:8888/ipa/json\n"
+"\n"
+"where the contents of the file batch_request.json follow the below example\n"
+"\n"
+"{\"method\":\"batch\",\"params\":[[\n"
+" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
+" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all"
+"\":\"true\"}]},\n"
+" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
+" ],{}],\"id\":1}\n"
+"\n"
+"The format of the response is nested the same way. At the top you will see\n"
+" \"error\": null,\n"
+" \"id\": 1,\n"
+" \"result\": {\n"
+" \"count\": 3,\n"
+" \"results\": [\n"
+"\n"
+"\n"
+"And then a nested response for each IPA command method sent in the request\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/batch.py:61
+msgid "Nested Methods to execute"
+msgstr ""
+
+#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/plugins/cert.py:22
+msgid ""
+"\n"
+"IPA certificate operations\n"
+"\n"
+"Implements a set of commands for managing server SSL certificates.\n"
+"\n"
+"Certificate requests exist in the form of a Certificate Signing Request "
+"(CSR)\n"
+"in PEM format.\n"
+"\n"
+"If using the selfsign back end then the subject in the CSR needs to match\n"
+"the subject configured in the server. The dogtag CA uses just the CN\n"
+"value of the CSR and forces the rest of the subject.\n"
+"\n"
+"A certificate is stored with a service principal and a service principal\n"
+"needs a host.\n"
+"\n"
+"In order to request a certificate:\n"
+"\n"
+"* The host must exist\n"
+"* The service must exist (or you use the --add option to automatically add "
+"it)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Request a new certificate and add the principal:\n"
+" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n"
+"\n"
+" Retrieve an existing certificate:\n"
+" ipa cert-show 1032\n"
+"\n"
+" Revoke a certificate (see RFC 5280 for reason details):\n"
+" ipa cert-revoke --revocation-reason=6 1032\n"
+"\n"
+" Remove a certificate from revocation hold status:\n"
+" ipa cert-remove-hold 1032\n"
+"\n"
+" Check the status of a signing request:\n"
+" ipa cert-status 10\n"
+"\n"
+"IPA currently immediately issues (or declines) all certificate requests so\n"
+"the status of a request is not normally useful. This is for future use\n"
+"or the case where a CA does not immediately issue a certificate.\n"
+"\n"
+"The following revocation reasons are supported:\n"
+"\n"
+" * 0 - unspecified\n"
+" * 1 - keyCompromise\n"
+" * 2 - cACompromise\n"
+" * 3 - affiliationChanged\n"
+" * 4 - superseded\n"
+" * 5 - cessationOfOperation\n"
+" * 6 - certificateHold\n"
+" * 8 - removeFromCRL\n"
+" * 9 - privilegeWithdrawn\n"
+" * 10 - aACompromise\n"
+"\n"
+"Note that reason code 7 is not used. See RFC 5280 for more details:\n"
+"\n"
+"http://www.ietf.org/rfc/rfc5280.txt\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/cert.py:104
+msgid ""
+"\n"
+" Return the value of CN in the subject of the request or None\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
"Falla al intentar decodificar la petición de identificación de certificado"
-#: ipalib/plugins/cert.py:106 ipalib/plugins/cert.py:118
+#: ipalib/plugins/cert.py:115
+msgid ""
+"\n"
+" Return the first value of the subject alt name, if any\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
msgid "Failure decoding Certificate Signing Request"
msgstr ""
"Falla al intentar decodificar la petición de identificación de certificado"
-#: ipalib/plugins/cert.py:120
-#, python-format
+#: ipalib/plugins/cert.py:128
+msgid ""
+"\n"
+" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
+" parser.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:139
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
"Falla al intentar decodificar la petición de identificación de certificado: "
"%s"
-#: ipalib/plugins/cert.py:171 ipalib/plugins/service.py:197
+#: ipalib/plugins/cert.py:142
+msgid ""
+"\n"
+" Strip any leading and trailing cruft around the BEGIN/END block\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:162
+msgid ""
+"\n"
+" Convert a SN given in decimal or hexadecimal.\n"
+" Returns the number or None if conversion fails.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:188
+msgid ""
+"\n"
+" Given a principal with or without a realm return the\n"
+" host portion.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:202
+msgid ""
+"\n"
+" Submit a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
msgid "Principal"
msgstr "Principal"
-#: ipalib/plugins/cert.py:172
+#: ipalib/plugins/cert.py:217
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
"Principal del servicio para este certificado (p.ej. HTTP/prueba.ejemplo.com)"
-#: ipalib/plugins/cert.py:179
+#: ipalib/plugins/cert.py:224
msgid "automatically add the principal if it doesn't exist"
msgstr "si no existe, agregar automáticamente el principal"
-#: ipalib/plugins/cert.py:187 ipalib/plugins/cert.py:392
-#: ipalib/plugins/host.py:154 ipalib/plugins/service.py:204
+#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
+#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
+#: ipalib/plugins/service.py:232
msgid "Certificate"
msgstr "Certificado"
-#: ipalib/plugins/cert.py:191 ipalib/plugins/cert.py:395
+#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
msgid "Subject"
msgstr "Asunto"
-#: ipalib/plugins/cert.py:195 ipalib/plugins/cert.py:398
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
msgid "Issuer"
msgstr "Emisor"
-#: ipalib/plugins/cert.py:199 ipalib/plugins/cert.py:401
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
msgid "Not Before"
msgstr "No antes de"
-#: ipalib/plugins/cert.py:203 ipalib/plugins/cert.py:404
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
msgid "Not After"
msgstr "No luego de"
-#: ipalib/plugins/cert.py:207 ipalib/plugins/cert.py:407
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
msgid "Fingerprint (MD5)"
msgstr "Huella digital (MD5)"
-#: ipalib/plugins/cert.py:211 ipalib/plugins/cert.py:410
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
msgid "Fingerprint (SHA1)"
msgstr "Huella digital (SHA1)"
-#: ipalib/plugins/cert.py:215 ipalib/plugins/cert.py:379
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
msgid "Serial number"
msgstr "Número de serie"
-#: ipalib/plugins/cert.py:223 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr "Nombre de la variable de mapeo de dicionario a valorizar "
-#: ipalib/plugins/cert.py:357
+#: ipalib/plugins/cert.py:396
+msgid ""
+"\n"
+" Check the status of a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:402
msgid "Request id"
msgstr "Id de la petición"
-#: ipalib/plugins/cert.py:363
+#: ipalib/plugins/cert.py:408
msgid "Request status"
msgstr "Estado de la petición"
-#: ipalib/plugins/cert.py:380
+#: ipalib/plugins/cert.py:426
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr "Número de serie en decimales, o hexadecimales, si tiene un prefijo 0x"
-#: ipalib/plugins/cert.py:413
+#: ipalib/plugins/cert.py:431
+msgid ""
+"\n"
+" Retrieve an existing certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
+#: ipalib/plugins/service.py:114
msgid "Revocation reason"
msgstr "Motivo de la revocación"
-#: ipalib/plugins/cert.py:458
+#: ipalib/plugins/cert.py:466
+#, fuzzy
+msgid "Output filename"
+msgstr "Nombre de llave de automontaje"
+
+#: ipalib/plugins/cert.py:467
+#, fuzzy
+msgid "File to store the certificate in."
+msgstr "Motivo por el cual el certificado ha sido revocado (0-10)"
+
+#: ipalib/plugins/cert.py:518
+msgid ""
+"\n"
+" Revoke a certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:526
msgid "Revoked"
msgstr "Revocado"
-#: ipalib/plugins/cert.py:466
+#: ipalib/plugins/cert.py:534
msgid "Reason"
msgstr "Motivo"
-#: ipalib/plugins/cert.py:467
+#: ipalib/plugins/cert.py:535
msgid "Reason for revoking the certificate (0-10)"
msgstr "Motivo por el cual el certificado ha sido revocado (0-10)"
-#: ipalib/plugins/cert.py:502
+#: ipalib/plugins/cert.py:562
+msgid ""
+"\n"
+" Take a revoked certificate off hold.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:570
msgid "Unrevoked"
msgstr "No revocado"
-#: ipalib/plugins/cert.py:505
+#: ipalib/plugins/cert.py:573
msgid "Error"
msgstr "Error"
-#: ipalib/plugins/config.py:73
+#: ipalib/plugins/config.py:20
+msgid ""
+"\n"
+"Manage the IPA configuration\n"
+"\n"
+"Manage the default values that IPA uses and some of its tuning parameters.\n"
+"\n"
+" To show the current configuration:\n"
+" ipa config-show\n"
+"\n"
+" To modify the configuration:\n"
+" ipa config-mod --maxusername=99\n"
+"\n"
+"The available options are:\n"
+"\n"
+"User management options:\n"
+"\n"
+" --maxusername=INT Max. username length when creating/modifying a user\n"
+" --homedirectory=STR Default location of home directories (default /"
+"home)\n"
+" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
+" --defaultgroup=STR Default group for new users (default ipausers). The\n"
+" group must exist, or adding new users will fail.\n"
+" --emaildomain=STR Default e-mail domain for new users\n"
+"\n"
+"Search tuning options. These impact how much data is searched through and\n"
+"how many records may be returned on a given search.\n"
+"\n"
+" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 "
+"for\n"
+" unlimited)\n"
+" --searchrecordslimit=INT Max. number of records to search (-1 is "
+"unlimited)\n"
+"\n"
+"Server Configuration.\n"
+"\n"
+" --enable-migration=BOOL Enable migration mode\n"
+" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+"\n"
+"The password notification value is stored here so it will be replicated.\n"
+"It is not currently used to notify users in advance of an expiring\n"
+"password.\n"
+"\n"
+"Some attributes are read-only, provided only for information purposes. "
+"These\n"
+"include:\n"
+"\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
+msgstr ""
+
+#: ipalib/plugins/config.py:76
+msgid "searchtimelimit must be -1 or > 1."
+msgstr ""
+
+#: ipalib/plugins/config.py:80
+msgid ""
+"\n"
+" IPA configuration object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
msgid "Configuration"
msgstr "Configuración"
-#: ipalib/plugins/config.py:78
-msgid "Max username length"
+#: ipalib/plugins/config.py:96
+#, fuzzy
+msgid "Max. username length"
msgstr "Longitud máxima de nombre de usuario"
-#: ipalib/plugins/config.py:83
+#: ipalib/plugins/config.py:101
msgid "Home directory base"
msgstr "Base del directorio principal"
-#: ipalib/plugins/config.py:84
-msgid "Default location of home directories"
+#: ipalib/plugins/config.py:102
+#, fuzzy
+msgid "Default location of home directories."
msgstr "Ubicación predeterminada de los directorios principales"
-#: ipalib/plugins/config.py:88
+#: ipalib/plugins/config.py:106
msgid "Default shell"
msgstr "Shell predeterminada"
-#: ipalib/plugins/config.py:89
-msgid "Default shell for new users"
+#: ipalib/plugins/config.py:107
+#, fuzzy
+msgid "Default shell for new users."
msgstr "Shell predeterminada para nuevos usuarios"
-#: ipalib/plugins/config.py:93
+#: ipalib/plugins/config.py:111
msgid "Default users group"
msgstr "Grupo de usuarios predeterminado"
-#: ipalib/plugins/config.py:94
-msgid "Default group for new users"
+#: ipalib/plugins/config.py:112
+#, fuzzy
+msgid "Default group for new users."
msgstr "Grupo predeterminado para nuevos usuarios"
-#: ipalib/plugins/config.py:98
-msgid "Default e-mail domain"
-msgstr "Dominio predeterminado de correo electrónico"
+#: ipalib/plugins/config.py:116
+#, fuzzy
+msgid "Default e-mail domain for new users"
+msgstr "Dominio predeterminado de correo electrónico para nuevos usuarios"
-#: ipalib/plugins/config.py:99
-msgid "Default e-mail domain new users"
+#: ipalib/plugins/config.py:117
+#, fuzzy
+msgid "Default e-mail domain new users."
msgstr "Dominio predeterminado de correo electrónico para nuevos usuarios"
-#: ipalib/plugins/config.py:103
+#: ipalib/plugins/config.py:121
msgid "Search time limit"
msgstr "Buscar límite de tiempo"
-#: ipalib/plugins/config.py:104
-msgid "Max. amount of time (sec.) for a search (-1 is unlimited)"
+#: ipalib/plugins/config.py:122
+#, fuzzy
+msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
msgstr ""
"Cantidad máxima de tiempo (en segundos) para realizar una búsqueda (-1 es "
"ilimitado)"
-#: ipalib/plugins/config.py:109
+#: ipalib/plugins/config.py:127
msgid "Search size limit"
msgstr "Límite del tamaño de la búsqueda"
-#: ipalib/plugins/config.py:110
-msgid "Max. number of records to search (-1 is unlimited)"
+#: ipalib/plugins/config.py:128
+#, fuzzy
+msgid "Max. number of records to search (-1 is unlimited)."
msgstr "cantidad máxima de registros que buscar (-1 es ilimitado)"
-#: ipalib/plugins/config.py:115
+#: ipalib/plugins/config.py:133
msgid "User search fields"
msgstr "Campos de búsqueda de usuario"
-#: ipalib/plugins/config.py:116
-msgid "A comma-separated list of fields to search when searching for users"
+#: ipalib/plugins/config.py:134
+#, fuzzy
+msgid "A comma-separated list of fields to search when searching for users."
msgstr ""
"Una lista separada por comas de campos a buscar, cuando se realice una "
"búsqueda de usuarios"
-#: ipalib/plugins/config.py:121
-msgid "A comma-separated list of fields to search when searching for groups"
+#: ipalib/plugins/config.py:139
+#, fuzzy
+msgid "A comma-separated list of fields to search when searching for groups."
msgstr ""
"Una lista separada por comas de campos a buscar, cuando se realice una "
"búsqueda de grupos"
-#: ipalib/plugins/config.py:125
+#: ipalib/plugins/config.py:143
msgid "Migration mode"
msgstr "Modo de migración"
-#: ipalib/plugins/config.py:126
-msgid "Enable migration mode"
+#: ipalib/plugins/config.py:144
+#, fuzzy
+msgid "Enable migration mode."
msgstr "Habilita el modo de migración"
-#: ipalib/plugins/config.py:130
+#: ipalib/plugins/config.py:148
msgid "Certificate Subject base"
msgstr "Base de certificado de asunto"
-#: ipalib/plugins/config.py:131
-msgid "Base for certificate subjects (OU=Test,O=Example)"
+#: ipalib/plugins/config.py:149
+#, fuzzy
+msgid "Base for certificate subjects (OU=Test,O=Example)."
msgstr "Base para certificar asuntos (OU=Prueba,O=Ejemplo)"
-#: ipalib/plugins/dns.py:131
+#: ipalib/plugins/config.py:154
+#, fuzzy
+msgid "Default group objectclasses"
+msgstr "Grupo predeterminado para nuevos usuarios"
+
+#: ipalib/plugins/config.py:155
+msgid "Default group objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:159
+#, fuzzy
+msgid "Default user objectclasses"
+msgstr "Grupo de usuarios predeterminado"
+
+#: ipalib/plugins/config.py:160
+msgid "Default user objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:164
+msgid "Password Expiration Notification"
+msgstr ""
+
+#: ipalib/plugins/config.py:165
+msgid "Number of days's notice of impending password expiration."
+msgstr ""
+
+#: ipalib/plugins/config.py:170
+msgid "Password plugin features"
+msgstr ""
+
+#: ipalib/plugins/config.py:171
+msgid "Extra hashes to generate in password plug-in."
+msgstr ""
+
+#: ipalib/plugins/config.py:183
+msgid ""
+"\n"
+" Modify configuration options.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:220
+msgid ""
+"\n"
+" Show the current configuration.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:19
+msgid ""
+"\n"
+"Group to Group Delegation\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"Group to Group Delegations grants the members of one group to update a set\n"
+"of attributes of members of another group.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a delegation rule to allow editors to edit admin's addresses:\n"
+" ipa delegation-add --attrs=street --membergroup=admins --group=editors "
+"'editors edit admins street'\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add postalCode to the list:\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --"
+"group=editors 'editors edit admins street'\n"
+"\n"
+" Display our updated rule:\n"
+" ipa delegation-show 'editors edit admins street'\n"
+"\n"
+" Delete a rule:\n"
+" ipa delegation-del 'editors edit admins street'\n"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:56
+msgid ""
+"\n"
+" memberOf is in filter but we want to pull out the group for easier\n"
+" displaying.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#, fuzzy
+msgid "Delegation '%(permission)s' not found"
+msgstr "No ha sido encontrado el equipo anfitrión '%(host)s' "
+
+#: ipalib/plugins/delegation.py:70
+msgid "Error retrieving member group %(group)s: %(error)s"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:79
+msgid ""
+"\n"
+" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a delegation ACI, adding a new attribute\n"
+" membergroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:95
+msgid ""
+"\n"
+" Delegation object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:102
+msgid "Delegation"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#, fuzzy
+msgid "Delegation name"
+msgstr "Modo de migración"
+
+#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#, fuzzy
+msgid ""
+"Comma-separated list of permissions to grant (read, write). Default is write."
+msgstr ""
+"lista separada por comas de la concesión de permisos (leer, escribir, "
+"agregar, eliminar, todos) "
+
+#: ipalib/plugins/delegation.py:125
+#, fuzzy
+msgid "Member user group"
+msgstr "Grupos de función miembro"
+
+#: ipalib/plugins/delegation.py:126
+#, fuzzy
+msgid "User group to apply delegation to"
+msgstr "Grupo al que aplicar API"
+
+#: ipalib/plugins/delegation.py:152
+msgid ""
+"\n"
+" Add a new delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:156
+#, fuzzy
+msgid "Added delegation \"%(value)s\""
+msgstr "Ha sido agregado el grupo de funciones \"%(value)s\""
+
+#: ipalib/plugins/delegation.py:176
+msgid ""
+"\n"
+" Delete a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:181
+#, fuzzy
+msgid "Deleted delegation \"%(value)s\""
+msgstr "Ha sido eliminado el grupo de funciones \"%(value)s\""
+
+#: ipalib/plugins/delegation.py:197
+msgid ""
+"\n"
+" Modify a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:201
+#, fuzzy
+msgid "Modified delegation \"%(value)s\""
+msgstr "Ha sido modificado el grupo de funciones \"%(value)s\""
+
+#: ipalib/plugins/delegation.py:219
+msgid ""
+"\n"
+" Search for delegations.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:223
+#, fuzzy
+msgid "%(count)d delegation matched"
+msgid_plural "%(count)d delegations matched"
+msgstr[0] "%(count)d grupo de roles coincidente"
+msgstr[1] "%(count)d grupo de roles coincidentes"
+
+#: ipalib/plugins/delegation.py:250
+msgid ""
+"\n"
+" Display information about a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:20
+msgid ""
+"\n"
+"Domain Name System (DNS)\n"
+"\n"
+"Manage DNS zone and resource records.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add new zone:\n"
+" ipa dnszone-add example.com --name-server nameserver.example.com\n"
+" --admin-email admin@example.com\n"
+"\n"
+" Add second nameserver for example.com:\n"
+" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add a mail server for example.com:\n"
+" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n"
+"\n"
+" Delete previously added nameserver from example.com:\n"
+" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add new A record for www.example.com: (random IP)\n"
+" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n"
+"\n"
+" Add new PTR record for www.example.com\n"
+" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n"
+"\n"
+" Add new SRV records for LDAP servers. Three quarters of the requests\n"
+" should go to fast.example.com, one quarter to slow.example.com. If neither\n"
+" is available, switch to backup.example.com.\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup."
+"example.com\"\n"
+"\n"
+" When dnsrecord-add command is executed with no option to add a specific "
+"record\n"
+" an interactive mode is started. The mode interactively prompts for the "
+"most\n"
+" typical record types for the respective zone:\n"
+" ipa dnsrecord-add example.com www\n"
+" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random "
+"IPs)\n"
+" [AAAA record]: (no AAAA address entered)\n"
+" Record name: www\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" The interactive mode can also be used for deleting the DNS records:\n"
+" ipa dnsrecord-del example.com www\n"
+" No option to delete specific record provided.\n"
+" Delete all? Yes/No (default No): (do not delete all records)\n"
+" Current DNS record contents:\n"
+"\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
+" Record name: www\n"
+" A record: 1.2.3.4 (A record 11.22.33.44 has been "
+"deleted)\n"
+"\n"
+" Show zone example.com:\n"
+" ipa dnszone-show example.com\n"
+"\n"
+" Find zone with \"example\" in its domain name:\n"
+" ipa dnszone-find example\n"
+"\n"
+" Find records for resources with \"www\" in their name in zone example.com:\n"
+" ipa dnsrecord-find example.com www\n"
+"\n"
+" Find A records with value 10.10.0.1 in zone example.com\n"
+" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n"
+"\n"
+" Show records for resource www in zone example.com\n"
+" ipa dnsrecord-show example.com www\n"
+"\n"
+" Delete zone example.com with all resource records:\n"
+" ipa dnszone-del example.com\n"
+"\n"
+" Resolve a host name to see if it exists (will add default IPA domain\n"
+" if one is not included):\n"
+" ipa dns-resolve www.example.com\n"
+" ipa dns-resolve www\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:140
+msgid "Generate serial number for zones."
+msgstr ""
+
+#: ipalib/plugins/dns.py:189
+msgid "see RFC 2915 "
+msgstr ""
+
+#: ipalib/plugins/dns.py:249
+#, fuzzy
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr "El equipo no posee un registro DNS A con el que se corresponda "
+
+#: ipalib/plugins/dns.py:272
+#, fuzzy
+msgid ""
+"\n"
+" DNS Zone, container for resource records.\n"
+" "
+msgstr "RDN de contenedor para los usuarios en DS"
+
+#: ipalib/plugins/dns.py:284
msgid "DNS"
msgstr "DNS"
-#: ipalib/plugins/dns.py:136
-msgid "Zone"
-msgstr "Zona"
+#: ipalib/plugins/dns.py:289
+msgid "Zone name"
+msgstr "Nombre de la zona"
-#: ipalib/plugins/dns.py:137
+#: ipalib/plugins/dns.py:290
msgid "Zone name (FQDN)"
msgstr "Nombre de la zona (FQDN)"
-#: ipalib/plugins/dns.py:143
-msgid "Authoritative name server"
+#: ipalib/plugins/dns.py:296
+#, fuzzy
+msgid "Authoritative nameserver"
+msgstr "Servidor de nombres de autoridad"
+
+#: ipalib/plugins/dns.py:297
+#, fuzzy
+msgid "Authoritative nameserver."
msgstr "Servidor de nombres de autoridad"
-#: ipalib/plugins/dns.py:147
-msgid "administrator e-mail address"
+#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#, fuzzy
+msgid "Administrator e-mail address"
msgstr "dirección de correo electrónico del administrador"
-#: ipalib/plugins/dns.py:153
+#: ipalib/plugins/dns.py:308
msgid "SOA serial"
msgstr "Serie SOA"
-#: ipalib/plugins/dns.py:157
+#: ipalib/plugins/dns.py:309
+#, fuzzy
+msgid "SOA record serial number"
+msgstr "Número de serie"
+
+#: ipalib/plugins/dns.py:316
msgid "SOA refresh"
msgstr "Actualizar SOA"
-#: ipalib/plugins/dns.py:161
+#: ipalib/plugins/dns.py:317
+#, fuzzy
+msgid "SOA record refresh time"
+msgstr "Actualizar SOA"
+
+#: ipalib/plugins/dns.py:324
msgid "SOA retry"
msgstr "Reintentar SOA"
-#: ipalib/plugins/dns.py:165
+#: ipalib/plugins/dns.py:325
+#, fuzzy
+msgid "SOA record retry time"
+msgstr "Reintentar SOA"
+
+#: ipalib/plugins/dns.py:332
msgid "SOA expire"
msgstr "Expirar SOA"
-#: ipalib/plugins/dns.py:169
+#: ipalib/plugins/dns.py:333
+#, fuzzy
+msgid "SOA record expire time"
+msgstr "Expirar SOA"
+
+#: ipalib/plugins/dns.py:340
msgid "SOA minimum"
msgstr "Mínimo SOA"
-#: ipalib/plugins/dns.py:173
+#: ipalib/plugins/dns.py:341
+msgid "How long should negative responses be cached"
+msgstr ""
+
+#: ipalib/plugins/dns.py:349
msgid "SOA time to live"
msgstr "Tiempo para abandonar SOA"
-#: ipalib/plugins/dns.py:177
+#: ipalib/plugins/dns.py:350
+#, fuzzy
+msgid "SOA record time to live"
+msgstr "Tiempo para abandonar SOA"
+
+#: ipalib/plugins/dns.py:354
msgid "SOA class"
msgstr "Clase SOA"
-#: ipalib/plugins/dns.py:182
-msgid "allow dynamic update?"
-msgstr "¿permitir actualización dinámica?"
+#: ipalib/plugins/dns.py:355
+#, fuzzy
+msgid "SOA record class"
+msgstr "Clase SOA"
-#: ipalib/plugins/dns.py:186
+#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
msgid "BIND update policy"
msgstr "Política de actualización de BIND"
-#: ipalib/plugins/dns.py:426 ipalib/plugins/dns.py:460
-#: ipalib/plugins/dns.py:495 ipalib/plugins/dns.py:610
-#: ipalib/plugins/dns.py:695 ipalib/plugins/dns.py:819
-msgid "Zone name"
-msgstr "Nombre de la zona"
+#: ipalib/plugins/dns.py:365
+msgid "Active zone"
+msgstr ""
-#: ipalib/plugins/dns.py:500
-msgid "resource name"
-msgstr "nombre del recurso"
+#: ipalib/plugins/dns.py:366
+msgid "Is zone active?"
+msgstr ""
-#: ipalib/plugins/dns.py:505 ipalib/plugins/dns.py:620
-#: ipalib/plugins/dns.py:711
-msgid "Record type"
-msgstr "Tipo de registro"
+#: ipalib/plugins/dns.py:372
+#, fuzzy
+msgid "Dynamic update"
+msgstr "¿permitir actualización dinámica?"
-#: ipalib/plugins/dns.py:509 ipalib/plugins/dns.py:624
-msgid "Data"
-msgstr "Datos"
+#: ipalib/plugins/dns.py:373
+#, fuzzy
+msgid "Allow dynamic updates."
+msgstr "¿permitir actualización dinámica?"
+
+#: ipalib/plugins/dns.py:382
+msgid ""
+"\n"
+" Create new DNS zone (SOA record).\n"
+" "
+msgstr ""
-#: ipalib/plugins/dns.py:510 ipalib/plugins/dns.py:625
-msgid "Type-specific data"
-msgstr "Datos de tipo específico"
+#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
+#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+msgid "Force"
+msgstr ""
+
+#: ipalib/plugins/dns.py:388
+#, fuzzy
+msgid "Force DNS zone creation even if nameserver not in DNS."
+msgstr ""
+"fuerza el nombre del equipo anfitrión, incluso si no se encuentra en DNS"
+
+#: ipalib/plugins/dns.py:391
+msgid "Add the nameserver to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:397
+msgid "DNS is not configured"
+msgstr ""
+
+#: ipalib/plugins/dns.py:431
+msgid ""
+"\n"
+" Delete DNS zone (SOA record).\n"
+" "
+msgstr ""
-#: ipalib/plugins/dns.py:517
+#: ipalib/plugins/dns.py:439
+msgid ""
+"\n"
+" Modify DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:452
+msgid ""
+"\n"
+" Search for DNS zones (SOA records).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:460
+msgid ""
+"\n"
+" Display information about a DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+msgid ""
+"\n"
+" Disable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:472
+#, fuzzy
+msgid "Disabled DNS zone \"%(value)s\""
+msgstr "Ha sido eliminado el usuario \"%(value)s\""
+
+#: ipalib/plugins/dns.py:490
+msgid ""
+"\n"
+" Enable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:494
+#, fuzzy
+msgid "Enabled DNS zone \"%(value)s\""
+msgstr "Ha sido desbloqueado el usuario \"%(value)s\""
+
+#: ipalib/plugins/dns.py:512
+msgid ""
+"\n"
+" DNS record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:522
+#, fuzzy
+msgid "DNS resource record"
+msgstr "nombre del recurso"
+
+#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
+#, fuzzy
+msgid "Record name"
+msgstr "Nombre del recurso"
+
+#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
msgid "Time to live"
msgstr "Tiempo para abandonar"
-#: ipalib/plugins/dns.py:522
+#: ipalib/plugins/dns.py:538
msgid "Class"
msgstr "Clase"
-#: ipalib/plugins/dns.py:615 ipalib/plugins/dns.py:707
-#: ipalib/plugins/dns.py:824
-msgid "Resource name"
-msgstr "Nombre del recurso"
+#: ipalib/plugins/dns.py:539
+#, fuzzy
+msgid "DNS class"
+msgstr "Clase SOA"
-#: ipalib/plugins/dns.py:700
-msgid "Search criteria"
-msgstr "Criterio de búsqueda"
+#: ipalib/plugins/dns.py:566
+msgid ""
+"\n"
+" Base class for DNS record commands with record options.\n"
+" "
+msgstr ""
-#: ipalib/plugins/dns.py:715
-msgid "type-specific data"
-msgstr "datos de tipo específico"
+#: ipalib/plugins/dns.py:610
+msgid ""
+"\n"
+" Base class for adding/removing records from DNS resource entries.\n"
+" "
+msgstr ""
-#: ipalib/plugins/dns.py:865
-#, python-format
+#: ipalib/plugins/dns.py:674
+msgid ""
+"\n"
+" Add records to DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:690
+msgid ""
+"\n"
+" Add new DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:699
+#, fuzzy
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+"fuerza el nombre del equipo anfitrión, incluso si no se encuentra en DNS"
+
+#: ipalib/plugins/dns.py:735
+msgid ""
+"Reverse zone for PTR record should be a sub-zone of one the following fully "
+"qualified domains: %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:740
+msgid "Reverse zone %s requires exactly %d IP address components, %d given"
+msgstr ""
+
+#: ipalib/plugins/dns.py:746
+msgid "PTR record '%s' is not fully qualified (check traling '.')"
+msgstr ""
+
+#: ipalib/plugins/dns.py:789
+msgid ""
+"\n"
+" Delete DNS record entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:792
+#, fuzzy
+msgid "Deleted record \"%(value)s\""
+msgstr "Ha sido eliminado el usuario \"%(value)s\""
+
+#: ipalib/plugins/dns.py:799
+msgid ""
+"\n"
+" Delete DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:802
+msgid ""
+"Neither --del-all nor options to delete a specific record provided.\n"
+"Command help may be consulted for all supported record types."
+msgstr ""
+
+#: ipalib/plugins/dns.py:807
+msgid "Delete all associated records"
+msgstr ""
+
+#: ipalib/plugins/dns.py:834
+msgid "No option to delete specific record provided."
+msgstr ""
+
+#: ipalib/plugins/dns.py:835
+msgid "Delete all?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:845
+msgid "Current DNS record contents:\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:875
+#, fuzzy
+msgid "%s record with value %s not found"
+msgstr "No se encuentra un ACI cuyo nombre sea \"%s\""
+
+#: ipalib/plugins/dns.py:889
+msgid ""
+"\n"
+" Display DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:905
+msgid ""
+"\n"
+" Search for DNS resources.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:932
+msgid ""
+"\n"
+" Resolve a host name in DNS\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:936
msgid "Found '%(value)s'"
msgstr "Ha sido encontrado '%(value)s'"
-#: ipalib/plugins/dns.py:869
+#: ipalib/plugins/dns.py:940
msgid "Hostname"
msgstr "Nombre del equipo anfitrión"
-#: ipalib/plugins/dns.py:882
-#, python-format
+#: ipalib/plugins/dns.py:962
msgid "Host '%(host)s' not found"
msgstr "No ha sido encontrado el equipo anfitrión '%(host)s' "
-#: ipalib/plugins/group.py:94
+#: ipalib/plugins/dns.py:970
+msgid ""
+"\n"
+" Checks if any of the servers has the DNS service enabled.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:19
+msgid ""
+"\n"
+"Entitlements\n"
+"\n"
+"Manage entitlements for client machines\n"
+"\n"
+"Entitlements can be managed either by registering with an entitlement\n"
+"server with a username and password or by manually importing entitlement\n"
+"certificates. An entitlement certificate contains embedded information\n"
+"such as the product being entitled, the quantity and the validity dates.\n"
+"\n"
+"An entitlement server manages the number of client entitlements available.\n"
+"To mark these entitlements as used by the IPA server you provide a quantity\n"
+"and they are marked as consumed on the entitlement server.\n"
+"\n"
+" Register with an entitlement server:\n"
+" ipa entitle-register consumer\n"
+"\n"
+" Import an entitlement certificate:\n"
+" ipa entitle-import /home/user/ipaclient.pem\n"
+"\n"
+" Display current entitlements:\n"
+" ipa entitle-status\n"
+"\n"
+" Retrieve details on entitlement certificates:\n"
+" ipa entitle-get\n"
+"\n"
+" Consume some entitlements from the entitlement server:\n"
+" ipa entitle-consume 50\n"
+"\n"
+"The registration ID is a Unique Identifier (UUID). This ID will be\n"
+"IMPORTED if you have used entitle-import.\n"
+"\n"
+"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:106
+msgid ""
+"\n"
+" Get our entitlement pool. Assume there is only one pool.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:129
+msgid ""
+"\n"
+" Retrieve our UUID, certificate and key from LDAP.\n"
+"\n"
+" Except on error the caller is responsible for removing temporary files\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:178
+msgid ""
+"\n"
+" Entitlement object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:189
+msgid "Entitlements"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:206
+msgid ""
+"\n"
+" Display current entitlements\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+msgid "UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
+#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
+#: ipalib/plugins/entitle.py:690
+msgid "Product"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
+#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
+#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+msgid "Quantity"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
+#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+msgid "Consumed"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:276
+msgid ""
+"\n"
+" Consume an entitlement\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:282
+msgid "Consumed %(value)s entitlement(s)."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:314
+msgid ""
+"\n"
+" Override this so we can set value to the number of entitlements\n"
+" consumed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
+msgid ""
+"\n"
+" Returning the certificates isn't very interesting. Return the\n"
+" status of entitlements instead.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:380
+msgid ""
+"\n"
+" Retrieve the entitlement certs\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:394
+msgid "Start"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:397
+#, fuzzy
+msgid "End"
+msgstr "Habilitado"
+
+#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
+#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#, fuzzy
+msgid "Serial Number"
+msgstr "Número de serie"
+
+#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
+#: ipalib/plugins/entitle.py:628
+msgid "Not an entitlement certificate"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:460
+msgid ""
+"\n"
+" Search for entitlement accounts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:473
+msgid ""
+"\n"
+" Register to the entitlement system\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:479
+msgid "Registered to entitlement server."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:483
+#, fuzzy
+msgid "Username"
+msgstr "Nombre de usuario"
+
+#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
+msgid "Enrollment UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
+#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
+msgid "Password"
+msgstr "Contraseña"
+
+#: ipalib/plugins/entitle.py:495
+#, fuzzy
+msgid "Registration password"
+msgstr "Contraseña de usuario"
+
+#: ipalib/plugins/entitle.py:569
+msgid ""
+"\n"
+" Import an entitlement certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:646
+msgid ""
+"\n"
+" If we are adding the first entry there are no updates so "
+"EmptyModlist\n"
+" will get thrown. Ignore it.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:667
+msgid ""
+"\n"
+" Re-sync the local entitlement cache with the entitlement server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:673
+msgid "Entitlement(s) synchronized."
+msgstr ""
+
+#: ipalib/plugins/group.py:20
+msgid ""
+"\n"
+"Groups of users\n"
+"\n"
+"Manage groups of users. By default, new groups are POSIX groups. You\n"
+"can add the --nonposix option to the group-add command to mark a new group\n"
+"as non-POSIX, and you can use the same argument to the group-mod command\n"
+"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"converted to non-POSIX groups.\n"
+"\n"
+"Every group must have a description.\n"
+"\n"
+"POSIX groups must have a Group ID (GID) number. Changing a GID is\n"
+"supported but can have an impact on your file permissions. It is not "
+"necessary\n"
+"to supply a GID when creating a group. IPA will generate one automatically\n"
+"if it is not provided.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new group:\n"
+" ipa group-add --desc='local administrators' localadmins\n"
+"\n"
+" Add a new non-POSIX group:\n"
+" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n"
+"\n"
+" Convert a non-POSIX group to posix:\n"
+" ipa group-mod --posix remoteadmins\n"
+"\n"
+" Add a new POSIX group with a specific Group ID number:\n"
+" ipa group-add --gid=500 --desc='unix admins' unixadmins\n"
+"\n"
+" Add a new POSIX group and let IPA assign a Group ID number:\n"
+" ipa group-add --desc='printer admins' printeradmins\n"
+"\n"
+" Remove a group:\n"
+" ipa group-del unixadmins\n"
+"\n"
+" To add the \"remoteadmins\" group to the \"localadmins\" group:\n"
+" ipa group-add-member --groups=remoteadmins localadmins\n"
+"\n"
+" Add a list of users to the \"localadmins\" group:\n"
+" ipa group-add-member --users=test1,test2 localadmins\n"
+"\n"
+" Remove a user from the \"localadmins\" group:\n"
+" ipa group-remove-member --users=test2 localadmins\n"
+"\n"
+" Display information about a named group.\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/group.py:76
+msgid ""
+"\n"
+" Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:100
msgid "User Groups"
msgstr "Grupos de usuarios"
-#: ipalib/plugins/group.py:102
+#: ipalib/plugins/group.py:108
msgid "Group name"
msgstr "Nombre del grupo"
-#: ipalib/plugins/group.py:109 ipalib/plugins/sudocmdgroup.py:78
+#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
msgid "Group description"
msgstr "Descripción del grupo"
-#: ipalib/plugins/group.py:113
+#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
msgid "GID"
msgstr "GID"
-#: ipalib/plugins/group.py:114
+#: ipalib/plugins/group.py:120
msgid "GID (use this option to set it manually)"
msgstr "GID (utilice esta opción para definirlo manualmente)"
-#: ipalib/plugins/group.py:117 ipalib/plugins/rolegroup.py:94
-#: ipalib/plugins/taskgroup.py:66
-msgid "Member groups"
-msgstr "Grupos de miembros"
-
-#: ipalib/plugins/group.py:121 ipalib/plugins/rolegroup.py:98
-#: ipalib/plugins/taskgroup.py:70
-msgid "Member users"
-msgstr "Usuarios miembros"
+#: ipalib/plugins/group.py:128
+msgid ""
+"\n"
+" Create a new group.\n"
+" "
+msgstr ""
-#: ipalib/plugins/group.py:134
-#, python-format
+#: ipalib/plugins/group.py:132
msgid "Added group \"%(value)s\""
msgstr "Ha sido agregado el grupo \"%(value)s\""
-#: ipalib/plugins/group.py:139
+#: ipalib/plugins/group.py:137
#, fuzzy
-msgid "Create as a non-POSIX group?"
+msgid "Create as a non-POSIX group"
msgstr "¿Crear como un grupo posix?"
-#: ipalib/plugins/group.py:160
-#, python-format
+#: ipalib/plugins/group.py:154
+msgid ""
+"\n"
+" Delete group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:158
msgid "Deleted group \"%(value)s\""
msgstr "Ha sido eliminado el grupo \"%(value)s\""
-#: ipalib/plugins/group.py:191
-#, python-format
+#: ipalib/plugins/group.py:186
+msgid ""
+"\n"
+" Modify a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:189
msgid "Modified group \"%(value)s\""
msgstr "Ha sido modificado el grupo \"%(value)s\""
-#: ipalib/plugins/group.py:196
+#: ipalib/plugins/group.py:194
#, fuzzy
msgid "change to a POSIX group"
msgstr "trasladarse al grupo posix"
-#: ipalib/plugins/group.py:222 ipalib/plugins/hbacsvcgroup.py:129
-#, python-format
+#: ipalib/plugins/group.py:215
+msgid ""
+"\n"
+" Search for groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:220
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] "%(count)d grupo coincidente"
msgstr[1] "%(count)d grupos coincidentes"
+#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+msgid "search for private groups"
+msgstr ""
+
#: ipalib/plugins/group.py:257
-#, python-format
+msgid ""
+"\n"
+" Display information about a named group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:265
+#, fuzzy
+msgid ""
+"\n"
+" Add members to a group.\n"
+" "
+msgstr "Miembro de un grupo"
+
+#: ipalib/plugins/group.py:273
+msgid ""
+"\n"
+" Remove members from a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:281
+msgid ""
+"\n"
+" Detach a managed group from a user\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:285
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr "Ha sido desasociado el grupo \"%(value)s\" del usuario \"%(value)s\""
-#: ipalib/plugins/group.py:273
+#: ipalib/plugins/group.py:288
+msgid ""
+"\n"
+" This requires updating both the user and the group. We first need "
+"to\n"
+" verify that both the user and group can be updated, then we go\n"
+" about our work. We don't want a situation where only the user or\n"
+" group can be modified and we're left in a bad state.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:306
msgid "not allowed to modify user entries"
msgstr "no se permite modificar las entradas de los usuarios"
-#: ipalib/plugins/group.py:277
+#: ipalib/plugins/group.py:312
msgid "not allowed to modify group entries"
msgstr "no se permite modificar las entradas de los grupos"
-#: ipalib/plugins/group.py:284 ipalib/plugins/group.py:295
+#: ipalib/plugins/group.py:331
msgid "Not a managed group"
msgstr "No es un grupo administrado"
-#: ipalib/plugins/hbac.py:106
-msgid "HBAC"
+#: ipalib/plugins/hbacrule.py:19
+msgid ""
+"\n"
+"Host-based access control\n"
+"\n"
+"Control who can access what services on what hosts and from where. You\n"
+"can use HBAC to control which users or groups on a source host can\n"
+"access a service, or group of services, on a target host.\n"
+"\n"
+"You can also specify a category of users, target hosts, and source\n"
+"hosts. This is currently limited to \"all\", but might be expanded in the\n"
+"future.\n"
+"\n"
+"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n"
+"\n"
+"The available services and groups of services are controlled by the\n"
+"hbacsvc and hbacsvcgroup plug-ins respectively.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a rule, \"test1\", that grants all users access to the host \"server"
+"\" from\n"
+" anywhere:\n"
+" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add-host --hosts=server.example.com test1\n"
+"\n"
+" Display the properties of a named HBAC rule:\n"
+" ipa hbacrule-show test1\n"
+"\n"
+" Create a rule for a specific service. This lets the user john access\n"
+" the sshd service on any machine from any machine:\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add-user --users=john john_sshd\n"
+" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
+"\n"
+" Create a rule for a new service group. This lets the user john access\n"
+" the FTP service on any machine from any machine:\n"
+" ipa hbacsvcgroup-add ftpers\n"
+" ipa hbacsvc-add sftp\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add-user --users=john john_ftp\n"
+" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
+"\n"
+" Disable a named HBAC rule:\n"
+" ipa hbacrule-disable test1\n"
+"\n"
+" Remove a named HBAC rule:\n"
+" ipa hbacrule-del allow_server\n"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:91
+msgid ""
+"\n"
+" See if options[attribute] is lower-case 'all' in a safe way.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:103
+msgid ""
+"\n"
+" HBAC object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:126
+#, fuzzy
+msgid "HBAC Rule"
msgstr "HBAC"
-#: ipalib/plugins/hbac.py:111 ipalib/plugins/sudorule.py:53
+#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
msgid "Rule name"
msgstr "Nombre de la regla"
-#: ipalib/plugins/hbac.py:116
+#: ipalib/plugins/hbacrule.py:136
msgid "Rule type (allow or deny)"
msgstr "Tipo de regla (permitir o negar)"
-#: ipalib/plugins/hbac.py:117
+#: ipalib/plugins/hbacrule.py:137
msgid "Rule type"
msgstr "Tipo de regla"
-#: ipalib/plugins/hbac.py:123
+#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
+#: ipalib/plugins/sudorule.py:86
msgid "User category"
msgstr "Categoría de usuario"
-#: ipalib/plugins/hbac.py:124
+#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
+#: ipalib/plugins/sudorule.py:87
msgid "User category the rule applies to"
msgstr "Categoría de usuario al que se aplica la regla"
-#: ipalib/plugins/hbac.py:129
+#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
+#: ipalib/plugins/sudorule.py:92
msgid "Host category"
msgstr "Categoría del equipo"
-#: ipalib/plugins/hbac.py:130
+#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
+#: ipalib/plugins/sudorule.py:93
msgid "Host category the rule applies to"
msgstr "Categoría del equipo al que se aplica la regla"
-#: ipalib/plugins/hbac.py:135
+#: ipalib/plugins/hbacrule.py:155
msgid "Source host category"
msgstr "Categoría del equipo de origen"
-#: ipalib/plugins/hbac.py:136
+#: ipalib/plugins/hbacrule.py:156
msgid "Source host category the rule applies to"
msgstr "Categoría del equipo de origen al que se aplica la regla"
-#: ipalib/plugins/hbac.py:141
+#: ipalib/plugins/hbacrule.py:161
msgid "Service category"
msgstr "Categoría de servicio"
-#: ipalib/plugins/hbac.py:142
+#: ipalib/plugins/hbacrule.py:162
msgid "Service category the rule applies to"
msgstr "Categoría de servicio a la que se aplica la regla"
-#: ipalib/plugins/hbac.py:147 ipalib/plugins/hbac.py:325
-#: ipalib/plugins/hbac.py:363
-msgid "Access time"
-msgstr "Hora de acceso"
-
-#: ipalib/plugins/hbac.py:154
+#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
msgid "Enabled"
msgstr "Habilitado"
-#: ipalib/plugins/hbac.py:158 ipalib/plugins/sudorule.py:61
-#: ipalib/plugins/user.py:76
+#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
+#: ipalib/plugins/user.py:108
msgid "Users"
msgstr "Usuarios"
-#: ipalib/plugins/hbac.py:162 ipalib/plugins/host.py:113
-#: ipalib/plugins/sudorule.py:65
+#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
+#: ipalib/plugins/sudorule.py:119
+msgid "Groups"
+msgstr "Grupos"
+
+#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
+#: ipalib/plugins/sudorule.py:123
msgid "Hosts"
msgstr "Equipos"
-#: ipalib/plugins/hbac.py:166 ipalib/plugins/hostgroup.py:69
-#: ipalib/plugins/sudorule.py:69
+#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
+#: ipalib/plugins/sudorule.py:127
msgid "Host Groups"
msgstr "Grupos de equipo"
-#: ipalib/plugins/hbac.py:170
+#: ipalib/plugins/hbacrule.py:194
msgid "Source hosts"
msgstr "Equipos fuente"
-#: ipalib/plugins/hbac.py:174 ipalib/plugins/hbacsvc.py:60
-#: ipalib/plugins/service.py:192
+#: ipalib/plugins/hbacrule.py:198
+#, fuzzy
+msgid "Source host groups"
+msgstr "Equipos fuente"
+
+#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
+#: ipalib/plugins/service.py:220
msgid "Services"
msgstr "Servicios"
-#: ipalib/plugins/hbac.py:178
+#: ipalib/plugins/hbacrule.py:206
msgid "Service Groups"
msgstr "Grupos de servicio"
-#: ipalib/plugins/hbacsvc.py:65
+#: ipalib/plugins/hbacrule.py:215
+msgid ""
+"\n"
+" Create a new HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:219
+#, fuzzy
+msgid "Added HBAC rule \"%(value)s\""
+msgstr "Ha sido agregado el usuario \"%(value)s\""
+
+#: ipalib/plugins/hbacrule.py:230
+msgid ""
+"\n"
+" Delete an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:234
+#, fuzzy
+msgid "Deleted HBAC rule \"%(value)s\""
+msgstr "Ha sido eliminado ACI \"%(value)s\""
+
+#: ipalib/plugins/hbacrule.py:240
+msgid ""
+"\n"
+" Modify an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:244
+#, fuzzy
+msgid "Modified HBAC rule \"%(value)s\""
+msgstr "Ha sido modificado ACI \"%(value)s\""
+
+#: ipalib/plugins/hbacrule.py:266
+msgid ""
+"\n"
+" Search for HBAC rules.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:270
+#, fuzzy
+msgid "%(count)d HBAC rule matched"
+msgid_plural "%(count)d HBAC rules matched"
+msgstr[0] "%(count)d ACI coincidente"
+msgstr[1] "%(count)d ACIs coincidentes"
+
+#: ipalib/plugins/hbacrule.py:278
+msgid ""
+"\n"
+" Display the properties of an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:286
+msgid ""
+"\n"
+" Enable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:290
+#, fuzzy
+msgid "Enabled HBAC rule \"%(value)s\""
+msgstr "Ha sido desbloqueado el usuario \"%(value)s\""
+
+#: ipalib/plugins/hbacrule.py:315
+msgid ""
+"\n"
+" Disable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:319
+#, fuzzy
+msgid "Disabled HBAC rule \"%(value)s\""
+msgstr "Ha sido eliminado el usuario \"%(value)s\""
+
+#: ipalib/plugins/hbacrule.py:344
+msgid ""
+"\n"
+" Add an access time to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+msgid "Access time"
+msgstr "Hora de acceso"
+
+#: ipalib/plugins/hbacrule.py:385
+msgid ""
+"\n"
+" Remove access time to HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:425
+msgid ""
+"\n"
+" Add users and groups to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:442
+msgid ""
+"\n"
+" Remove users and groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:452
+msgid ""
+"\n"
+" Add target hosts and hostgroups to an HBAC rule\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:469
+msgid ""
+"\n"
+" Remove target hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:479
+msgid ""
+"\n"
+" Add source hosts and hostgroups from a HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:496
+msgid ""
+"\n"
+" Remove source hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:506
+msgid ""
+"\n"
+" Add services to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:523
+msgid ""
+"\n"
+" Remove service and service groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:19
+msgid ""
+"\n"
+"HBAC Services\n"
+"\n"
+"The PAM services that HBAC can control access to. The name used here\n"
+"must match the service name that PAM is evaluating.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service:\n"
+" ipa hbacsvc-add tftp\n"
+"\n"
+" Modify an existing HBAC service:\n"
+" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n"
+"\n"
+" Search for HBAC services. This example will return two results, the FTP\n"
+" service and the newly-added tftp service:\n"
+" ipa hbacsvc-find ftp\n"
+"\n"
+" Delete an HBAC service:\n"
+" ipa hbacsvc-del tftp\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:51
+msgid ""
+"\n"
+" HBAC Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:61
+#, fuzzy
+msgid "HBAC Services"
+msgstr "Servicios"
+
+#: ipalib/plugins/hbacsvc.py:66
msgid "Service name"
msgstr "Nombre del servicio"
-#: ipalib/plugins/hbacsvc.py:66
+#: ipalib/plugins/hbacsvc.py:67
#, fuzzy
-msgid "HBAC Service"
+msgid "HBAC service"
msgstr "Servicios"
-#: ipalib/plugins/hbacsvc.py:73
+#: ipalib/plugins/hbacsvc.py:74
#, fuzzy
-msgid "Description of service"
-msgstr "Descripción"
+msgid "HBAC service description"
+msgstr "Descripción del grupo de red"
-#: ipalib/plugins/hbacsvc.py:84 ipalib/plugins/service.py:216
-#, python-format
-msgid "Added service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:82
+msgid ""
+"\n"
+" Add a new HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:85
+#, fuzzy
+msgid "Added HBAC service \"%(value)s\""
msgstr "Ha sido agregado el servicio \"%(value)s\""
-#: ipalib/plugins/hbacsvc.py:93 ipalib/plugins/service.py:255
-#, python-format
-msgid "Deleted service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:91
+msgid ""
+"\n"
+" Delete an existing HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:94
+#, fuzzy
+msgid "Deleted HBAC service \"%(value)s\""
msgstr "Ha sido eliminado el servicio \"%(value)s\""
-#: ipalib/plugins/hbacsvcgroup.py:66
+#: ipalib/plugins/hbacsvc.py:100
+msgid ""
+"\n"
+" Modify an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:104
#, fuzzy
-msgid "HBAC Service Groups"
+msgid "Modified HBAC service \"%(value)s\""
+msgstr "Ha sido modificado el servicio \"%(value)s\""
+
+#: ipalib/plugins/hbacsvc.py:110
+msgid ""
+"\n"
+" Search for HBAC services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:114
+#, fuzzy
+msgid "%(count)d HBAC service matched"
+msgid_plural "%(count)d HBAC services matched"
+msgstr[0] "%(count)d servicio coincidente"
+msgstr[1] "%(count)d servicios coincidentes\t\t\t"
+
+#: ipalib/plugins/hbacsvc.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:19
+msgid ""
+"\n"
+"HBAC Service Groups\n"
+"\n"
+"HBAC service groups can contain any number of individual services,\n"
+"or \"members\". Every group must have a description.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service group:\n"
+" ipa hbacsvcgroup-add --desc=\"login services\" login\n"
+"\n"
+" Add members to an HBAC service group:\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n"
+"\n"
+" Display information about a named group:\n"
+" ipa hbacsvcgroup-show login\n"
+"\n"
+" Add a new group to the \"login\" group:\n"
+" ipa hbacsvcgroup-add --desc=\"switch users\" login\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n"
+"\n"
+" Delete an HBAC service group:\n"
+" ipa hbacsvcgroup-del login\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:51
+#, fuzzy
+msgid ""
+"\n"
+" HBAC service group object.\n"
+" "
+msgstr "Descripción del grupo de red"
+
+#: ipalib/plugins/hbacsvcgroup.py:64
+#, fuzzy
+msgid "HBAC service Groups"
msgstr "Grupos de servicio"
-#: ipalib/plugins/hbacsvcgroup.py:71
+#: ipalib/plugins/hbacsvcgroup.py:69
#, fuzzy
msgid "Service group name"
msgstr "Nombre del servicio"
-#: ipalib/plugins/hbacsvcgroup.py:78
+#: ipalib/plugins/hbacsvcgroup.py:76
#, fuzzy
msgid "HBAC service group description"
msgstr "Descripción del grupo de red"
-#: ipalib/plugins/hbacsvcgroup.py:81
+#: ipalib/plugins/hbacsvcgroup.py:84
#, fuzzy
-msgid "Member services"
-msgstr "Usuarios miembros"
+msgid ""
+"\n"
+" Add a new HBAC service group.\n"
+" "
+msgstr "Ha sido agregado el grupo de funciones \"%(value)s\""
-#: ipalib/plugins/hbacsvcgroup.py:85
+#: ipalib/plugins/hbacsvcgroup.py:87
#, fuzzy
-msgid "Member service groups"
-msgstr "Grupos de función miembro"
-
-#: ipalib/plugins/hbacsvcgroup.py:101
-#, fuzzy, python-format
-msgid "Added HBAC Service group \"%(value)s\""
+msgid "Added HBAC service group \"%(value)s\""
msgstr "Ha sido agregado el grupo de funciones \"%(value)s\""
-#: ipalib/plugins/hbacsvcgroup.py:110
-#, fuzzy, python-format
-msgid "Deleted HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:93
+#, fuzzy
+msgid ""
+"\n"
+" Delete an HBAC service group.\n"
+" "
msgstr "Ha sido eliminado el grupo de funciones \"%(value)s\""
-#: ipalib/plugins/hbacsvcgroup.py:119
-#, fuzzy, python-format
-msgid "Modified HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:96
+#, fuzzy
+msgid "Deleted HBAC service group \"%(value)s\""
+msgstr "Ha sido eliminado el grupo de funciones \"%(value)s\""
+
+#: ipalib/plugins/hbacsvcgroup.py:102
+#, fuzzy
+msgid ""
+"\n"
+" Modify an HBAC service group.\n"
+" "
msgstr "Ha sido modificado el grupo de funciones \"%(value)s\""
-#: ipalib/plugins/host.py:86
+#: ipalib/plugins/hbacsvcgroup.py:105
+#, fuzzy
+msgid "Modified HBAC service group \"%(value)s\""
+msgstr "Ha sido modificado el grupo de funciones \"%(value)s\""
+
+#: ipalib/plugins/hbacsvcgroup.py:111
+msgid ""
+"\n"
+" Search for an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:114
+#, fuzzy
+msgid "%(count)d HBAC service group matched"
+msgid_plural "%(count)d HBAC service groups matched"
+msgstr[0] "%(count)d servicio coincidente"
+msgstr[1] "%(count)d servicios coincidentes\t\t\t"
+
+#: ipalib/plugins/hbacsvcgroup.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:130
+msgid ""
+"\n"
+" Add members to an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:138
+msgid ""
+"\n"
+" Remove members from an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:20
+msgid ""
+"\n"
+"Hosts/Machines\n"
+"\n"
+"A host represents a machine. It can be used in a number of contexts:\n"
+"- service entries are associated with a host\n"
+"- a host stores the host/ service principal\n"
+"- a host can be used in Host-based Access Control (HBAC) rules\n"
+"- every enrolled client generates a host entry\n"
+"\n"
+"ENROLLMENT:\n"
+"\n"
+"There are three enrollment scenarios when enrolling a new client:\n"
+"\n"
+"1. You are enrolling as a full administrator. The host entry may exist\n"
+" or not. A full administrator is a member of the hostadmin role\n"
+" or the admins group.\n"
+"2. You are enrolling as a limited administrator. The host must already\n"
+" exist. A limited administrator is a member a role with the\n"
+" Host Enrollment privilege.\n"
+"3. The host has been created with a one-time password.\n"
+"\n"
+"A host can only be enrolled once. If a client has enrolled and needs to\n"
+"be re-enrolled, the host entry must be removed and re-created. Note that\n"
+"re-creating the host entry will result in all services for the host being\n"
+"removed, and all SSL certificates associated with those services being\n"
+"revoked.\n"
+"\n"
+"A host can optionally store information such as where it is located,\n"
+"the OS that it runs, etc.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host:\n"
+" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example."
+"com\n"
+"\n"
+" Delete a host:\n"
+" ipa host-del test.example.com\n"
+"\n"
+" Add a new host with a one-time password:\n"
+" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n"
+"\n"
+" Add a new host with a random one-time password:\n"
+" ipa host-add --os='Fedora 12' --random test.example.com\n"
+"\n"
+" Modify information about a host:\n"
+" ipa host-mod --os='Fedora 12' test.example.com\n"
+"\n"
+" Disable the host Kerberos key, SSL certificate and all of its services:\n"
+" ipa host-disable test.example.com\n"
+"\n"
+" Add a host that can manage this host's keytab and certificate:\n"
+" ipa host-add-managedby --hosts=test2 test\n"
+msgstr ""
+
+#: ipalib/plugins/host.py:97
+msgid ""
+"\n"
+" Require at least one dot in the hostname (to support localhost."
+"localdomain)\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr "Es necesario un nombre de equipo totalmente certificado"
-#: ipalib/plugins/host.py:118
+#: ipalib/plugins/host.py:129
+msgid "DNS reverse zone for IP address %(addr)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+msgid "Keytab"
+msgstr "Keytab"
+
+#: ipalib/plugins/host.py:185
+msgid ""
+"\n"
+" Verify that we have either an IPv4 or IPv6 address.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:189
+#, fuzzy
+msgid "invalid IP address"
+msgstr "Dirección de correo electrónico"
+
+#: ipalib/plugins/host.py:194
+msgid ""
+"\n"
+" Host object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:231
msgid "Host name"
msgstr "Nombre del equipo"
-#: ipalib/plugins/host.py:125
+#: ipalib/plugins/host.py:238
msgid "A description of this host"
msgstr "Una descripción de este equipo"
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:242
msgid "Locality"
msgstr "Localidad"
-#: ipalib/plugins/host.py:130
+#: ipalib/plugins/host.py:243
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr "Localidad del equipo (p.ej. \"Barrio latino, París\") "
-#: ipalib/plugins/host.py:135
+#: ipalib/plugins/host.py:248
msgid "Host location (e.g. \"Lab 2\")"
msgstr "Ubicación del equipo (p. ej. \"Laboratorio\")"
-#: ipalib/plugins/host.py:139
+#: ipalib/plugins/host.py:252
msgid "Platform"
msgstr "Plataforma"
-#: ipalib/plugins/host.py:140
+#: ipalib/plugins/host.py:253
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr "Plataforma de hardware del equipo (p. ej. \"Lenovo T61\")"
-#: ipalib/plugins/host.py:144
+#: ipalib/plugins/host.py:257
msgid "Operating system"
msgstr "Sistema operativo"
-#: ipalib/plugins/host.py:145
+#: ipalib/plugins/host.py:258
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
"Sistema operativo que utiliza el equipo y versión (p.ej. \"Fedora 11\")"
-#: ipalib/plugins/host.py:149
+#: ipalib/plugins/host.py:262
msgid "User password"
msgstr "Contraseña de usuario"
-#: ipalib/plugins/host.py:150
+#: ipalib/plugins/host.py:263
msgid "Password used in bulk enrollment"
msgstr "Contraseña utilizada en el registro bruto"
-#: ipalib/plugins/host.py:155 ipalib/plugins/service.py:205
+#: ipalib/plugins/host.py:266
+#, fuzzy
+msgid "Generate a random password to be used in bulk enrollment"
+msgstr "Contraseña utilizada en el registro bruto"
+
+#: ipalib/plugins/host.py:271
+#, fuzzy
+msgid "Random password"
+msgstr "asociar contraseña"
+
+#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
msgid "Base-64 encoded server certificate"
msgstr "Certificado del servidor codificado con base-64"
-#: ipalib/plugins/host.py:158 ipalib/plugins/host.py:274
+#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
msgid "Principal name"
msgstr "Nombre principal"
-#: ipalib/plugins/host.py:162 ipalib/plugins/hostgroup.py:93
-msgid "Member of host-groups"
-msgstr "Miembro de los grupos de equipo"
-
-#: ipalib/plugins/host.py:166
-msgid "Member of net-groups"
-msgstr "Miembro de los grupos de red"
-
-#: ipalib/plugins/host.py:170
-msgid "Member of role-groups"
-msgstr "Miembro de los grupos de función"
+#: ipalib/plugins/host.py:306
+msgid ""
+"\n"
+" Add a new host.\n"
+" "
+msgstr ""
-#: ipalib/plugins/host.py:199
-#, python-format
+#: ipalib/plugins/host.py:311
msgid "Added host \"%(value)s\""
msgstr "Ha sido agregado el equipo \"%(value)s\""
-#: ipalib/plugins/host.py:202
+#: ipalib/plugins/host.py:316
msgid "force host name even if not in DNS"
msgstr ""
"fuerza el nombre del equipo anfitrión, incluso si no se encuentra en DNS"
-#: ipalib/plugins/host.py:235
-#, python-format
+#: ipalib/plugins/host.py:319
+msgid "skip reverse DNS detection"
+msgstr ""
+
+#: ipalib/plugins/host.py:322
+msgid "Add the host to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#, fuzzy
+msgid "DNS zone %(zone)s not found"
+msgstr "%(pkey)s: no se encuentra %(oname)s"
+
+#: ipalib/plugins/host.py:413
+msgid "The host was added but the DNS update failed with: %(exc)s"
+msgstr ""
+
+#: ipalib/plugins/host.py:422
+msgid ""
+"\n"
+" Delete a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:426
msgid "Deleted host \"%(value)s\""
msgstr "Ha sido eliminado el equipo \"%(value)s\""
-#: ipalib/plugins/host.py:269
-#, python-format
+#: ipalib/plugins/host.py:431
+msgid "Remove entries from DNS"
+msgstr ""
+
+#: ipalib/plugins/host.py:537
+msgid ""
+"\n"
+" Modify information about a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:542
msgid "Modified host \"%(value)s\""
msgstr "Ha sido modificado el equipo \"%(value)s\""
-#: ipalib/plugins/host.py:275
+#: ipalib/plugins/host.py:549
msgid "Kerberos principal name for this host"
msgstr "Nombre del prinicpal de Kerberos para este equipo"
-#: ipalib/plugins/host.py:319
-#, python-format
+#: ipalib/plugins/host.py:618
+msgid ""
+"\n"
+" Search for hosts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:623
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] "%(count)d equipo coincidente"
msgstr[1] "%(count)d equipos coincidentes"
-#: ipalib/plugins/host.py:337 ipalib/plugins/service.py:84
-msgid "Keytab"
-msgstr "Keytab"
+#: ipalib/plugins/host.py:643
+msgid ""
+"\n"
+" Display information about a host.\n"
+" "
+msgstr ""
-#: ipalib/plugins/host.py:359 ipalib/plugins/service.py:399
-#, python-format
-msgid "Removed kerberos key from \"%(value)s\""
-msgstr "Se ha eliminado la llave kerberos de \"%(value)s\""
+#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#, fuzzy
+msgid "file to store certificate in"
+msgstr "Certificado del servidor codificado con base-64"
+
+#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#, fuzzy
+msgid "Certificate stored in file '%(file)s'"
+msgstr "La operación certificada no puede ser completada: %(error)s"
-#: ipalib/plugins/host.py:368
-msgid "Host principal has no kerberos key"
-msgstr "El principal del equipo anfitrión no posee una llave kerberos "
+#: ipalib/plugins/host.py:684
+msgid ""
+"\n"
+" Disable the Kerberos key, SSL certificate and all services of a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:688
+#, fuzzy
+msgid "Disabled host \"%(value)s\""
+msgstr "Ha sido eliminado el equipo \"%(value)s\""
-#: ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/host.py:770
+msgid ""
+"\n"
+" Add hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:781
+msgid ""
+"\n"
+" Remove hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:20
+msgid ""
+"\n"
+"Groups of hosts.\n"
+"\n"
+"Manage groups of hosts. This is useful for applying access control to a\n"
+"number of hosts by using Host-based Access Control.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host group:\n"
+" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n"
+"\n"
+" Add another new host group:\n"
+" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n"
+"\n"
+" Add members to the hostgroup:\n"
+" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n"
+"\n"
+" Add a hostgroup as a member of another hostgroup:\n"
+" ipa hostgroup-add-member --hostgroups=baltimore maryland\n"
+"\n"
+" Remove a host from the hostgroup:\n"
+" ipa hostgroup-remove-member --hosts=box2 baltimore\n"
+"\n"
+" Display a host group:\n"
+" ipa hostgroup-show baltimore\n"
+"\n"
+" Delete a hostgroup:\n"
+" ipa hostgroup-del baltimore\n"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:55
+msgid ""
+"\n"
+" Hostgroup object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:78
msgid "Host-group"
msgstr "Grupo de equipo"
-#: ipalib/plugins/hostgroup.py:75
+#: ipalib/plugins/hostgroup.py:79
msgid "Name of host-group"
msgstr "Nombre del grupo de equipo"
-#: ipalib/plugins/hostgroup.py:82
+#: ipalib/plugins/hostgroup.py:86
msgid "A description of this host-group"
msgstr "Una descripción de este grupo de equipo"
-#: ipalib/plugins/hostgroup.py:85
-msgid "Member hosts"
-msgstr "Equipos miembro"
-
-#: ipalib/plugins/hostgroup.py:89
-msgid "Member host-groups"
-msgstr "Grupos de equipo miembro"
+#: ipalib/plugins/hostgroup.py:94
+msgid ""
+"\n"
+" Add a new hostgroup.\n"
+" "
+msgstr ""
-#: ipalib/plugins/hostgroup.py:106
-#, python-format
+#: ipalib/plugins/hostgroup.py:98
msgid "Added hostgroup \"%(value)s\""
msgstr "Ha sido agregado el grupo de equipo \"%(value)s\""
-#: ipalib/plugins/hostgroup.py:116
-#, python-format
+#: ipalib/plugins/hostgroup.py:104
+msgid ""
+"\n"
+" Delete a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:108
msgid "Deleted hostgroup \"%(value)s\""
msgstr "Ha sido eliminado el grupo de equipo \"%(value)s\""
-#: ipalib/plugins/hostgroup.py:126
-#, python-format
+#: ipalib/plugins/hostgroup.py:114
+msgid ""
+"\n"
+" Modify a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:118
msgid "Modified hostgroup \"%(value)s\""
msgstr "Ha sido modificado el grupo de equipo \"%(value)s\""
-#: ipalib/plugins/hostgroup.py:137
-#, python-format
+#: ipalib/plugins/hostgroup.py:124
+msgid ""
+"\n"
+" Search for hostgroups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:128
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] "%(count)d grupo de equipos coincidente"
msgstr[1] "%(count)d grupos de equipos coincidentes"
-#: ipalib/plugins/internal.py:39
+#: ipalib/plugins/hostgroup.py:136
+msgid ""
+"\n"
+" Display information about a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:144
+msgid ""
+"\n"
+" Add members to a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:152
+msgid ""
+"\n"
+" Remove members from a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:22
+msgid ""
+"\n"
+"Plugins not accessible directly through the CLI, commands used internally\n"
+msgstr ""
+
+#: ipalib/plugins/internal.py:36
+msgid ""
+"\n"
+" Export plugin meta-data for the webUI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:44
+msgid "Name of object to export"
+msgstr "Nombre del objeto a exportar"
+
+#: ipalib/plugins/internal.py:47
+#, fuzzy
+msgid "Name of method to export"
+msgstr "Nombre del objeto a exportar"
+
+#: ipalib/plugins/internal.py:52
+msgid "Dict of JSON encoded IPA Objects"
+msgstr "El dict de JSON ha codificado objetos IPA"
+
+#: ipalib/plugins/internal.py:53
+#, fuzzy
+msgid "Dict of JSON encoded IPA Methods"
+msgstr "El dict de JSON ha codificado objetos IPA"
+
+#: ipalib/plugins/internal.py:96
msgid "Logged In As"
msgstr "Registrado como"
-#: ipalib/plugins/internal.py:41
+#: ipalib/plugins/internal.py:99
+#, fuzzy
+msgid "Attribute"
+msgstr "Atributos"
+
+#: ipalib/plugins/internal.py:102
+#, fuzzy
+msgid "Add Automount Location"
+msgstr "Nombre de la ubicación de automontaje"
+
+#: ipalib/plugins/internal.py:103
+#, fuzzy
+msgid "Automount Location Settings"
+msgstr "Nombre de la ubicación de automontaje"
+
+#: ipalib/plugins/internal.py:106
+#, fuzzy
+msgid "Add Automount Map"
+msgstr "Mapeos de automontaje"
+
+#: ipalib/plugins/internal.py:109
+#, fuzzy
+msgid "Add Automount Key"
+msgstr "Llaves de automontaje"
+
+#: ipalib/plugins/internal.py:112
+msgid "Unspecified"
+msgstr ""
+
+#: ipalib/plugins/internal.py:113
+msgid "Key Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:114
+msgid "CA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:115
+msgid "Affiliation Changed"
+msgstr ""
+
+#: ipalib/plugins/internal.py:116
+msgid "Superseded"
+msgstr ""
+
+#: ipalib/plugins/internal.py:117
+#, fuzzy
+msgid "Cessation of Operation"
+msgstr "operación de archivo"
+
+#: ipalib/plugins/internal.py:118
+#, fuzzy
+msgid "Certificate Hold"
+msgstr "Certificado"
+
+#: ipalib/plugins/internal.py:119
+msgid "Remove from CRL"
+msgstr ""
+
+#: ipalib/plugins/internal.py:120
+msgid "Privilege Withdrawn"
+msgstr ""
+
+#: ipalib/plugins/internal.py:121
+msgid "AA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:122
+msgid ""
+"To confirm your intention to revoke this certificate, select a reason from "
+"the pull-down list, and click the \"Revoke\" button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:124
+msgid "Note"
+msgstr ""
+
+#: ipalib/plugins/internal.py:125
+msgid "Reason for Revocation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:126
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\" "
+"button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:128
+#, fuzzy
+msgid "Issued To"
+msgstr "Emisor"
+
+#: ipalib/plugins/internal.py:129
+#, fuzzy
+msgid "Common Name"
+msgstr "Nombre del equipo"
+
+#: ipalib/plugins/internal.py:130
+msgid "Organization"
+msgstr ""
+
+#: ipalib/plugins/internal.py:131
+msgid "Organizational Unit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:133
+#, fuzzy
+msgid "Issued By"
+msgstr "Emisor"
+
+#: ipalib/plugins/internal.py:134
+msgid "Validity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:135
+#, fuzzy
+msgid "Issued On"
+msgstr "Emisor"
+
+#: ipalib/plugins/internal.py:136
+msgid "Expires On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:137
+#, fuzzy
+msgid "Fingerprints"
+msgstr "Huella digital (MD5)"
+
+#: ipalib/plugins/internal.py:138
+#, fuzzy
+msgid "SHA1 Fingerprint"
+msgstr "Huella digital (MD5)"
+
+#: ipalib/plugins/internal.py:139
+#, fuzzy
+msgid "MD5 Fingerprint"
+msgstr "Huella digital (MD5)"
+
+#: ipalib/plugins/internal.py:140
+msgid "Enter the Base64-encoded CSR below"
+msgstr ""
+
+#: ipalib/plugins/internal.py:141
+#, fuzzy
+msgid "Valid Certificate Present"
+msgstr "Base de certificado de asunto"
+
+#: ipalib/plugins/internal.py:142
+#, fuzzy
+msgid "New Certificate"
+msgstr "Certificado"
+
+#: ipalib/plugins/internal.py:143
+#, fuzzy
+msgid "Certificate Revoked"
+msgstr "Certificado"
+
+#: ipalib/plugins/internal.py:144
+#, fuzzy
+msgid "No Valid Certificate"
+msgstr "Certificado"
+
+#: ipalib/plugins/internal.py:145
+msgid "Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:146
+msgid "Issue New Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:147
+msgid "Revoke Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:148
+msgid "Restore Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:152
+#, fuzzy
+msgid "Name"
+msgstr "Nombre del equipo"
+
+#: ipalib/plugins/internal.py:155
+msgid "Add Delegation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:158
+msgid "Add DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:159
+msgid "DNS Zone Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:162
+msgid "Add DNS Resource Record"
+msgstr ""
+
+#: ipalib/plugins/internal.py:163
+#, fuzzy
+msgid "Resource"
+msgstr "Nombre del recurso"
+
+#: ipalib/plugins/internal.py:165
+msgid "Data"
+msgstr "Datos"
+
+#: ipalib/plugins/internal.py:166
+msgid "Records for DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:169
+#, fuzzy
+msgid "Add Group"
+msgstr "Grupo"
+
+#: ipalib/plugins/internal.py:170
+#, fuzzy
+msgid "Group Settings"
+msgstr "Descripción del grupo"
+
+#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
+#, fuzzy
+msgid "Is this a POSIX group?"
+msgstr "trasladarse al grupo posix"
+
+#: ipalib/plugins/internal.py:174
+msgid "Add HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:306
+msgid "Active"
+msgstr ""
+
+#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:308
+msgid "Inactive"
+msgstr ""
+
+#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
+#, fuzzy
+msgid "Rule status"
+msgstr "Estado de la petición"
+
+#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
+msgid "Who"
+msgstr ""
+
+#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
+msgid "Anyone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
+msgid "Specified Users and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:183
+#, fuzzy
+msgid "Accessing"
+msgstr "Hora de acceso"
+
+#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
+#, fuzzy
+msgid "Any Host"
+msgstr "Equipos"
+
+#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
+msgid "Specified Hosts and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:186
+#, fuzzy
+msgid "Via Service"
+msgstr "Servicios"
+
+#: ipalib/plugins/internal.py:187
+#, fuzzy
+msgid "Any Service"
+msgstr "Servicios"
+
+#: ipalib/plugins/internal.py:188
+#, fuzzy
+msgid "Specified Services and Groups"
+msgstr "Grupos de servicio"
+
+#: ipalib/plugins/internal.py:189
+msgid "From"
+msgstr ""
+
+#: ipalib/plugins/internal.py:192
+#, fuzzy
+msgid "Add HBAC Service"
+msgstr "Servicios"
+
+#: ipalib/plugins/internal.py:195
+#, fuzzy
+msgid "Add HBAC Service Group"
+msgstr "Grupos de servicio"
+
+#: ipalib/plugins/internal.py:199
+#, fuzzy
+msgid "Add Host"
+msgstr "Equipos"
+
+#: ipalib/plugins/internal.py:200
+#, fuzzy
+msgid "Host Certificate"
+msgstr "Certificado"
+
+#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
+#, fuzzy
+msgid "Host Name"
+msgstr "Nombre del equipo"
+
+#: ipalib/plugins/internal.py:202
+msgid "Host Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:203
+#, fuzzy
+msgid "Enrolled?"
+msgstr "Registro"
+
+#: ipalib/plugins/internal.py:204
+#, fuzzy
+msgid "Enrollment"
+msgstr "Registro"
+
+#: ipalib/plugins/internal.py:205
+#, fuzzy
+msgid "Fully Qualified Host Name"
+msgstr "Es necesario un nombre de equipo totalmente certificado"
+
+#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
+msgid "Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:208
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
+msgid "Delete Key, Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:211
+msgid "Enroll via One-Time-Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:212
+msgid "Set OTP"
+msgstr ""
+
+#: ipalib/plugins/internal.py:213
+msgid "One-Time-Password has been set."
+msgstr ""
+
+#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
+msgid "Unprovisioning ${entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:215
+msgid "Are you sure you want to unprovision this host?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
+msgid "Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:219
+#, fuzzy
+msgid "Add Host Group"
+msgstr "Grupos de equipo"
+
+#: ipalib/plugins/internal.py:220
+#, fuzzy
+msgid "Host Group Settings"
+msgstr "Grupos de equipo"
+
+#: ipalib/plugins/internal.py:223
+#, fuzzy
+msgid "Kerberos ticket policy"
+msgstr "Principal kerberos"
+
+#: ipalib/plugins/internal.py:226
+#, fuzzy
+msgid "Add Netgroup"
+msgstr "Grupos de red"
+
+#: ipalib/plugins/internal.py:227
+#, fuzzy
+msgid "Netgroup Settings"
+msgstr "Descripción del grupo de red"
+
+#: ipalib/plugins/internal.py:230
+#, fuzzy
+msgid "Add Permission"
+msgstr "Permisos"
+
+#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
+#, fuzzy
+msgid "Identity"
+msgstr "Detalles de la identidad"
+
+#: ipalib/plugins/internal.py:233
+#, fuzzy
+msgid "Target"
+msgstr "Grupo elegido"
+
+#: ipalib/plugins/internal.py:235
+#, fuzzy
+msgid "By Subtree"
+msgstr "Subárbol"
+
+#: ipalib/plugins/internal.py:236
+#, fuzzy
+msgid "Target Group"
+msgstr "Grupo elegido"
+
+#: ipalib/plugins/internal.py:237
+msgid "Object By Type"
+msgstr ""
+
+#: ipalib/plugins/internal.py:238
+msgid "Permission with invalid target specification"
+msgstr ""
+
+#: ipalib/plugins/internal.py:241
+msgid "Add Privilege"
+msgstr ""
+
+#: ipalib/plugins/internal.py:242
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:245
+#, fuzzy
+msgid "Add Password Policy"
+msgstr "Contraseña"
+
+#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
+#, fuzzy
+msgid "Password Policy"
+msgstr "Contraseña"
+
+#: ipalib/plugins/internal.py:249
+msgid "Add Role"
+msgstr ""
+
+#: ipalib/plugins/internal.py:250
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:253
+msgid "Add Self Service Definition"
+msgstr ""
+
+#: ipalib/plugins/internal.py:256
+#, fuzzy
+msgid "Add Service"
+msgstr "Servicios"
+
+#: ipalib/plugins/internal.py:257
+#, fuzzy
+msgid "Service Certificate"
+msgstr "Certificado"
+
+#: ipalib/plugins/internal.py:258
+#, fuzzy
+msgid "Service Settings"
+msgstr "Servicios"
+
+#: ipalib/plugins/internal.py:260
+#, fuzzy
+msgid "Provisioning"
+msgstr "Permisos"
+
+#: ipalib/plugins/internal.py:261
+#, fuzzy
+msgid "Service"
+msgstr "Servicios"
+
+#: ipalib/plugins/internal.py:263
+#, fuzzy
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr "Principal kerberos"
+
+#: ipalib/plugins/internal.py:267
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:271
+#, fuzzy
+msgid "Add Sudo Command"
+msgstr "Nombre del grupo"
+
+#: ipalib/plugins/internal.py:275
+#, fuzzy
+msgid "Add Sudo Command Group"
+msgstr "Nombre del grupo"
+
+#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:279
+msgid "Add Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:287
+#, fuzzy
+msgid "Access this host"
+msgstr "Hora de acceso"
+
+#: ipalib/plugins/internal.py:290
+#, fuzzy
+msgid "Run Commands"
+msgstr "Nombre del grupo"
+
+#: ipalib/plugins/internal.py:291
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:292
+#, fuzzy
+msgid "Specified Commands and Groups"
+msgstr "Nombre del grupo"
+
+#: ipalib/plugins/internal.py:293
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:294
+#, fuzzy
+msgid "Any Group"
+msgstr "Grupo"
+
+#: ipalib/plugins/internal.py:295
+#, fuzzy
+msgid "Specified Groups"
+msgstr "Grupos de servicio"
+
+#: ipalib/plugins/internal.py:297
+#, fuzzy
+msgid "External"
+msgstr "Equipo externo"
+
+#: ipalib/plugins/internal.py:300
+#, fuzzy
+msgid "Add User"
+msgstr "Usuario"
+
+#: ipalib/plugins/internal.py:301
+#, fuzzy
+msgid "Account Settings"
+msgstr "Detalles de la cuenta"
+
+#: ipalib/plugins/internal.py:302
+#, fuzzy
+msgid "Contact Settings"
+msgstr "Detalles del contacto"
+
+#: ipalib/plugins/internal.py:303
+msgid "Mailing Address"
+msgstr "Dirección de correo"
+
+#: ipalib/plugins/internal.py:304
+#, fuzzy
+msgid "Employee Information"
+msgstr " Datos del empleador"
+
+#: ipalib/plugins/internal.py:305
+msgid "Misc. Information"
+msgstr "Información diversa"
+
+#: ipalib/plugins/internal.py:307
+msgid "Click to Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:309
+msgid "Click to Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:310
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:311
+#, fuzzy
+msgid "Reset Password"
+msgstr "Contraseña de usuario"
+
+#: ipalib/plugins/internal.py:312
+#, fuzzy
+msgid "New Password"
+msgstr "Contraseña"
+
+#: ipalib/plugins/internal.py:313
+#, fuzzy
+msgid "Repeat Password"
+msgstr "Contraseña"
+
+#: ipalib/plugins/internal.py:314
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:315
+#, fuzzy
+msgid "Passwords must match"
+msgstr "Las contraseñas no coinciden"
+
+#: ipalib/plugins/internal.py:319
msgid "Add"
msgstr "Agregar"
-#: ipalib/plugins/internal.py:42
+#: ipalib/plugins/internal.py:320
+msgid "Add and Add Another"
+msgstr ""
+
+#: ipalib/plugins/internal.py:321
+msgid "Add and Edit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:322
+msgid "Add and Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:323
+msgid "Add Many"
+msgstr ""
+
+#: ipalib/plugins/internal.py:324
+#, fuzzy
+msgid "Back to List"
+msgstr "Volver al comienzo"
+
+#: ipalib/plugins/internal.py:325
+#, fuzzy
+msgid "Cancel"
+msgstr "Cancelado."
+
+#: ipalib/plugins/internal.py:326
+msgid "Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:327
+msgid "Enroll"
+msgstr "Registro"
+
+#: ipalib/plugins/internal.py:328
msgid "Find"
msgstr "Buscar"
-#: ipalib/plugins/internal.py:43
+#: ipalib/plugins/internal.py:329
+msgid "Get"
+msgstr ""
+
+#: ipalib/plugins/internal.py:330
+#, fuzzy
+msgid "Issue"
+msgstr "Emisor"
+
+#: ipalib/plugins/internal.py:331
+msgid "OK"
+msgstr ""
+
+#: ipalib/plugins/internal.py:332
msgid "Reset"
msgstr "Resetear"
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:333
+msgid "Delete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:334
+msgid "Restore"
+msgstr ""
+
+#: ipalib/plugins/internal.py:335
+msgid "Retry"
+msgstr ""
+
+#: ipalib/plugins/internal.py:336
+#, fuzzy
+msgid "Revoke"
+msgstr "Revocado"
+
+#: ipalib/plugins/internal.py:337
msgid "Update"
msgstr "Actualizar"
-#: ipalib/plugins/internal.py:45
-msgid "Enroll"
-msgstr "Registro"
+#: ipalib/plugins/internal.py:338
+msgid "View"
+msgstr ""
-#: ipalib/plugins/internal.py:46
-msgid "Delete"
+#: ipalib/plugins/internal.py:341
+msgid "Available"
+msgstr ""
+
+#: ipalib/plugins/internal.py:342
+msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:49
+#: ipalib/plugins/internal.py:343
+msgid "Dirty"
+msgstr ""
+
+#: ipalib/plugins/internal.py:344
+#, fuzzy
+msgid "Hide already enrolled."
+msgstr "Esta entrada ya se encuentra bloqueada"
+
+#: ipalib/plugins/internal.py:345
+msgid "Select ${entity} to be removed."
+msgstr ""
+
+#: ipalib/plugins/internal.py:346
+msgid "Remove ${entity}."
+msgstr ""
+
+#: ipalib/plugins/internal.py:347
+msgid "Prospective"
+msgstr ""
+
+#: ipalib/plugins/internal.py:350
+msgid "Managed by"
+msgstr ""
+
+#: ipalib/plugins/internal.py:351
+#, fuzzy
+msgid "Member"
+msgstr "Miembro de"
+
+#: ipalib/plugins/internal.py:352
+msgid "Indirect Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:353
+#, fuzzy
+msgid "Member Of"
+msgstr "Miembro de"
+
+#: ipalib/plugins/internal.py:354
+msgid "Indirect Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
+msgid "Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:358
+msgid "Search"
+msgstr ""
+
+#: ipalib/plugins/internal.py:362
msgid "Quick Links"
msgstr "Enlaces rápidos"
-#: ipalib/plugins/internal.py:50
+#: ipalib/plugins/internal.py:363
msgid "Select All"
msgstr ""
-#: ipalib/plugins/internal.py:51
+#: ipalib/plugins/internal.py:364
msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Do you really want to delete the selected entries?"
+#: ipalib/plugins/internal.py:365
+msgid "Are you sure you want to delete selected entries?"
msgstr ""
-#: ipalib/plugins/internal.py:55
-msgid "Identity Details"
+#: ipalib/plugins/internal.py:366
+msgid ""
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr ""
+
+#: ipalib/plugins/internal.py:370
+msgid "General"
+msgstr ""
+
+#: ipalib/plugins/internal.py:371
+#, fuzzy
+msgid "Identity Settings"
msgstr "Detalles de la identidad"
-#: ipalib/plugins/internal.py:56
-msgid "Account Details"
-msgstr "Detalles de la cuenta"
+#: ipalib/plugins/internal.py:372
+msgid "${entity} ${primary_key} Settings"
+msgstr ""
-#: ipalib/plugins/internal.py:57
-msgid "Contact Details"
-msgstr "Detalles del contacto"
+#: ipalib/plugins/internal.py:373
+msgid "Back to Top"
+msgstr "Volver al comienzo"
-#: ipalib/plugins/internal.py:58
-msgid "Mailing Address"
-msgstr "Dirección de correo"
+#: ipalib/plugins/internal.py:377
+msgid "Policy"
+msgstr ""
-#: ipalib/plugins/internal.py:59
-msgid " Employee Information"
-msgstr " Datos del empleador"
+#: ipalib/plugins/internal.py:378
+msgid "Audit"
+msgstr ""
-#: ipalib/plugins/internal.py:60
-msgid "Misc. Information"
-msgstr "Información diversa"
+#: ipalib/plugins/internal.py:379
+#, fuzzy
+msgid "IPA Server"
+msgstr "Nombre del servicio"
-#: ipalib/plugins/internal.py:61
-msgid "Back to Top"
-msgstr "Volver al comienzo"
+#: ipalib/plugins/internal.py:380
+msgid "Sudo"
+msgstr ""
-#: ipalib/plugins/internal.py:66
-msgid "Name of object to export"
-msgstr "Nombre del objeto a exportar"
+#: ipalib/plugins/internal.py:381
+msgid "Host Based Access Control"
+msgstr ""
-#: ipalib/plugins/internal.py:71
-msgid "Dict of JSON encoded IPA Objects"
-msgstr "El dict de JSON ha codificado objetos IPA"
+#: ipalib/plugins/internal.py:382
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:383
+#, fuzzy
+msgid "Automount"
+msgstr "Mapeos de automontaje"
+
+#: ipalib/plugins/internal.py:386
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:387
+msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgstr ""
-#: ipalib/plugins/internal.py:72
+#: ipalib/plugins/internal.py:388
+msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:389
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:392
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:395
+msgid ""
+"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."
+msgstr ""
+
+#: ipalib/plugins/internal.py:399
msgid "Dict of I18N messages"
msgstr "Dictado de los mensajes regionales"
-#: ipalib/plugins/krbtpolicy.py:59
+#: ipalib/plugins/kerberos.py:20
+msgid ""
+"\n"
+"Backend plugin for Kerberos.\n"
+"\n"
+"This wraps the python-kerberos and python-krbV bindings.\n"
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:35
+msgid ""
+"\n"
+" Kerberos backend plugin.\n"
+"\n"
+" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
+" bindings also). Importantly, this plugin does correct Unicode\n"
+" encoding/decoding of values going-to/coming-from the bindings.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:44
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:50
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:56
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:62
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:68
+msgid ""
+"\n"
+" Return the default ccache file name.\n"
+"\n"
+" This will return something like '/tmp/krb5cc_500'.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:79
+msgid ""
+"\n"
+" Return the principal name in default credential cache.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'. If no "
+"credential\n"
+" cache exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:91
+msgid ""
+"\n"
+" Return the realm from the default credential cache.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'. If no credential "
+"cache\n"
+" exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:103
+msgid ""
+"\n"
+" Return the principal from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:111
+msgid ""
+"\n"
+" Return the realm from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:19
+msgid ""
+"\n"
+"Kerberos ticket policy\n"
+"\n"
+"There is a single Kerberos ticket policy. This policy defines the\n"
+"maximum ticket lifetime and the maximum renewal age, the period during\n"
+"which the ticket is renewable.\n"
+"\n"
+"You can also create a per-user ticket policy by specifying the user login.\n"
+"\n"
+"For changes to the global policy to take effect, restarting the KDC service\n"
+"is required, which can be achieved using:\n"
+"\n"
+"service krb5kdc restart\n"
+"\n"
+"Changes to per-user policies take effect immediately for newly requested\n"
+"tickets (e.g. when the user next runs kinit).\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Display the current Kerberos ticket policy:\n"
+" ipa krbtpolicy-show\n"
+"\n"
+" Reset the policy to the default:\n"
+" ipa krbtpolicy-reset\n"
+"\n"
+" Modify the policy to 8 hours max life, 1-day max renewal:\n"
+" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n"
+"\n"
+" Display effective Kerberos ticket policy for user 'admin':\n"
+" ipa krbtpolicy-show admin\n"
+"\n"
+" Reset per-user policy for user 'admin':\n"
+" ipa krbtpolicy-reset admin\n"
+"\n"
+" Modify per-user policy for user 'admin':\n"
+" ipa krbtpolicy-mod admin --maxlife=3600\n"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:71
+#, fuzzy
+msgid ""
+"\n"
+" Kerberos Ticket Policy object\n"
+" "
+msgstr "Principal kerberos"
+
+#: ipalib/plugins/krbtpolicy.py:79
#, fuzzy
msgid "Kerberos Ticket Policy"
msgstr "Principal kerberos"
-#: ipalib/plugins/krbtpolicy.py:64 ipalib/plugins/passwd.py:52
+#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
msgid "User name"
msgstr "Nombre de usuario"
-#: ipalib/plugins/krbtpolicy.py:65
+#: ipalib/plugins/krbtpolicy.py:85
msgid "Manage ticket policy for specific user"
msgstr "Administra política de ticket para un usuario específico"
-#: ipalib/plugins/krbtpolicy.py:70
+#: ipalib/plugins/krbtpolicy.py:90
msgid "Max life"
msgstr "Vida máxima"
-#: ipalib/plugins/krbtpolicy.py:71
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Maximum ticket life (seconds)"
msgstr "Duración máxima del ticket (en segundos)"
-#: ipalib/plugins/krbtpolicy.py:75
+#: ipalib/plugins/krbtpolicy.py:96
msgid "Max renew"
msgstr "Renovación máxima"
-#: ipalib/plugins/krbtpolicy.py:76
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Maximum renewable age (seconds)"
msgstr "Duración máxima renovable (en segundos)"
-#: ipalib/plugins/migration.py:44
-#, python-format
+#: ipalib/plugins/krbtpolicy.py:111
+#, fuzzy
+msgid ""
+"\n"
+" Modify Kerberos ticket policy.\n"
+" "
+msgstr "Principal kerberos"
+
+#: ipalib/plugins/krbtpolicy.py:125
+#, fuzzy
+msgid ""
+"\n"
+" Display the current Kerberos ticket policy.\n"
+" "
+msgstr "Muestra el registro del usuario para el principal de Kerberos actual"
+
+#: ipalib/plugins/krbtpolicy.py:149
+msgid ""
+"\n"
+" Reset Kerberos ticket policy to the default values.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:19
+msgid ""
+"\n"
+"Migration to IPA\n"
+"\n"
+"Migrate users and groups from an LDAP server to IPA.\n"
+"\n"
+"This performs an LDAP query against the remote server searching for\n"
+"users and groups in a container. In order to migrate passwords you need\n"
+"to bind as a user that can read the userPassword attribute on the remote\n"
+"server. This is generally restricted to high-level admins such as\n"
+"cn=Directory Manager in 389-ds (this is the default bind user).\n"
+"\n"
+"The default user container is ou=People.\n"
+"\n"
+"The default group container is ou=Groups.\n"
+"\n"
+"Users and groups that already exist on the IPA server are skipped.\n"
+"\n"
+"Two LDAP schemas define how group members are stored: RFC2307 and\n"
+"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n"
+"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n"
+"\n"
+"Migrated users do not have Kerberos credentials, they have only their\n"
+"LDAP password. To complete the migration process, users need to go\n"
+"to http://ipa.example.com/ipa/migration and authenticate using their\n"
+"LDAP password in order to generate their Kerberos credentials.\n"
+"\n"
+"Migration is disabled by default. Use the command ipa config-mod to\n"
+"enable it:\n"
+"\n"
+" ipa config-mod --enable-migration=TRUE\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" The simplest migration, accepting all defaults:\n"
+" ipa migrate-ds ldap://ds.example.com:389\n"
+"\n"
+" Specify the user and group container. This can be used to migrate user and\n"
+" group data from an IPA v1 server:\n"
+" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-"
+"container='cn=groups,cn=accounts' ldap://ds.example.com:389\n"
+msgstr ""
+
+#: ipalib/plugins/migration.py:78
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
"El principal %s de Kerberos ya existe. Utilice 'ipa user-mod' para definirlo "
"manualmente."
-#: ipalib/plugins/migration.py:45
+#: ipalib/plugins/migration.py:79
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
@@ -1500,76 +4892,130 @@ msgstr ""
"Falló al intenatar agregar al usuario al grupo predeterminado. Utilice 'ipa "
"group-add-member' para agregarlo manualmente. "
-#: ipalib/plugins/migration.py:169
+#: ipalib/plugins/migration.py:175
+msgid ""
+"\n"
+" Convert usernames in member attributes to work in IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:220
+#, fuzzy
+msgid "Invalid LDAP URI."
+msgstr "LDAP URI"
+
+#: ipalib/plugins/migration.py:225
+msgid ""
+"\n"
+" Migrate users and groups from DS to IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:266
msgid "LDAP URI"
msgstr "LDAP URI"
-#: ipalib/plugins/migration.py:170
+#: ipalib/plugins/migration.py:267
msgid "LDAP URI of DS server to migrate from"
msgstr "LDAP URI del servidor DS desde donde realizar la migración"
-#: ipalib/plugins/migration.py:174
+#: ipalib/plugins/migration.py:272
msgid "bind password"
msgstr "asociar contraseña"
-#: ipalib/plugins/migration.py:181
+#: ipalib/plugins/migration.py:279
msgid "Bind DN"
msgstr "Asociar DN"
-#: ipalib/plugins/migration.py:187
+#: ipalib/plugins/migration.py:285
msgid "User container"
msgstr "Contenedor de usuario"
-#: ipalib/plugins/migration.py:188
+#: ipalib/plugins/migration.py:286
msgid "RDN of container for users in DS"
msgstr "RDN de contenedor para los usuarios en DS"
-#: ipalib/plugins/migration.py:194
+#: ipalib/plugins/migration.py:292
msgid "Group container"
msgstr "Contenedor de grupoi"
-#: ipalib/plugins/migration.py:195
+#: ipalib/plugins/migration.py:293
msgid "RDN of container for groups in DS"
msgstr "RDN del contenedor para grups en DS"
-#: ipalib/plugins/migration.py:200
-msgid "Continous operation mode. Errors are reported but the process continues"
+#: ipalib/plugins/migration.py:299
+msgid "User object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:300
+#, fuzzy
+msgid ""
+"Comma-separated list of objectclasses used to search for user entries in DS"
+msgstr ""
+"Una lista separada por comas de campos a buscar, cuando se realice una "
+"búsqueda de usuarios"
+
+#: ipalib/plugins/migration.py:306
+msgid "Group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:307
+#, fuzzy
+msgid ""
+"Comma-separated list of objectclasses used to search for group entries in DS"
+msgstr ""
+"Una lista separada por comas de campos a buscar, cuando se realice una "
+"búsqueda de grupos"
+
+#: ipalib/plugins/migration.py:313
+msgid "LDAP schema"
+msgstr ""
+
+#: ipalib/plugins/migration.py:314
+msgid ""
+"The schema used on the LDAP server. Supported values are RFC2307 and "
+"RFC2307bis. The default is RFC2307bis"
+msgstr ""
+
+#: ipalib/plugins/migration.py:320
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:208
+#: ipalib/plugins/migration.py:328
msgid "Lists of objects migrated; categorized by type."
msgstr "Lista de objetos migrados; categorizados por tipo."
-#: ipalib/plugins/migration.py:212
+#: ipalib/plugins/migration.py:332
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr "Lista de objetos que no pueden ser migrados; categorizados por tipo."
-#: ipalib/plugins/migration.py:216
+#: ipalib/plugins/migration.py:336
msgid "False if migration mode was disabled."
msgstr "\"False\", si el modo de migración fue deshabilitado."
-#: ipalib/plugins/migration.py:220
-#, python-format
+#: ipalib/plugins/migration.py:340
msgid "comma-separated list of %s to exclude from migration"
msgstr "lista de %s separada por comas a ser excluida de la migración"
-#: ipalib/plugins/migration.py:222
+#: ipalib/plugins/migration.py:342
+#, fuzzy
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
-"migration process might be uncomplete\n"
+"migration process might be incomplete\n"
msgstr ""
"los resultados de la búsqueda de objetos a ser migrados\n"
"ha sido truncada por el servidor;\n"
"el proceso de migración podría estar incompleto\n"
-#: ipalib/plugins/migration.py:227
+#: ipalib/plugins/migration.py:347
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
"El modo de migración se encuentra deshabilitado. Utilice 'ipa config-mod' "
"para habilitarlo."
-#: ipalib/plugins/migration.py:230
+#: ipalib/plugins/migration.py:350
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -1583,16 +5029,56 @@ msgstr ""
"necesitan registrarse en https://su.dominio/ipa/migration/ antes de\n"
"poder utilizar sus respectivas cuentas Kerberos."
-#: ipalib/plugins/migration.py:297
-#, fuzzy, python-format
+#: ipalib/plugins/migration.py:358
+msgid ""
+"\n"
+" Call get_options of the baseclass and add \"exclude\" options\n"
+" for each type of object being migrated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:375
+msgid ""
+"\n"
+" Convert all \"exclude\" option values to lower-case.\n"
+"\n"
+" Also, empty List parameters are converted to None, but the "
+"migration\n"
+" plugin doesn't like that - convert back to empty lists.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:399
+msgid ""
+"\n"
+" Migrate objects from DS to LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:425
+#, fuzzy
msgid "Container for %(container)s not found"
msgstr "no se encuentra la entrada (%(container)s) de contenedor"
+#: ipalib/plugins/misc.py:20
+msgid ""
+"\n"
+"Misc plug-ins\n"
+msgstr ""
+
+#: ipalib/plugins/misc.py:36
+msgid "Show environment variables"
+msgstr ""
+
#: ipalib/plugins/misc.py:38
-#, python-format
msgid "%(count)d variables"
msgstr "%(count)d variables"
+#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115
+msgid ""
+"retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
#: ipalib/plugins/misc.py:61
msgid "Total number of variables env (>= count)"
msgstr "Cantidad total de variables env (>= count)"
@@ -1601,444 +5087,2497 @@ msgstr "Cantidad total de variables env (>= count)"
msgid "Number of variables returned (<= total)"
msgstr "Cantidad de variables devueltas (<= total)"
-#: ipalib/plugins/misc.py:109
-#, python-format
+#: ipalib/plugins/misc.py:106
+msgid "Show all loaded plugins"
+msgstr ""
+
+#: ipalib/plugins/misc.py:108
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] "%(count)d complemento cargado"
msgstr[1] "%(count)d complementos cargados"
-#: ipalib/plugins/misc.py:116
+#: ipalib/plugins/misc.py:126
msgid "Number of plugins loaded"
msgstr "Cantidad de complementos cargados"
-#: ipalib/plugins/netgroup.py:57
+#: ipalib/plugins/netgroup.py:20
+msgid ""
+"\n"
+"Netgroups\n"
+"\n"
+"A netgroup is a group used for permission checking. It can contain both\n"
+"user and host values.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new netgroup:\n"
+" ipa netgroup-add --desc=\"NFS admins\" admins\n"
+"\n"
+" Add members to the netgroup:\n"
+" ipa netgroup-add-member --users=tuser1,tuser2 admins\n"
+"\n"
+" Remove a member from the netgroup:\n"
+" ipa netgroup-remove-member --users=tuser2 admins\n"
+"\n"
+" Display information about a netgroup:\n"
+" ipa netgroup-show admins\n"
+"\n"
+" Delete a netgroup:\n"
+" ipa netgroup-del admins\n"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:59
msgid "Member Host"
msgstr "Miembro del equipo anfitrión"
-#: ipalib/plugins/netgroup.py:63
-msgid "External host"
-msgstr "Equipo externo"
+#: ipalib/plugins/netgroup.py:67
+msgid ""
+"\n"
+" Netgroup object.\n"
+" "
+msgstr ""
-#: ipalib/plugins/netgroup.py:85
-msgid "Net Groups"
+#: ipalib/plugins/netgroup.py:98
+msgid "Netgroups"
msgstr "Grupos de red"
-#: ipalib/plugins/netgroup.py:90
+#: ipalib/plugins/netgroup.py:103
msgid "Netgroup name"
msgstr "Nombre de grupo de red"
-#: ipalib/plugins/netgroup.py:97
+#: ipalib/plugins/netgroup.py:110
msgid "Netgroup description"
msgstr "Descripción del grupo de red"
-#: ipalib/plugins/netgroup.py:101
+#: ipalib/plugins/netgroup.py:114
msgid "NIS domain name"
msgstr "Nombre del dominio NIS"
-#: ipalib/plugins/netgroup.py:106
+#: ipalib/plugins/netgroup.py:119
msgid "IPA unique ID"
msgstr "ID unico de IPA"
-#: ipalib/plugins/pwpolicy.py:84
-#, python-format
+#: ipalib/plugins/netgroup.py:140
+msgid ""
+"\n"
+" Add a new netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:144
+#, fuzzy
+msgid "Added netgroup \"%(value)s\""
+msgstr "Ha sido agregado el grupo \"%(value)s\""
+
+#: ipalib/plugins/netgroup.py:153
+msgid ""
+"\n"
+" Delete a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:156
+#, fuzzy
+msgid "Deleted netgroup \"%(value)s\""
+msgstr "Ha sido eliminado el grupo \"%(value)s\""
+
+#: ipalib/plugins/netgroup.py:162
+msgid ""
+"\n"
+" Modify a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:166
+#, fuzzy
+msgid "Modified netgroup \"%(value)s\""
+msgstr "Ha sido modificado el grupo \"%(value)s\""
+
+#: ipalib/plugins/netgroup.py:180
+msgid ""
+"\n"
+" Search for a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:185
+#, fuzzy
+msgid "%(count)d netgroup matched"
+msgid_plural "%(count)d netgroups matched"
+msgstr[0] "%(count)d grupo coincidente"
+msgstr[1] "%(count)d grupos coincidentes"
+
+#: ipalib/plugins/netgroup.py:213
+msgid ""
+"\n"
+" Display information about a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:222
+msgid ""
+"\n"
+" Add members to a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:258
+msgid ""
+"\n"
+" Remove members from a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:19
+msgid ""
+"\n"
+"Set a user's password\n"
+"\n"
+"If someone other than a user changes that user's password (e.g., Helpdesk\n"
+"resets it) then the password will need to be changed the first time it\n"
+"is used. This is so the end-user is the only one who knows the password.\n"
+"\n"
+"The IPA password policy controls how often a password may be changed,\n"
+"what strength requirements exist, and the length of the password history.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" To reset your own password:\n"
+" ipa passwd\n"
+"\n"
+" To change another user's password:\n"
+" ipa passwd tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/passwd.py:46
+#, fuzzy
+msgid ""
+"\n"
+" Set a user's password\n"
+" "
+msgstr "Definir la contraseña de usuario"
+
+#: ipalib/plugins/passwd.py:64
+#, fuzzy
+msgid "Changed password for \"%(value)s\""
+msgstr "Ha sido agregado el usuario \"%(value)s\""
+
+#: ipalib/plugins/passwd.py:67
+msgid ""
+"\n"
+" Execute the passwd operation.\n"
+"\n"
+" The dn should not be passed as a keyword argument as it is "
+"constructed\n"
+" by this method.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param principal: The login name or principal of the user\n"
+" :param password: the new password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:19
+msgid ""
+"\n"
+"Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of rights. A permission is\n"
+"a human-readable form of a 389-ds Access Control Rule, or instruction "
+"(ACI).\n"
+"A permission grants the right to perform a specific task such as adding a\n"
+"user, modifying a group, etc.\n"
+"\n"
+"A permission may not contain other permissions.\n"
+"\n"
+"* A permission grants access to read, write, add or delete.\n"
+"* A privilege combines similar permissions (for example all the permissions\n"
+" needed to add a user).\n"
+"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n"
+"\n"
+"A permission is made up of a number of different parts:\n"
+"\n"
+"1. The name of the permission.\n"
+"2. The target of the permission.\n"
+"3. The rights granted by the permission.\n"
+"\n"
+"Rights define what operations are allowed, and may be one or more\n"
+"of the following:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Read permission is granted for most attributes by default so the read\n"
+"permission is not expected to be used very often.\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"There are a number of allowed targets:\n"
+"1. type: a type of object (user, group, etc).\n"
+"2. memberof: a member of a group or hostgroup\n"
+"3. filter: an LDAP filter\n"
+"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n"
+" super-set of the \"type\" target.\n"
+"5. targetgroup: grant access to modify a specific group (such as granting\n"
+" the rights to manage group membership)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a permission that grants the creation of users:\n"
+" ipa permission-add --type=user --permissions=add \"Add Users\"\n"
+"\n"
+" Add a permission that grants the ability to manage group membership:\n"
+" ipa permission-add --attrs=member --permissions=write --type=group "
+"\"Manage Group Members\"\n"
+msgstr ""
+
+#: ipalib/plugins/permission.py:84
+#, fuzzy
+msgid "Permission Type"
+msgstr "Permisos"
+
+#: ipalib/plugins/permission.py:89
+msgid ""
+"\n"
+" Permission object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:112
+#, fuzzy
+msgid "Permission name"
+msgstr "Permisos"
+
+#: ipalib/plugins/permission.py:119
+#, fuzzy
+msgid ""
+"Comma-separated list of permissions to grant (read, write, add, delete, all)"
+msgstr ""
+"lista separada por comas de la concesión de permisos (leer, escribir, "
+"agregar, eliminar, todos) "
+
+#: ipalib/plugins/permission.py:132
+#, fuzzy
+msgid ""
+"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
+msgstr "tipo de objeto IPA (usuario, grupo, equipo)"
+
+#: ipalib/plugins/permission.py:138
+#, fuzzy
+msgid "Member of group"
+msgstr "Miembro de un grupo"
+
+#: ipalib/plugins/permission.py:139
+#, fuzzy
+msgid "Target members of a group"
+msgstr "Miembro de un grupo"
+
+#: ipalib/plugins/permission.py:151
+#, fuzzy
+msgid "Subtree to apply permissions to"
+msgstr "Subárbol al que aplicar ACI"
+
+#: ipalib/plugins/permission.py:157
+#, fuzzy
+msgid "User group to apply permissions to"
+msgstr "Grupo al que aplicar API"
+
+#: ipalib/plugins/permission.py:177
+msgid ""
+"\n"
+" Add a new permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:181
+#, fuzzy
+msgid "Added permission \"%(value)s\""
+msgstr "Ha sido agregado el usuario \"%(value)s\""
+
+#: ipalib/plugins/permission.py:236
+msgid ""
+"\n"
+" Delete a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:240
+#, fuzzy
+msgid "Deleted permission \"%(value)s\""
+msgstr "Ha sido eliminado el usuario \"%(value)s\""
+
+#: ipalib/plugins/permission.py:256
+msgid ""
+"\n"
+" Modify a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:260
+#, fuzzy
+msgid "Modified permission \"%(value)s\""
+msgstr "Ha sido modificado el usuario \"%(value)s\""
+
+#: ipalib/plugins/permission.py:352
+msgid ""
+"\n"
+" Search for permissions.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:356
+#, fuzzy
+msgid "%(count)d permission matched"
+msgid_plural "%(count)d permissions matched"
+msgstr[0] "%(count)d usuario coincidente"
+msgstr[1] "%(count)d usuarios coincidentes"
+
+#: ipalib/plugins/permission.py:405
+msgid ""
+"\n"
+" Display information about a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:428
+msgid ""
+"\n"
+" Add members to a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:437
+msgid ""
+"\n"
+" Remove members from a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:19
+msgid ""
+"\n"
+"Ping the remote IPA server\n"
+msgstr ""
+
+#: ipalib/plugins/ping.py:29
+msgid ""
+"\n"
+" ping a remote server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:37
+msgid ""
+"\n"
+" A possible enhancement would be to take an argument and echo it\n"
+" back but a fixed value works for now.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:19
+msgid ""
+"\n"
+"Kerberos pkinit options\n"
+"\n"
+"Enable or disable anonymous pkinit using the principal\n"
+"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n"
+"pkinit support.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Enable anonymous pkinit:\n"
+" ipa pkinit-anonymous enable\n"
+"\n"
+" Disable anonymous pkinit:\n"
+" ipa pkinit-anonymous disable\n"
+"\n"
+"For more information on anonymous pkinit see:\n"
+"\n"
+"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:46
+msgid ""
+"\n"
+" PKINIT Options\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:51
+msgid "PKINIT"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:56
+msgid ""
+"\n"
+" Accepts only Enable/Disable.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:67
+msgid ""
+"\n"
+" Enable or Disable Anonymous PKINIT\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:19
+msgid ""
+"\n"
+"Privileges\n"
+"\n"
+"A privilege combines permissions into a logical task. A permission provides\n"
+"the rights to do a single task. There are some IPA operations that require\n"
+"multiple permissions to succeed. A privilege is where permissions are\n"
+"combined in order to perform a specific task.\n"
+"\n"
+"For example, adding a user requires the following permissions:\n"
+" * Creating a new user entry\n"
+" * Resetting a user password\n"
+" * Adding the new user to the default IPA users group\n"
+"\n"
+"Combining these three low-level tasks into a higher level task in the\n"
+"form of a privilege named \"Add User\" makes it easier to manage Roles.\n"
+"\n"
+"A privilege may not contain other privileges.\n"
+"\n"
+"See role and permission for additional information.\n"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:45
+msgid ""
+"\n"
+" Privilege object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:65
+msgid "Privileges"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:70
+#, fuzzy
+msgid "Privilege name"
+msgstr "Nombre principal"
+
+#: ipalib/plugins/privilege.py:77
+#, fuzzy
+msgid "Privilege description"
+msgstr "descripción"
+
+#: ipalib/plugins/privilege.py:85
+msgid ""
+"\n"
+" Add a new privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:89
+#, fuzzy
+msgid "Added privilege \"%(value)s\""
+msgstr "Ha sido agregado el servicio \"%(value)s\""
+
+#: ipalib/plugins/privilege.py:95
+msgid ""
+"\n"
+" Delete a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:99
+#, fuzzy
+msgid "Deleted privilege \"%(value)s\""
+msgstr "Ha sido eliminado el servicio \"%(value)s\""
+
+#: ipalib/plugins/privilege.py:105
+msgid ""
+"\n"
+" Modify a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:109
+#, fuzzy
+msgid "Modified privilege \"%(value)s\""
+msgstr "Ha sido modificado el servicio \"%(value)s\""
+
+#: ipalib/plugins/privilege.py:115
+msgid ""
+"\n"
+" Search for privileges.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:119
+#, fuzzy
+msgid "%(count)d privilege matched"
+msgid_plural "%(count)d privileges matched"
+msgstr[0] "%(count)d servicio coincidente"
+msgstr[1] "%(count)d servicios coincidentes\t\t\t"
+
+#: ipalib/plugins/privilege.py:127
+msgid ""
+"\n"
+" Display information about a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:135
+msgid ""
+"\n"
+" Add members to a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:144
+msgid ""
+"\n"
+" Remove members from a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:153
+msgid ""
+"\n"
+" Add permissions to a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:169
+#, fuzzy
+msgid "Number of permissions added"
+msgstr "Cantidad de miembros añadidos"
+
+#: ipalib/plugins/privilege.py:177
+msgid ""
+"\n"
+" Remove permissions from a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:195
+#, fuzzy
+msgid "Number of permissions removed"
+msgstr "Cantidad de miembros eliminados"
+
+#: ipalib/plugins/pwpolicy.py:20
+msgid ""
+"\n"
+"Password policy\n"
+"\n"
+"A password policy sets limitations on IPA passwords, including maximum\n"
+"lifetime, minimum lifetime, the number of passwords to save in\n"
+"history, the number of character classes required (for stronger passwords)\n"
+"and the minimum password length.\n"
+"\n"
+"By default there is a single, global policy for all users. You can also\n"
+"create a password policy to apply to a group. Each user is only subject\n"
+"to one password policy, either the group policy or the global policy. A\n"
+"group policy stands alone; it is not a super-set of the global policy plus\n"
+"custom settings.\n"
+"\n"
+"Each group password policy requires a unique priority setting. If a user\n"
+"is in multiple groups that have password policies, this priority determines\n"
+"which password policy is applied. A lower value indicates a higher priority\n"
+"policy.\n"
+"\n"
+"Group password policies are automatically removed when the groups they\n"
+"are associated with are removed.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Modify the global policy:\n"
+" ipa pwpolicy-mod --minlength=10\n"
+"\n"
+" Add a new group password policy:\n"
+" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --"
+"minlength=8 --priority=10 localadmins\n"
+"\n"
+" Display the global password policy:\n"
+" ipa pwpolicy-show\n"
+"\n"
+" Display a group password policy:\n"
+" ipa pwpolicy-show localadmins\n"
+"\n"
+" Display the policy that would be applied to a given user:\n"
+" ipa pwpolicy-show --user=tuser1\n"
+"\n"
+" Modify a group password policy:\n"
+" ipa pwpolicy-mod --minclasses=2 localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:72
+msgid ""
+"\n"
+" Class of Service object used for linking policies with groups\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:87
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
"la prioridad debe ser un valor único (%(prio)d que ya esté siendo utilizado "
"por %(gname)s)"
-#: ipalib/plugins/pwpolicy.py:170
+#: ipalib/plugins/pwpolicy.py:172
#, fuzzy
-msgid "Password Policy"
+msgid ""
+"\n"
+" Password Policy object\n"
+" "
msgstr "Contraseña"
-#: ipalib/plugins/pwpolicy.py:175
+#: ipalib/plugins/pwpolicy.py:201
+#, fuzzy
+msgid "Max failures"
+msgstr "Vida máxima"
+
+#: ipalib/plugins/pwpolicy.py:202
+msgid "Consecutive failures before lockout"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:207
+msgid "Failure reset interval"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:208
+msgid "Period after which failure count will be reset (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:213
+#, fuzzy
+msgid "Lockout duration"
+msgstr "Ubicación"
+
+#: ipalib/plugins/pwpolicy.py:214
+msgid "Period for which lockout is enforced (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:224
msgid "Group"
msgstr "Grupo"
-#: ipalib/plugins/pwpolicy.py:176
+#: ipalib/plugins/pwpolicy.py:225
msgid "Manage password policy for specific group"
msgstr "Administra la política de contraseña de un grupo específico"
-#: ipalib/plugins/pwpolicy.py:181
+#: ipalib/plugins/pwpolicy.py:230
msgid "Max lifetime (days)"
msgstr "Vida máxima (días)"
-#: ipalib/plugins/pwpolicy.py:182
+#: ipalib/plugins/pwpolicy.py:231
msgid "Maximum password lifetime (in days)"
msgstr "Vida máxima de la contraseña (días)"
-#: ipalib/plugins/pwpolicy.py:187
+#: ipalib/plugins/pwpolicy.py:236
msgid "Min lifetime (hours)"
msgstr "Vida mínima (horas)"
-#: ipalib/plugins/pwpolicy.py:188
+#: ipalib/plugins/pwpolicy.py:237
msgid "Minimum password lifetime (in hours)"
msgstr "Vida mínima de la contraseña (en horas)"
-#: ipalib/plugins/pwpolicy.py:193
+#: ipalib/plugins/pwpolicy.py:242
msgid "History size"
msgstr "Tamaño del historial"
-#: ipalib/plugins/pwpolicy.py:194
+#: ipalib/plugins/pwpolicy.py:243
msgid "Password history size"
msgstr "Tamaño del historial de la contraseña"
-#: ipalib/plugins/pwpolicy.py:199
+#: ipalib/plugins/pwpolicy.py:248
msgid "Character classes"
msgstr "Clases de caracteres"
-#: ipalib/plugins/pwpolicy.py:200
+#: ipalib/plugins/pwpolicy.py:249
msgid "Minimum number of character classes"
msgstr "Cantidad mínima de clases de caracteres"
-#: ipalib/plugins/pwpolicy.py:206
+#: ipalib/plugins/pwpolicy.py:255
msgid "Min length"
msgstr "Longitud mínima"
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:256
msgid "Minimum length of password"
msgstr "Longitud mínima de la contraseña"
-#: ipalib/plugins/pwpolicy.py:212
+#: ipalib/plugins/pwpolicy.py:261
msgid "Priority"
msgstr "Prioridad"
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:262
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
"Prioridad de la política (a mayor número corresponde una política menor)"
-#: ipalib/plugins/pwpolicy.py:265
+#: ipalib/plugins/pwpolicy.py:294
+msgid ""
+"\n"
+" Ensure that the maximum lifetime is greater than the minimum.\n"
+" If there is no minimum lifetime set then don't return an error.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:314
msgid "Maximum password life must be greater than minimum."
msgstr "La duración máxima de la contraseña debe ser mayor que la mínima."
-#: ipalib/plugins/pwpolicy.py:330
+#: ipalib/plugins/pwpolicy.py:333
+msgid ""
+"\n"
+" Add a new group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:361
+msgid ""
+"\n"
+" Delete a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:380
+msgid ""
+"\n"
+" Modify a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:391
msgid "priority cannot be set on global policy"
msgstr "la prioridad no puede ser definida en una plítica global"
-#: ipalib/plugins/pwpolicy.py:369
+#: ipalib/plugins/pwpolicy.py:423
+msgid ""
+"\n"
+" Display information about password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:428
msgid "User"
msgstr "Usuario"
-#: ipalib/plugins/pwpolicy.py:370
+#: ipalib/plugins/pwpolicy.py:429
msgid "Display effective policy for a specific user"
msgstr "Ofrece la política efectiva para un determinado usuario"
-#: ipalib/plugins/rolegroup.py:79
-msgid "Role Groups"
-msgstr "Grupos de funciones"
+#: ipalib/plugins/pwpolicy.py:452
+msgid ""
+"\n"
+" Search for group password policies.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:20
+msgid ""
+"\n"
+"Roles\n"
+"\n"
+"A role is used for fine-grained delegation. A permission grants the ability\n"
+"to perform given low-level tasks (add a user, modify a group, etc.). A\n"
+"privilege combines one or more permissions into a higher-level abstraction\n"
+"such as useradmin. A useradmin would be able to add, delete and modify "
+"users.\n"
+"\n"
+"Privileges are assigned to Roles.\n"
+"\n"
+"Users, groups, hosts and hostgroups may be members of a Role.\n"
+"\n"
+"Roles can not contain other roles.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new role:\n"
+" ipa role-add --desc=\"Junior-level admin\" junioradmin\n"
+"\n"
+" Add some privileges to this role:\n"
+" ipa role-add-privilege --privileges=addusers junioradmin\n"
+" ipa role-add-privilege --privileges=change_password junioradmin\n"
+" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n"
+"\n"
+" Add a group of users to this role:\n"
+" ipa group-add --desc=\"User admins\" useradmins\n"
+" ipa role-add-member --groups=useradmins junioradmin\n"
+"\n"
+" Display information about a role:\n"
+" ipa role-show junioradmin\n"
+"\n"
+" The result of this is that any users in the group 'useradmins' can\n"
+" add users, reset passwords or add a user to the default IPA user group.\n"
+msgstr ""
+
+#: ipalib/plugins/role.py:62
+msgid ""
+"\n"
+" Role object.\n"
+" "
+msgstr ""
-#: ipalib/plugins/rolegroup.py:84
-msgid "Role-group name"
-msgstr "Nombre del grupo de función"
+#: ipalib/plugins/role.py:81
+msgid "Role"
+msgstr ""
+
+#: ipalib/plugins/role.py:86
+#, fuzzy
+msgid "Role name"
+msgstr "Nombre de la regla"
-#: ipalib/plugins/rolegroup.py:91
+#: ipalib/plugins/role.py:93
msgid "A description of this role-group"
msgstr "Una descripción de este grupo de funciones"
-#: ipalib/plugins/rolegroup.py:102
-msgid "Member of task-groups"
-msgstr "Miembros de los grupos de tareas"
+#: ipalib/plugins/role.py:101
+msgid ""
+"\n"
+" Add a new role.\n"
+" "
+msgstr ""
-#: ipalib/plugins/rolegroup.py:115
-#, python-format
-msgid "Added rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:105
+#, fuzzy
+msgid "Added role \"%(value)s\""
msgstr "Ha sido agregado el grupo de funciones \"%(value)s\""
-#: ipalib/plugins/rolegroup.py:125
-#, python-format
-msgid "Deleted rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:111
+msgid ""
+"\n"
+" Delete a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:115
+#, fuzzy
+msgid "Deleted role \"%(value)s\""
msgstr "Ha sido eliminado el grupo de funciones \"%(value)s\""
-#: ipalib/plugins/rolegroup.py:135
-#, python-format
-msgid "Modified rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:121
+msgid ""
+"\n"
+" Modify a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:125
+#, fuzzy
+msgid "Modified role \"%(value)s\""
msgstr "Ha sido modificado el grupo de funciones \"%(value)s\""
-#: ipalib/plugins/rolegroup.py:146
-#, python-format
-msgid "%(count)d rolegroup matched"
-msgid_plural "%(count)d rolegroups matched"
+#: ipalib/plugins/role.py:131
+msgid ""
+"\n"
+" Search for roles.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:135
+#, fuzzy
+msgid "%(count)d role matched"
+msgid_plural "%(count)d roles matched"
msgstr[0] "%(count)d grupo de roles coincidente"
msgstr[1] "%(count)d grupo de roles coincidentes"
-#: ipalib/plugins/service.py:198
+#: ipalib/plugins/role.py:143
+msgid ""
+"\n"
+" Display information about a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:151
+msgid ""
+"\n"
+" Add members to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:159
+msgid ""
+"\n"
+" Remove members from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:167
+msgid ""
+"\n"
+" Add privileges to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:183
+#, fuzzy
+msgid "Number of privileges added"
+msgstr "Cantidad de miembros añadidos"
+
+#: ipalib/plugins/role.py:191
+msgid ""
+"\n"
+" Remove privileges from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:207
+#, fuzzy
+msgid "Number of privileges removed"
+msgstr "Cantidad de miembros eliminados"
+
+#: ipalib/plugins/selfservice.py:19
+msgid ""
+"\n"
+"Self-service Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"A Self-service permission defines what an object can change in its own "
+"entry.\n"
+"\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a self-service rule to allow users to manage their address:\n"
+" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st "
+"\"Users manage their own address\"\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add telephoneNumber to the list:\n"
+" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber "
+"\"Users manage their own address\"\n"
+"\n"
+" Display our updated rule:\n"
+" ipa selfservice-show \"Users manage their own address\"\n"
+"\n"
+" Delete a rule:\n"
+" ipa selfservice-del \"Users manage their own address\"\n"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:56
+msgid ""
+"\n"
+" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a self-service ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:64
+msgid "Self-service permission '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:68
+msgid ""
+"\n"
+" Selfservice object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:75
+#, fuzzy
+msgid "Self Service Permissions"
+msgstr "Permisos"
+
+#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
+#, fuzzy
+msgid "Self-service name"
+msgstr "Nombre del servicio"
+
+#: ipalib/plugins/selfservice.py:114
+msgid ""
+"\n"
+" Add a new self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:118
+#, fuzzy
+msgid "Added selfservice \"%(value)s\""
+msgstr "Ha sido agregado el servicio \"%(value)s\""
+
+#: ipalib/plugins/selfservice.py:137
+msgid ""
+"\n"
+" Delete a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:142
+#, fuzzy
+msgid "Deleted selfservice \"%(value)s\""
+msgstr "Ha sido eliminado el servicio \"%(value)s\""
+
+#: ipalib/plugins/selfservice.py:158
+msgid ""
+"\n"
+" Modify a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:162
+#, fuzzy
+msgid "Modified selfservice \"%(value)s\""
+msgstr "Ha sido modificado el servicio \"%(value)s\""
+
+#: ipalib/plugins/selfservice.py:181
+msgid ""
+"\n"
+" Search for a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:185
+#, fuzzy
+msgid "%(count)d selfservice matched"
+msgid_plural "%(count)d selfservices matched"
+msgstr[0] "%(count)d servicio coincidente"
+msgstr[1] "%(count)d servicios coincidentes\t\t\t"
+
+#: ipalib/plugins/selfservice.py:207
+msgid ""
+"\n"
+" Display information about a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:21
+msgid ""
+"\n"
+"Services\n"
+"\n"
+"A IPA service represents a service that runs on a host. The IPA service\n"
+"record can store a Kerberos principal, an SSL certificate, or both.\n"
+"\n"
+"An IPA service can be managed directly from a machine, provided that\n"
+"machine has been given the correct permission. This is true even for\n"
+"machines other than the one the service is associated with. For example,\n"
+"requesting an SSL certificate using the host service principal credentials\n"
+"of the host. To manage a service using host credentials you need to\n"
+"kinit as the host:\n"
+"\n"
+" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n"
+"\n"
+"Adding an IPA service allows the associated service to request an SSL\n"
+"certificate or keytab, but this is performed as a separate step; they\n"
+"are not produced as a result of adding the service.\n"
+"\n"
+"Only the public aspect of a certificate is stored in a service record;\n"
+"the private key is not stored.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new IPA service:\n"
+" ipa service-add HTTP/web.example.com\n"
+"\n"
+" Allow a host to manage an IPA service certificate:\n"
+" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n"
+" ipa role-add-member --hosts=web.example.com certadmin\n"
+"\n"
+" Delete an IPA service:\n"
+" ipa service-del HTTP/web.example.com\n"
+"\n"
+" Find all IPA services associated with a host:\n"
+" ipa service-find web.example.com\n"
+"\n"
+" Find all HTTP services:\n"
+" ipa service-find HTTP\n"
+"\n"
+" Disable the service Kerberos key and SSL certificate:\n"
+" ipa service-disable HTTP/web.example.com\n"
+"\n"
+" Request a certificate for an IPA service:\n"
+" ipa cert-request --principal=HTTP/web.example.com example.csr\n"
+"\n"
+" Generate and retrieve a keytab for an IPA service:\n"
+" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/"
+"httpd.keytab\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/service.py:162
+msgid ""
+"\n"
+" For now just verify that it is properly base64-encoded.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:175
+msgid ""
+"\n"
+" Set individual attributes from some values from a certificate.\n"
+"\n"
+" entry_attrs is a dict of an entry\n"
+"\n"
+" returns nothing\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:199
+msgid ""
+"\n"
+" Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:226
msgid "Service principal"
msgstr "Servicio principal"
-#: ipalib/plugins/service.py:221
+#: ipalib/plugins/service.py:242
+msgid ""
+"\n"
+" Add a new IPA new service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:245
+msgid "Added service \"%(value)s\""
+msgstr "Ha sido agregado el servicio \"%(value)s\""
+
+#: ipalib/plugins/service.py:251
msgid "force principal name even if not in DNS"
msgstr "fuerza el nombre del prinicpal, aún si no se encuentra en DNS"
-#: ipalib/plugins/service.py:292
-#, python-format
+#: ipalib/plugins/service.py:284
+msgid ""
+"\n"
+" Delete an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:287
+msgid "Deleted service \"%(value)s\""
+msgstr "Ha sido eliminado el servicio \"%(value)s\""
+
+#: ipalib/plugins/service.py:321
+msgid ""
+"\n"
+" Modify an existing IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:324
msgid "Modified service \"%(value)s\""
msgstr "Ha sido modificado el servicio \"%(value)s\""
-#: ipalib/plugins/service.py:323
-#, python-format
+#: ipalib/plugins/service.py:356
+msgid ""
+"\n"
+" Search for IPA services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:359
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] "%(count)d servicio coincidente"
msgstr[1] "%(count)d servicios coincidentes\t\t\t"
-#: ipalib/plugins/service.py:409
-msgid "Service principal has no kerberos key"
-msgstr "El servicio principal no posee una llave kerberos"
+#: ipalib/plugins/service.py:394
+msgid ""
+"\n"
+" Display information about an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:432
+msgid ""
+"\n"
+" Add hosts that can manage this service.\n"
+" "
+msgstr ""
-#: ipalib/plugins/sudocmd.py:60
-msgid "SudoCmds"
+#: ipalib/plugins/service.py:442
+msgid ""
+"\n"
+" Remove hosts that can manage this service.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmd.py:65
+#: ipalib/plugins/service.py:452
+msgid ""
+"\n"
+" Disable the Kerberos key and SSL certificate of a service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:456
+#, fuzzy
+msgid "Disabled service \"%(value)s\""
+msgstr "Ha sido eliminado el servicio \"%(value)s\""
+
+#: ipalib/plugins/sudocmd.py:19
+msgid ""
+"\n"
+"Sudo Commands\n"
+"\n"
+"Commands used as building blocks for sudo\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a new command\n"
+" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n"
+"\n"
+" Remove a command\n"
+" ipa sudocmd-del /usr/bin/less\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:46
+msgid ""
+"\n"
+" Sudo Command object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:64
+#, fuzzy
+msgid "Sudo Commands"
+msgstr "Nombre del grupo"
+
+#: ipalib/plugins/sudocmd.py:69
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:72
+#: ipalib/plugins/sudocmd.py:75
#, fuzzy
msgid "A description of this command"
msgstr "Una descripción de este equipo"
-#: ipalib/plugins/sudocmd.py:99
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:98
+msgid ""
+"\n"
+" Create new sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:102
+#, fuzzy
msgid "Added sudo command \"%(value)s\""
msgstr "Ha sido agregado el equipo \"%(value)s\""
-#: ipalib/plugins/sudocmd.py:108
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:107
+#, fuzzy
+msgid ""
+"\n"
+" Delete sudo command.\n"
+" "
+msgstr "Ha sido eliminado el equipo \"%(value)s\""
+
+#: ipalib/plugins/sudocmd.py:111
+#, fuzzy
msgid "Deleted sudo command \"%(value)s\""
msgstr "Ha sido eliminado el equipo \"%(value)s\""
-#: ipalib/plugins/sudocmd.py:117
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:116
+msgid ""
+"\n"
+" Modify command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:120
+#, fuzzy
msgid "Modified sudo command \"%(value)s\""
msgstr "Ha sido modificado el equipo \"%(value)s\""
-#: ipalib/plugins/sudocmd.py:127
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:125
+msgid ""
+"\n"
+" Search for commands.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:129
+#, fuzzy
msgid "%(count)d sudo command matched"
msgid_plural "%(count)d sudo command matched"
msgstr[0] "%(count)d equipo coincidente"
msgstr[1] "%(count)d equipos coincidentes"
-#: ipalib/plugins/sudocmdgroup.py:66 ipalib/plugins/sudocmdgroup.py:85
-#: ipalib/plugins/sudorule.py:81 ipalib/plugins/sudorule.py:85
-msgid "Sudo Command Groups"
+#: ipalib/plugins/sudocmd.py:136
+msgid ""
+"\n"
+" Display sudo command.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:71
+#: ipalib/plugins/sudocmdgroup.py:19
+msgid ""
+"\n"
+"Groups of Sudo commands\n"
+"\n"
+"Manage groups of Sudo commands.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new Sudo command group:\n"
+" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
+"\n"
+" Remove a Sudo command group:\n"
+" ipa sudocmdgroup-del admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim "
+"admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
+"\n"
+" Show a Sudo command group:\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:50
+msgid ""
+"\n"
+" Sudo Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:70
#, fuzzy
msgid "Sudo Command Group"
msgstr "Nombre del grupo"
-#: ipalib/plugins/sudocmdgroup.py:81
-msgid "Commands"
+#: ipalib/plugins/sudocmdgroup.py:93
+msgid ""
+"\n"
+" Create new sudo command group.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:98
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:97
+#, fuzzy
msgid "Added sudo command group \"%(value)s\""
msgstr "Ha sido agregado el grupo \"%(value)s\""
-#: ipalib/plugins/sudocmdgroup.py:108
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:103
+#, fuzzy
+msgid ""
+"\n"
+" Delete sudo command group.\n"
+" "
+msgstr "Ha sido eliminado el grupo \"%(value)s\""
+
+#: ipalib/plugins/sudocmdgroup.py:107
+#, fuzzy
msgid "Deleted sudo command group \"%(value)s\""
msgstr "Ha sido eliminado el grupo \"%(value)s\""
-#: ipalib/plugins/sudocmdgroup.py:118
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:113
+msgid ""
+"\n"
+" Modify group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:117
+#, fuzzy
msgid "Modified sudo command group \"%(value)s\""
msgstr "Ha sido modificado el grupo \"%(value)s\""
-#: ipalib/plugins/sudocmdgroup.py:129
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:123
+msgid ""
+"\n"
+" Search for sudo command groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:127
+#, fuzzy
msgid "%(count)d sudo command group matched"
msgid_plural "%(count)d sudo command groups matched"
msgstr[0] "%(count)d grupo coincidente"
msgstr[1] "%(count)d grupos coincidentes"
-#: ipalib/plugins/sudorule.py:48
-msgid "SudoRule"
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid ""
+"\n"
+" Display sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:144
+#, fuzzy
+msgid ""
+"\n"
+" Add members to sudo command group.\n"
+" "
+msgstr "Ha sido agregado el grupo \"%(value)s\""
+
+#: ipalib/plugins/sudocmdgroup.py:152
+msgid ""
+"\n"
+" Remove members from sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:19
+msgid ""
+"\n"
+"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
+"give certain users (or groups of users) the ability to run some (or all)\n"
+"commands as root or another user while providing an audit trail of the\n"
+"commands and their arguments.\n"
+"\n"
+"FreeIPA provides a designated binddn to use with Sudo located at:\n"
+"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
+"\n"
+"To enable the binddn run the following command to set the password:\n"
+"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -"
+"ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,"
+"dc=com\n"
+"\n"
+"For more information, see the FreeIPA Documentation to Sudo.\n"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:44
+msgid ""
+"\n"
+" Sudo Rule management\n"
+" "
msgstr ""
-#: ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/sudorule.py:68
+msgid "Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:98
+#, fuzzy
+msgid "Command category"
+msgstr "Categoría del equipo"
+
+#: ipalib/plugins/sudorule.py:99
+#, fuzzy
+msgid "Command category the rule applies to"
+msgstr "Categoría del equipo al que se aplica la regla"
+
+#: ipalib/plugins/sudorule.py:104
+#, fuzzy
+msgid "Run As User category"
+msgstr "Categoría de usuario"
+
+#: ipalib/plugins/sudorule.py:105
+#, fuzzy
+msgid "Run As User category the rule applies to"
+msgstr "Categoría de usuario al que se aplica la regla"
+
+#: ipalib/plugins/sudorule.py:110
+#, fuzzy
+msgid "Run As Group category"
+msgstr "Categoría de usuario"
+
+#: ipalib/plugins/sudorule.py:111
+#, fuzzy
+msgid "Run As Group category the rule applies to"
+msgstr "Categoría de usuario al que se aplica la regla"
+
+#: ipalib/plugins/sudorule.py:131
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:77
+#: ipalib/plugins/sudorule.py:135
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:109
-#, fuzzy, python-format
+#: ipalib/plugins/sudorule.py:147
+msgid "Run As User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:151
+#, fuzzy
+msgid "Run As Group"
+msgstr "Grupos de usuarios"
+
+#: ipalib/plugins/sudorule.py:156
+#, fuzzy
+msgid "External User"
+msgstr "Equipo externo"
+
+#: ipalib/plugins/sudorule.py:157
+#, fuzzy
+msgid "External User the rule applies to"
+msgstr "Categoría de usuario al que se aplica la regla"
+
+#: ipalib/plugins/sudorule.py:161
+#, fuzzy
+msgid "RunAs External User"
+msgstr "Equipo externo"
+
+#: ipalib/plugins/sudorule.py:162
+msgid "External User the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:166
+#, fuzzy
+msgid "RunAs External Group"
+msgstr "Equipo externo"
+
+#: ipalib/plugins/sudorule.py:167
+msgid "External Group the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:175
+msgid ""
+"\n"
+" Create new Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
+#, fuzzy
msgid "Added sudo rule \"%(value)s\""
msgstr "Ha sido agregado el usuario \"%(value)s\""
-#: ipalib/plugins/taskgroup.py:51
-msgid "Task Groups"
-msgstr "Grupos de tareas"
+#: ipalib/plugins/sudorule.py:189
+msgid ""
+"\n"
+" Delete Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:56
-msgid "Task-group name"
-msgstr "Nombre de grupos de tareas"
+#: ipalib/plugins/sudorule.py:197
+msgid ""
+"\n"
+" Modify Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:63
-msgid "Task-group description"
-msgstr "Descrición del grupo de tareas"
+#: ipalib/plugins/sudorule.py:205
+msgid ""
+"\n"
+" Search for Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:74
-msgid "Member role-groups"
-msgstr "Grupos de función miembro"
+#: ipalib/plugins/sudorule.py:213
+msgid ""
+"\n"
+" Display Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:87
-#, python-format
-msgid "Added taskgroup \"%(value)s\""
-msgstr "Ha sido agregado el grupo de tareas \"%(value)s\""
+#: ipalib/plugins/sudorule.py:221
+msgid ""
+"\n"
+" Enable a Sudo rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:97
-#, python-format
-msgid "Deleted taskgroup \"%(value)s\""
-msgstr "Ha sido eliminado el grupo de tareas \"%(value)s\""
+#: ipalib/plugins/sudorule.py:247
+msgid ""
+"\n"
+" Disable a Sudo rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:107
-#, python-format
-msgid "Modified taskgroup \"%(value)s\""
-msgstr "Ha sido modificado el grupo de tareas \"%(value)s\""
+#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
+msgid ""
+"\n"
+" Add commands and sudo command groups affected by Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:118
-#, python-format
-msgid "%(count)d taskgroup matched"
-msgid_plural "%(count)d taskgroups matched"
-msgstr[0] "%(count)d grupo de tarea coincidente"
-msgstr[1] "%(count)d grupos de tarea coincidentes"
+#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
+msgid ""
+"\n"
+" Remove commands and sudo command groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:313
+msgid ""
+"\n"
+" Add users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/user.py:84
+#: ipalib/plugins/sudorule.py:349
+msgid ""
+"\n"
+" Remove users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:383
+msgid ""
+"\n"
+" Add hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:419
+msgid ""
+"\n"
+" Remove hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:453
+msgid ""
+"\n"
+" Add user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:489
+msgid ""
+"\n"
+" Remove user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:523
+msgid ""
+"\n"
+" Add group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:559
+msgid ""
+"\n"
+" Remove group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:593
+msgid ""
+"\n"
+" Add an option to the Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
+msgid "Sudo Option"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:635
+msgid ""
+"\n"
+" Remove an option from Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:20
+msgid ""
+"\n"
+"Users\n"
+"\n"
+"Manage user entries. All users are POSIX users.\n"
+"\n"
+"IPA supports a wide range of username formats, but you need to be aware of "
+"any\n"
+"restrictions that may apply to your particular environment. For example,\n"
+"usernames that start with a digit or usernames that exceed a certain length\n"
+"may cause problems for some UNIX systems.\n"
+"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n"
+"\n"
+"Disabling a user account prevents that user from obtaining new Kerberos\n"
+"credentials. It does not invalidate any credentials that have already\n"
+"been issued.\n"
+"\n"
+"Password management is not a part of this module. For more information\n"
+"about this topic please see: ipa help passwd\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1\n"
+"\n"
+" Find all users whose entries include the string \"Tim\":\n"
+" ipa user-find Tim\n"
+"\n"
+" Find all users with \"Tim\" as the first name:\n"
+" ipa user-find --first=Tim\n"
+"\n"
+" Disable a user account:\n"
+" ipa user-disable tuser1\n"
+"\n"
+" Enable a user account:\n"
+" ipa user-enable tuser1\n"
+"\n"
+" Delete a user:\n"
+" ipa user-del tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/user.py:79
+msgid ""
+"\n"
+" User object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:116
msgid "User login"
msgstr "Ingreso de usuario"
-#: ipalib/plugins/user.py:91
+#: ipalib/plugins/user.py:123
msgid "First name"
msgstr "Nombre"
-#: ipalib/plugins/user.py:95
+#: ipalib/plugins/user.py:127
msgid "Last name"
msgstr "Apellido"
-#: ipalib/plugins/user.py:103
+#: ipalib/plugins/user.py:130
+#, fuzzy
+msgid "Full name"
+msgstr "Nombre de la regla"
+
+#: ipalib/plugins/user.py:135
+#, fuzzy
+msgid "Display name"
+msgstr "Nombre"
+
+#: ipalib/plugins/user.py:140
+msgid "Initials"
+msgstr ""
+
+#: ipalib/plugins/user.py:146
+#, fuzzy
+msgid "Home directory"
+msgstr "Base del directorio principal"
+
+#: ipalib/plugins/user.py:150
msgid "GECOS field"
msgstr "Campo GECOS"
-#: ipalib/plugins/user.py:109
+#: ipalib/plugins/user.py:156
msgid "Login shell"
msgstr "Shel de ingreso"
-#: ipalib/plugins/user.py:114
+#: ipalib/plugins/user.py:161
msgid "Kerberos principal"
msgstr "Principal kerberos"
-#: ipalib/plugins/user.py:120
+#: ipalib/plugins/user.py:168
msgid "Email address"
msgstr "Dirección de correo electrónico"
-#: ipalib/plugins/user.py:124
-msgid "Password"
-msgstr "Contraseña"
-
-#: ipalib/plugins/user.py:125
-msgid "Set the user password"
+#: ipalib/plugins/user.py:173
+#, fuzzy
+msgid "Prompt to set the user password"
msgstr "Definir la contraseña de usuario"
-#: ipalib/plugins/user.py:132
+#: ipalib/plugins/user.py:180
msgid "UID"
msgstr "UID"
-#: ipalib/plugins/user.py:133
+#: ipalib/plugins/user.py:181
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
"Número de ID de usuario (el sistema le asignará uno si no se indica ninguno)"
-#: ipalib/plugins/user.py:139
+#: ipalib/plugins/user.py:188
+#, fuzzy
+msgid "Group ID Number"
+msgstr "Nombre del grupo"
+
+#: ipalib/plugins/user.py:193
msgid "Street address"
msgstr "Dirección postal"
-#: ipalib/plugins/user.py:142
-msgid "Groups"
-msgstr "Grupos"
-
-#: ipalib/plugins/user.py:146
-msgid "Netgroups"
-msgstr "Grupos de red"
+#: ipalib/plugins/user.py:197
+msgid "City"
+msgstr ""
-#: ipalib/plugins/user.py:150
-msgid "Rolegroups"
-msgstr "Grupos de funciones"
+#: ipalib/plugins/user.py:201
+msgid "State/Province"
+msgstr ""
-#: ipalib/plugins/user.py:154
-msgid "Taskgroups"
-msgstr "Grupos de tareas"
+#: ipalib/plugins/user.py:204
+msgid "ZIP"
+msgstr ""
-#: ipalib/plugins/user.py:159
+#: ipalib/plugins/user.py:208
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:211
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:163
+#: ipalib/plugins/user.py:214
#, fuzzy
msgid "Pager Number"
msgstr "Número de serie"
-#: ipalib/plugins/user.py:166
+#: ipalib/plugins/user.py:218
#, fuzzy
msgid "Fax Number"
msgstr "Número de serie"
-#: ipalib/plugins/user.py:177
-#, python-format
+#: ipalib/plugins/user.py:222
+msgid "Org. Unit"
+msgstr ""
+
+#: ipalib/plugins/user.py:225
+msgid "Job Title"
+msgstr ""
+
+#: ipalib/plugins/user.py:228
+msgid "Manager"
+msgstr ""
+
+#: ipalib/plugins/user.py:231
+msgid "Car License"
+msgstr ""
+
+#: ipalib/plugins/user.py:234
+#, fuzzy
+msgid "Account disabled"
+msgstr "Detalles de la cuenta"
+
+#: ipalib/plugins/user.py:258
+msgid ""
+"\n"
+" Given a userid verify the user's existence and return the dn.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:276
+#, fuzzy
+msgid "manager %(manager)s not found"
+msgstr "no se encuentra la entrada (%(container)s) de contenedor"
+
+#: ipalib/plugins/user.py:281
+msgid ""
+"\n"
+" Convert a manager dn into a userid\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:295
+msgid ""
+"\n"
+" Add a new user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:298
msgid "Added user \"%(value)s\""
msgstr "Ha sido agregado el usuario \"%(value)s\""
-#: ipalib/plugins/user.py:226
-#, python-format
+#: ipalib/plugins/user.py:303
+#, fuzzy
+msgid "Don't create user private group"
+msgstr "Grupo de usuarios predeterminado"
+
+#: ipalib/plugins/user.py:333
+#, fuzzy
+msgid "can be at most %(len)d characters"
+msgstr "puede tener a lo sumo %(maxlength)d caracteres"
+
+#: ipalib/plugins/user.py:400
+msgid ""
+"\n"
+" Delete a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:404
msgid "Deleted user \"%(value)s\""
msgstr "Ha sido eliminado el usuario \"%(value)s\""
-#: ipalib/plugins/user.py:240
-#, python-format
+#: ipalib/plugins/user.py:413
+msgid ""
+"\n"
+" Modify a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:417
msgid "Modified user \"%(value)s\""
msgstr "Ha sido modificado el usuario \"%(value)s\""
-#: ipalib/plugins/user.py:252
+#: ipalib/plugins/user.py:437
+msgid ""
+"\n"
+" Search for users.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:444
msgid "Self"
msgstr "Self"
-#: ipalib/plugins/user.py:253
+#: ipalib/plugins/user.py:445
msgid "Display user record for current Kerberos principal"
msgstr "Muestra el registro del usuario para el principal de Kerberos actual"
-#: ipalib/plugins/user.py:263
-#, python-format
+#: ipalib/plugins/user.py:463
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] "%(count)d usuario coincidente"
msgstr[1] "%(count)d usuarios coincidentes"
-#: ipalib/plugins/user.py:283
-#, fuzzy, python-format
+#: ipalib/plugins/user.py:471
+msgid ""
+"\n"
+" Display information about a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:484
+#, fuzzy
+msgid ""
+"\n"
+" Disable a user account.\n"
+" "
+msgstr "Ha sido eliminado el usuario \"%(value)s\""
+
+#: ipalib/plugins/user.py:489
+#, fuzzy
msgid "Disabled user account \"%(value)s\""
msgstr "Ha sido eliminado el usuario \"%(value)s\""
-#: ipalib/plugins/user.py:309
-#, fuzzy, python-format
+#: ipalib/plugins/user.py:507
+#, fuzzy
+msgid ""
+"\n"
+" Enable a user account.\n"
+" "
+msgstr "Ha sido desbloqueado el usuario \"%(value)s\""
+
+#: ipalib/plugins/user.py:512
+#, fuzzy
msgid "Enabled user account \"%(value)s\""
msgstr "Ha sido desbloqueado el usuario \"%(value)s\""
-#: ipaserver/install/certs.py:599 ipaserver/plugins/dogtag.py:1313
-#: ipaserver/plugins/dogtag.py:1398 ipaserver/plugins/dogtag.py:1463
-#: ipaserver/plugins/dogtag.py:1543 ipaserver/plugins/dogtag.py:1602
+#: ipalib/plugins/user.py:529
+msgid ""
+"\n"
+" Unlock a user account\n"
+"\n"
+" An account may become locked if the password is entered incorrectly too\n"
+" many times within a specific time period as controlled by password\n"
+" policy. A locked account is a temporary condition and may be unlocked "
+"by\n"
+" an administrator.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:538
+#, fuzzy
+msgid "Unlocked account \"%(value)s\""
+msgstr "Ha sido desbloqueado el usuario \"%(value)s\""
+
+#: ipalib/plugins/virtual.py:20
+msgid ""
+"\n"
+"Base classes for non-LDAP backend plugins.\n"
+msgstr ""
+
+#: ipalib/plugins/virtual.py:28
+msgid ""
+"\n"
+" A command that doesn't use the LDAP backend but wants to use the\n"
+" LDAP access control system to make authorization decisions.\n"
+"\n"
+" The class variable operation is the commonName attribute of the\n"
+" entry to be tested against.\n"
+"\n"
+" In advance, you need to create an entry of the form:\n"
+" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
+"\n"
+" Ex.\n"
+" cn=request certificate, cn=virtual operations,cn=etc, dc=example, "
+"dc=com\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/virtual.py:44
+msgid ""
+"\n"
+" Perform an LDAP query to determine authorization.\n"
+"\n"
+" This should be executed before any actual work is done.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/xmlclient.py:21
+msgid ""
+"\n"
+"XML-RPC client plugin.\n"
+msgstr ""
+
+#: ipalib/cli.py:581
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr "ngrese %(label)s nuevamente para su verificación: "
+
+#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
+#, c-format
+msgid "Passwords do not match!"
+msgstr "¡Las contraseñas no coinciden!"
+
+#: ipalib/cli.py:590
+msgid "Cancelled."
+msgstr "Cancelado."
+
+#: ipalib/cli.py:819
+#, fuzzy
+msgid "Command name"
+msgstr "Nombre de la zona"
+
+#: ipalib/cli.py:1117
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:300
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+"el cliente %(cver)s no es compatible con el servidor %(sver)s en %(server)r"
+
+#: ipalib/errors.py:318
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr "error %(code)d desconocido de %(server)s: %(error)s"
+
+#: ipalib/errors.py:334
+msgid "an internal error has occurred"
+msgstr "ha ocurrido un error interno"
+
+#: ipalib/errors.py:356
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr "ha ocurrido un error interno en el servidor en %(server)r"
+
+#: ipalib/errors.py:372
+#, python-format
+msgid "unknown command %(name)r"
+msgstr "comando desconocido %(name)r"
+
+#: ipalib/errors.py:389 ipalib/errors.py:414
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr "error en el servidor %(server)r: %(error)s"
+
+#: ipalib/errors.py:405
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr "no es posible conectar con %(uri)r: %(error)s"
+
+#: ipalib/errors.py:423
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr "Petición JSON-RPC no válida: %(error)s"
+
+#: ipalib/errors.py:439
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:465
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr "Error de kerberos: %(major)s/%(minor)s"
+
+#: ipalib/errors.py:482
+msgid "did not receive Kerberos credentials"
+msgstr "no se ha recibido ninguna credencial Kerberos"
+
+#: ipalib/errors.py:498
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+"El servicio %(service)r no se ha encontrado en la base de datos Kerberos"
+
+#: ipalib/errors.py:514
+msgid "No credentials cache found"
+msgstr "No se han encontrado credenciales de caché"
+
+#: ipalib/errors.py:530
+msgid "Ticket expired"
+msgstr "El ticket ha expirado"
+
+#: ipalib/errors.py:546
+msgid "Credentials cache permissions incorrect"
+msgstr "Los permisos de credenciales de caché son incorrectos"
+
+#: ipalib/errors.py:562
+msgid "Bad format in credentials cache"
+msgstr "Las credenciales de caché están mal formadas"
+
+#: ipalib/errors.py:578
+msgid "Cannot resolve KDC for requested realm"
+msgstr "No es posible resolver KDC para el reinado solicitado"
+
+#: ipalib/errors.py:597
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr "Acceso insuficiente: %(info)s"
+
+#: ipalib/errors.py:641
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr "el comando %(name)r no tiene argumentos"
+
+#: ipalib/errors.py:661
+#, python-format
+msgid "command %(name)r takes at most %(count)d argument"
+msgid_plural "command %(name)r takes at most %(count)d arguments"
+msgstr[0] "el comando %(name)r lleva al menos %(count)d argumento"
+msgstr[1] "el comando %(name)r lleva al menos %(count)d argumentos"
+
+#: ipalib/errors.py:691
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr "superponiendo argumentos y opciones: %(names)r"
+
+#: ipalib/errors.py:707
+#, python-format
+msgid "%(name)r is required"
+msgstr "%(name)r es necesario"
+
+#: ipalib/errors.py:723 ipalib/errors.py:739
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr "%(name)r inválido: %(error)s"
+
+#: ipalib/errors.py:755
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr "api no posee tal nombre de espacio: %(name)r"
+
+#: ipalib/errors.py:764
+msgid "Passwords do not match"
+msgstr "Las contraseñas no coinciden"
+
+#: ipalib/errors.py:773
+msgid "Command not implemented"
+msgstr "El comando no se ha implementado"
+
+#: ipalib/errors.py:782
+msgid "Client is not configured. Run ipa-client-install."
+msgstr ""
+
+#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
+#: ipalib/errors.py:1424 ipalib/errors.py:1441
+#, python-format
+msgid "%(reason)s"
+msgstr "%(reason)s"
+
+#: ipalib/errors.py:826
+msgid "This entry already exists"
+msgstr "Esta entrada ya existe"
+
+#: ipalib/errors.py:842
+msgid "You must enroll a host in order to create a host service"
+msgstr "Debe registrar un equipo para poder generar un servicio de equipo"
+
+#: ipalib/errors.py:858
+#, python-format
+msgid ""
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr ""
+"El servicio principal no tiene la forma de servicio/nombre de equipo "
+"totalmente calificado: %(reason)s"
+
+#: ipalib/errors.py:874
+msgid ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr ""
+"El reinado para el principal no coincide con el reinado para este servidor "
+"IPA"
+
+#: ipalib/errors.py:890
+msgid "This command requires root access"
+msgstr "Este comando necesita acceso de usuario root"
+
+#: ipalib/errors.py:906
+msgid "This is already a posix group"
+msgstr "Este ya es un grupo posix"
+
+#: ipalib/errors.py:922
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr "El principal no tiene la forma usuario@REINADO: %(principal)r"
+
+#: ipalib/errors.py:938
+#, fuzzy
+msgid "This entry is already enabled"
+msgstr "Esta entrada ya se encuentra desbloqueada"
+
+#: ipalib/errors.py:954
+#, fuzzy
+msgid "This entry is already disabled"
+msgstr "Esta entrada ya se encuentra bloqueada"
+
+#: ipalib/errors.py:970
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:986
+#, fuzzy
+msgid "This entry is not a member"
+msgstr "Esta entrada no es miembro del grupo"
+
+#: ipalib/errors.py:1002
+msgid "A group may not be a member of itself"
+msgstr "Un grupo no puede ser miembro de sí mismo"
+
+#: ipalib/errors.py:1018
+#, fuzzy
+msgid "This entry is already a member"
+msgstr "Esta entrada ya es miembro del grupo"
+
+#: ipalib/errors.py:1034
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr "Falló la decodificación base64: %(reason)s"
+
+#: ipalib/errors.py:1066
+msgid "A group may not be added as a member of itself"
+msgstr "Un grupo no puede ser agregado como miembro de sí mismo"
+
+#: ipalib/errors.py:1082
+msgid "The default users group cannot be removed"
+msgstr "El grupo de usuarios predeterminado no puede ser eliminado"
+
+#: ipalib/errors.py:1098
+msgid "Host does not have corresponding DNS A record"
+msgstr "El equipo no posee un registro DNS A con el que se corresponda "
+
+#: ipalib/errors.py:1113
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+"No se permite eliminar un grupo administrado. Primero debe ser desasociado. "
+
+#: ipalib/errors.py:1128
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1160
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1176
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1192
+#, python-format
+msgid ""
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1216
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr "no existe un comando para el tópico de ayuda %(topic)r"
+
+#: ipalib/errors.py:1240
+msgid "change collided with another change"
+msgstr "la modificación choca con otra modificación diferente"
+
+#: ipalib/errors.py:1256
+msgid "no modifications to be performed"
+msgstr "no existen modificaciones a ser realizadas"
+
+#: ipalib/errors.py:1272
+#, fuzzy, python-format
+msgid "%(desc)s: %(info)s"
+msgstr "%(desc)s:%(info)s"
+
+#: ipalib/errors.py:1288
+msgid "limits exceeded for this query"
+msgstr "han sido excedidos los límites para esta consulta"
+
+#: ipalib/errors.py:1303
+#, python-format
+msgid "%(info)s"
+msgstr "%(info)s"
+
+#: ipalib/errors.py:1318
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1334
+#, fuzzy, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr "Sólo se permite un valor"
+
+#: ipalib/errors.py:1350
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1366
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1391
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr "La operación certificada no puede ser completada: %(error)s"
+
+#: ipalib/errors.py:1407
+#, fuzzy, python-format
+msgid "Certificate format error: %(error)s"
+msgstr "La operación certificada no puede ser completada: %(error)s"
+
+#: ipalib/errors.py:1458
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1474
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:398
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+"Los resultados se encuentran truncados, intente realizar una búsqueda más "
+"específica"
+
+#: ipalib/frontend.py:850
+msgid ""
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:856
+#, fuzzy
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr "imprime las entradas como se encuentran almacenadas en el servidor"
+
+#: ipalib/frontend.py:985
+msgid "Forward to server instead of running locally"
+msgstr "Reenvía al servidor en lugar de ejecutarse localmente"
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr "Un diccionario representando una entrada LDAP"
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr "Una lista de entradas LDAP"
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr "Todos los comandos deberían por lo menos tener un resultado"
+
+#: ipalib/parameters.py:296
+msgid "incorrect type"
+msgstr "tipo incorrecto"
+
+#: ipalib/parameters.py:299
+msgid "Only one value is allowed"
+msgstr "Sólo se permite un valor"
+
+#: ipalib/parameters.py:901
+msgid "must be True or False"
+msgstr "debe ser True o False"
+
+#: ipalib/parameters.py:1002
+msgid "must be an integer"
+msgstr "debe ser un entero"
+
+#: ipalib/parameters.py:1054
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr "debe ser como mínimo %(minvalue)d"
+
+#: ipalib/parameters.py:1064
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr "puede ser como máximo %(maxvalue)d"
+
+#: ipalib/parameters.py:1074
+msgid "must be a decimal number"
+msgstr "debe ser un número decimal"
+
+#: ipalib/parameters.py:1097
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr "debe ser como mínimo %(minvalue)f"
+
+#: ipalib/parameters.py:1107
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr "puede ser como máximo %(maxvalue)f"
+
+#: ipalib/parameters.py:1174
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr "debe coincidir con el modelo \"%(pattern)s"
+
+#: ipalib/parameters.py:1192
+msgid "must be binary data"
+msgstr "debe ser un dato binario"
+
+#: ipalib/parameters.py:1208
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr "debe ser como mínimo de %(minlength)d bytes"
+
+#: ipalib/parameters.py:1218
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr "puede ser a lo sumo de %(maxlength)d bytes"
+
+#: ipalib/parameters.py:1228
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr "debe ser exactamente de %(length)d bytes"
+
+#: ipalib/parameters.py:1246
+msgid "must be Unicode text"
+msgstr "debe ser texto Unicode"
+
+#: ipalib/parameters.py:1277
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr "debe tener como mínimo %(minlength)d caracteres"
+
+#: ipalib/parameters.py:1287
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr "puede tener a lo sumo %(maxlength)d caracteres"
+
+#: ipalib/parameters.py:1297
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr "debe tener exactamente %(length)d caracteres"
+
+#: ipalib/parameters.py:1315
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1355
+#, python-format
+msgid "must be one of %(values)r"
+msgstr "debe ser uno de %(values)r"
+
+#: ipalib/util.py:200
+#, python-format
+msgid "Permission denied: %(file)s"
+msgstr ""
+
+#: ipalib/x509.py:174
+#, python-format
+msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
+msgstr ""
+
+#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
+#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
+#: ipaserver/plugins/dogtag.py:1600
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr "No es posible comunicarse con CMS (%s)"
@@ -2059,7 +7598,7 @@ msgstr "Plataforma de hardware del equipo (p. ej. Lenovo T61)"
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr "Sistema operativo que utiliza el equipo y versión (p.ej. Fedora 9)"
-#: ipaserver/plugins/selfsign.py:98
+#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
"Request subject \"%(request_subject)s\" does not match the form "
@@ -2068,20 +7607,20 @@ msgstr ""
"El asunto solicitado \"%(request_subject)s\" no coincide con la forma "
"\"%(subject_base)s\""
-#: ipaserver/plugins/selfsign.py:103
+#: ipaserver/plugins/selfsign.py:104
#, python-format
msgid "unable to decode csr: %s"
msgstr "no es posible decodificar csr: %s"
-#: ipaserver/plugins/selfsign.py:124 ipaserver/plugins/selfsign.py:139
+#: ipaserver/plugins/selfsign.py:125 ipaserver/plugins/selfsign.py:140
msgid "file operation"
msgstr "operación de archivo"
-#: ipaserver/plugins/selfsign.py:153
+#: ipaserver/plugins/selfsign.py:154
msgid "cannot obtain next serial number"
msgstr "no es posible obtener el próximo número de serie"
-#: ipaserver/plugins/selfsign.py:188
+#: ipaserver/plugins/selfsign.py:189
msgid "certutil failure"
msgstr "falla de certutil"
@@ -2095,550 +7634,581 @@ msgstr ""
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:75
+#: ipa-client/config.c:68
+#, c-format
+msgid "out of memory\n"
+msgstr ""
+
+#: ipa-client/config.c:79
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:138 ipa-client/ipa-getkeytab.c:838
+#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
+#: ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:146
+#: ipa-client/ipa-getkeytab.c:155
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:164 ipa-client/ipa-getkeytab.c:179
+#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:194
+#: ipa-client/ipa-getkeytab.c:203
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:209
+#: ipa-client/ipa-getkeytab.c:218
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:235
+#: ipa-client/ipa-getkeytab.c:245
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:297
+#: ipa-client/ipa-getkeytab.c:307
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:310 ipa-client/ipa-getkeytab.c:327
-#: ipa-client/ipa-getkeytab.c:335 ipa-client/ipa-getkeytab.c:372
+#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
+#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:317 ipa-client/ipa-getkeytab.c:350
+#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
+#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
+#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
+#: ipa-client/ipa-join.c:819
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:361
+#: ipa-client/ipa-getkeytab.c:371
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:481
+#: ipa-client/ipa-getkeytab.c:492
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:496
+#: ipa-client/ipa-getkeytab.c:507
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:534
+#: ipa-client/ipa-getkeytab.c:545
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:541
+#: ipa-client/ipa-getkeytab.c:552
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:565
+#: ipa-client/ipa-getkeytab.c:576
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:572
+#: ipa-client/ipa-getkeytab.c:583
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:579
+#: ipa-client/ipa-getkeytab.c:596
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:589
+#: ipa-client/ipa-getkeytab.c:606
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:605 ipa-client/ipa-getkeytab.c:618
-#: ipa-client/ipa-getkeytab.c:625 ipa-client/ipa-getkeytab.c:632
+#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
+#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:638 ipa-client/ipa-getkeytab.c:648
+#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655
+#: ipa-client/ipa-getkeytab.c:672
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:674
+#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:715
+#: ipa-client/ipa-getkeytab.c:736
#, fuzzy
msgid "New Principal Password"
msgstr "Nombre principal"
-#: ipa-client/ipa-getkeytab.c:721
+#: ipa-client/ipa-getkeytab.c:742
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781
+#: ipa-client/ipa-getkeytab.c:778
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782
+#: ipa-client/ipa-getkeytab.c:779
#, fuzzy
msgid "Server Name"
msgstr "Nombre del servicio"
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:189
+#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
#, fuzzy
msgid "Kerberos Service Principal Name"
msgstr "Principal kerberos"
-#: ipa-client/ipa-getkeytab.c:787 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:787
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:788
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:790
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:794
+#: ipa-client/ipa-getkeytab.c:791
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:796
+#: ipa-client/ipa-getkeytab.c:793
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
#, fuzzy
msgid "LDAP DN"
msgstr "LDAP URI"
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
#, fuzzy
msgid "LDAP password"
msgstr "Contraseña"
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:825 ipa-client/ipa-rmkeytab.c:207
-#, c-format
-msgid "Kerberos context initialization failed\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:837
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:845
+#: ipa-client/ipa-getkeytab.c:841
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:864
+#: ipa-client/ipa-getkeytab.c:860
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:877
+#: ipa-client/ipa-getkeytab.c:873
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. -P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:889
+#: ipa-client/ipa-getkeytab.c:885
#, fuzzy, c-format
msgid "Invalid Service Principal Name\n"
msgstr "Servicio principal"
-#: ipa-client/ipa-getkeytab.c:897
+#: ipa-client/ipa-getkeytab.c:893
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:905
+#: ipa-client/ipa-getkeytab.c:901
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:913
+#: ipa-client/ipa-getkeytab.c:909
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:920
+#: ipa-client/ipa-getkeytab.c:916
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:939
+#: ipa-client/ipa-getkeytab.c:935
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:948
+#: ipa-client/ipa-getkeytab.c:944
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:954
+#: ipa-client/ipa-getkeytab.c:950
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:67
+#: ipa-client/ipa-join.c:65
#, c-format
msgid "No permission to join this host to the IPA domain.\n"
msgstr ""
-#: ipa-client/ipa-join.c:104 ipa-client/ipa-join.c:116
+#: ipa-client/ipa-join.c:94 ipa-client/ipa-join.c:106
#, c-format
msgid "No write permissions on keytab file '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:121
+#: ipa-client/ipa-join.c:111
#, c-format
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:200
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#, c-format
+msgid "Out of memory!"
+msgstr ""
+
+#: ipa-client/ipa-join.c:204
+#, c-format
+msgid "Unable to initialize connection to ldap server: %s"
+msgstr ""
+
+#: ipa-client/ipa-join.c:210
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:206
+#: ipa-client/ipa-join.c:216
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:236
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:249
+#: ipa-client/ipa-join.c:269
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:259 ipa-client/ipa-join.c:311
+#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:302
+#: ipa-client/ipa-join.c:322
#, c-format
msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:368
+#: ipa-client/ipa-join.c:390
#, c-format
msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:377
+#: ipa-client/ipa-join.c:399
#, fuzzy, c-format
msgid "Unable to determine certificate subject of %s\n"
msgstr "No es posible decodificar el certificado en la entrada"
-#: ipa-client/ipa-join.c:385
+#: ipa-client/ipa-join.c:407
#, c-format
msgid "Unable to make an LDAP connection to %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:394
+#: ipa-client/ipa-join.c:432
#, c-format
msgid "Searching with %s in %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:400
+#: ipa-client/ipa-join.c:438
#, c-format
msgid "ldap_search_ext_s: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:408
+#: ipa-client/ipa-join.c:446
#, fuzzy, c-format
msgid "Unable to find host '%s'\n"
msgstr "no es posible decodificar csr: %s"
-#: ipa-client/ipa-join.c:415
+#: ipa-client/ipa-join.c:453
#, c-format
msgid "Unable to get binddn for host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:428
+#: ipa-client/ipa-join.c:466
#, c-format
msgid "Host already has principal, trying bind anyway\n"
msgstr ""
-#: ipa-client/ipa-join.c:442 ipa-client/ipa-join.c:579
+#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
#, fuzzy, c-format
msgid "Host is already joined.\n"
msgstr "Esta entrada ya se encuentra bloqueada"
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:484
#, fuzzy, c-format
msgid "Incorrect password.\n"
msgstr "Contraseña de usuario"
-#: ipa-client/ipa-join.c:457
+#: ipa-client/ipa-join.c:495
#, c-format
msgid "principal not found in host entry\n"
msgstr ""
-#: ipa-client/ipa-join.c:564
+#: ipa-client/ipa-join.c:618
#, c-format
msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:646 ipa-client/ipa-join.c:823
+#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:662 ipa-client/ipa-join.c:838
+#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:671 ipa-client/ipa-join.c:848
+#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:679
+#: ipa-client/ipa-join.c:732
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:689
+#: ipa-client/ipa-join.c:741
+#, c-format
+msgid "Error getting default Kerberos realm: %s.\n"
+msgstr ""
+
+#: ipa-client/ipa-join.c:759
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:707
+#: ipa-client/ipa-join.c:777
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:718
+#: ipa-client/ipa-join.c:788
#, fuzzy, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr "no se ha recibido ninguna credencial Kerberos"
-#: ipa-client/ipa-join.c:726
+#: ipa-client/ipa-join.c:796
#, fuzzy, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr "Las credenciales de caché están mal formadas"
-#: ipa-client/ipa-join.c:769
+#: ipa-client/ipa-join.c:846
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:772
+#: ipa-client/ipa-join.c:849
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:854
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:855
+#: ipa-client/ipa-join.c:932
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:863
+#: ipa-client/ipa-join.c:940
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not "
"provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:877
+#: ipa-client/ipa-join.c:954
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:906
+#: ipa-client/ipa-join.c:983
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:909
+#: ipa-client/ipa-join.c:986
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:912
+#: ipa-client/ipa-join.c:989
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:924
+#: ipa-client/ipa-join.c:1001
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:930
+#: ipa-client/ipa-join.c:1007
#, fuzzy, c-format
msgid "Certificate subject base is: %s\n"
msgstr "Base de certificado de asunto"
-#: ipa-client/ipa-join.c:963
-msgid "Print the raw XML-RPC output"
+#: ipa-client/ipa-join.c:1042
+msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "XML-RPC debugging Output"
+#: ipa-client/ipa-join.c:1044
+msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:967
-msgid "Unenroll this host"
-msgstr ""
-
-#: ipa-client/ipa-join.c:967
+#: ipa-client/ipa-join.c:1046
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Use this hostname instead of the node name"
+#: ipa-client/ipa-join.c:1048
+msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:969
+#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
#, fuzzy
-msgid "Host Name"
-msgstr "Nombre del equipo"
+msgid "hostname"
+msgstr "Nombre del equipo anfitrión"
-#: ipa-client/ipa-join.c:971
+#: ipa-client/ipa-join.c:1050
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:971
+#: ipa-client/ipa-join.c:1052
+msgid "Specifies where to store keytab information."
+msgstr ""
+
+#: ipa-client/ipa-join.c:1052
#, fuzzy
-msgid "IPA Server Name"
-msgstr "Nombre del servicio"
+msgid "filename"
+msgstr "Nombre de la regla"
-#: ipa-client/ipa-rmkeytab.c:44
+#: ipa-client/ipa-join.c:1054
+msgid "LDAP password (if not using Kerberos)"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1054
+#, fuzzy
+msgid "password"
+msgstr "Contraseña"
+
+#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:46
+#: ipa-client/ipa-rmkeytab.c:45
#, c-format
msgid "krb5_parse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:56
+#: ipa-client/ipa-rmkeytab.c:55
#, fuzzy, c-format
msgid "Removing principal %s\n"
msgstr "Servicio principal"
-#: ipa-client/ipa-rmkeytab.c:69
+#: ipa-client/ipa-rmkeytab.c:68
#, c-format
msgid "Failed to open keytab\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:73
+#: ipa-client/ipa-rmkeytab.c:72
#, c-format
msgid "principal not found\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:75
+#: ipa-client/ipa-rmkeytab.c:74
#, c-format
msgid "krb5_kt_get_entry %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:83
+#: ipa-client/ipa-rmkeytab.c:82
#, fuzzy, c-format
msgid "Unable to remove entry\n"
msgstr "No es posible decodificar el certificado en la entrada"
-#: ipa-client/ipa-rmkeytab.c:85
+#: ipa-client/ipa-rmkeytab.c:84
#, c-format
msgid "kvno %d\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:86
+#: ipa-client/ipa-rmkeytab.c:85
#, c-format
msgid "krb5_kt_remove_entry %d: %s\n"
msgstr ""
@@ -2653,39 +8223,133 @@ msgstr "Principal kerberos"
msgid "krb5_unparse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:143
+#, c-format
+msgid "realm not found\n"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:169
#, fuzzy
msgid "Print debugging information"
msgstr "Información de montaje"
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Debugging output"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Remove all principals in this realm"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
#, fuzzy
msgid "Realm name"
msgstr "Nombre de la regla"
-#: ipa-client/ipa-rmkeytab.c:241
+#: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237
#, c-format
-msgid "Failed to open keytab '%s'\n"
+msgid "Failed to open keytab '%s': %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:255
+#: ipa-client/ipa-rmkeytab.c:253
#, c-format
msgid "Closing keytab failed\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:257
+#: ipa-client/ipa-rmkeytab.c:255
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
+#~ msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
+#~ msgstr ""
+#~ "Esta entrada posee definido nsAccountLock, no puede ser bloqueada ni "
+#~ "desbloqueada"
+
+#~ msgid "retrieve all attributes"
+#~ msgstr "recuperar todos los atributos"
+
+#~ msgid "Taskgroup"
+#~ msgstr "Grupo de tareas"
+
+#~ msgid "Taskgroup ACI grants access to"
+#~ msgstr "El grupo de tareas ACI permite el acceso a "
+
+#~ msgid "Set an attribute to an name/value pair. Format is attr=value"
+#~ msgstr "Define un atributo a un par nombre/valor. El formato es attr=value"
+
+#~ msgid "Default e-mail domain"
+#~ msgstr "Dominio predeterminado de correo electrónico"
+
+#~ msgid "Zone"
+#~ msgstr "Zona"
+
+#~ msgid "Record type"
+#~ msgstr "Tipo de registro"
+
+#~ msgid "Type-specific data"
+#~ msgstr "Datos de tipo específico"
+
+#~ msgid "Search criteria"
+#~ msgstr "Criterio de búsqueda"
+
+#~ msgid "type-specific data"
+#~ msgstr "datos de tipo específico"
+
+#, fuzzy
+#~ msgid "Description of service"
+#~ msgstr "Descripción"
+
+#~ msgid "Removed kerberos key from \"%(value)s\""
+#~ msgstr "Se ha eliminado la llave kerberos de \"%(value)s\""
+
+#~ msgid "Host principal has no kerberos key"
+#~ msgstr "El principal del equipo anfitrión no posee una llave kerberos "
+
+#~ msgid "Net Groups"
+#~ msgstr "Grupos de red"
+
+#~ msgid "Role Groups"
+#~ msgstr "Grupos de funciones"
+
+#~ msgid "Role-group name"
+#~ msgstr "Nombre del grupo de función"
+
+#~ msgid "Member of task-groups"
+#~ msgstr "Miembros de los grupos de tareas"
+
+#~ msgid "Service principal has no kerberos key"
+#~ msgstr "El servicio principal no posee una llave kerberos"
+
+#~ msgid "Task Groups"
+#~ msgstr "Grupos de tareas"
+
+#~ msgid "Task-group name"
+#~ msgstr "Nombre de grupos de tareas"
+
+#~ msgid "Task-group description"
+#~ msgstr "Descrición del grupo de tareas"
+
+#~ msgid "Member role-groups"
+#~ msgstr "Grupos de función miembro"
+
+#~ msgid "Added taskgroup \"%(value)s\""
+#~ msgstr "Ha sido agregado el grupo de tareas \"%(value)s\""
+
+#~ msgid "Deleted taskgroup \"%(value)s\""
+#~ msgstr "Ha sido eliminado el grupo de tareas \"%(value)s\""
+
+#~ msgid "Modified taskgroup \"%(value)s\""
+#~ msgstr "Ha sido modificado el grupo de tareas \"%(value)s\""
+
+#~ msgid "%(count)d taskgroup matched"
+#~ msgid_plural "%(count)d taskgroups matched"
+#~ msgstr[0] "%(count)d grupo de tarea coincidente"
+#~ msgstr[1] "%(count)d grupos de tarea coincidentes"
+
+#~ msgid "Taskgroups"
+#~ msgstr "Grupos de tareas"
+
#~ msgid "Locked user \"%(value)s\""
#~ msgstr "Ha sido bloqueado el usuario \"%(value)s\""
diff --git a/install/po/fr.po b/install/po/fr.po
index 13c6a82f7..0ae48def8 100644
--- a/install/po/fr.po
+++ b/install/po/fr.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: ipa\n"
"Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/"
"newticket\n"
-"POT-Creation-Date: 2010-10-13 14:22-0400\n"
+"POT-Creation-Date: 2011-06-06 13:27-0400\n"
"PO-Revision-Date: 2010-09-27 10:25-0400\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -18,1507 +18,4745 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: ipalib/cli.py:507
-#, python-format
-msgid "Enter %(label)s again to verify: "
+#: ipalib/plugins/__init__.py:20
+msgid ""
+"\n"
+"Sub-package containing all core plugins.\n"
msgstr ""
-#: ipalib/cli.py:511 ipa-client/ipa-getkeytab.c:730
-#, c-format
-msgid "Passwords do not match!"
+#: ipalib/plugins/aci.py:20
+msgid ""
+"\n"
+"Directory Server Access Control Instructions (ACIs)\n"
+"\n"
+"ACIs are used to allow or deny access to information. This module is\n"
+"currently designed to allow, not deny, access.\n"
+"\n"
+"The aci commands are designed to grant permissions that allow updating\n"
+"existing entries or adding or deleting new ones. The goal of the ACIs\n"
+"that ship with IPA is to provide a set of low-level permissions that\n"
+"grant access to special groups called taskgroups. These low-level\n"
+"permissions can be combined into roles that grant broader access. These\n"
+"roles are another type of group, roles.\n"
+"\n"
+"For example, if you have taskgroups that allow adding and modifying users "
+"you\n"
+"could create a role, useradmin. You would assign users to the useradmin\n"
+"role to allow them to do the operations defined by the taskgroups.\n"
+"\n"
+"You can create ACIs that delegate permission so users in group A can write\n"
+"attributes on group B.\n"
+"\n"
+"The type option is a map that applies to all entries in the users, groups "
+"or\n"
+"host location. It is primarily designed to be used when granting add\n"
+"permissions (to write new entries).\n"
+"\n"
+"An ACI consists of three parts:\n"
+"1. target\n"
+"2. permissions\n"
+"3. bind rules\n"
+"\n"
+"The target is a set of rules that define which LDAP objects are being\n"
+"targeted. This can include a list of attributes, an area of that LDAP\n"
+"tree or an LDAP filter.\n"
+"\n"
+"The targets include:\n"
+"- attrs: list of attributes affected\n"
+"- type: an object type (user, group, host, service, etc)\n"
+"- memberof: members of a group\n"
+"- targetgroup: grant access to modify a specific group. This is primarily\n"
+" designed to enable users to add or remove members of a specific group.\n"
+"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
+"- subtree: Used to apply a rule across an entire set of objects. For "
+"example,\n"
+" to allow adding users you need to grant \"add\" permission to the subtree\n"
+" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
+" is a fail-safe for objects that may not be covered by the type option.\n"
+"\n"
+"The permissions define what the the ACI is allowed to do, and are one or\n"
+"more of:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
+"allows this to be any valid LDAP entry but we encourage the use of\n"
+"taskgroups so that the rights can be easily shared through roles.\n"
+"\n"
+"For a more thorough description of access controls see\n"
+"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control."
+"html\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
+"demonstrate how the various options work but this is done via the "
+"permission\n"
+"command-line now (see last example).\n"
+"\n"
+" Add an ACI so that the group \"secretaries\" can update the address on any "
+"user:\n"
+" ipa group-add --desc=\"Office secretaries\" secretaries\n"
+" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries "
+"--permissions=write --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Show the new ACI:\n"
+" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Add an ACI that allows members of the \"addusers\" permission to add new "
+"users:\n"
+" ipa aci-add --type=user --permission=addusers --permissions=add --"
+"prefix=none \"Add new users\"\n"
+"\n"
+" Add an ACI that allows members of the editors manage members of the admins "
+"group:\n"
+" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --"
+"group=editors --prefix=none \"Editors manage admins\"\n"
+"\n"
+" Add an ACI that allows members of the admin group to manage the street and "
+"zip code of those in the editors group:\n"
+" ipa aci-add --permissions=write --memberof=editors --group=admins --"
+"attrs=street,postalcode --prefix=none \"admins edit the address of editors"
+"\"\n"
+"\n"
+" Add an ACI that allows the admins group manage the street and zipcode of "
+"those who work for the boss:\n"
+" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode "
+"--filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --"
+"prefix=none \"Edit the address of those who work for the boss\"\n"
+"\n"
+" Add an entirely new kind of record to IPA that isn't covered by any of the "
+"--type options, creating a permission:\n"
+" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,"
+"cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
+"\n"
+"\n"
+"The show command shows the raw 389-ds ACI.\n"
+"\n"
+"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
+"must include all existing attributes as well. When doing an aci-mod the\n"
+"targetattr REPLACES the current attributes, it does not add to them.\n"
+"\n"
msgstr ""
-#: ipalib/cli.py:516
-msgid "Cancelled."
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
-#: ipalib/errors.py:297
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+#: ipalib/plugins/aci.py:172
+msgid ""
+"\n"
+" Given a name and a prefix construct an ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:315
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
+#: ipalib/plugins/aci.py:181
+msgid ""
+"\n"
+" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
+" and the actual ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:331
-msgid "an internal error has occurred"
+#: ipalib/plugins/aci.py:193
+msgid ""
+"\n"
+" Pull the group name out of a memberOf filter\n"
+" "
msgstr ""
-#: ipalib/errors.py:353
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
+#: ipalib/plugins/aci.py:204
+msgid ""
+"\n"
+" Given a name and a set of keywords construct an ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:369
-#, python-format
-msgid "unknown command %(name)r"
+#: ipalib/plugins/aci.py:215
+msgid "type, filter, subtree and targetgroup are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:386 ipalib/errors.py:411
-#, python-format
-msgid "error on server %(server)r: %(error)s"
+#: ipalib/plugins/aci.py:218
+msgid "ACI prefix is required"
msgstr ""
-#: ipalib/errors.py:402
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+#: ipalib/plugins/aci.py:221
+msgid ""
+"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
+"required"
msgstr ""
-#: ipalib/errors.py:420
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
+#: ipalib/plugins/aci.py:224
+msgid "filter and memberof are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:448
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
+#: ipalib/plugins/aci.py:230
+msgid "group, permission and self are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:465
-msgid "did not receive Kerberos credentials"
+#: ipalib/plugins/aci.py:232
+msgid "One of group, permission or self is required"
msgstr ""
-#: ipalib/errors.py:481
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
+#: ipalib/plugins/aci.py:251
+msgid "Group '%s' does not exist"
msgstr ""
-#: ipalib/errors.py:497
-msgid "No credentials cache found"
+#: ipalib/plugins/aci.py:273
+msgid "empty filter"
msgstr ""
-#: ipalib/errors.py:513
-msgid "Ticket expired"
+#: ipalib/plugins/aci.py:294
+msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/errors.py:529
-msgid "Credentials cache permissions incorrect"
+#: ipalib/plugins/aci.py:299
+msgid ""
+"Convert an ACI into its equivalent keywords.\n"
+"\n"
+" This is used for the modify operation so we can merge the\n"
+" incoming kw and existing ACI and pass the result to\n"
+" _make_aci().\n"
+" "
msgstr ""
-#: ipalib/errors.py:545
-msgid "Bad format in credentials cache"
+#: ipalib/plugins/aci.py:379
+msgid "ACI with name \"%s\" not found"
msgstr ""
-#: ipalib/errors.py:561
-msgid "Cannot resolve KDC for requested realm"
+#: ipalib/plugins/aci.py:400
+msgid "ACI prefix"
msgstr ""
-#: ipalib/errors.py:580
-#, python-format
-msgid "Insufficient access: %(info)s"
+#: ipalib/plugins/aci.py:401
+msgid ""
+"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
+"none)"
msgstr ""
-#: ipalib/errors.py:624
-#, python-format
-msgid "command %(name)r takes no arguments"
+#: ipalib/plugins/aci.py:407
+msgid ""
+"\n"
+" ACI object.\n"
+" "
msgstr ""
-#: ipalib/errors.py:644
-#, python-format
-msgid "command %(name)r takes at most %(count)d argument"
-msgid_plural "command %(name)r takes at most %(count)d arguments"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/aci.py:412
+msgid "ACIs"
+msgstr ""
-#: ipalib/errors.py:674
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
+#: ipalib/plugins/aci.py:417
+msgid "ACI name"
msgstr ""
-#: ipalib/errors.py:690
-#, python-format
-msgid "%(name)r is required"
+#: ipalib/plugins/aci.py:422
+msgid "Permission"
msgstr ""
-#: ipalib/errors.py:706 ipalib/errors.py:722
-#, python-format
-msgid "invalid %(name)r: %(error)s"
+#: ipalib/plugins/aci.py:423
+msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/errors.py:738
-#, python-format
-msgid "api has no such namespace: %(name)r"
+#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+msgid "User group"
msgstr ""
-#: ipalib/errors.py:747
-msgid "Passwords do not match"
+#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/errors.py:755
-msgid "Command not implemented"
+#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
+#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
+#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+msgid "Permissions"
msgstr ""
-#: ipalib/errors.py:783 ipalib/errors.py:1023 ipalib/errors.py:1254
-#, python-format
-msgid "%(reason)s"
+#: ipalib/plugins/aci.py:433
+msgid ""
+"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/errors.py:799
-msgid "This entry already exists"
+#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
+#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+msgid "Attributes"
msgstr ""
-#: ipalib/errors.py:815
-msgid "You must enroll a host in order to create a host service"
+#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
+#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/errors.py:831
-#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
+#: ipalib/plugins/permission.py:131
+msgid "Type"
msgstr ""
-#: ipalib/errors.py:847
-msgid ""
-"The realm for the principal does not match the realm for this IPA server"
+#: ipalib/plugins/aci.py:445
+msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/errors.py:863
-msgid "This command requires root access"
+#: ipalib/plugins/aci.py:450
+msgid "Member of"
msgstr ""
-#: ipalib/errors.py:879
-msgid "This is already a posix group"
+#: ipalib/plugins/aci.py:451
+msgid "Member of a group"
msgstr ""
-#: ipalib/errors.py:895
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
+#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
+#: ipalib/plugins/permission.py:144
+msgid "Filter"
msgstr ""
-#: ipalib/errors.py:911
-msgid "This entry is already unlocked"
+#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/errors.py:927
-msgid "This entry is already locked"
+#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+msgid "Subtree"
msgstr ""
-#: ipalib/errors.py:943
-msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
+#: ipalib/plugins/aci.py:461
+msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/errors.py:959
-msgid "This entry is not a member of the group"
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+msgid "Target group"
msgstr ""
-#: ipalib/errors.py:975
-msgid "A group may not be a member of itself"
+#: ipalib/plugins/aci.py:466
+msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/errors.py:991
-msgid "This entry is already a member of the group"
+#: ipalib/plugins/aci.py:470
+msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/errors.py:1007
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
+#: ipalib/plugins/aci.py:471
+msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/errors.py:1039
-msgid "A group may not be added as a member of itself"
+#: ipalib/plugins/aci.py:478
+msgid ""
+"\n"
+" Create new ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1055
-msgid "The default users group cannot be removed"
+#: ipalib/plugins/aci.py:482
+msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1071
-msgid "Host does not have corresponding DNS A record"
+#: ipalib/plugins/aci.py:487
+msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/errors.py:1086
-msgid "Deleting a managed group is not allowed. It must be detached first."
+#: ipalib/plugins/aci.py:493
+msgid ""
+"\n"
+" Execute the aci-create operation.\n"
+"\n"
+" Returns the entry as it will be created in LDAP.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: Keyword arguments for the other LDAP attributes.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1109
-#, python-format
-msgid "no command nor help topic %(topic)r"
+#: ipalib/plugins/aci.py:533
+msgid ""
+"\n"
+" Delete ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1133
-msgid "change collided with another change"
+#: ipalib/plugins/aci.py:538
+msgid "Deleted ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1149
-msgid "no modifications to be performed"
+#: ipalib/plugins/aci.py:543
+msgid ""
+"\n"
+" Execute the aci-delete operation.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/errors.py:1165
-#, python-format
-msgid "%(desc)s:%(info)s"
+#: ipalib/plugins/aci.py:576
+msgid ""
+"\n"
+" Modify ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1181
-msgid "limits exceeded for this query"
+#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
+#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
+#: ipalib/plugins/selfservice.py:212
+msgid "ACI"
msgstr ""
-#: ipalib/errors.py:1196
-#, python-format
-msgid "%(info)s"
+#: ipalib/plugins/aci.py:588
+msgid "Modified ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1221
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
+#: ipalib/plugins/aci.py:633
+msgid ""
+"\n"
+" Search for ACIs.\n"
+"\n"
+" Returns a list of ACIs\n"
+"\n"
+" EXAMPLES:\n"
+"\n"
+" To find all ACIs that apply directly to members of the group ipausers:\n"
+" ipa aci-find --memberof=ipausers\n"
+"\n"
+" To find all ACIs that grant add access:\n"
+" ipa aci-find --permissions=add\n"
+"\n"
+" Note that the find command only looks for the given text in the set of\n"
+" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
+" For example, searching on memberof=ipausers will find all ACIs that\n"
+" have ipausers as a memberof. There may be other ACIs that apply to\n"
+" members of that group indirectly.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:653
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/aci.py:823
+msgid ""
+"\n"
+" Display a single ACI given an ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1237
-#, python-format
-msgid "Certificate format error: %(error)s"
+#: ipalib/plugins/aci.py:837
+msgid ""
+"\n"
+" Execute the aci-show operation.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param uid: The login name of the user to retrieve.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/frontend.py:380
-msgid "Results are truncated, try a more specific search"
+#: ipalib/plugins/aci.py:865
+msgid ""
+"\n"
+" Rename an ACI.\n"
+" "
msgstr ""
-#: ipalib/frontend.py:797 ipalib/plugins/misc.py:47
-msgid "retrieve all attributes"
+#: ipalib/plugins/aci.py:878
+msgid "New ACI name"
msgstr ""
-#: ipalib/frontend.py:803
-msgid "print entries as stored on the server"
+#: ipalib/plugins/aci.py:882
+msgid "Renamed ACI to \"%(value)s\""
msgstr ""
-#: ipalib/frontend.py:940
-msgid "Forward to server instead of running locally"
+#: ipalib/plugins/automount.py:20
+msgid ""
+"\n"
+"Automount\n"
+"\n"
+"Stores automount(8) configuration for autofs(8) in IPA.\n"
+"\n"
+"The base of an automount configuration is the configuration file auto."
+"master.\n"
+"This is also the base location in IPA. Multiple auto.master configurations\n"
+"can be stored in separate locations. A location is implementation-specific\n"
+"with the default being a location named 'default'. For example, you can "
+"have\n"
+"locations by geographic region, by floor, by type, etc.\n"
+"\n"
+"Automount has three basic object types: locations, maps and keys.\n"
+"\n"
+"A location defines a set of maps anchored in auto.master. This allows you\n"
+"to store multiple automount configurations. A location in itself isn't\n"
+"very interesting, it is just a point to start a new automount map.\n"
+"\n"
+"A map is roughly equivalent to a discrete automount file and provides\n"
+"storage for keys.\n"
+"\n"
+"A key is a mount point associated with a map.\n"
+"\n"
+"When a new location is created, two maps are automatically created for\n"
+"it: auto.master and auto.direct. auto.master is the root map for all\n"
+"automount maps for the location. auto.direct is the default map for\n"
+"direct mounts and is mounted on /-.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"Locations:\n"
+"\n"
+" Create a named location, \"Baltimore\":\n"
+" ipa automountlocation-add baltimore\n"
+"\n"
+" Display the new location:\n"
+" ipa automountlocation-show baltimore\n"
+"\n"
+" Find available locations:\n"
+" ipa automountlocation-find\n"
+"\n"
+" Remove a named automount location:\n"
+" ipa automountlocation-del baltimore\n"
+"\n"
+" Show what the automount maps would look like if they were in the "
+"filesystem:\n"
+" ipa automountlocation-tofiles baltimore\n"
+"\n"
+" Import an existing configuration into a location:\n"
+" ipa automountlocation-import baltimore /etc/auto.master\n"
+"\n"
+" The import will fail if any duplicate entries are found. For\n"
+" continuous operation where errors are ignored, use the --continue\n"
+" option.\n"
+"\n"
+"Maps:\n"
+"\n"
+" Create a new map, \"auto.share\":\n"
+" ipa automountmap-add baltimore auto.share\n"
+"\n"
+" Display the new map:\n"
+" ipa automountmap-show baltimore auto.share\n"
+"\n"
+" Find maps in the location baltimore:\n"
+" ipa automountmap-find baltimore\n"
+"\n"
+" Remove the auto.share map:\n"
+" ipa automountmap-del baltimore auto.share\n"
+"\n"
+"Keys:\n"
+"\n"
+" Create a new key for the auto.share map in location baltimore. This ties\n"
+" the map we previously created to auto.master:\n"
+" ipa automountkey-add baltimore auto.master --key=/share --info=auto."
+"share\n"
+"\n"
+" Create a new key for our auto.share map, an NFS mount for man pages:\n"
+" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,"
+"rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n"
+"\n"
+" Find all keys for the auto.share map:\n"
+" ipa automountkey-find baltimore auto.share\n"
+"\n"
+" Find all direct automount keys:\n"
+" ipa automountkey-find baltimore --key=/-\n"
+"\n"
+" Remove the man key from the auto.share map:\n"
+" ipa automountkey-del baltimore auto.share --key=man\n"
+msgstr ""
+
+#: ipalib/plugins/automount.py:182
+msgid ""
+"\n"
+" Location container for automount maps.\n"
+" "
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
+#: ipalib/plugins/automount.py:190
+msgid "Automount Locations"
msgstr ""
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
+#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+msgid "Location"
msgstr ""
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
+#: ipalib/plugins/automount.py:197
+msgid "Automount location name."
msgstr ""
-#: ipalib/parameters.py:295
-msgid "incorrect type"
+#: ipalib/plugins/automount.py:206
+msgid ""
+"\n"
+" Create a new automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:298
-msgid "Only one value is allowed"
+#: ipalib/plugins/automount.py:221
+msgid ""
+"\n"
+" Delete an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:877
-msgid "must be True or False"
+#: ipalib/plugins/automount.py:229
+msgid ""
+"\n"
+" Display an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:978
-msgid "must be an integer"
+#: ipalib/plugins/automount.py:237
+msgid ""
+"\n"
+" Search for an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1029
-#, python-format
-msgid "must be at least %(minvalue)d"
+#: ipalib/plugins/automount.py:245
+msgid ""
+"\n"
+" Generate automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1039
-#, python-format
-msgid "can be at most %(maxvalue)d"
+#: ipalib/plugins/automount.py:308
+msgid ""
+"\n"
+" Import automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1049
-msgid "must be a decimal number"
+#: ipalib/plugins/automount.py:314
+msgid "Master file"
msgstr ""
-#: ipalib/parameters.py:1071
-#, python-format
-msgid "must be at least %(minvalue)f"
+#: ipalib/plugins/automount.py:315
+msgid "Automount master file."
msgstr ""
-#: ipalib/parameters.py:1081
-#, python-format
-msgid "can be at most %(maxvalue)f"
+#: ipalib/plugins/automount.py:322
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/parameters.py:1145
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
+#: ipalib/plugins/automount.py:334
+msgid "File %(file)s not found"
msgstr ""
-#: ipalib/parameters.py:1163
-msgid "must be binary data"
+#: ipalib/plugins/automount.py:341
+msgid ""
+"\n"
+" The basic idea is to read the master file and create all the maps\n"
+" we need, then read each map file and add all the keys for the map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1179
-#, python-format
-msgid "must be at least %(minlength)d bytes"
+#: ipalib/plugins/automount.py:492
+msgid ""
+"\n"
+" Automount map object.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1189
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
+#: ipalib/plugins/automount.py:505
+msgid "Map"
msgstr ""
-#: ipalib/parameters.py:1199
-#, python-format
-msgid "must be exactly %(length)d bytes"
+#: ipalib/plugins/automount.py:506
+msgid "Automount map name."
msgstr ""
-#: ipalib/parameters.py:1217
-msgid "must be Unicode text"
+#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
+#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
+#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
+#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
+#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
+#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
+#: ipalib/plugins/sudorule.py:78
+msgid "Description"
msgstr ""
-#: ipalib/parameters.py:1248
-#, python-format
-msgid "must be at least %(minlength)d characters"
+#: ipalib/plugins/automount.py:515
+msgid "Automount Maps"
msgstr ""
-#: ipalib/parameters.py:1258
-#, python-format
-msgid "can be at most %(maxlength)d characters"
+#: ipalib/plugins/automount.py:521
+msgid ""
+"\n"
+" Create a new automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1268
-#, python-format
-msgid "must be exactly %(length)d characters"
+#: ipalib/plugins/automount.py:529
+msgid ""
+"\n"
+" Delete an automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1307
-#, python-format
-msgid "must be one of %(values)r"
+#: ipalib/plugins/automount.py:548
+msgid ""
+"\n"
+" Modify an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:111
-msgid "A list of ACI values"
+#: ipalib/plugins/automount.py:556
+msgid ""
+"\n"
+" Search for an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:142
-msgid "type, filter, subtree and targetgroup are mutually exclusive"
+#: ipalib/plugins/automount.py:564
+msgid ""
+"\n"
+" Display an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:145
+#: ipalib/plugins/automount.py:572
msgid ""
-"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
-"required"
+"\n"
+" Automount key object.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:151
-msgid "group, taskgroup and self are mutually exclusive"
+#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
+#: ipalib/plugins/automount.py:850
+msgid "Key"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "One of group, taskgroup or self is required"
+#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
+#: ipalib/plugins/automount.py:851
+msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/aci.py:172
-#, python-format
-msgid "Group '%s' does not exist"
+#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
+#: ipalib/plugins/automount.py:855
+msgid "Mount information"
msgstr ""
-#: ipalib/plugins/aci.py:269
-#, python-format
-msgid "ACI with name \"%s\" not found"
+#: ipalib/plugins/automount.py:597
+msgid "description"
msgstr ""
-#: ipalib/plugins/aci.py:286
-msgid "ACIs"
+#: ipalib/plugins/automount.py:606
+msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/aci.py:291
-msgid "ACI name"
+#: ipalib/plugins/automount.py:607
+msgid ""
+"The key,info pair must be unique. A key named %(key)s with info %(info)s "
+"already exists"
msgstr ""
-#: ipalib/plugins/aci.py:296
-msgid "Taskgroup"
+#: ipalib/plugins/automount.py:608
+msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/aci.py:297
-msgid "Taskgroup ACI grants access to"
+#: ipalib/plugins/automount.py:609
+msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/aci.py:301
-msgid "User group"
+#: ipalib/plugins/automount.py:659
+msgid ""
+"More than one entry with key %(key)s found, use --info to select specific "
+"entry."
msgstr ""
-#: ipalib/plugins/aci.py:302
-msgid "User group ACI grants access to"
+#: ipalib/plugins/automount.py:717
+msgid ""
+"\n"
+" Create a new automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:306
-msgid "Permissions"
+#: ipalib/plugins/automount.py:742
+msgid ""
+"\n"
+" Create a new indirect mount point.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:748
+msgid "Mount point"
+msgstr ""
+
+#: ipalib/plugins/automount.py:752
+msgid "Parent map"
msgstr ""
-#: ipalib/plugins/aci.py:307
+#: ipalib/plugins/automount.py:753
+msgid "Name of parent automount map (default: auto.master)."
+msgstr ""
+
+#: ipalib/plugins/automount.py:772
msgid ""
-"comma-separated list of permissions to grant(read, write, add, delete, all)"
+"\n"
+" Delete an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:313
-msgid "Attributes"
+#: ipalib/plugins/automount.py:803
+msgid ""
+"\n"
+" Modify an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:314
-msgid "Comma-separated list of attributes"
+#: ipalib/plugins/automount.py:809
+msgid "New mount information"
msgstr ""
-#: ipalib/plugins/aci.py:318
-msgid "Type"
+#: ipalib/plugins/automount.py:836
+msgid ""
+"\n"
+" Search for an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:319
-msgid "type of IPA object (user, group, host)"
+#: ipalib/plugins/automount.py:844
+msgid ""
+"\n"
+" Display an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:324
-msgid "Member of"
+#: ipalib/plugins/baseldap.py:19
+msgid ""
+"\n"
+"Base classes for LDAP plugins.\n"
msgstr ""
-#: ipalib/plugins/aci.py:325
-msgid "Member of a group"
+#: ipalib/plugins/baseldap.py:39
+msgid "Failed members"
msgstr ""
-#: ipalib/plugins/aci.py:329
-msgid "Filter"
+#: ipalib/plugins/baseldap.py:42
+msgid "Member users"
msgstr ""
-#: ipalib/plugins/aci.py:330
-msgid "Legal LDAP filter (e.g. ou=Engineering)"
+#: ipalib/plugins/baseldap.py:45
+msgid "Member groups"
msgstr ""
-#: ipalib/plugins/aci.py:334
-msgid "Subtree"
+#: ipalib/plugins/baseldap.py:48
+msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/aci.py:335
-msgid "Subtree to apply ACI to"
+#: ipalib/plugins/baseldap.py:51
+msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/aci.py:339
-msgid "Target group"
+#: ipalib/plugins/baseldap.py:54
+msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:340
-msgid "Group to apply ACI to"
+#: ipalib/plugins/baseldap.py:57
+msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:344
-msgid "Target your own entry (self)"
+#: ipalib/plugins/baseldap.py:66
+msgid "Roles"
msgstr ""
-#: ipalib/plugins/aci.py:345
-msgid "Apply ACI to your own entry (self)"
+#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
+#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
+#: ipalib/plugins/sudorule.py:143
+msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/aci.py:357
-#, python-format
-msgid "Created ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:75
+msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/aci.py:407
-#, python-format
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:78
+msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:447
-#, python-format
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:81
+msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:519
-#, python-format
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/baseldap.py:84
+msgid "Member services"
+msgstr ""
-#: ipalib/plugins/automount.py:103
-msgid "Automount"
+#: ipalib/plugins/baseldap.py:87
+msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/automount.py:109 ipalib/plugins/host.py:134
-msgid "Location"
+#: ipalib/plugins/baseldap.py:93
+msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/automount.py:110
-msgid "Automount location name"
+#: ipalib/plugins/baseldap.py:102
+msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/automount.py:226
-msgid "Map"
+#: ipalib/plugins/baseldap.py:105
+msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/automount.py:227
-msgid "Automount map name"
+#: ipalib/plugins/baseldap.py:108
+msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/automount.py:232 ipalib/plugins/group.py:108
-#: ipalib/plugins/hbac.py:151 ipalib/plugins/hbacsvc.py:72
-#: ipalib/plugins/hbacsvcgroup.py:77 ipalib/plugins/host.py:124
-#: ipalib/plugins/hostgroup.py:81 ipalib/plugins/netgroup.py:96
-#: ipalib/plugins/rolegroup.py:90 ipalib/plugins/sudocmd.py:71
-#: ipalib/plugins/sudocmdgroup.py:77 ipalib/plugins/sudorule.py:58
-#: ipalib/plugins/taskgroup.py:62
-msgid "Description"
+#: ipalib/plugins/baseldap.py:111
+msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/automount.py:236
-msgid "Automount Maps"
+#: ipalib/plugins/baseldap.py:114
+msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid "Key"
+#: ipalib/plugins/baseldap.py:117
+msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/automount.py:309
-msgid "Automount key name"
+#: ipalib/plugins/baseldap.py:120
+msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/automount.py:314
-msgid "Mount information"
+#: ipalib/plugins/baseldap.py:123
+msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/automount.py:318
-msgid "description"
+#: ipalib/plugins/baseldap.py:126
+msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/automount.py:322
-msgid "Automount Keys"
+#: ipalib/plugins/baseldap.py:141
+msgid "External host"
msgstr ""
-#: ipalib/plugins/automount.py:342
-msgid "Mount point"
+#: ipalib/plugins/baseldap.py:144
+msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/automount.py:346
-msgid "Parent map"
+#: ipalib/plugins/baseldap.py:147
+msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/automount.py:347
-msgid "Name of parent automount map (default: auto.master)"
+#: ipalib/plugins/baseldap.py:150
+msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:79
-#, python-format
+#: ipalib/plugins/baseldap.py:153
+msgid "Failed to remove"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:171
+msgid ""
+"\n"
+" Given a list of values in the form name=value, return a list of name.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:197
+msgid ""
+"\n"
+" When adding or removing reverse members we are faking an update to\n"
+" object A by updating the member attribute in object B. The memberof\n"
+" plugin makes this work by adding or removing the memberof attribute\n"
+" to/from object A, it just takes a little bit of time.\n"
+"\n"
+" This will loop for 6+ seconds, retrieving object A so we can see\n"
+" if all the memberof attributes have been updated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:241
+msgid ""
+"\n"
+" Object representing a LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:281
+msgid "Entry"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:283
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:80
-#, python-format
+#: ipalib/plugins/baseldap.py:284
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
-#, python-format
+#: ipalib/plugins/baseldap.py:285
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
-msgid "Add an attribute/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:286
+msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:155
-msgid "Set an attribute to an name/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:415
+msgid ""
+"Add an attribute/value pair. Format is attr=value. The attribute must be "
+"part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:359
+#: ipalib/plugins/baseldap.py:420
+msgid ""
+"Set an attribute to a name/value pair. Format is attr=value.\n"
+"For multi-valued attributes, the command replaces the values already present."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:444
+msgid ""
+"\n"
+" If the set of objectclasses is limited enforce that only those\n"
+" are updated in entry_attrs (plus dn)\n"
+"\n"
+" allow_only tells us what mode to check in:\n"
+"\n"
+" If True then we enforce that the attributes must be in the list of\n"
+" allowed.\n"
+"\n"
+" If False then those attributes are not allowed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:474
+msgid ""
+"\n"
+" Callback registration interface\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:561
+msgid ""
+"\n"
+" Create a new entry in LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:703
+msgid ""
+"\n"
+" Base class for commands that need to retrieve an existing entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:727
+msgid ""
+"\n"
+" Base class for commands that need to retrieve one or more existing "
+"entries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:733
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:517
+#: ipalib/plugins/baseldap.py:750
+msgid ""
+"\n"
+" Retrieve an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
+#: ipalib/plugins/internal.py:232
+msgid "Rights"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+msgid ""
+"Display the access rights of this entry (requires --all). See ipa man page "
+"for details."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:821
+msgid ""
+"\n"
+" Update an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:837
+msgid "Rename"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:838
+msgid "Rename the %(ldap_obj_name)s object"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:957
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:674
+#: ipalib/plugins/baseldap.py:988
+msgid ""
+"\n"
+" Delete an LDAP entry and all of its direct subentries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1078
+msgid ""
+"\n"
+" Base class for member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1120
+msgid ""
+"\n"
+" Add other LDAP entries to members.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
+#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
+#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
msgid "Members that could not be added"
msgstr ""
-#: ipalib/plugins/baseldap.py:678
+#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:684 ipalib/plugins/baseldap.py:789
-msgid "Failed members"
+#: ipalib/plugins/baseldap.py:1226
+msgid ""
+"\n"
+" Remove LDAP entries from members.\n"
+" "
msgstr ""
-#: ipalib/plugins/baseldap.py:779
+#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:783
+#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:880
+#: ipalib/plugins/baseldap.py:1335
+msgid ""
+"\n"
+" Retrieve all LDAP entries matching the given criteria.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1344
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:881
+#: ipalib/plugins/baseldap.py:1345
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:887
+#: ipalib/plugins/baseldap.py:1351
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:888
+#: ipalib/plugins/baseldap.py:1352
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/cert.py:93
+#: ipalib/plugins/baseldap.py:1552
+msgid ""
+"\n"
+" Base class for reverse member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1574
+msgid ""
+"\n"
+" Add other LDAP entries to members in reverse.\n"
+"\n"
+" The call looks like \"add A to B\" but in fact executes\n"
+" add B to A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1654
+msgid "added"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1687
+msgid ""
+"\n"
+" Remove other LDAP entries from members in reverse.\n"
+"\n"
+" The call looks like \"remove A from B\" but in fact executes\n"
+" remove B from A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1767
+msgid "removed"
+msgstr ""
+
+#: ipalib/plugins/batch.py:21
+msgid ""
+"\n"
+"Plugin to make multiple ipa calls via one remote procedure call\n"
+"\n"
+"To run this code in the lite-server\n"
+"\n"
+"curl -H \"Content-Type:application/json\" -H \"Accept:application/"
+"json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /"
+"etc/ipa/ca.crt -d @batch_request.json -X POST http://"
+"localhost:8888/ipa/json\n"
+"\n"
+"where the contents of the file batch_request.json follow the below example\n"
+"\n"
+"{\"method\":\"batch\",\"params\":[[\n"
+" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
+" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all"
+"\":\"true\"}]},\n"
+" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
+" ],{}],\"id\":1}\n"
+"\n"
+"The format of the response is nested the same way. At the top you will see\n"
+" \"error\": null,\n"
+" \"id\": 1,\n"
+" \"result\": {\n"
+" \"count\": 3,\n"
+" \"results\": [\n"
+"\n"
+"\n"
+"And then a nested response for each IPA command method sent in the request\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/batch.py:61
+msgid "Nested Methods to execute"
+msgstr ""
+
+#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/plugins/cert.py:22
+msgid ""
+"\n"
+"IPA certificate operations\n"
+"\n"
+"Implements a set of commands for managing server SSL certificates.\n"
+"\n"
+"Certificate requests exist in the form of a Certificate Signing Request "
+"(CSR)\n"
+"in PEM format.\n"
+"\n"
+"If using the selfsign back end then the subject in the CSR needs to match\n"
+"the subject configured in the server. The dogtag CA uses just the CN\n"
+"value of the CSR and forces the rest of the subject.\n"
+"\n"
+"A certificate is stored with a service principal and a service principal\n"
+"needs a host.\n"
+"\n"
+"In order to request a certificate:\n"
+"\n"
+"* The host must exist\n"
+"* The service must exist (or you use the --add option to automatically add "
+"it)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Request a new certificate and add the principal:\n"
+" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n"
+"\n"
+" Retrieve an existing certificate:\n"
+" ipa cert-show 1032\n"
+"\n"
+" Revoke a certificate (see RFC 5280 for reason details):\n"
+" ipa cert-revoke --revocation-reason=6 1032\n"
+"\n"
+" Remove a certificate from revocation hold status:\n"
+" ipa cert-remove-hold 1032\n"
+"\n"
+" Check the status of a signing request:\n"
+" ipa cert-status 10\n"
+"\n"
+"IPA currently immediately issues (or declines) all certificate requests so\n"
+"the status of a request is not normally useful. This is for future use\n"
+"or the case where a CA does not immediately issue a certificate.\n"
+"\n"
+"The following revocation reasons are supported:\n"
+"\n"
+" * 0 - unspecified\n"
+" * 1 - keyCompromise\n"
+" * 2 - cACompromise\n"
+" * 3 - affiliationChanged\n"
+" * 4 - superseded\n"
+" * 5 - cessationOfOperation\n"
+" * 6 - certificateHold\n"
+" * 8 - removeFromCRL\n"
+" * 9 - privilegeWithdrawn\n"
+" * 10 - aACompromise\n"
+"\n"
+"Note that reason code 7 is not used. See RFC 5280 for more details:\n"
+"\n"
+"http://www.ietf.org/rfc/rfc5280.txt\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/cert.py:104
+msgid ""
+"\n"
+" Return the value of CN in the subject of the request or None\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:106 ipalib/plugins/cert.py:118
+#: ipalib/plugins/cert.py:115
+msgid ""
+"\n"
+" Return the first value of the subject alt name, if any\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:120
-#, python-format
+#: ipalib/plugins/cert.py:128
+msgid ""
+"\n"
+" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
+" parser.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:139
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:171 ipalib/plugins/service.py:197
+#: ipalib/plugins/cert.py:142
+msgid ""
+"\n"
+" Strip any leading and trailing cruft around the BEGIN/END block\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:162
+msgid ""
+"\n"
+" Convert a SN given in decimal or hexadecimal.\n"
+" Returns the number or None if conversion fails.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:188
+msgid ""
+"\n"
+" Given a principal with or without a realm return the\n"
+" host portion.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:202
+msgid ""
+"\n"
+" Submit a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:172
+#: ipalib/plugins/cert.py:217
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:179
+#: ipalib/plugins/cert.py:224
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:187 ipalib/plugins/cert.py:392
-#: ipalib/plugins/host.py:154 ipalib/plugins/service.py:204
+#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
+#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
+#: ipalib/plugins/service.py:232
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:191 ipalib/plugins/cert.py:395
+#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:195 ipalib/plugins/cert.py:398
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:199 ipalib/plugins/cert.py:401
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:203 ipalib/plugins/cert.py:404
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:207 ipalib/plugins/cert.py:407
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:211 ipalib/plugins/cert.py:410
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:215 ipalib/plugins/cert.py:379
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:223 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:357
+#: ipalib/plugins/cert.py:396
+msgid ""
+"\n"
+" Check the status of a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:402
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:363
+#: ipalib/plugins/cert.py:408
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:380
+#: ipalib/plugins/cert.py:426
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:413
+#: ipalib/plugins/cert.py:431
+msgid ""
+"\n"
+" Retrieve an existing certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
+#: ipalib/plugins/service.py:114
msgid "Revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:458
+#: ipalib/plugins/cert.py:466
+msgid "Output filename"
+msgstr ""
+
+#: ipalib/plugins/cert.py:467
+msgid "File to store the certificate in."
+msgstr ""
+
+#: ipalib/plugins/cert.py:518
+msgid ""
+"\n"
+" Revoke a certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:526
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:466
+#: ipalib/plugins/cert.py:534
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:467
+#: ipalib/plugins/cert.py:535
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:502
+#: ipalib/plugins/cert.py:562
+msgid ""
+"\n"
+" Take a revoked certificate off hold.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:570
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:505
+#: ipalib/plugins/cert.py:573
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:73
+#: ipalib/plugins/config.py:20
+msgid ""
+"\n"
+"Manage the IPA configuration\n"
+"\n"
+"Manage the default values that IPA uses and some of its tuning parameters.\n"
+"\n"
+" To show the current configuration:\n"
+" ipa config-show\n"
+"\n"
+" To modify the configuration:\n"
+" ipa config-mod --maxusername=99\n"
+"\n"
+"The available options are:\n"
+"\n"
+"User management options:\n"
+"\n"
+" --maxusername=INT Max. username length when creating/modifying a user\n"
+" --homedirectory=STR Default location of home directories (default /"
+"home)\n"
+" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
+" --defaultgroup=STR Default group for new users (default ipausers). The\n"
+" group must exist, or adding new users will fail.\n"
+" --emaildomain=STR Default e-mail domain for new users\n"
+"\n"
+"Search tuning options. These impact how much data is searched through and\n"
+"how many records may be returned on a given search.\n"
+"\n"
+" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 "
+"for\n"
+" unlimited)\n"
+" --searchrecordslimit=INT Max. number of records to search (-1 is "
+"unlimited)\n"
+"\n"
+"Server Configuration.\n"
+"\n"
+" --enable-migration=BOOL Enable migration mode\n"
+" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+"\n"
+"The password notification value is stored here so it will be replicated.\n"
+"It is not currently used to notify users in advance of an expiring\n"
+"password.\n"
+"\n"
+"Some attributes are read-only, provided only for information purposes. "
+"These\n"
+"include:\n"
+"\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
+msgstr ""
+
+#: ipalib/plugins/config.py:76
+msgid "searchtimelimit must be -1 or > 1."
+msgstr ""
+
+#: ipalib/plugins/config.py:80
+msgid ""
+"\n"
+" IPA configuration object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:78
-msgid "Max username length"
+#: ipalib/plugins/config.py:96
+msgid "Max. username length"
msgstr ""
-#: ipalib/plugins/config.py:83
+#: ipalib/plugins/config.py:101
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:84
-msgid "Default location of home directories"
+#: ipalib/plugins/config.py:102
+msgid "Default location of home directories."
msgstr ""
-#: ipalib/plugins/config.py:88
+#: ipalib/plugins/config.py:106
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:89
-msgid "Default shell for new users"
+#: ipalib/plugins/config.py:107
+msgid "Default shell for new users."
msgstr ""
-#: ipalib/plugins/config.py:93
+#: ipalib/plugins/config.py:111
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:94
-msgid "Default group for new users"
+#: ipalib/plugins/config.py:112
+msgid "Default group for new users."
msgstr ""
-#: ipalib/plugins/config.py:98
-msgid "Default e-mail domain"
+#: ipalib/plugins/config.py:116
+msgid "Default e-mail domain for new users"
msgstr ""
-#: ipalib/plugins/config.py:99
-msgid "Default e-mail domain new users"
+#: ipalib/plugins/config.py:117
+msgid "Default e-mail domain new users."
msgstr ""
-#: ipalib/plugins/config.py:103
+#: ipalib/plugins/config.py:121
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:104
-msgid "Max. amount of time (sec.) for a search (-1 is unlimited)"
+#: ipalib/plugins/config.py:122
+msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:109
+#: ipalib/plugins/config.py:127
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:110
-msgid "Max. number of records to search (-1 is unlimited)"
+#: ipalib/plugins/config.py:128
+msgid "Max. number of records to search (-1 is unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:115
+#: ipalib/plugins/config.py:133
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:116
-msgid "A comma-separated list of fields to search when searching for users"
+#: ipalib/plugins/config.py:134
+msgid "A comma-separated list of fields to search when searching for users."
msgstr ""
-#: ipalib/plugins/config.py:121
-msgid "A comma-separated list of fields to search when searching for groups"
+#: ipalib/plugins/config.py:139
+msgid "A comma-separated list of fields to search when searching for groups."
msgstr ""
-#: ipalib/plugins/config.py:125
+#: ipalib/plugins/config.py:143
msgid "Migration mode"
msgstr ""
-#: ipalib/plugins/config.py:126
-msgid "Enable migration mode"
+#: ipalib/plugins/config.py:144
+msgid "Enable migration mode."
msgstr ""
-#: ipalib/plugins/config.py:130
+#: ipalib/plugins/config.py:148
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:131
-msgid "Base for certificate subjects (OU=Test,O=Example)"
+#: ipalib/plugins/config.py:149
+msgid "Base for certificate subjects (OU=Test,O=Example)."
msgstr ""
-#: ipalib/plugins/dns.py:131
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:155
+msgid "Default group objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:159
+msgid "Default user objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:160
+msgid "Default user objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:164
+msgid "Password Expiration Notification"
+msgstr ""
+
+#: ipalib/plugins/config.py:165
+msgid "Number of days's notice of impending password expiration."
+msgstr ""
+
+#: ipalib/plugins/config.py:170
+msgid "Password plugin features"
+msgstr ""
+
+#: ipalib/plugins/config.py:171
+msgid "Extra hashes to generate in password plug-in."
+msgstr ""
+
+#: ipalib/plugins/config.py:183
+msgid ""
+"\n"
+" Modify configuration options.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:220
+msgid ""
+"\n"
+" Show the current configuration.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:19
+msgid ""
+"\n"
+"Group to Group Delegation\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"Group to Group Delegations grants the members of one group to update a set\n"
+"of attributes of members of another group.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a delegation rule to allow editors to edit admin's addresses:\n"
+" ipa delegation-add --attrs=street --membergroup=admins --group=editors "
+"'editors edit admins street'\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add postalCode to the list:\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --"
+"group=editors 'editors edit admins street'\n"
+"\n"
+" Display our updated rule:\n"
+" ipa delegation-show 'editors edit admins street'\n"
+"\n"
+" Delete a rule:\n"
+" ipa delegation-del 'editors edit admins street'\n"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:56
+msgid ""
+"\n"
+" memberOf is in filter but we want to pull out the group for easier\n"
+" displaying.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+msgid "Delegation '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:70
+msgid "Error retrieving member group %(group)s: %(error)s"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:79
+msgid ""
+"\n"
+" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a delegation ACI, adding a new attribute\n"
+" membergroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:95
+msgid ""
+"\n"
+" Delegation object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:102
+msgid "Delegation"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+msgid "Delegation name"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+msgid ""
+"Comma-separated list of permissions to grant (read, write). Default is write."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:125
+msgid "Member user group"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:126
+msgid "User group to apply delegation to"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:152
+msgid ""
+"\n"
+" Add a new delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:156
+msgid "Added delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:176
+msgid ""
+"\n"
+" Delete a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:181
+msgid "Deleted delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:197
+msgid ""
+"\n"
+" Modify a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:201
+msgid "Modified delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:219
+msgid ""
+"\n"
+" Search for delegations.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:223
+msgid "%(count)d delegation matched"
+msgid_plural "%(count)d delegations matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/delegation.py:250
+msgid ""
+"\n"
+" Display information about a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:20
+msgid ""
+"\n"
+"Domain Name System (DNS)\n"
+"\n"
+"Manage DNS zone and resource records.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add new zone:\n"
+" ipa dnszone-add example.com --name-server nameserver.example.com\n"
+" --admin-email admin@example.com\n"
+"\n"
+" Add second nameserver for example.com:\n"
+" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add a mail server for example.com:\n"
+" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n"
+"\n"
+" Delete previously added nameserver from example.com:\n"
+" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add new A record for www.example.com: (random IP)\n"
+" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n"
+"\n"
+" Add new PTR record for www.example.com\n"
+" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n"
+"\n"
+" Add new SRV records for LDAP servers. Three quarters of the requests\n"
+" should go to fast.example.com, one quarter to slow.example.com. If neither\n"
+" is available, switch to backup.example.com.\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup."
+"example.com\"\n"
+"\n"
+" When dnsrecord-add command is executed with no option to add a specific "
+"record\n"
+" an interactive mode is started. The mode interactively prompts for the "
+"most\n"
+" typical record types for the respective zone:\n"
+" ipa dnsrecord-add example.com www\n"
+" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random "
+"IPs)\n"
+" [AAAA record]: (no AAAA address entered)\n"
+" Record name: www\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" The interactive mode can also be used for deleting the DNS records:\n"
+" ipa dnsrecord-del example.com www\n"
+" No option to delete specific record provided.\n"
+" Delete all? Yes/No (default No): (do not delete all records)\n"
+" Current DNS record contents:\n"
+"\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
+" Record name: www\n"
+" A record: 1.2.3.4 (A record 11.22.33.44 has been "
+"deleted)\n"
+"\n"
+" Show zone example.com:\n"
+" ipa dnszone-show example.com\n"
+"\n"
+" Find zone with \"example\" in its domain name:\n"
+" ipa dnszone-find example\n"
+"\n"
+" Find records for resources with \"www\" in their name in zone example.com:\n"
+" ipa dnsrecord-find example.com www\n"
+"\n"
+" Find A records with value 10.10.0.1 in zone example.com\n"
+" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n"
+"\n"
+" Show records for resource www in zone example.com\n"
+" ipa dnsrecord-show example.com www\n"
+"\n"
+" Delete zone example.com with all resource records:\n"
+" ipa dnszone-del example.com\n"
+"\n"
+" Resolve a host name to see if it exists (will add default IPA domain\n"
+" if one is not included):\n"
+" ipa dns-resolve www.example.com\n"
+" ipa dns-resolve www\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:140
+msgid "Generate serial number for zones."
+msgstr ""
+
+#: ipalib/plugins/dns.py:189
+msgid "see RFC 2915 "
+msgstr ""
+
+#: ipalib/plugins/dns.py:249
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:272
+msgid ""
+"\n"
+" DNS Zone, container for resource records.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:284
msgid "DNS"
msgstr ""
-#: ipalib/plugins/dns.py:136
-msgid "Zone"
+#: ipalib/plugins/dns.py:289
+msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:137
+#: ipalib/plugins/dns.py:290
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:143
-msgid "Authoritative name server"
+#: ipalib/plugins/dns.py:296
+msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:147
-msgid "administrator e-mail address"
+#: ipalib/plugins/dns.py:297
+msgid "Authoritative nameserver."
msgstr ""
-#: ipalib/plugins/dns.py:153
+#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+msgid "Administrator e-mail address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:308
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:157
+#: ipalib/plugins/dns.py:309
+msgid "SOA record serial number"
+msgstr ""
+
+#: ipalib/plugins/dns.py:316
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:161
+#: ipalib/plugins/dns.py:317
+msgid "SOA record refresh time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:324
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:165
+#: ipalib/plugins/dns.py:325
+msgid "SOA record retry time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:169
+#: ipalib/plugins/dns.py:333
+msgid "SOA record expire time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:173
+#: ipalib/plugins/dns.py:341
+msgid "How long should negative responses be cached"
+msgstr ""
+
+#: ipalib/plugins/dns.py:349
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:177
+#: ipalib/plugins/dns.py:350
+msgid "SOA record time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:354
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:182
-msgid "allow dynamic update?"
+#: ipalib/plugins/dns.py:355
+msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:186
+#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:426 ipalib/plugins/dns.py:460
-#: ipalib/plugins/dns.py:495 ipalib/plugins/dns.py:610
-#: ipalib/plugins/dns.py:695 ipalib/plugins/dns.py:819
-msgid "Zone name"
+#: ipalib/plugins/dns.py:365
+msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:500
-msgid "resource name"
+#: ipalib/plugins/dns.py:366
+msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:505 ipalib/plugins/dns.py:620
-#: ipalib/plugins/dns.py:711
-msgid "Record type"
+#: ipalib/plugins/dns.py:372
+msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:509 ipalib/plugins/dns.py:624
-msgid "Data"
+#: ipalib/plugins/dns.py:373
+msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:510 ipalib/plugins/dns.py:625
-msgid "Type-specific data"
+#: ipalib/plugins/dns.py:382
+msgid ""
+"\n"
+" Create new DNS zone (SOA record).\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:517
-msgid "Time to live"
+#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
+#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+msgid "Force"
+msgstr ""
+
+#: ipalib/plugins/dns.py:388
+msgid "Force DNS zone creation even if nameserver not in DNS."
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+msgid "Add the nameserver to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:397
+msgid "DNS is not configured"
+msgstr ""
+
+#: ipalib/plugins/dns.py:431
+msgid ""
+"\n"
+" Delete DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"\n"
+" Modify DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:452
+msgid ""
+"\n"
+" Search for DNS zones (SOA records).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:460
+msgid ""
+"\n"
+" Display information about a DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+msgid ""
+"\n"
+" Disable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:472
+msgid "Disabled DNS zone \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:490
+msgid ""
+"\n"
+" Enable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:494
+msgid "Enabled DNS zone \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:512
+msgid ""
+"\n"
+" DNS record.\n"
+" "
msgstr ""
#: ipalib/plugins/dns.py:522
+msgid "DNS resource record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
+msgid "Record name"
+msgstr ""
+
+#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
+msgid "Time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:538
msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:615 ipalib/plugins/dns.py:707
-#: ipalib/plugins/dns.py:824
-msgid "Resource name"
+#: ipalib/plugins/dns.py:539
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:700
-msgid "Search criteria"
+#: ipalib/plugins/dns.py:566
+msgid ""
+"\n"
+" Base class for DNS record commands with record options.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:715
-msgid "type-specific data"
+#: ipalib/plugins/dns.py:610
+msgid ""
+"\n"
+" Base class for adding/removing records from DNS resource entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:865
-#, python-format
+#: ipalib/plugins/dns.py:674
+msgid ""
+"\n"
+" Add records to DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:690
+msgid ""
+"\n"
+" Add new DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:699
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:735
+msgid ""
+"Reverse zone for PTR record should be a sub-zone of one the following fully "
+"qualified domains: %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:740
+msgid "Reverse zone %s requires exactly %d IP address components, %d given"
+msgstr ""
+
+#: ipalib/plugins/dns.py:746
+msgid "PTR record '%s' is not fully qualified (check traling '.')"
+msgstr ""
+
+#: ipalib/plugins/dns.py:789
+msgid ""
+"\n"
+" Delete DNS record entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:792
+msgid "Deleted record \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:799
+msgid ""
+"\n"
+" Delete DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:802
+msgid ""
+"Neither --del-all nor options to delete a specific record provided.\n"
+"Command help may be consulted for all supported record types."
+msgstr ""
+
+#: ipalib/plugins/dns.py:807
+msgid "Delete all associated records"
+msgstr ""
+
+#: ipalib/plugins/dns.py:834
+msgid "No option to delete specific record provided."
+msgstr ""
+
+#: ipalib/plugins/dns.py:835
+msgid "Delete all?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:845
+msgid "Current DNS record contents:\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:875
+msgid "%s record with value %s not found"
+msgstr ""
+
+#: ipalib/plugins/dns.py:889
+msgid ""
+"\n"
+" Display DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:905
+msgid ""
+"\n"
+" Search for DNS resources.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:932
+msgid ""
+"\n"
+" Resolve a host name in DNS\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:936
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:869
+#: ipalib/plugins/dns.py:940
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:882
-#, python-format
+#: ipalib/plugins/dns.py:962
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/group.py:94
+#: ipalib/plugins/dns.py:970
+msgid ""
+"\n"
+" Checks if any of the servers has the DNS service enabled.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:19
+msgid ""
+"\n"
+"Entitlements\n"
+"\n"
+"Manage entitlements for client machines\n"
+"\n"
+"Entitlements can be managed either by registering with an entitlement\n"
+"server with a username and password or by manually importing entitlement\n"
+"certificates. An entitlement certificate contains embedded information\n"
+"such as the product being entitled, the quantity and the validity dates.\n"
+"\n"
+"An entitlement server manages the number of client entitlements available.\n"
+"To mark these entitlements as used by the IPA server you provide a quantity\n"
+"and they are marked as consumed on the entitlement server.\n"
+"\n"
+" Register with an entitlement server:\n"
+" ipa entitle-register consumer\n"
+"\n"
+" Import an entitlement certificate:\n"
+" ipa entitle-import /home/user/ipaclient.pem\n"
+"\n"
+" Display current entitlements:\n"
+" ipa entitle-status\n"
+"\n"
+" Retrieve details on entitlement certificates:\n"
+" ipa entitle-get\n"
+"\n"
+" Consume some entitlements from the entitlement server:\n"
+" ipa entitle-consume 50\n"
+"\n"
+"The registration ID is a Unique Identifier (UUID). This ID will be\n"
+"IMPORTED if you have used entitle-import.\n"
+"\n"
+"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:106
+msgid ""
+"\n"
+" Get our entitlement pool. Assume there is only one pool.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:129
+msgid ""
+"\n"
+" Retrieve our UUID, certificate and key from LDAP.\n"
+"\n"
+" Except on error the caller is responsible for removing temporary files\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:178
+msgid ""
+"\n"
+" Entitlement object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:189
+msgid "Entitlements"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:206
+msgid ""
+"\n"
+" Display current entitlements\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+msgid "UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
+#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
+#: ipalib/plugins/entitle.py:690
+msgid "Product"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
+#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
+#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+msgid "Quantity"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
+#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+msgid "Consumed"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:276
+msgid ""
+"\n"
+" Consume an entitlement\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:282
+msgid "Consumed %(value)s entitlement(s)."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:314
+msgid ""
+"\n"
+" Override this so we can set value to the number of entitlements\n"
+" consumed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
+msgid ""
+"\n"
+" Returning the certificates isn't very interesting. Return the\n"
+" status of entitlements instead.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:380
+msgid ""
+"\n"
+" Retrieve the entitlement certs\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:394
+msgid "Start"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:397
+msgid "End"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
+#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+msgid "Serial Number"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
+#: ipalib/plugins/entitle.py:628
+msgid "Not an entitlement certificate"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:460
+msgid ""
+"\n"
+" Search for entitlement accounts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:473
+msgid ""
+"\n"
+" Register to the entitlement system\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:479
+msgid "Registered to entitlement server."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:483
+msgid "Username"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
+msgid "Enrollment UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
+#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
+msgid "Password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:495
+msgid "Registration password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:569
+msgid ""
+"\n"
+" Import an entitlement certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:646
+msgid ""
+"\n"
+" If we are adding the first entry there are no updates so "
+"EmptyModlist\n"
+" will get thrown. Ignore it.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:667
+msgid ""
+"\n"
+" Re-sync the local entitlement cache with the entitlement server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:673
+msgid "Entitlement(s) synchronized."
+msgstr ""
+
+#: ipalib/plugins/group.py:20
+msgid ""
+"\n"
+"Groups of users\n"
+"\n"
+"Manage groups of users. By default, new groups are POSIX groups. You\n"
+"can add the --nonposix option to the group-add command to mark a new group\n"
+"as non-POSIX, and you can use the same argument to the group-mod command\n"
+"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"converted to non-POSIX groups.\n"
+"\n"
+"Every group must have a description.\n"
+"\n"
+"POSIX groups must have a Group ID (GID) number. Changing a GID is\n"
+"supported but can have an impact on your file permissions. It is not "
+"necessary\n"
+"to supply a GID when creating a group. IPA will generate one automatically\n"
+"if it is not provided.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new group:\n"
+" ipa group-add --desc='local administrators' localadmins\n"
+"\n"
+" Add a new non-POSIX group:\n"
+" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n"
+"\n"
+" Convert a non-POSIX group to posix:\n"
+" ipa group-mod --posix remoteadmins\n"
+"\n"
+" Add a new POSIX group with a specific Group ID number:\n"
+" ipa group-add --gid=500 --desc='unix admins' unixadmins\n"
+"\n"
+" Add a new POSIX group and let IPA assign a Group ID number:\n"
+" ipa group-add --desc='printer admins' printeradmins\n"
+"\n"
+" Remove a group:\n"
+" ipa group-del unixadmins\n"
+"\n"
+" To add the \"remoteadmins\" group to the \"localadmins\" group:\n"
+" ipa group-add-member --groups=remoteadmins localadmins\n"
+"\n"
+" Add a list of users to the \"localadmins\" group:\n"
+" ipa group-add-member --users=test1,test2 localadmins\n"
+"\n"
+" Remove a user from the \"localadmins\" group:\n"
+" ipa group-remove-member --users=test2 localadmins\n"
+"\n"
+" Display information about a named group.\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/group.py:76
+msgid ""
+"\n"
+" Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:100
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:102
+#: ipalib/plugins/group.py:108
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:109 ipalib/plugins/sudocmdgroup.py:78
+#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:113
+#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:114
+#: ipalib/plugins/group.py:120
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:117 ipalib/plugins/rolegroup.py:94
-#: ipalib/plugins/taskgroup.py:66
-msgid "Member groups"
+#: ipalib/plugins/group.py:128
+msgid ""
+"\n"
+" Create a new group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:121 ipalib/plugins/rolegroup.py:98
-#: ipalib/plugins/taskgroup.py:70
-msgid "Member users"
+#: ipalib/plugins/group.py:132
+msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:134
-#, python-format
-msgid "Added group \"%(value)s\""
+#: ipalib/plugins/group.py:137
+msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:139
-msgid "Create as a non-POSIX group?"
+#: ipalib/plugins/group.py:154
+msgid ""
+"\n"
+" Delete group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:160
-#, python-format
+#: ipalib/plugins/group.py:158
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:191
-#, python-format
+#: ipalib/plugins/group.py:186
+msgid ""
+"\n"
+" Modify a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:189
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:196
+#: ipalib/plugins/group.py:194
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:222 ipalib/plugins/hbacsvcgroup.py:129
-#, python-format
+#: ipalib/plugins/group.py:215
+msgid ""
+"\n"
+" Search for groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:220
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
+#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+msgid "search for private groups"
+msgstr ""
+
#: ipalib/plugins/group.py:257
-#, python-format
-msgid "Detached group \"%(value)s\" from user \"%(value)s\""
+msgid ""
+"\n"
+" Display information about a named group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:265
+msgid ""
+"\n"
+" Add members to a group.\n"
+" "
msgstr ""
#: ipalib/plugins/group.py:273
+msgid ""
+"\n"
+" Remove members from a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:281
+msgid ""
+"\n"
+" Detach a managed group from a user\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:285
+msgid "Detached group \"%(value)s\" from user \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/group.py:288
+msgid ""
+"\n"
+" This requires updating both the user and the group. We first need "
+"to\n"
+" verify that both the user and group can be updated, then we go\n"
+" about our work. We don't want a situation where only the user or\n"
+" group can be modified and we're left in a bad state.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:306
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:277
+#: ipalib/plugins/group.py:312
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:284 ipalib/plugins/group.py:295
+#: ipalib/plugins/group.py:331
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbac.py:106
-msgid "HBAC"
+#: ipalib/plugins/hbacrule.py:19
+msgid ""
+"\n"
+"Host-based access control\n"
+"\n"
+"Control who can access what services on what hosts and from where. You\n"
+"can use HBAC to control which users or groups on a source host can\n"
+"access a service, or group of services, on a target host.\n"
+"\n"
+"You can also specify a category of users, target hosts, and source\n"
+"hosts. This is currently limited to \"all\", but might be expanded in the\n"
+"future.\n"
+"\n"
+"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n"
+"\n"
+"The available services and groups of services are controlled by the\n"
+"hbacsvc and hbacsvcgroup plug-ins respectively.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a rule, \"test1\", that grants all users access to the host \"server"
+"\" from\n"
+" anywhere:\n"
+" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add-host --hosts=server.example.com test1\n"
+"\n"
+" Display the properties of a named HBAC rule:\n"
+" ipa hbacrule-show test1\n"
+"\n"
+" Create a rule for a specific service. This lets the user john access\n"
+" the sshd service on any machine from any machine:\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add-user --users=john john_sshd\n"
+" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
+"\n"
+" Create a rule for a new service group. This lets the user john access\n"
+" the FTP service on any machine from any machine:\n"
+" ipa hbacsvcgroup-add ftpers\n"
+" ipa hbacsvc-add sftp\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add-user --users=john john_ftp\n"
+" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
+"\n"
+" Disable a named HBAC rule:\n"
+" ipa hbacrule-disable test1\n"
+"\n"
+" Remove a named HBAC rule:\n"
+" ipa hbacrule-del allow_server\n"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:91
+msgid ""
+"\n"
+" See if options[attribute] is lower-case 'all' in a safe way.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:103
+msgid ""
+"\n"
+" HBAC object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbac.py:111 ipalib/plugins/sudorule.py:53
+#: ipalib/plugins/hbacrule.py:126
+msgid "HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbac.py:116
+#: ipalib/plugins/hbacrule.py:136
msgid "Rule type (allow or deny)"
msgstr ""
-#: ipalib/plugins/hbac.py:117
+#: ipalib/plugins/hbacrule.py:137
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbac.py:123
+#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
+#: ipalib/plugins/sudorule.py:86
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbac.py:124
+#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
+#: ipalib/plugins/sudorule.py:87
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:129
+#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
+#: ipalib/plugins/sudorule.py:92
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbac.py:130
+#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
+#: ipalib/plugins/sudorule.py:93
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:135
+#: ipalib/plugins/hbacrule.py:155
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbac.py:136
+#: ipalib/plugins/hbacrule.py:156
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:141
+#: ipalib/plugins/hbacrule.py:161
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbac.py:142
+#: ipalib/plugins/hbacrule.py:162
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:147 ipalib/plugins/hbac.py:325
-#: ipalib/plugins/hbac.py:363
-msgid "Access time"
-msgstr ""
-
-#: ipalib/plugins/hbac.py:154
+#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbac.py:158 ipalib/plugins/sudorule.py:61
-#: ipalib/plugins/user.py:76
+#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
+#: ipalib/plugins/user.py:108
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbac.py:162 ipalib/plugins/host.py:113
-#: ipalib/plugins/sudorule.py:65
+#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
+#: ipalib/plugins/sudorule.py:119
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
+#: ipalib/plugins/sudorule.py:123
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:166 ipalib/plugins/hostgroup.py:69
-#: ipalib/plugins/sudorule.py:69
+#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
+#: ipalib/plugins/sudorule.py:127
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbac.py:170
+#: ipalib/plugins/hbacrule.py:194
msgid "Source hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:174 ipalib/plugins/hbacsvc.py:60
-#: ipalib/plugins/service.py:192
+#: ipalib/plugins/hbacrule.py:198
+msgid "Source host groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
+#: ipalib/plugins/service.py:220
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbac.py:178
+#: ipalib/plugins/hbacrule.py:206
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:65
-msgid "Service name"
+#: ipalib/plugins/hbacrule.py:215
+msgid ""
+"\n"
+" Create a new HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:219
+msgid "Added HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:230
+msgid ""
+"\n"
+" Delete an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:234
+msgid "Deleted HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:240
+msgid ""
+"\n"
+" Modify an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:244
+msgid "Modified HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:266
+msgid ""
+"\n"
+" Search for HBAC rules.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:270
+msgid "%(count)d HBAC rule matched"
+msgid_plural "%(count)d HBAC rules matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/hbacrule.py:278
+msgid ""
+"\n"
+" Display the properties of an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:286
+msgid ""
+"\n"
+" Enable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:290
+msgid "Enabled HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:315
+msgid ""
+"\n"
+" Disable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:319
+msgid "Disabled HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:344
+msgid ""
+"\n"
+" Add an access time to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+msgid "Access time"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:385
+msgid ""
+"\n"
+" Remove access time to HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:425
+msgid ""
+"\n"
+" Add users and groups to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:442
+msgid ""
+"\n"
+" Remove users and groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:452
+msgid ""
+"\n"
+" Add target hosts and hostgroups to an HBAC rule\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:469
+msgid ""
+"\n"
+" Remove target hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:479
+msgid ""
+"\n"
+" Add source hosts and hostgroups from a HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:496
+msgid ""
+"\n"
+" Remove source hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:506
+msgid ""
+"\n"
+" Add services to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:523
+msgid ""
+"\n"
+" Remove service and service groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:19
+msgid ""
+"\n"
+"HBAC Services\n"
+"\n"
+"The PAM services that HBAC can control access to. The name used here\n"
+"must match the service name that PAM is evaluating.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service:\n"
+" ipa hbacsvc-add tftp\n"
+"\n"
+" Modify an existing HBAC service:\n"
+" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n"
+"\n"
+" Search for HBAC services. This example will return two results, the FTP\n"
+" service and the newly-added tftp service:\n"
+" ipa hbacsvc-find ftp\n"
+"\n"
+" Delete an HBAC service:\n"
+" ipa hbacsvc-del tftp\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:51
+msgid ""
+"\n"
+" HBAC Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:61
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "HBAC Service"
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:73
-msgid "Description of service"
+#: ipalib/plugins/hbacsvc.py:67
+msgid "HBAC service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:84 ipalib/plugins/service.py:216
-#, python-format
-msgid "Added service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:74
+msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:93 ipalib/plugins/service.py:255
-#, python-format
-msgid "Deleted service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:82
+msgid ""
+"\n"
+" Add a new HBAC service.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:66
-msgid "HBAC Service Groups"
+#: ipalib/plugins/hbacsvc.py:85
+msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:71
+#: ipalib/plugins/hbacsvc.py:91
+msgid ""
+"\n"
+" Delete an existing HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:94
+msgid "Deleted HBAC service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:100
+msgid ""
+"\n"
+" Modify an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modified HBAC service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:110
+msgid ""
+"\n"
+" Search for HBAC services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:114
+msgid "%(count)d HBAC service matched"
+msgid_plural "%(count)d HBAC services matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/hbacsvc.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:19
+msgid ""
+"\n"
+"HBAC Service Groups\n"
+"\n"
+"HBAC service groups can contain any number of individual services,\n"
+"or \"members\". Every group must have a description.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service group:\n"
+" ipa hbacsvcgroup-add --desc=\"login services\" login\n"
+"\n"
+" Add members to an HBAC service group:\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n"
+"\n"
+" Display information about a named group:\n"
+" ipa hbacsvcgroup-show login\n"
+"\n"
+" Add a new group to the \"login\" group:\n"
+" ipa hbacsvcgroup-add --desc=\"switch users\" login\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n"
+"\n"
+" Delete an HBAC service group:\n"
+" ipa hbacsvcgroup-del login\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:51
+msgid ""
+"\n"
+" HBAC service group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:64
+msgid "HBAC service Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:69
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:78
+#: ipalib/plugins/hbacsvcgroup.py:76
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:81
-msgid "Member services"
+#: ipalib/plugins/hbacsvcgroup.py:84
+msgid ""
+"\n"
+" Add a new HBAC service group.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:85
-msgid "Member service groups"
+#: ipalib/plugins/hbacsvcgroup.py:87
+msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:101
-#, python-format
-msgid "Added HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:93
+msgid ""
+"\n"
+" Delete an HBAC service group.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:110
-#, python-format
-msgid "Deleted HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:96
+msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:119
-#, python-format
-msgid "Modified HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:102
+msgid ""
+"\n"
+" Modify an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:105
+msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:86
+#: ipalib/plugins/hbacsvcgroup.py:111
+msgid ""
+"\n"
+" Search for an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:114
+msgid "%(count)d HBAC service group matched"
+msgid_plural "%(count)d HBAC service groups matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/hbacsvcgroup.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:130
+msgid ""
+"\n"
+" Add members to an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:138
+msgid ""
+"\n"
+" Remove members from an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:20
+msgid ""
+"\n"
+"Hosts/Machines\n"
+"\n"
+"A host represents a machine. It can be used in a number of contexts:\n"
+"- service entries are associated with a host\n"
+"- a host stores the host/ service principal\n"
+"- a host can be used in Host-based Access Control (HBAC) rules\n"
+"- every enrolled client generates a host entry\n"
+"\n"
+"ENROLLMENT:\n"
+"\n"
+"There are three enrollment scenarios when enrolling a new client:\n"
+"\n"
+"1. You are enrolling as a full administrator. The host entry may exist\n"
+" or not. A full administrator is a member of the hostadmin role\n"
+" or the admins group.\n"
+"2. You are enrolling as a limited administrator. The host must already\n"
+" exist. A limited administrator is a member a role with the\n"
+" Host Enrollment privilege.\n"
+"3. The host has been created with a one-time password.\n"
+"\n"
+"A host can only be enrolled once. If a client has enrolled and needs to\n"
+"be re-enrolled, the host entry must be removed and re-created. Note that\n"
+"re-creating the host entry will result in all services for the host being\n"
+"removed, and all SSL certificates associated with those services being\n"
+"revoked.\n"
+"\n"
+"A host can optionally store information such as where it is located,\n"
+"the OS that it runs, etc.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host:\n"
+" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example."
+"com\n"
+"\n"
+" Delete a host:\n"
+" ipa host-del test.example.com\n"
+"\n"
+" Add a new host with a one-time password:\n"
+" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n"
+"\n"
+" Add a new host with a random one-time password:\n"
+" ipa host-add --os='Fedora 12' --random test.example.com\n"
+"\n"
+" Modify information about a host:\n"
+" ipa host-mod --os='Fedora 12' test.example.com\n"
+"\n"
+" Disable the host Kerberos key, SSL certificate and all of its services:\n"
+" ipa host-disable test.example.com\n"
+"\n"
+" Add a host that can manage this host's keytab and certificate:\n"
+" ipa host-add-managedby --hosts=test2 test\n"
+msgstr ""
+
+#: ipalib/plugins/host.py:97
+msgid ""
+"\n"
+" Require at least one dot in the hostname (to support localhost."
+"localdomain)\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:118
+#: ipalib/plugins/host.py:129
+msgid "DNS reverse zone for IP address %(addr)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+msgid "Keytab"
+msgstr ""
+
+#: ipalib/plugins/host.py:185
+msgid ""
+"\n"
+" Verify that we have either an IPv4 or IPv6 address.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:189
+msgid "invalid IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:194
+msgid ""
+"\n"
+" Host object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:231
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:125
+#: ipalib/plugins/host.py:238
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:242
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:130
+#: ipalib/plugins/host.py:243
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:135
+#: ipalib/plugins/host.py:248
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:139
+#: ipalib/plugins/host.py:252
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:140
+#: ipalib/plugins/host.py:253
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:144
+#: ipalib/plugins/host.py:257
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:145
+#: ipalib/plugins/host.py:258
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:149
+#: ipalib/plugins/host.py:262
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:150
+#: ipalib/plugins/host.py:263
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:155 ipalib/plugins/service.py:205
-msgid "Base-64 encoded server certificate"
+#: ipalib/plugins/host.py:266
+msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:158 ipalib/plugins/host.py:274
-msgid "Principal name"
+#: ipalib/plugins/host.py:271
+msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:162 ipalib/plugins/hostgroup.py:93
-msgid "Member of host-groups"
+#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:166
-msgid "Member of net-groups"
+#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:170
-msgid "Member of role-groups"
+#: ipalib/plugins/host.py:306
+msgid ""
+"\n"
+" Add a new host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:199
-#, python-format
+#: ipalib/plugins/host.py:311
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:202
+#: ipalib/plugins/host.py:316
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:235
-#, python-format
+#: ipalib/plugins/host.py:319
+msgid "skip reverse DNS detection"
+msgstr ""
+
+#: ipalib/plugins/host.py:322
+msgid "Add the host to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+msgid "DNS zone %(zone)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:413
+msgid "The host was added but the DNS update failed with: %(exc)s"
+msgstr ""
+
+#: ipalib/plugins/host.py:422
+msgid ""
+"\n"
+" Delete a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:426
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:269
-#, python-format
+#: ipalib/plugins/host.py:431
+msgid "Remove entries from DNS"
+msgstr ""
+
+#: ipalib/plugins/host.py:537
+msgid ""
+"\n"
+" Modify information about a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:542
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:275
+#: ipalib/plugins/host.py:549
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:319
-#, python-format
+#: ipalib/plugins/host.py:618
+msgid ""
+"\n"
+" Search for hosts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:623
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:337 ipalib/plugins/service.py:84
-msgid "Keytab"
+#: ipalib/plugins/host.py:643
+msgid ""
+"\n"
+" Display information about a host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:359 ipalib/plugins/service.py:399
-#, python-format
-msgid "Removed kerberos key from \"%(value)s\""
+#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+msgid "file to store certificate in"
+msgstr ""
+
+#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+msgid "Certificate stored in file '%(file)s'"
+msgstr ""
+
+#: ipalib/plugins/host.py:684
+msgid ""
+"\n"
+" Disable the Kerberos key, SSL certificate and all services of a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:688
+msgid "Disabled host \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/host.py:770
+msgid ""
+"\n"
+" Add hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:781
+msgid ""
+"\n"
+" Remove hosts that can manage this host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:368
-msgid "Host principal has no kerberos key"
+#: ipalib/plugins/hostgroup.py:20
+msgid ""
+"\n"
+"Groups of hosts.\n"
+"\n"
+"Manage groups of hosts. This is useful for applying access control to a\n"
+"number of hosts by using Host-based Access Control.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host group:\n"
+" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n"
+"\n"
+" Add another new host group:\n"
+" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n"
+"\n"
+" Add members to the hostgroup:\n"
+" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n"
+"\n"
+" Add a hostgroup as a member of another hostgroup:\n"
+" ipa hostgroup-add-member --hostgroups=baltimore maryland\n"
+"\n"
+" Remove a host from the hostgroup:\n"
+" ipa hostgroup-remove-member --hosts=box2 baltimore\n"
+"\n"
+" Display a host group:\n"
+" ipa hostgroup-show baltimore\n"
+"\n"
+" Delete a hostgroup:\n"
+" ipa hostgroup-del baltimore\n"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:55
+msgid ""
+"\n"
+" Hostgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/hostgroup.py:78
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:75
+#: ipalib/plugins/hostgroup.py:79
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:82
+#: ipalib/plugins/hostgroup.py:86
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:85
-msgid "Member hosts"
+#: ipalib/plugins/hostgroup.py:94
+msgid ""
+"\n"
+" Add a new hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:89
-msgid "Member host-groups"
+#: ipalib/plugins/hostgroup.py:98
+msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:106
-#, python-format
-msgid "Added hostgroup \"%(value)s\""
+#: ipalib/plugins/hostgroup.py:104
+msgid ""
+"\n"
+" Delete a hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:116
-#, python-format
+#: ipalib/plugins/hostgroup.py:108
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:126
-#, python-format
+#: ipalib/plugins/hostgroup.py:114
+msgid ""
+"\n"
+" Modify a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:118
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:137
-#, python-format
+#: ipalib/plugins/hostgroup.py:124
+msgid ""
+"\n"
+" Search for hostgroups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:128
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/internal.py:39
+#: ipalib/plugins/hostgroup.py:136
+msgid ""
+"\n"
+" Display information about a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:144
+msgid ""
+"\n"
+" Add members to a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:152
+msgid ""
+"\n"
+" Remove members from a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:22
+msgid ""
+"\n"
+"Plugins not accessible directly through the CLI, commands used internally\n"
+msgstr ""
+
+#: ipalib/plugins/internal.py:36
+msgid ""
+"\n"
+" Export plugin meta-data for the webUI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:44
+msgid "Name of object to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:47
+msgid "Name of method to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:52
+msgid "Dict of JSON encoded IPA Objects"
+msgstr ""
+
+#: ipalib/plugins/internal.py:53
+msgid "Dict of JSON encoded IPA Methods"
+msgstr ""
+
+#: ipalib/plugins/internal.py:96
msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:41
+#: ipalib/plugins/internal.py:99
+msgid "Attribute"
+msgstr ""
+
+#: ipalib/plugins/internal.py:102
+msgid "Add Automount Location"
+msgstr ""
+
+#: ipalib/plugins/internal.py:103
+msgid "Automount Location Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:106
+msgid "Add Automount Map"
+msgstr ""
+
+#: ipalib/plugins/internal.py:109
+msgid "Add Automount Key"
+msgstr ""
+
+#: ipalib/plugins/internal.py:112
+msgid "Unspecified"
+msgstr ""
+
+#: ipalib/plugins/internal.py:113
+msgid "Key Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:114
+msgid "CA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:115
+msgid "Affiliation Changed"
+msgstr ""
+
+#: ipalib/plugins/internal.py:116
+msgid "Superseded"
+msgstr ""
+
+#: ipalib/plugins/internal.py:117
+msgid "Cessation of Operation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:118
+msgid "Certificate Hold"
+msgstr ""
+
+#: ipalib/plugins/internal.py:119
+msgid "Remove from CRL"
+msgstr ""
+
+#: ipalib/plugins/internal.py:120
+msgid "Privilege Withdrawn"
+msgstr ""
+
+#: ipalib/plugins/internal.py:121
+msgid "AA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:122
+msgid ""
+"To confirm your intention to revoke this certificate, select a reason from "
+"the pull-down list, and click the \"Revoke\" button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:124
+msgid "Note"
+msgstr ""
+
+#: ipalib/plugins/internal.py:125
+msgid "Reason for Revocation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:126
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\" "
+"button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:128
+msgid "Issued To"
+msgstr ""
+
+#: ipalib/plugins/internal.py:129
+msgid "Common Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:130
+msgid "Organization"
+msgstr ""
+
+#: ipalib/plugins/internal.py:131
+msgid "Organizational Unit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:133
+msgid "Issued By"
+msgstr ""
+
+#: ipalib/plugins/internal.py:134
+msgid "Validity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:135
+msgid "Issued On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:136
+msgid "Expires On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:137
+msgid "Fingerprints"
+msgstr ""
+
+#: ipalib/plugins/internal.py:138
+msgid "SHA1 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:139
+msgid "MD5 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:140
+msgid "Enter the Base64-encoded CSR below"
+msgstr ""
+
+#: ipalib/plugins/internal.py:141
+msgid "Valid Certificate Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:142
+msgid "New Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:143
+msgid "Certificate Revoked"
+msgstr ""
+
+#: ipalib/plugins/internal.py:144
+msgid "No Valid Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:145
+msgid "Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:146
+msgid "Issue New Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:147
+msgid "Revoke Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:148
+msgid "Restore Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:152
+msgid "Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:155
+msgid "Add Delegation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:158
+msgid "Add DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:159
+msgid "DNS Zone Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:162
+msgid "Add DNS Resource Record"
+msgstr ""
+
+#: ipalib/plugins/internal.py:163
+msgid "Resource"
+msgstr ""
+
+#: ipalib/plugins/internal.py:165
+msgid "Data"
+msgstr ""
+
+#: ipalib/plugins/internal.py:166
+msgid "Records for DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:169
+msgid "Add Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:170
+msgid "Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
+msgid "Is this a POSIX group?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:174
+msgid "Add HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:306
+msgid "Active"
+msgstr ""
+
+#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:308
+msgid "Inactive"
+msgstr ""
+
+#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
+msgid "Rule status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
+msgid "Who"
+msgstr ""
+
+#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
+msgid "Anyone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
+msgid "Specified Users and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:183
+msgid "Accessing"
+msgstr ""
+
+#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
+msgid "Any Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
+msgid "Specified Hosts and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:186
+msgid "Via Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:187
+msgid "Any Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:188
+msgid "Specified Services and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:189
+msgid "From"
+msgstr ""
+
+#: ipalib/plugins/internal.py:192
+msgid "Add HBAC Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:195
+msgid "Add HBAC Service Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:199
+msgid "Add Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:200
+msgid "Host Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:202
+msgid "Host Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:203
+msgid "Enrolled?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:204
+msgid "Enrollment"
+msgstr ""
+
+#: ipalib/plugins/internal.py:205
+msgid "Fully Qualified Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
+msgid "Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:208
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
+msgid "Delete Key, Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:211
+msgid "Enroll via One-Time-Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:212
+msgid "Set OTP"
+msgstr ""
+
+#: ipalib/plugins/internal.py:213
+msgid "One-Time-Password has been set."
+msgstr ""
+
+#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
+msgid "Unprovisioning ${entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:215
+msgid "Are you sure you want to unprovision this host?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
+msgid "Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:219
+msgid "Add Host Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:220
+msgid "Host Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:223
+msgid "Kerberos ticket policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:226
+msgid "Add Netgroup"
+msgstr ""
+
+#: ipalib/plugins/internal.py:227
+msgid "Netgroup Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:230
+msgid "Add Permission"
+msgstr ""
+
+#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
+msgid "Identity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:233
+msgid "Target"
+msgstr ""
+
+#: ipalib/plugins/internal.py:235
+msgid "By Subtree"
+msgstr ""
+
+#: ipalib/plugins/internal.py:236
+msgid "Target Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:237
+msgid "Object By Type"
+msgstr ""
+
+#: ipalib/plugins/internal.py:238
+msgid "Permission with invalid target specification"
+msgstr ""
+
+#: ipalib/plugins/internal.py:241
+msgid "Add Privilege"
+msgstr ""
+
+#: ipalib/plugins/internal.py:242
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:245
+msgid "Add Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:249
+msgid "Add Role"
+msgstr ""
+
+#: ipalib/plugins/internal.py:250
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:253
+msgid "Add Self Service Definition"
+msgstr ""
+
+#: ipalib/plugins/internal.py:256
+msgid "Add Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:257
+msgid "Service Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:258
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:260
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:261
+msgid "Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:263
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:267
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:271
+msgid "Add Sudo Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:275
+msgid "Add Sudo Command Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:279
+msgid "Add Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:287
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:290
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:291
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:292
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:293
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:294
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:295
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:297
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:300
+msgid "Add User"
+msgstr ""
+
+#: ipalib/plugins/internal.py:301
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:302
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:303
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:304
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:305
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:307
+msgid "Click to Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:309
+msgid "Click to Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:310
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:311
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:312
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:313
+msgid "Repeat Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:314
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:315
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:319
msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:42
+#: ipalib/plugins/internal.py:320
+msgid "Add and Add Another"
+msgstr ""
+
+#: ipalib/plugins/internal.py:321
+msgid "Add and Edit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:322
+msgid "Add and Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:323
+msgid "Add Many"
+msgstr ""
+
+#: ipalib/plugins/internal.py:324
+msgid "Back to List"
+msgstr ""
+
+#: ipalib/plugins/internal.py:325
+msgid "Cancel"
+msgstr ""
+
+#: ipalib/plugins/internal.py:326
+msgid "Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:327
+msgid "Enroll"
+msgstr ""
+
+#: ipalib/plugins/internal.py:328
msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:43
+#: ipalib/plugins/internal.py:329
+msgid "Get"
+msgstr ""
+
+#: ipalib/plugins/internal.py:330
+msgid "Issue"
+msgstr ""
+
+#: ipalib/plugins/internal.py:331
+msgid "OK"
+msgstr ""
+
+#: ipalib/plugins/internal.py:332
msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:333
+msgid "Delete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:334
+msgid "Restore"
+msgstr ""
+
+#: ipalib/plugins/internal.py:335
+msgid "Retry"
+msgstr ""
+
+#: ipalib/plugins/internal.py:336
+msgid "Revoke"
+msgstr ""
+
+#: ipalib/plugins/internal.py:337
msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:45
-msgid "Enroll"
+#: ipalib/plugins/internal.py:338
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:46
-msgid "Delete"
+#: ipalib/plugins/internal.py:341
+msgid "Available"
+msgstr ""
+
+#: ipalib/plugins/internal.py:342
+msgid "This page has unsaved changes. Please save or revert."
+msgstr ""
+
+#: ipalib/plugins/internal.py:343
+msgid "Dirty"
msgstr ""
-#: ipalib/plugins/internal.py:49
+#: ipalib/plugins/internal.py:344
+msgid "Hide already enrolled."
+msgstr ""
+
+#: ipalib/plugins/internal.py:345
+msgid "Select ${entity} to be removed."
+msgstr ""
+
+#: ipalib/plugins/internal.py:346
+msgid "Remove ${entity}."
+msgstr ""
+
+#: ipalib/plugins/internal.py:347
+msgid "Prospective"
+msgstr ""
+
+#: ipalib/plugins/internal.py:350
+msgid "Managed by"
+msgstr ""
+
+#: ipalib/plugins/internal.py:351
+msgid "Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:352
+msgid "Indirect Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:353
+msgid "Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:354
+msgid "Indirect Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
+msgid "Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:358
+msgid "Search"
+msgstr ""
+
+#: ipalib/plugins/internal.py:362
msgid "Quick Links"
msgstr ""
-#: ipalib/plugins/internal.py:50
+#: ipalib/plugins/internal.py:363
msgid "Select All"
msgstr ""
-#: ipalib/plugins/internal.py:51
+#: ipalib/plugins/internal.py:364
msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Do you really want to delete the selected entries?"
+#: ipalib/plugins/internal.py:365
+msgid "Are you sure you want to delete selected entries?"
msgstr ""
-#: ipalib/plugins/internal.py:55
-msgid "Identity Details"
+#: ipalib/plugins/internal.py:366
+msgid ""
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
msgstr ""
-#: ipalib/plugins/internal.py:56
-msgid "Account Details"
+#: ipalib/plugins/internal.py:370
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:57
-msgid "Contact Details"
+#: ipalib/plugins/internal.py:371
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:58
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:372
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:59
-msgid " Employee Information"
+#: ipalib/plugins/internal.py:373
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:60
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:377
+msgid "Policy"
msgstr ""
-#: ipalib/plugins/internal.py:61
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:378
+msgid "Audit"
msgstr ""
-#: ipalib/plugins/internal.py:66
-msgid "Name of object to export"
+#: ipalib/plugins/internal.py:379
+msgid "IPA Server"
msgstr ""
-#: ipalib/plugins/internal.py:71
-msgid "Dict of JSON encoded IPA Objects"
+#: ipalib/plugins/internal.py:380
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:381
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:382
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:383
+msgid "Automount"
msgstr ""
-#: ipalib/plugins/internal.py:72
+#: ipalib/plugins/internal.py:386
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:387
+msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:388
+msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:389
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:392
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:395
+msgid ""
+"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."
+msgstr ""
+
+#: ipalib/plugins/internal.py:399
msgid "Dict of I18N messages"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:59
+#: ipalib/plugins/kerberos.py:20
+msgid ""
+"\n"
+"Backend plugin for Kerberos.\n"
+"\n"
+"This wraps the python-kerberos and python-krbV bindings.\n"
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:35
+msgid ""
+"\n"
+" Kerberos backend plugin.\n"
+"\n"
+" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
+" bindings also). Importantly, this plugin does correct Unicode\n"
+" encoding/decoding of values going-to/coming-from the bindings.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:44
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:50
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:56
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:62
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:68
+msgid ""
+"\n"
+" Return the default ccache file name.\n"
+"\n"
+" This will return something like '/tmp/krb5cc_500'.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:79
+msgid ""
+"\n"
+" Return the principal name in default credential cache.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'. If no "
+"credential\n"
+" cache exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:91
+msgid ""
+"\n"
+" Return the realm from the default credential cache.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'. If no credential "
+"cache\n"
+" exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:103
+msgid ""
+"\n"
+" Return the principal from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:111
+msgid ""
+"\n"
+" Return the realm from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:19
+msgid ""
+"\n"
+"Kerberos ticket policy\n"
+"\n"
+"There is a single Kerberos ticket policy. This policy defines the\n"
+"maximum ticket lifetime and the maximum renewal age, the period during\n"
+"which the ticket is renewable.\n"
+"\n"
+"You can also create a per-user ticket policy by specifying the user login.\n"
+"\n"
+"For changes to the global policy to take effect, restarting the KDC service\n"
+"is required, which can be achieved using:\n"
+"\n"
+"service krb5kdc restart\n"
+"\n"
+"Changes to per-user policies take effect immediately for newly requested\n"
+"tickets (e.g. when the user next runs kinit).\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Display the current Kerberos ticket policy:\n"
+" ipa krbtpolicy-show\n"
+"\n"
+" Reset the policy to the default:\n"
+" ipa krbtpolicy-reset\n"
+"\n"
+" Modify the policy to 8 hours max life, 1-day max renewal:\n"
+" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n"
+"\n"
+" Display effective Kerberos ticket policy for user 'admin':\n"
+" ipa krbtpolicy-show admin\n"
+"\n"
+" Reset per-user policy for user 'admin':\n"
+" ipa krbtpolicy-reset admin\n"
+"\n"
+" Modify per-user policy for user 'admin':\n"
+" ipa krbtpolicy-mod admin --maxlife=3600\n"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:71
+msgid ""
+"\n"
+" Kerberos Ticket Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:79
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:64 ipalib/plugins/passwd.py:52
+#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
msgid "User name"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:65
+#: ipalib/plugins/krbtpolicy.py:85
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:70
+#: ipalib/plugins/krbtpolicy.py:90
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:75
+#: ipalib/plugins/krbtpolicy.py:96
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:76
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/migration.py:44
-#, python-format
+#: ipalib/plugins/krbtpolicy.py:111
+msgid ""
+"\n"
+" Modify Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:125
+msgid ""
+"\n"
+" Display the current Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:149
+msgid ""
+"\n"
+" Reset Kerberos ticket policy to the default values.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:19
+msgid ""
+"\n"
+"Migration to IPA\n"
+"\n"
+"Migrate users and groups from an LDAP server to IPA.\n"
+"\n"
+"This performs an LDAP query against the remote server searching for\n"
+"users and groups in a container. In order to migrate passwords you need\n"
+"to bind as a user that can read the userPassword attribute on the remote\n"
+"server. This is generally restricted to high-level admins such as\n"
+"cn=Directory Manager in 389-ds (this is the default bind user).\n"
+"\n"
+"The default user container is ou=People.\n"
+"\n"
+"The default group container is ou=Groups.\n"
+"\n"
+"Users and groups that already exist on the IPA server are skipped.\n"
+"\n"
+"Two LDAP schemas define how group members are stored: RFC2307 and\n"
+"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n"
+"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n"
+"\n"
+"Migrated users do not have Kerberos credentials, they have only their\n"
+"LDAP password. To complete the migration process, users need to go\n"
+"to http://ipa.example.com/ipa/migration and authenticate using their\n"
+"LDAP password in order to generate their Kerberos credentials.\n"
+"\n"
+"Migration is disabled by default. Use the command ipa config-mod to\n"
+"enable it:\n"
+"\n"
+" ipa config-mod --enable-migration=TRUE\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" The simplest migration, accepting all defaults:\n"
+" ipa migrate-ds ldap://ds.example.com:389\n"
+"\n"
+" Specify the user and group container. This can be used to migrate user and\n"
+" group data from an IPA v1 server:\n"
+" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-"
+"container='cn=groups,cn=accounts' ldap://ds.example.com:389\n"
+msgstr ""
+
+#: ipalib/plugins/migration.py:78
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:45
+#: ipalib/plugins/migration.py:79
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:169
+#: ipalib/plugins/migration.py:175
+msgid ""
+"\n"
+" Convert usernames in member attributes to work in IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:220
+msgid "Invalid LDAP URI."
+msgstr ""
+
+#: ipalib/plugins/migration.py:225
+msgid ""
+"\n"
+" Migrate users and groups from DS to IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:266
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:170
+#: ipalib/plugins/migration.py:267
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:174
+#: ipalib/plugins/migration.py:272
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:181
+#: ipalib/plugins/migration.py:279
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:187
+#: ipalib/plugins/migration.py:285
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:188
+#: ipalib/plugins/migration.py:286
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:194
+#: ipalib/plugins/migration.py:292
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:195
+#: ipalib/plugins/migration.py:293
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:200
-msgid "Continous operation mode. Errors are reported but the process continues"
+#: ipalib/plugins/migration.py:299
+msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:208
+#: ipalib/plugins/migration.py:300
+msgid ""
+"Comma-separated list of objectclasses used to search for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:306
+msgid "Group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:307
+msgid ""
+"Comma-separated list of objectclasses used to search for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:313
+msgid "LDAP schema"
+msgstr ""
+
+#: ipalib/plugins/migration.py:314
+msgid ""
+"The schema used on the LDAP server. Supported values are RFC2307 and "
+"RFC2307bis. The default is RFC2307bis"
+msgstr ""
+
+#: ipalib/plugins/migration.py:320
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues"
+msgstr ""
+
+#: ipalib/plugins/migration.py:328
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:212
+#: ipalib/plugins/migration.py:332
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:216
+#: ipalib/plugins/migration.py:336
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:220
-#, python-format
+#: ipalib/plugins/migration.py:340
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:222
+#: ipalib/plugins/migration.py:342
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
-"migration process might be uncomplete\n"
+"migration process might be incomplete\n"
msgstr ""
-#: ipalib/plugins/migration.py:227
+#: ipalib/plugins/migration.py:347
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:230
+#: ipalib/plugins/migration.py:350
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -1527,16 +4765,55 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:297
-#, python-format
+#: ipalib/plugins/migration.py:358
+msgid ""
+"\n"
+" Call get_options of the baseclass and add \"exclude\" options\n"
+" for each type of object being migrated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:375
+msgid ""
+"\n"
+" Convert all \"exclude\" option values to lower-case.\n"
+"\n"
+" Also, empty List parameters are converted to None, but the "
+"migration\n"
+" plugin doesn't like that - convert back to empty lists.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:399
+msgid ""
+"\n"
+" Migrate objects from DS to LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:425
msgid "Container for %(container)s not found"
msgstr ""
+#: ipalib/plugins/misc.py:20
+msgid ""
+"\n"
+"Misc plug-ins\n"
+msgstr ""
+
+#: ipalib/plugins/misc.py:36
+msgid "Show environment variables"
+msgstr ""
+
#: ipalib/plugins/misc.py:38
-#, python-format
msgid "%(count)d variables"
msgstr ""
+#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115
+msgid ""
+"retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
#: ipalib/plugins/misc.py:61
msgid "Total number of variables env (>= count)"
msgstr ""
@@ -1545,435 +4822,2391 @@ msgstr ""
msgid "Number of variables returned (<= total)"
msgstr ""
-#: ipalib/plugins/misc.py:109
-#, python-format
+#: ipalib/plugins/misc.py:106
+msgid "Show all loaded plugins"
+msgstr ""
+
+#: ipalib/plugins/misc.py:108
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/misc.py:116
+#: ipalib/plugins/misc.py:126
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:57
+#: ipalib/plugins/netgroup.py:20
+msgid ""
+"\n"
+"Netgroups\n"
+"\n"
+"A netgroup is a group used for permission checking. It can contain both\n"
+"user and host values.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new netgroup:\n"
+" ipa netgroup-add --desc=\"NFS admins\" admins\n"
+"\n"
+" Add members to the netgroup:\n"
+" ipa netgroup-add-member --users=tuser1,tuser2 admins\n"
+"\n"
+" Remove a member from the netgroup:\n"
+" ipa netgroup-remove-member --users=tuser2 admins\n"
+"\n"
+" Display information about a netgroup:\n"
+" ipa netgroup-show admins\n"
+"\n"
+" Delete a netgroup:\n"
+" ipa netgroup-del admins\n"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:59
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:63
-msgid "External host"
+#: ipalib/plugins/netgroup.py:67
+msgid ""
+"\n"
+" Netgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/netgroup.py:85
-msgid "Net Groups"
+#: ipalib/plugins/netgroup.py:98
+msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:90
+#: ipalib/plugins/netgroup.py:103
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:97
+#: ipalib/plugins/netgroup.py:110
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:101
+#: ipalib/plugins/netgroup.py:114
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:106
+#: ipalib/plugins/netgroup.py:119
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:84
-#, python-format
+#: ipalib/plugins/netgroup.py:140
+msgid ""
+"\n"
+" Add a new netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:144
+msgid "Added netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:153
+msgid ""
+"\n"
+" Delete a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:156
+msgid "Deleted netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:162
+msgid ""
+"\n"
+" Modify a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:166
+msgid "Modified netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:180
+msgid ""
+"\n"
+" Search for a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:185
+msgid "%(count)d netgroup matched"
+msgid_plural "%(count)d netgroups matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/netgroup.py:213
+msgid ""
+"\n"
+" Display information about a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:222
+msgid ""
+"\n"
+" Add members to a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:258
+msgid ""
+"\n"
+" Remove members from a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:19
+msgid ""
+"\n"
+"Set a user's password\n"
+"\n"
+"If someone other than a user changes that user's password (e.g., Helpdesk\n"
+"resets it) then the password will need to be changed the first time it\n"
+"is used. This is so the end-user is the only one who knows the password.\n"
+"\n"
+"The IPA password policy controls how often a password may be changed,\n"
+"what strength requirements exist, and the length of the password history.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" To reset your own password:\n"
+" ipa passwd\n"
+"\n"
+" To change another user's password:\n"
+" ipa passwd tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/passwd.py:46
+msgid ""
+"\n"
+" Set a user's password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:64
+msgid "Changed password for \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/passwd.py:67
+msgid ""
+"\n"
+" Execute the passwd operation.\n"
+"\n"
+" The dn should not be passed as a keyword argument as it is "
+"constructed\n"
+" by this method.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param principal: The login name or principal of the user\n"
+" :param password: the new password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:19
+msgid ""
+"\n"
+"Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of rights. A permission is\n"
+"a human-readable form of a 389-ds Access Control Rule, or instruction "
+"(ACI).\n"
+"A permission grants the right to perform a specific task such as adding a\n"
+"user, modifying a group, etc.\n"
+"\n"
+"A permission may not contain other permissions.\n"
+"\n"
+"* A permission grants access to read, write, add or delete.\n"
+"* A privilege combines similar permissions (for example all the permissions\n"
+" needed to add a user).\n"
+"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n"
+"\n"
+"A permission is made up of a number of different parts:\n"
+"\n"
+"1. The name of the permission.\n"
+"2. The target of the permission.\n"
+"3. The rights granted by the permission.\n"
+"\n"
+"Rights define what operations are allowed, and may be one or more\n"
+"of the following:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Read permission is granted for most attributes by default so the read\n"
+"permission is not expected to be used very often.\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"There are a number of allowed targets:\n"
+"1. type: a type of object (user, group, etc).\n"
+"2. memberof: a member of a group or hostgroup\n"
+"3. filter: an LDAP filter\n"
+"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n"
+" super-set of the \"type\" target.\n"
+"5. targetgroup: grant access to modify a specific group (such as granting\n"
+" the rights to manage group membership)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a permission that grants the creation of users:\n"
+" ipa permission-add --type=user --permissions=add \"Add Users\"\n"
+"\n"
+" Add a permission that grants the ability to manage group membership:\n"
+" ipa permission-add --attrs=member --permissions=write --type=group "
+"\"Manage Group Members\"\n"
+msgstr ""
+
+#: ipalib/plugins/permission.py:84
+msgid "Permission Type"
+msgstr ""
+
+#: ipalib/plugins/permission.py:89
+msgid ""
+"\n"
+" Permission object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:112
+msgid "Permission name"
+msgstr ""
+
+#: ipalib/plugins/permission.py:119
+msgid ""
+"Comma-separated list of permissions to grant (read, write, add, delete, all)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:132
+msgid ""
+"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:138
+msgid "Member of group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:139
+msgid "Target members of a group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:151
+msgid "Subtree to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:157
+msgid "User group to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:177
+msgid ""
+"\n"
+" Add a new permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:181
+msgid "Added permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:236
+msgid ""
+"\n"
+" Delete a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:240
+msgid "Deleted permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:256
+msgid ""
+"\n"
+" Modify a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:260
+msgid "Modified permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:352
+msgid ""
+"\n"
+" Search for permissions.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:356
+msgid "%(count)d permission matched"
+msgid_plural "%(count)d permissions matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/permission.py:405
+msgid ""
+"\n"
+" Display information about a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:428
+msgid ""
+"\n"
+" Add members to a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:437
+msgid ""
+"\n"
+" Remove members from a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:19
+msgid ""
+"\n"
+"Ping the remote IPA server\n"
+msgstr ""
+
+#: ipalib/plugins/ping.py:29
+msgid ""
+"\n"
+" ping a remote server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:37
+msgid ""
+"\n"
+" A possible enhancement would be to take an argument and echo it\n"
+" back but a fixed value works for now.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:19
+msgid ""
+"\n"
+"Kerberos pkinit options\n"
+"\n"
+"Enable or disable anonymous pkinit using the principal\n"
+"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n"
+"pkinit support.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Enable anonymous pkinit:\n"
+" ipa pkinit-anonymous enable\n"
+"\n"
+" Disable anonymous pkinit:\n"
+" ipa pkinit-anonymous disable\n"
+"\n"
+"For more information on anonymous pkinit see:\n"
+"\n"
+"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:46
+msgid ""
+"\n"
+" PKINIT Options\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:51
+msgid "PKINIT"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:56
+msgid ""
+"\n"
+" Accepts only Enable/Disable.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:67
+msgid ""
+"\n"
+" Enable or Disable Anonymous PKINIT\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:19
+msgid ""
+"\n"
+"Privileges\n"
+"\n"
+"A privilege combines permissions into a logical task. A permission provides\n"
+"the rights to do a single task. There are some IPA operations that require\n"
+"multiple permissions to succeed. A privilege is where permissions are\n"
+"combined in order to perform a specific task.\n"
+"\n"
+"For example, adding a user requires the following permissions:\n"
+" * Creating a new user entry\n"
+" * Resetting a user password\n"
+" * Adding the new user to the default IPA users group\n"
+"\n"
+"Combining these three low-level tasks into a higher level task in the\n"
+"form of a privilege named \"Add User\" makes it easier to manage Roles.\n"
+"\n"
+"A privilege may not contain other privileges.\n"
+"\n"
+"See role and permission for additional information.\n"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:45
+msgid ""
+"\n"
+" Privilege object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:65
+msgid "Privileges"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:70
+msgid "Privilege name"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:77
+msgid "Privilege description"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:85
+msgid ""
+"\n"
+" Add a new privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:89
+msgid "Added privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:95
+msgid ""
+"\n"
+" Delete a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:99
+msgid "Deleted privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:105
+msgid ""
+"\n"
+" Modify a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:109
+msgid "Modified privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:115
+msgid ""
+"\n"
+" Search for privileges.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:119
+msgid "%(count)d privilege matched"
+msgid_plural "%(count)d privileges matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/privilege.py:127
+msgid ""
+"\n"
+" Display information about a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:135
+msgid ""
+"\n"
+" Add members to a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:144
+msgid ""
+"\n"
+" Remove members from a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:153
+msgid ""
+"\n"
+" Add permissions to a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:169
+msgid "Number of permissions added"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:177
+msgid ""
+"\n"
+" Remove permissions from a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:195
+msgid "Number of permissions removed"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:20
+msgid ""
+"\n"
+"Password policy\n"
+"\n"
+"A password policy sets limitations on IPA passwords, including maximum\n"
+"lifetime, minimum lifetime, the number of passwords to save in\n"
+"history, the number of character classes required (for stronger passwords)\n"
+"and the minimum password length.\n"
+"\n"
+"By default there is a single, global policy for all users. You can also\n"
+"create a password policy to apply to a group. Each user is only subject\n"
+"to one password policy, either the group policy or the global policy. A\n"
+"group policy stands alone; it is not a super-set of the global policy plus\n"
+"custom settings.\n"
+"\n"
+"Each group password policy requires a unique priority setting. If a user\n"
+"is in multiple groups that have password policies, this priority determines\n"
+"which password policy is applied. A lower value indicates a higher priority\n"
+"policy.\n"
+"\n"
+"Group password policies are automatically removed when the groups they\n"
+"are associated with are removed.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Modify the global policy:\n"
+" ipa pwpolicy-mod --minlength=10\n"
+"\n"
+" Add a new group password policy:\n"
+" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --"
+"minlength=8 --priority=10 localadmins\n"
+"\n"
+" Display the global password policy:\n"
+" ipa pwpolicy-show\n"
+"\n"
+" Display a group password policy:\n"
+" ipa pwpolicy-show localadmins\n"
+"\n"
+" Display the policy that would be applied to a given user:\n"
+" ipa pwpolicy-show --user=tuser1\n"
+"\n"
+" Modify a group password policy:\n"
+" ipa pwpolicy-mod --minclasses=2 localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:72
+msgid ""
+"\n"
+" Class of Service object used for linking policies with groups\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:87
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:170
-msgid "Password Policy"
+#: ipalib/plugins/pwpolicy.py:172
+msgid ""
+"\n"
+" Password Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:201
+msgid "Max failures"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:202
+msgid "Consecutive failures before lockout"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:207
+msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:175
+#: ipalib/plugins/pwpolicy.py:208
+msgid "Period after which failure count will be reset (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:213
+msgid "Lockout duration"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:214
+msgid "Period for which lockout is enforced (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:224
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:176
+#: ipalib/plugins/pwpolicy.py:225
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:181
+#: ipalib/plugins/pwpolicy.py:230
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:182
+#: ipalib/plugins/pwpolicy.py:231
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:187
+#: ipalib/plugins/pwpolicy.py:236
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:188
+#: ipalib/plugins/pwpolicy.py:237
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:193
+#: ipalib/plugins/pwpolicy.py:242
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:194
+#: ipalib/plugins/pwpolicy.py:243
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:199
+#: ipalib/plugins/pwpolicy.py:248
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:200
+#: ipalib/plugins/pwpolicy.py:249
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:206
+#: ipalib/plugins/pwpolicy.py:255
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:256
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:212
+#: ipalib/plugins/pwpolicy.py:261
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:262
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:265
+#: ipalib/plugins/pwpolicy.py:294
+msgid ""
+"\n"
+" Ensure that the maximum lifetime is greater than the minimum.\n"
+" If there is no minimum lifetime set then don't return an error.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:314
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:330
+#: ipalib/plugins/pwpolicy.py:333
+msgid ""
+"\n"
+" Add a new group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:361
+msgid ""
+"\n"
+" Delete a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:380
+msgid ""
+"\n"
+" Modify a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:391
msgid "priority cannot be set on global policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:369
+#: ipalib/plugins/pwpolicy.py:423
+msgid ""
+"\n"
+" Display information about password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:428
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:370
+#: ipalib/plugins/pwpolicy.py:429
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/rolegroup.py:79
-msgid "Role Groups"
+#: ipalib/plugins/pwpolicy.py:452
+msgid ""
+"\n"
+" Search for group password policies.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:84
-msgid "Role-group name"
+#: ipalib/plugins/role.py:20
+msgid ""
+"\n"
+"Roles\n"
+"\n"
+"A role is used for fine-grained delegation. A permission grants the ability\n"
+"to perform given low-level tasks (add a user, modify a group, etc.). A\n"
+"privilege combines one or more permissions into a higher-level abstraction\n"
+"such as useradmin. A useradmin would be able to add, delete and modify "
+"users.\n"
+"\n"
+"Privileges are assigned to Roles.\n"
+"\n"
+"Users, groups, hosts and hostgroups may be members of a Role.\n"
+"\n"
+"Roles can not contain other roles.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new role:\n"
+" ipa role-add --desc=\"Junior-level admin\" junioradmin\n"
+"\n"
+" Add some privileges to this role:\n"
+" ipa role-add-privilege --privileges=addusers junioradmin\n"
+" ipa role-add-privilege --privileges=change_password junioradmin\n"
+" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n"
+"\n"
+" Add a group of users to this role:\n"
+" ipa group-add --desc=\"User admins\" useradmins\n"
+" ipa role-add-member --groups=useradmins junioradmin\n"
+"\n"
+" Display information about a role:\n"
+" ipa role-show junioradmin\n"
+"\n"
+" The result of this is that any users in the group 'useradmins' can\n"
+" add users, reset passwords or add a user to the default IPA user group.\n"
+msgstr ""
+
+#: ipalib/plugins/role.py:62
+msgid ""
+"\n"
+" Role object.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:91
+#: ipalib/plugins/role.py:81
+msgid "Role"
+msgstr ""
+
+#: ipalib/plugins/role.py:86
+msgid "Role name"
+msgstr ""
+
+#: ipalib/plugins/role.py:93
msgid "A description of this role-group"
msgstr ""
-#: ipalib/plugins/rolegroup.py:102
-msgid "Member of task-groups"
+#: ipalib/plugins/role.py:101
+msgid ""
+"\n"
+" Add a new role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:115
-#, python-format
-msgid "Added rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:105
+msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/rolegroup.py:125
-#, python-format
-msgid "Deleted rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:111
+msgid ""
+"\n"
+" Delete a role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:135
-#, python-format
-msgid "Modified rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:115
+msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/rolegroup.py:146
-#, python-format
-msgid "%(count)d rolegroup matched"
-msgid_plural "%(count)d rolegroups matched"
+#: ipalib/plugins/role.py:121
+msgid ""
+"\n"
+" Modify a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:125
+msgid "Modified role \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/role.py:131
+msgid ""
+"\n"
+" Search for roles.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:135
+msgid "%(count)d role matched"
+msgid_plural "%(count)d roles matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:198
+#: ipalib/plugins/role.py:143
+msgid ""
+"\n"
+" Display information about a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:151
+msgid ""
+"\n"
+" Add members to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:159
+msgid ""
+"\n"
+" Remove members from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:167
+msgid ""
+"\n"
+" Add privileges to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:183
+msgid "Number of privileges added"
+msgstr ""
+
+#: ipalib/plugins/role.py:191
+msgid ""
+"\n"
+" Remove privileges from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:207
+msgid "Number of privileges removed"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:19
+msgid ""
+"\n"
+"Self-service Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"A Self-service permission defines what an object can change in its own "
+"entry.\n"
+"\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a self-service rule to allow users to manage their address:\n"
+" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st "
+"\"Users manage their own address\"\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add telephoneNumber to the list:\n"
+" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber "
+"\"Users manage their own address\"\n"
+"\n"
+" Display our updated rule:\n"
+" ipa selfservice-show \"Users manage their own address\"\n"
+"\n"
+" Delete a rule:\n"
+" ipa selfservice-del \"Users manage their own address\"\n"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:56
+msgid ""
+"\n"
+" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a self-service ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:64
+msgid "Self-service permission '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:68
+msgid ""
+"\n"
+" Selfservice object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:75
+msgid "Self Service Permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
+msgid "Self-service name"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:114
+msgid ""
+"\n"
+" Add a new self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:118
+msgid "Added selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:137
+msgid ""
+"\n"
+" Delete a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:142
+msgid "Deleted selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:158
+msgid ""
+"\n"
+" Modify a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:162
+msgid "Modified selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:181
+msgid ""
+"\n"
+" Search for a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:185
+msgid "%(count)d selfservice matched"
+msgid_plural "%(count)d selfservices matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/selfservice.py:207
+msgid ""
+"\n"
+" Display information about a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:21
+msgid ""
+"\n"
+"Services\n"
+"\n"
+"A IPA service represents a service that runs on a host. The IPA service\n"
+"record can store a Kerberos principal, an SSL certificate, or both.\n"
+"\n"
+"An IPA service can be managed directly from a machine, provided that\n"
+"machine has been given the correct permission. This is true even for\n"
+"machines other than the one the service is associated with. For example,\n"
+"requesting an SSL certificate using the host service principal credentials\n"
+"of the host. To manage a service using host credentials you need to\n"
+"kinit as the host:\n"
+"\n"
+" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n"
+"\n"
+"Adding an IPA service allows the associated service to request an SSL\n"
+"certificate or keytab, but this is performed as a separate step; they\n"
+"are not produced as a result of adding the service.\n"
+"\n"
+"Only the public aspect of a certificate is stored in a service record;\n"
+"the private key is not stored.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new IPA service:\n"
+" ipa service-add HTTP/web.example.com\n"
+"\n"
+" Allow a host to manage an IPA service certificate:\n"
+" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n"
+" ipa role-add-member --hosts=web.example.com certadmin\n"
+"\n"
+" Delete an IPA service:\n"
+" ipa service-del HTTP/web.example.com\n"
+"\n"
+" Find all IPA services associated with a host:\n"
+" ipa service-find web.example.com\n"
+"\n"
+" Find all HTTP services:\n"
+" ipa service-find HTTP\n"
+"\n"
+" Disable the service Kerberos key and SSL certificate:\n"
+" ipa service-disable HTTP/web.example.com\n"
+"\n"
+" Request a certificate for an IPA service:\n"
+" ipa cert-request --principal=HTTP/web.example.com example.csr\n"
+"\n"
+" Generate and retrieve a keytab for an IPA service:\n"
+" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/"
+"httpd.keytab\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/service.py:162
+msgid ""
+"\n"
+" For now just verify that it is properly base64-encoded.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:175
+msgid ""
+"\n"
+" Set individual attributes from some values from a certificate.\n"
+"\n"
+" entry_attrs is a dict of an entry\n"
+"\n"
+" returns nothing\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:199
+msgid ""
+"\n"
+" Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:226
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:221
+#: ipalib/plugins/service.py:242
+msgid ""
+"\n"
+" Add a new IPA new service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:245
+msgid "Added service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/service.py:251
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:292
-#, python-format
+#: ipalib/plugins/service.py:284
+msgid ""
+"\n"
+" Delete an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:287
+msgid "Deleted service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/service.py:321
+msgid ""
+"\n"
+" Modify an existing IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:324
msgid "Modified service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:323
-#, python-format
+#: ipalib/plugins/service.py:356
+msgid ""
+"\n"
+" Search for IPA services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:359
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:409
-msgid "Service principal has no kerberos key"
+#: ipalib/plugins/service.py:394
+msgid ""
+"\n"
+" Display information about an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:432
+msgid ""
+"\n"
+" Add hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:442
+msgid ""
+"\n"
+" Remove hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:452
+msgid ""
+"\n"
+" Disable the Kerberos key and SSL certificate of a service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:456
+msgid "Disabled service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:19
+msgid ""
+"\n"
+"Sudo Commands\n"
+"\n"
+"Commands used as building blocks for sudo\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a new command\n"
+" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n"
+"\n"
+" Remove a command\n"
+" ipa sudocmd-del /usr/bin/less\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:46
+msgid ""
+"\n"
+" Sudo Command object.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmd.py:60
-msgid "SudoCmds"
+#: ipalib/plugins/sudocmd.py:64
+msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:65
+#: ipalib/plugins/sudocmd.py:69
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:72
+#: ipalib/plugins/sudocmd.py:75
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:99
-#, python-format
+#: ipalib/plugins/sudocmd.py:98
+msgid ""
+"\n"
+" Create new sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:102
msgid "Added sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:108
-#, python-format
+#: ipalib/plugins/sudocmd.py:107
+msgid ""
+"\n"
+" Delete sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:111
msgid "Deleted sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:117
-#, python-format
+#: ipalib/plugins/sudocmd.py:116
+msgid ""
+"\n"
+" Modify command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:120
msgid "Modified sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:127
-#, python-format
+#: ipalib/plugins/sudocmd.py:125
+msgid ""
+"\n"
+" Search for commands.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:129
msgid "%(count)d sudo command matched"
msgid_plural "%(count)d sudo command matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmdgroup.py:66 ipalib/plugins/sudocmdgroup.py:85
-#: ipalib/plugins/sudorule.py:81 ipalib/plugins/sudorule.py:85
-msgid "Sudo Command Groups"
+#: ipalib/plugins/sudocmd.py:136
+msgid ""
+"\n"
+" Display sudo command.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:71
+#: ipalib/plugins/sudocmdgroup.py:19
+msgid ""
+"\n"
+"Groups of Sudo commands\n"
+"\n"
+"Manage groups of Sudo commands.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new Sudo command group:\n"
+" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
+"\n"
+" Remove a Sudo command group:\n"
+" ipa sudocmdgroup-del admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim "
+"admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
+"\n"
+" Show a Sudo command group:\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:50
+msgid ""
+"\n"
+" Sudo Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:70
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:81
-msgid "Commands"
+#: ipalib/plugins/sudocmdgroup.py:93
+msgid ""
+"\n"
+" Create new sudo command group.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:98
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:97
msgid "Added sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:108
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:103
+msgid ""
+"\n"
+" Delete sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:107
msgid "Deleted sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:118
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:113
+msgid ""
+"\n"
+" Modify group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:117
msgid "Modified sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:129
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:123
+msgid ""
+"\n"
+" Search for sudo command groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:127
msgid "%(count)d sudo command group matched"
msgid_plural "%(count)d sudo command groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudorule.py:48
-msgid "SudoRule"
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid ""
+"\n"
+" Display sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:144
+msgid ""
+"\n"
+" Add members to sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:152
+msgid ""
+"\n"
+" Remove members from sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:19
+msgid ""
+"\n"
+"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
+"give certain users (or groups of users) the ability to run some (or all)\n"
+"commands as root or another user while providing an audit trail of the\n"
+"commands and their arguments.\n"
+"\n"
+"FreeIPA provides a designated binddn to use with Sudo located at:\n"
+"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
+"\n"
+"To enable the binddn run the following command to set the password:\n"
+"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -"
+"ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,"
+"dc=com\n"
+"\n"
+"For more information, see the FreeIPA Documentation to Sudo.\n"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:44
+msgid ""
+"\n"
+" Sudo Rule management\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:68
+msgid "Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:98
+msgid "Command category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:99
+msgid "Command category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:104
+msgid "Run As User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/sudorule.py:105
+msgid "Run As User category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:110
+msgid "Run As Group category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:111
+msgid "Run As Group category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:131
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:77
+#: ipalib/plugins/sudorule.py:135
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:109
-#, python-format
+#: ipalib/plugins/sudorule.py:147
+msgid "Run As User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:151
+msgid "Run As Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:156
+msgid "External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:157
+msgid "External User the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:161
+msgid "RunAs External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:162
+msgid "External User the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:166
+msgid "RunAs External Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:167
+msgid "External Group the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:175
+msgid ""
+"\n"
+" Create new Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "Added sudo rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/taskgroup.py:51
-msgid "Task Groups"
+#: ipalib/plugins/sudorule.py:189
+msgid ""
+"\n"
+" Delete Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:197
+msgid ""
+"\n"
+" Modify Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:56
-msgid "Task-group name"
+#: ipalib/plugins/sudorule.py:205
+msgid ""
+"\n"
+" Search for Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:63
-msgid "Task-group description"
+#: ipalib/plugins/sudorule.py:213
+msgid ""
+"\n"
+" Display Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:74
-msgid "Member role-groups"
+#: ipalib/plugins/sudorule.py:221
+msgid ""
+"\n"
+" Enable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:87
-#, python-format
-msgid "Added taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:247
+msgid ""
+"\n"
+" Disable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:97
-#, python-format
-msgid "Deleted taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
+msgid ""
+"\n"
+" Add commands and sudo command groups affected by Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:107
-#, python-format
-msgid "Modified taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
+msgid ""
+"\n"
+" Remove commands and sudo command groups affected by Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:118
-#, python-format
-msgid "%(count)d taskgroup matched"
-msgid_plural "%(count)d taskgroups matched"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/sudorule.py:313
+msgid ""
+"\n"
+" Add users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:349
+msgid ""
+"\n"
+" Remove users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:383
+msgid ""
+"\n"
+" Add hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:419
+msgid ""
+"\n"
+" Remove hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:453
+msgid ""
+"\n"
+" Add user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:489
+msgid ""
+"\n"
+" Remove user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:523
+msgid ""
+"\n"
+" Add group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:559
+msgid ""
+"\n"
+" Remove group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:593
+msgid ""
+"\n"
+" Add an option to the Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
+msgid "Sudo Option"
+msgstr ""
-#: ipalib/plugins/user.py:84
+#: ipalib/plugins/sudorule.py:635
+msgid ""
+"\n"
+" Remove an option from Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:20
+msgid ""
+"\n"
+"Users\n"
+"\n"
+"Manage user entries. All users are POSIX users.\n"
+"\n"
+"IPA supports a wide range of username formats, but you need to be aware of "
+"any\n"
+"restrictions that may apply to your particular environment. For example,\n"
+"usernames that start with a digit or usernames that exceed a certain length\n"
+"may cause problems for some UNIX systems.\n"
+"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n"
+"\n"
+"Disabling a user account prevents that user from obtaining new Kerberos\n"
+"credentials. It does not invalidate any credentials that have already\n"
+"been issued.\n"
+"\n"
+"Password management is not a part of this module. For more information\n"
+"about this topic please see: ipa help passwd\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1\n"
+"\n"
+" Find all users whose entries include the string \"Tim\":\n"
+" ipa user-find Tim\n"
+"\n"
+" Find all users with \"Tim\" as the first name:\n"
+" ipa user-find --first=Tim\n"
+"\n"
+" Disable a user account:\n"
+" ipa user-disable tuser1\n"
+"\n"
+" Enable a user account:\n"
+" ipa user-enable tuser1\n"
+"\n"
+" Delete a user:\n"
+" ipa user-del tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/user.py:79
+msgid ""
+"\n"
+" User object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:116
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:91
+#: ipalib/plugins/user.py:123
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:95
+#: ipalib/plugins/user.py:127
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:103
+#: ipalib/plugins/user.py:130
+msgid "Full name"
+msgstr ""
+
+#: ipalib/plugins/user.py:135
+msgid "Display name"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "Initials"
+msgstr ""
+
+#: ipalib/plugins/user.py:146
+msgid "Home directory"
+msgstr ""
+
+#: ipalib/plugins/user.py:150
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:109
+#: ipalib/plugins/user.py:156
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:114
+#: ipalib/plugins/user.py:161
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:120
+#: ipalib/plugins/user.py:168
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:124
-msgid "Password"
-msgstr ""
-
-#: ipalib/plugins/user.py:125
-msgid "Set the user password"
+#: ipalib/plugins/user.py:173
+msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:132
+#: ipalib/plugins/user.py:180
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:133
+#: ipalib/plugins/user.py:181
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:139
-msgid "Street address"
+#: ipalib/plugins/user.py:188
+msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:142
-msgid "Groups"
+#: ipalib/plugins/user.py:193
+msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:146
-msgid "Netgroups"
+#: ipalib/plugins/user.py:197
+msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:150
-msgid "Rolegroups"
+#: ipalib/plugins/user.py:201
+msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:154
-msgid "Taskgroups"
+#: ipalib/plugins/user.py:204
+msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:159
+#: ipalib/plugins/user.py:208
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:211
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:163
+#: ipalib/plugins/user.py:214
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:166
+#: ipalib/plugins/user.py:218
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:177
-#, python-format
+#: ipalib/plugins/user.py:222
+msgid "Org. Unit"
+msgstr ""
+
+#: ipalib/plugins/user.py:225
+msgid "Job Title"
+msgstr ""
+
+#: ipalib/plugins/user.py:228
+msgid "Manager"
+msgstr ""
+
+#: ipalib/plugins/user.py:231
+msgid "Car License"
+msgstr ""
+
+#: ipalib/plugins/user.py:234
+msgid "Account disabled"
+msgstr ""
+
+#: ipalib/plugins/user.py:258
+msgid ""
+"\n"
+" Given a userid verify the user's existence and return the dn.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:276
+msgid "manager %(manager)s not found"
+msgstr ""
+
+#: ipalib/plugins/user.py:281
+msgid ""
+"\n"
+" Convert a manager dn into a userid\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:295
+msgid ""
+"\n"
+" Add a new user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:298
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:226
-#, python-format
+#: ipalib/plugins/user.py:303
+msgid "Don't create user private group"
+msgstr ""
+
+#: ipalib/plugins/user.py:333
+msgid "can be at most %(len)d characters"
+msgstr ""
+
+#: ipalib/plugins/user.py:400
+msgid ""
+"\n"
+" Delete a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:404
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:240
-#, python-format
+#: ipalib/plugins/user.py:413
+msgid ""
+"\n"
+" Modify a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:417
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:252
+#: ipalib/plugins/user.py:437
+msgid ""
+"\n"
+" Search for users.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:444
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:253
+#: ipalib/plugins/user.py:445
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:263
-#, python-format
+#: ipalib/plugins/user.py:463
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:283
-#, python-format
+#: ipalib/plugins/user.py:471
+msgid ""
+"\n"
+" Display information about a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:484
+msgid ""
+"\n"
+" Disable a user account.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:489
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:309
-#, python-format
+#: ipalib/plugins/user.py:507
+msgid ""
+"\n"
+" Enable a user account.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:512
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipaserver/install/certs.py:599 ipaserver/plugins/dogtag.py:1313
-#: ipaserver/plugins/dogtag.py:1398 ipaserver/plugins/dogtag.py:1463
-#: ipaserver/plugins/dogtag.py:1543 ipaserver/plugins/dogtag.py:1602
+#: ipalib/plugins/user.py:529
+msgid ""
+"\n"
+" Unlock a user account\n"
+"\n"
+" An account may become locked if the password is entered incorrectly too\n"
+" many times within a specific time period as controlled by password\n"
+" policy. A locked account is a temporary condition and may be unlocked "
+"by\n"
+" an administrator.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:538
+msgid "Unlocked account \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/virtual.py:20
+msgid ""
+"\n"
+"Base classes for non-LDAP backend plugins.\n"
+msgstr ""
+
+#: ipalib/plugins/virtual.py:28
+msgid ""
+"\n"
+" A command that doesn't use the LDAP backend but wants to use the\n"
+" LDAP access control system to make authorization decisions.\n"
+"\n"
+" The class variable operation is the commonName attribute of the\n"
+" entry to be tested against.\n"
+"\n"
+" In advance, you need to create an entry of the form:\n"
+" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
+"\n"
+" Ex.\n"
+" cn=request certificate, cn=virtual operations,cn=etc, dc=example, "
+"dc=com\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/virtual.py:44
+msgid ""
+"\n"
+" Perform an LDAP query to determine authorization.\n"
+"\n"
+" This should be executed before any actual work is done.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/xmlclient.py:21
+msgid ""
+"\n"
+"XML-RPC client plugin.\n"
+msgstr ""
+
+#: ipalib/cli.py:581
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:590
+msgid "Cancelled."
+msgstr ""
+
+#: ipalib/cli.py:819
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1117
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:300
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:318
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:334
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:356
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:372
+#, python-format
+msgid "unknown command %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:389 ipalib/errors.py:414
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:405
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:423
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:439
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:465
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:482
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:498
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:514
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:530
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:546
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:562
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:578
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:597
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:641
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:661
+#, python-format
+msgid "command %(name)r takes at most %(count)d argument"
+msgid_plural "command %(name)r takes at most %(count)d arguments"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/errors.py:691
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:707
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:723 ipalib/errors.py:739
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:755
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:764
+msgid "Passwords do not match"
+msgstr ""
+
+#: ipalib/errors.py:773
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:782
+msgid "Client is not configured. Run ipa-client-install."
+msgstr ""
+
+#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
+#: ipalib/errors.py:1424 ipalib/errors.py:1441
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:826
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:842
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:858
+#, python-format
+msgid ""
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:874
+msgid ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr ""
+
+#: ipalib/errors.py:890
+msgid "This command requires root access"
+msgstr ""
+
+#: ipalib/errors.py:906
+msgid "This is already a posix group"
+msgstr ""
+
+#: ipalib/errors.py:922
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:938
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:954
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:970
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:986
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1002
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1018
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1034
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1066
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1082
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1098
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1113
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1128
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1160
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1176
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1192
+#, python-format
+msgid ""
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1216
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1240
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1256
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1272
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1288
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1303
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1318
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1334
+#, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr ""
+
+#: ipalib/errors.py:1350
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1366
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1391
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1407
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1458
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1474
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:398
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:850
+msgid ""
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:856
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:985
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:296
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:299
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:901
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1002
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1054
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1064
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1074
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1097
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1107
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1174
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1192
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1208
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1218
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1228
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1246
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1277
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1287
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1297
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1315
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1355
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/util.py:200
+#, python-format
+msgid "Permission denied: %(file)s"
+msgstr ""
+
+#: ipalib/x509.py:174
+#, python-format
+msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
+msgstr ""
+
+#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
+#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
+#: ipaserver/plugins/dogtag.py:1600
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -1994,27 +7227,27 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
-#: ipaserver/plugins/selfsign.py:98
+#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
"Request subject \"%(request_subject)s\" does not match the form "
"\"%(subject_base)s\""
msgstr ""
-#: ipaserver/plugins/selfsign.py:103
+#: ipaserver/plugins/selfsign.py:104
#, python-format
msgid "unable to decode csr: %s"
msgstr ""
-#: ipaserver/plugins/selfsign.py:124 ipaserver/plugins/selfsign.py:139
+#: ipaserver/plugins/selfsign.py:125 ipaserver/plugins/selfsign.py:140
msgid "file operation"
msgstr ""
-#: ipaserver/plugins/selfsign.py:153
+#: ipaserver/plugins/selfsign.py:154
msgid "cannot obtain next serial number"
msgstr ""
-#: ipaserver/plugins/selfsign.py:188
+#: ipaserver/plugins/selfsign.py:189
msgid "certutil failure"
msgstr ""
@@ -2028,543 +7261,573 @@ msgstr ""
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:75
+#: ipa-client/config.c:68
+#, c-format
+msgid "out of memory\n"
+msgstr ""
+
+#: ipa-client/config.c:79
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:138 ipa-client/ipa-getkeytab.c:838
+#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
+#: ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:146
+#: ipa-client/ipa-getkeytab.c:155
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:164 ipa-client/ipa-getkeytab.c:179
+#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:194
+#: ipa-client/ipa-getkeytab.c:203
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:209
+#: ipa-client/ipa-getkeytab.c:218
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:235
+#: ipa-client/ipa-getkeytab.c:245
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:297
+#: ipa-client/ipa-getkeytab.c:307
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:310 ipa-client/ipa-getkeytab.c:327
-#: ipa-client/ipa-getkeytab.c:335 ipa-client/ipa-getkeytab.c:372
+#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
+#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:317 ipa-client/ipa-getkeytab.c:350
+#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
+#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
+#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
+#: ipa-client/ipa-join.c:819
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:361
+#: ipa-client/ipa-getkeytab.c:371
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:481
+#: ipa-client/ipa-getkeytab.c:492
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:496
+#: ipa-client/ipa-getkeytab.c:507
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:534
+#: ipa-client/ipa-getkeytab.c:545
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:541
+#: ipa-client/ipa-getkeytab.c:552
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:565
+#: ipa-client/ipa-getkeytab.c:576
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:572
+#: ipa-client/ipa-getkeytab.c:583
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:579
+#: ipa-client/ipa-getkeytab.c:596
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:589
+#: ipa-client/ipa-getkeytab.c:606
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:605 ipa-client/ipa-getkeytab.c:618
-#: ipa-client/ipa-getkeytab.c:625 ipa-client/ipa-getkeytab.c:632
+#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
+#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:638 ipa-client/ipa-getkeytab.c:648
+#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655
+#: ipa-client/ipa-getkeytab.c:672
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:674
+#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:715
+#: ipa-client/ipa-getkeytab.c:736
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:721
+#: ipa-client/ipa-getkeytab.c:742
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781
+#: ipa-client/ipa-getkeytab.c:778
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782
+#: ipa-client/ipa-getkeytab.c:779
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:189
+#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:787
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:788
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:790
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:794
+#: ipa-client/ipa-getkeytab.c:791
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:796
+#: ipa-client/ipa-getkeytab.c:793
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:825 ipa-client/ipa-rmkeytab.c:207
-#, c-format
-msgid "Kerberos context initialization failed\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:837
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:845
+#: ipa-client/ipa-getkeytab.c:841
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:864
+#: ipa-client/ipa-getkeytab.c:860
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:877
+#: ipa-client/ipa-getkeytab.c:873
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. -P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:889
+#: ipa-client/ipa-getkeytab.c:885
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:897
+#: ipa-client/ipa-getkeytab.c:893
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:905
+#: ipa-client/ipa-getkeytab.c:901
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:913
+#: ipa-client/ipa-getkeytab.c:909
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:920
+#: ipa-client/ipa-getkeytab.c:916
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:939
+#: ipa-client/ipa-getkeytab.c:935
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:948
+#: ipa-client/ipa-getkeytab.c:944
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:954
+#: ipa-client/ipa-getkeytab.c:950
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:67
+#: ipa-client/ipa-join.c:65
#, c-format
msgid "No permission to join this host to the IPA domain.\n"
msgstr ""
-#: ipa-client/ipa-join.c:104 ipa-client/ipa-join.c:116
+#: ipa-client/ipa-join.c:94 ipa-client/ipa-join.c:106
#, c-format
msgid "No write permissions on keytab file '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:121
+#: ipa-client/ipa-join.c:111
#, c-format
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:200
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#, c-format
+msgid "Out of memory!"
+msgstr ""
+
+#: ipa-client/ipa-join.c:204
+#, c-format
+msgid "Unable to initialize connection to ldap server: %s"
+msgstr ""
+
+#: ipa-client/ipa-join.c:210
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:206
+#: ipa-client/ipa-join.c:216
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:236
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:249
+#: ipa-client/ipa-join.c:269
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:259 ipa-client/ipa-join.c:311
+#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:302
+#: ipa-client/ipa-join.c:322
#, c-format
msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:368
+#: ipa-client/ipa-join.c:390
#, c-format
msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:377
+#: ipa-client/ipa-join.c:399
#, c-format
msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:385
+#: ipa-client/ipa-join.c:407
#, c-format
msgid "Unable to make an LDAP connection to %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:394
+#: ipa-client/ipa-join.c:432
#, c-format
msgid "Searching with %s in %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:400
+#: ipa-client/ipa-join.c:438
#, c-format
msgid "ldap_search_ext_s: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:408
+#: ipa-client/ipa-join.c:446
#, c-format
msgid "Unable to find host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:415
+#: ipa-client/ipa-join.c:453
#, c-format
msgid "Unable to get binddn for host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:428
+#: ipa-client/ipa-join.c:466
#, c-format
msgid "Host already has principal, trying bind anyway\n"
msgstr ""
-#: ipa-client/ipa-join.c:442 ipa-client/ipa-join.c:579
+#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:484
#, c-format
msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:457
+#: ipa-client/ipa-join.c:495
#, c-format
msgid "principal not found in host entry\n"
msgstr ""
-#: ipa-client/ipa-join.c:564
+#: ipa-client/ipa-join.c:618
#, c-format
msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:646 ipa-client/ipa-join.c:823
+#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:662 ipa-client/ipa-join.c:838
+#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:671 ipa-client/ipa-join.c:848
+#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:679
+#: ipa-client/ipa-join.c:732
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:689
+#: ipa-client/ipa-join.c:741
+#, c-format
+msgid "Error getting default Kerberos realm: %s.\n"
+msgstr ""
+
+#: ipa-client/ipa-join.c:759
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:707
+#: ipa-client/ipa-join.c:777
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:718
+#: ipa-client/ipa-join.c:788
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:726
+#: ipa-client/ipa-join.c:796
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:769
+#: ipa-client/ipa-join.c:846
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:772
+#: ipa-client/ipa-join.c:849
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:854
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:855
+#: ipa-client/ipa-join.c:932
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:863
+#: ipa-client/ipa-join.c:940
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not "
"provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:877
+#: ipa-client/ipa-join.c:954
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:906
+#: ipa-client/ipa-join.c:983
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:909
+#: ipa-client/ipa-join.c:986
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:912
+#: ipa-client/ipa-join.c:989
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:924
+#: ipa-client/ipa-join.c:1001
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:930
+#: ipa-client/ipa-join.c:1007
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "Print the raw XML-RPC output"
+#: ipa-client/ipa-join.c:1042
+msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "XML-RPC debugging Output"
+#: ipa-client/ipa-join.c:1044
+msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:967
-msgid "Unenroll this host"
-msgstr ""
-
-#: ipa-client/ipa-join.c:967
+#: ipa-client/ipa-join.c:1046
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Use this hostname instead of the node name"
+#: ipa-client/ipa-join.c:1048
+msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Host Name"
+#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:971
+#: ipa-client/ipa-join.c:1050
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:971
-msgid "IPA Server Name"
+#: ipa-client/ipa-join.c:1052
+msgid "Specifies where to store keytab information."
+msgstr ""
+
+#: ipa-client/ipa-join.c:1052
+msgid "filename"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1054
+msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:44
+#: ipa-client/ipa-join.c:1054
+msgid "password"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:46
+#: ipa-client/ipa-rmkeytab.c:45
#, c-format
msgid "krb5_parse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:56
+#: ipa-client/ipa-rmkeytab.c:55
#, c-format
msgid "Removing principal %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:69
+#: ipa-client/ipa-rmkeytab.c:68
#, c-format
msgid "Failed to open keytab\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:73
+#: ipa-client/ipa-rmkeytab.c:72
#, c-format
msgid "principal not found\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:75
+#: ipa-client/ipa-rmkeytab.c:74
#, c-format
msgid "krb5_kt_get_entry %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:83
+#: ipa-client/ipa-rmkeytab.c:82
#, c-format
msgid "Unable to remove entry\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:85
+#: ipa-client/ipa-rmkeytab.c:84
#, c-format
msgid "kvno %d\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:86
+#: ipa-client/ipa-rmkeytab.c:85
#, c-format
msgid "krb5_kt_remove_entry %d: %s\n"
msgstr ""
@@ -2579,33 +7842,38 @@ msgstr ""
msgid "krb5_unparse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:143
+#, c-format
+msgid "realm not found\n"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Print debugging information"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Debugging output"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Remove all principals in this realm"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Realm name"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:241
+#: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237
#, c-format
-msgid "Failed to open keytab '%s'\n"
+msgid "Failed to open keytab '%s': %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:255
+#: ipa-client/ipa-rmkeytab.c:253
#, c-format
msgid "Closing keytab failed\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:257
+#: ipa-client/ipa-rmkeytab.c:255
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
diff --git a/install/po/he.po b/install/po/he.po
index 525b9f646..b9f44e5b6 100644
--- a/install/po/he.po
+++ b/install/po/he.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: ipa\n"
"Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/"
"newticket\n"
-"POT-Creation-Date: 2010-10-13 14:22-0400\n"
+"POT-Creation-Date: 2011-06-06 13:27-0400\n"
"PO-Revision-Date: 2010-09-27 10:25-0400\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -18,1507 +18,4745 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ipalib/cli.py:507
-#, python-format
-msgid "Enter %(label)s again to verify: "
+#: ipalib/plugins/__init__.py:20
+msgid ""
+"\n"
+"Sub-package containing all core plugins.\n"
msgstr ""
-#: ipalib/cli.py:511 ipa-client/ipa-getkeytab.c:730
-#, c-format
-msgid "Passwords do not match!"
+#: ipalib/plugins/aci.py:20
+msgid ""
+"\n"
+"Directory Server Access Control Instructions (ACIs)\n"
+"\n"
+"ACIs are used to allow or deny access to information. This module is\n"
+"currently designed to allow, not deny, access.\n"
+"\n"
+"The aci commands are designed to grant permissions that allow updating\n"
+"existing entries or adding or deleting new ones. The goal of the ACIs\n"
+"that ship with IPA is to provide a set of low-level permissions that\n"
+"grant access to special groups called taskgroups. These low-level\n"
+"permissions can be combined into roles that grant broader access. These\n"
+"roles are another type of group, roles.\n"
+"\n"
+"For example, if you have taskgroups that allow adding and modifying users "
+"you\n"
+"could create a role, useradmin. You would assign users to the useradmin\n"
+"role to allow them to do the operations defined by the taskgroups.\n"
+"\n"
+"You can create ACIs that delegate permission so users in group A can write\n"
+"attributes on group B.\n"
+"\n"
+"The type option is a map that applies to all entries in the users, groups "
+"or\n"
+"host location. It is primarily designed to be used when granting add\n"
+"permissions (to write new entries).\n"
+"\n"
+"An ACI consists of three parts:\n"
+"1. target\n"
+"2. permissions\n"
+"3. bind rules\n"
+"\n"
+"The target is a set of rules that define which LDAP objects are being\n"
+"targeted. This can include a list of attributes, an area of that LDAP\n"
+"tree or an LDAP filter.\n"
+"\n"
+"The targets include:\n"
+"- attrs: list of attributes affected\n"
+"- type: an object type (user, group, host, service, etc)\n"
+"- memberof: members of a group\n"
+"- targetgroup: grant access to modify a specific group. This is primarily\n"
+" designed to enable users to add or remove members of a specific group.\n"
+"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
+"- subtree: Used to apply a rule across an entire set of objects. For "
+"example,\n"
+" to allow adding users you need to grant \"add\" permission to the subtree\n"
+" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
+" is a fail-safe for objects that may not be covered by the type option.\n"
+"\n"
+"The permissions define what the the ACI is allowed to do, and are one or\n"
+"more of:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
+"allows this to be any valid LDAP entry but we encourage the use of\n"
+"taskgroups so that the rights can be easily shared through roles.\n"
+"\n"
+"For a more thorough description of access controls see\n"
+"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control."
+"html\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
+"demonstrate how the various options work but this is done via the "
+"permission\n"
+"command-line now (see last example).\n"
+"\n"
+" Add an ACI so that the group \"secretaries\" can update the address on any "
+"user:\n"
+" ipa group-add --desc=\"Office secretaries\" secretaries\n"
+" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries "
+"--permissions=write --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Show the new ACI:\n"
+" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Add an ACI that allows members of the \"addusers\" permission to add new "
+"users:\n"
+" ipa aci-add --type=user --permission=addusers --permissions=add --"
+"prefix=none \"Add new users\"\n"
+"\n"
+" Add an ACI that allows members of the editors manage members of the admins "
+"group:\n"
+" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --"
+"group=editors --prefix=none \"Editors manage admins\"\n"
+"\n"
+" Add an ACI that allows members of the admin group to manage the street and "
+"zip code of those in the editors group:\n"
+" ipa aci-add --permissions=write --memberof=editors --group=admins --"
+"attrs=street,postalcode --prefix=none \"admins edit the address of editors"
+"\"\n"
+"\n"
+" Add an ACI that allows the admins group manage the street and zipcode of "
+"those who work for the boss:\n"
+" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode "
+"--filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --"
+"prefix=none \"Edit the address of those who work for the boss\"\n"
+"\n"
+" Add an entirely new kind of record to IPA that isn't covered by any of the "
+"--type options, creating a permission:\n"
+" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,"
+"cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
+"\n"
+"\n"
+"The show command shows the raw 389-ds ACI.\n"
+"\n"
+"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
+"must include all existing attributes as well. When doing an aci-mod the\n"
+"targetattr REPLACES the current attributes, it does not add to them.\n"
+"\n"
msgstr ""
-#: ipalib/cli.py:516
-msgid "Cancelled."
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
-#: ipalib/errors.py:297
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+#: ipalib/plugins/aci.py:172
+msgid ""
+"\n"
+" Given a name and a prefix construct an ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:315
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
+#: ipalib/plugins/aci.py:181
+msgid ""
+"\n"
+" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
+" and the actual ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:331
-msgid "an internal error has occurred"
+#: ipalib/plugins/aci.py:193
+msgid ""
+"\n"
+" Pull the group name out of a memberOf filter\n"
+" "
msgstr ""
-#: ipalib/errors.py:353
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
+#: ipalib/plugins/aci.py:204
+msgid ""
+"\n"
+" Given a name and a set of keywords construct an ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:369
-#, python-format
-msgid "unknown command %(name)r"
+#: ipalib/plugins/aci.py:215
+msgid "type, filter, subtree and targetgroup are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:386 ipalib/errors.py:411
-#, python-format
-msgid "error on server %(server)r: %(error)s"
+#: ipalib/plugins/aci.py:218
+msgid "ACI prefix is required"
msgstr ""
-#: ipalib/errors.py:402
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+#: ipalib/plugins/aci.py:221
+msgid ""
+"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
+"required"
msgstr ""
-#: ipalib/errors.py:420
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
+#: ipalib/plugins/aci.py:224
+msgid "filter and memberof are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:448
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
+#: ipalib/plugins/aci.py:230
+msgid "group, permission and self are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:465
-msgid "did not receive Kerberos credentials"
+#: ipalib/plugins/aci.py:232
+msgid "One of group, permission or self is required"
msgstr ""
-#: ipalib/errors.py:481
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
+#: ipalib/plugins/aci.py:251
+msgid "Group '%s' does not exist"
msgstr ""
-#: ipalib/errors.py:497
-msgid "No credentials cache found"
+#: ipalib/plugins/aci.py:273
+msgid "empty filter"
msgstr ""
-#: ipalib/errors.py:513
-msgid "Ticket expired"
+#: ipalib/plugins/aci.py:294
+msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/errors.py:529
-msgid "Credentials cache permissions incorrect"
+#: ipalib/plugins/aci.py:299
+msgid ""
+"Convert an ACI into its equivalent keywords.\n"
+"\n"
+" This is used for the modify operation so we can merge the\n"
+" incoming kw and existing ACI and pass the result to\n"
+" _make_aci().\n"
+" "
msgstr ""
-#: ipalib/errors.py:545
-msgid "Bad format in credentials cache"
+#: ipalib/plugins/aci.py:379
+msgid "ACI with name \"%s\" not found"
msgstr ""
-#: ipalib/errors.py:561
-msgid "Cannot resolve KDC for requested realm"
+#: ipalib/plugins/aci.py:400
+msgid "ACI prefix"
msgstr ""
-#: ipalib/errors.py:580
-#, python-format
-msgid "Insufficient access: %(info)s"
+#: ipalib/plugins/aci.py:401
+msgid ""
+"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
+"none)"
msgstr ""
-#: ipalib/errors.py:624
-#, python-format
-msgid "command %(name)r takes no arguments"
+#: ipalib/plugins/aci.py:407
+msgid ""
+"\n"
+" ACI object.\n"
+" "
msgstr ""
-#: ipalib/errors.py:644
-#, python-format
-msgid "command %(name)r takes at most %(count)d argument"
-msgid_plural "command %(name)r takes at most %(count)d arguments"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/aci.py:412
+msgid "ACIs"
+msgstr ""
-#: ipalib/errors.py:674
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
+#: ipalib/plugins/aci.py:417
+msgid "ACI name"
msgstr ""
-#: ipalib/errors.py:690
-#, python-format
-msgid "%(name)r is required"
+#: ipalib/plugins/aci.py:422
+msgid "Permission"
msgstr ""
-#: ipalib/errors.py:706 ipalib/errors.py:722
-#, python-format
-msgid "invalid %(name)r: %(error)s"
+#: ipalib/plugins/aci.py:423
+msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/errors.py:738
-#, python-format
-msgid "api has no such namespace: %(name)r"
+#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+msgid "User group"
msgstr ""
-#: ipalib/errors.py:747
-msgid "Passwords do not match"
+#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/errors.py:755
-msgid "Command not implemented"
+#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
+#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
+#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+msgid "Permissions"
msgstr ""
-#: ipalib/errors.py:783 ipalib/errors.py:1023 ipalib/errors.py:1254
-#, python-format
-msgid "%(reason)s"
+#: ipalib/plugins/aci.py:433
+msgid ""
+"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/errors.py:799
-msgid "This entry already exists"
+#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
+#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+msgid "Attributes"
msgstr ""
-#: ipalib/errors.py:815
-msgid "You must enroll a host in order to create a host service"
+#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
+#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/errors.py:831
-#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
+#: ipalib/plugins/permission.py:131
+msgid "Type"
msgstr ""
-#: ipalib/errors.py:847
-msgid ""
-"The realm for the principal does not match the realm for this IPA server"
+#: ipalib/plugins/aci.py:445
+msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/errors.py:863
-msgid "This command requires root access"
+#: ipalib/plugins/aci.py:450
+msgid "Member of"
msgstr ""
-#: ipalib/errors.py:879
-msgid "This is already a posix group"
+#: ipalib/plugins/aci.py:451
+msgid "Member of a group"
msgstr ""
-#: ipalib/errors.py:895
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
+#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
+#: ipalib/plugins/permission.py:144
+msgid "Filter"
msgstr ""
-#: ipalib/errors.py:911
-msgid "This entry is already unlocked"
+#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/errors.py:927
-msgid "This entry is already locked"
+#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+msgid "Subtree"
msgstr ""
-#: ipalib/errors.py:943
-msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
+#: ipalib/plugins/aci.py:461
+msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/errors.py:959
-msgid "This entry is not a member of the group"
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+msgid "Target group"
msgstr ""
-#: ipalib/errors.py:975
-msgid "A group may not be a member of itself"
+#: ipalib/plugins/aci.py:466
+msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/errors.py:991
-msgid "This entry is already a member of the group"
+#: ipalib/plugins/aci.py:470
+msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/errors.py:1007
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
+#: ipalib/plugins/aci.py:471
+msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/errors.py:1039
-msgid "A group may not be added as a member of itself"
+#: ipalib/plugins/aci.py:478
+msgid ""
+"\n"
+" Create new ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1055
-msgid "The default users group cannot be removed"
+#: ipalib/plugins/aci.py:482
+msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1071
-msgid "Host does not have corresponding DNS A record"
+#: ipalib/plugins/aci.py:487
+msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/errors.py:1086
-msgid "Deleting a managed group is not allowed. It must be detached first."
+#: ipalib/plugins/aci.py:493
+msgid ""
+"\n"
+" Execute the aci-create operation.\n"
+"\n"
+" Returns the entry as it will be created in LDAP.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: Keyword arguments for the other LDAP attributes.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1109
-#, python-format
-msgid "no command nor help topic %(topic)r"
+#: ipalib/plugins/aci.py:533
+msgid ""
+"\n"
+" Delete ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1133
-msgid "change collided with another change"
+#: ipalib/plugins/aci.py:538
+msgid "Deleted ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1149
-msgid "no modifications to be performed"
+#: ipalib/plugins/aci.py:543
+msgid ""
+"\n"
+" Execute the aci-delete operation.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/errors.py:1165
-#, python-format
-msgid "%(desc)s:%(info)s"
+#: ipalib/plugins/aci.py:576
+msgid ""
+"\n"
+" Modify ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1181
-msgid "limits exceeded for this query"
+#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
+#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
+#: ipalib/plugins/selfservice.py:212
+msgid "ACI"
msgstr ""
-#: ipalib/errors.py:1196
-#, python-format
-msgid "%(info)s"
+#: ipalib/plugins/aci.py:588
+msgid "Modified ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1221
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
+#: ipalib/plugins/aci.py:633
+msgid ""
+"\n"
+" Search for ACIs.\n"
+"\n"
+" Returns a list of ACIs\n"
+"\n"
+" EXAMPLES:\n"
+"\n"
+" To find all ACIs that apply directly to members of the group ipausers:\n"
+" ipa aci-find --memberof=ipausers\n"
+"\n"
+" To find all ACIs that grant add access:\n"
+" ipa aci-find --permissions=add\n"
+"\n"
+" Note that the find command only looks for the given text in the set of\n"
+" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
+" For example, searching on memberof=ipausers will find all ACIs that\n"
+" have ipausers as a memberof. There may be other ACIs that apply to\n"
+" members of that group indirectly.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:653
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/aci.py:823
+msgid ""
+"\n"
+" Display a single ACI given an ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1237
-#, python-format
-msgid "Certificate format error: %(error)s"
+#: ipalib/plugins/aci.py:837
+msgid ""
+"\n"
+" Execute the aci-show operation.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param uid: The login name of the user to retrieve.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/frontend.py:380
-msgid "Results are truncated, try a more specific search"
+#: ipalib/plugins/aci.py:865
+msgid ""
+"\n"
+" Rename an ACI.\n"
+" "
msgstr ""
-#: ipalib/frontend.py:797 ipalib/plugins/misc.py:47
-msgid "retrieve all attributes"
+#: ipalib/plugins/aci.py:878
+msgid "New ACI name"
msgstr ""
-#: ipalib/frontend.py:803
-msgid "print entries as stored on the server"
+#: ipalib/plugins/aci.py:882
+msgid "Renamed ACI to \"%(value)s\""
msgstr ""
-#: ipalib/frontend.py:940
-msgid "Forward to server instead of running locally"
+#: ipalib/plugins/automount.py:20
+msgid ""
+"\n"
+"Automount\n"
+"\n"
+"Stores automount(8) configuration for autofs(8) in IPA.\n"
+"\n"
+"The base of an automount configuration is the configuration file auto."
+"master.\n"
+"This is also the base location in IPA. Multiple auto.master configurations\n"
+"can be stored in separate locations. A location is implementation-specific\n"
+"with the default being a location named 'default'. For example, you can "
+"have\n"
+"locations by geographic region, by floor, by type, etc.\n"
+"\n"
+"Automount has three basic object types: locations, maps and keys.\n"
+"\n"
+"A location defines a set of maps anchored in auto.master. This allows you\n"
+"to store multiple automount configurations. A location in itself isn't\n"
+"very interesting, it is just a point to start a new automount map.\n"
+"\n"
+"A map is roughly equivalent to a discrete automount file and provides\n"
+"storage for keys.\n"
+"\n"
+"A key is a mount point associated with a map.\n"
+"\n"
+"When a new location is created, two maps are automatically created for\n"
+"it: auto.master and auto.direct. auto.master is the root map for all\n"
+"automount maps for the location. auto.direct is the default map for\n"
+"direct mounts and is mounted on /-.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"Locations:\n"
+"\n"
+" Create a named location, \"Baltimore\":\n"
+" ipa automountlocation-add baltimore\n"
+"\n"
+" Display the new location:\n"
+" ipa automountlocation-show baltimore\n"
+"\n"
+" Find available locations:\n"
+" ipa automountlocation-find\n"
+"\n"
+" Remove a named automount location:\n"
+" ipa automountlocation-del baltimore\n"
+"\n"
+" Show what the automount maps would look like if they were in the "
+"filesystem:\n"
+" ipa automountlocation-tofiles baltimore\n"
+"\n"
+" Import an existing configuration into a location:\n"
+" ipa automountlocation-import baltimore /etc/auto.master\n"
+"\n"
+" The import will fail if any duplicate entries are found. For\n"
+" continuous operation where errors are ignored, use the --continue\n"
+" option.\n"
+"\n"
+"Maps:\n"
+"\n"
+" Create a new map, \"auto.share\":\n"
+" ipa automountmap-add baltimore auto.share\n"
+"\n"
+" Display the new map:\n"
+" ipa automountmap-show baltimore auto.share\n"
+"\n"
+" Find maps in the location baltimore:\n"
+" ipa automountmap-find baltimore\n"
+"\n"
+" Remove the auto.share map:\n"
+" ipa automountmap-del baltimore auto.share\n"
+"\n"
+"Keys:\n"
+"\n"
+" Create a new key for the auto.share map in location baltimore. This ties\n"
+" the map we previously created to auto.master:\n"
+" ipa automountkey-add baltimore auto.master --key=/share --info=auto."
+"share\n"
+"\n"
+" Create a new key for our auto.share map, an NFS mount for man pages:\n"
+" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,"
+"rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n"
+"\n"
+" Find all keys for the auto.share map:\n"
+" ipa automountkey-find baltimore auto.share\n"
+"\n"
+" Find all direct automount keys:\n"
+" ipa automountkey-find baltimore --key=/-\n"
+"\n"
+" Remove the man key from the auto.share map:\n"
+" ipa automountkey-del baltimore auto.share --key=man\n"
+msgstr ""
+
+#: ipalib/plugins/automount.py:182
+msgid ""
+"\n"
+" Location container for automount maps.\n"
+" "
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
+#: ipalib/plugins/automount.py:190
+msgid "Automount Locations"
msgstr ""
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
+#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+msgid "Location"
msgstr ""
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
+#: ipalib/plugins/automount.py:197
+msgid "Automount location name."
msgstr ""
-#: ipalib/parameters.py:295
-msgid "incorrect type"
+#: ipalib/plugins/automount.py:206
+msgid ""
+"\n"
+" Create a new automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:298
-msgid "Only one value is allowed"
+#: ipalib/plugins/automount.py:221
+msgid ""
+"\n"
+" Delete an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:877
-msgid "must be True or False"
+#: ipalib/plugins/automount.py:229
+msgid ""
+"\n"
+" Display an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:978
-msgid "must be an integer"
+#: ipalib/plugins/automount.py:237
+msgid ""
+"\n"
+" Search for an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1029
-#, python-format
-msgid "must be at least %(minvalue)d"
+#: ipalib/plugins/automount.py:245
+msgid ""
+"\n"
+" Generate automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1039
-#, python-format
-msgid "can be at most %(maxvalue)d"
+#: ipalib/plugins/automount.py:308
+msgid ""
+"\n"
+" Import automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1049
-msgid "must be a decimal number"
+#: ipalib/plugins/automount.py:314
+msgid "Master file"
msgstr ""
-#: ipalib/parameters.py:1071
-#, python-format
-msgid "must be at least %(minvalue)f"
+#: ipalib/plugins/automount.py:315
+msgid "Automount master file."
msgstr ""
-#: ipalib/parameters.py:1081
-#, python-format
-msgid "can be at most %(maxvalue)f"
+#: ipalib/plugins/automount.py:322
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/parameters.py:1145
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
+#: ipalib/plugins/automount.py:334
+msgid "File %(file)s not found"
msgstr ""
-#: ipalib/parameters.py:1163
-msgid "must be binary data"
+#: ipalib/plugins/automount.py:341
+msgid ""
+"\n"
+" The basic idea is to read the master file and create all the maps\n"
+" we need, then read each map file and add all the keys for the map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1179
-#, python-format
-msgid "must be at least %(minlength)d bytes"
+#: ipalib/plugins/automount.py:492
+msgid ""
+"\n"
+" Automount map object.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1189
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
+#: ipalib/plugins/automount.py:505
+msgid "Map"
msgstr ""
-#: ipalib/parameters.py:1199
-#, python-format
-msgid "must be exactly %(length)d bytes"
+#: ipalib/plugins/automount.py:506
+msgid "Automount map name."
msgstr ""
-#: ipalib/parameters.py:1217
-msgid "must be Unicode text"
+#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
+#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
+#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
+#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
+#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
+#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
+#: ipalib/plugins/sudorule.py:78
+msgid "Description"
msgstr ""
-#: ipalib/parameters.py:1248
-#, python-format
-msgid "must be at least %(minlength)d characters"
+#: ipalib/plugins/automount.py:515
+msgid "Automount Maps"
msgstr ""
-#: ipalib/parameters.py:1258
-#, python-format
-msgid "can be at most %(maxlength)d characters"
+#: ipalib/plugins/automount.py:521
+msgid ""
+"\n"
+" Create a new automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1268
-#, python-format
-msgid "must be exactly %(length)d characters"
+#: ipalib/plugins/automount.py:529
+msgid ""
+"\n"
+" Delete an automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1307
-#, python-format
-msgid "must be one of %(values)r"
+#: ipalib/plugins/automount.py:548
+msgid ""
+"\n"
+" Modify an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:111
-msgid "A list of ACI values"
+#: ipalib/plugins/automount.py:556
+msgid ""
+"\n"
+" Search for an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:142
-msgid "type, filter, subtree and targetgroup are mutually exclusive"
+#: ipalib/plugins/automount.py:564
+msgid ""
+"\n"
+" Display an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:145
+#: ipalib/plugins/automount.py:572
msgid ""
-"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
-"required"
+"\n"
+" Automount key object.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:151
-msgid "group, taskgroup and self are mutually exclusive"
+#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
+#: ipalib/plugins/automount.py:850
+msgid "Key"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "One of group, taskgroup or self is required"
+#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
+#: ipalib/plugins/automount.py:851
+msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/aci.py:172
-#, python-format
-msgid "Group '%s' does not exist"
+#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
+#: ipalib/plugins/automount.py:855
+msgid "Mount information"
msgstr ""
-#: ipalib/plugins/aci.py:269
-#, python-format
-msgid "ACI with name \"%s\" not found"
+#: ipalib/plugins/automount.py:597
+msgid "description"
msgstr ""
-#: ipalib/plugins/aci.py:286
-msgid "ACIs"
+#: ipalib/plugins/automount.py:606
+msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/aci.py:291
-msgid "ACI name"
+#: ipalib/plugins/automount.py:607
+msgid ""
+"The key,info pair must be unique. A key named %(key)s with info %(info)s "
+"already exists"
msgstr ""
-#: ipalib/plugins/aci.py:296
-msgid "Taskgroup"
+#: ipalib/plugins/automount.py:608
+msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/aci.py:297
-msgid "Taskgroup ACI grants access to"
+#: ipalib/plugins/automount.py:609
+msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/aci.py:301
-msgid "User group"
+#: ipalib/plugins/automount.py:659
+msgid ""
+"More than one entry with key %(key)s found, use --info to select specific "
+"entry."
msgstr ""
-#: ipalib/plugins/aci.py:302
-msgid "User group ACI grants access to"
+#: ipalib/plugins/automount.py:717
+msgid ""
+"\n"
+" Create a new automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:306
-msgid "Permissions"
+#: ipalib/plugins/automount.py:742
+msgid ""
+"\n"
+" Create a new indirect mount point.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:748
+msgid "Mount point"
+msgstr ""
+
+#: ipalib/plugins/automount.py:752
+msgid "Parent map"
msgstr ""
-#: ipalib/plugins/aci.py:307
+#: ipalib/plugins/automount.py:753
+msgid "Name of parent automount map (default: auto.master)."
+msgstr ""
+
+#: ipalib/plugins/automount.py:772
msgid ""
-"comma-separated list of permissions to grant(read, write, add, delete, all)"
+"\n"
+" Delete an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:313
-msgid "Attributes"
+#: ipalib/plugins/automount.py:803
+msgid ""
+"\n"
+" Modify an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:314
-msgid "Comma-separated list of attributes"
+#: ipalib/plugins/automount.py:809
+msgid "New mount information"
msgstr ""
-#: ipalib/plugins/aci.py:318
-msgid "Type"
+#: ipalib/plugins/automount.py:836
+msgid ""
+"\n"
+" Search for an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:319
-msgid "type of IPA object (user, group, host)"
+#: ipalib/plugins/automount.py:844
+msgid ""
+"\n"
+" Display an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:324
-msgid "Member of"
+#: ipalib/plugins/baseldap.py:19
+msgid ""
+"\n"
+"Base classes for LDAP plugins.\n"
msgstr ""
-#: ipalib/plugins/aci.py:325
-msgid "Member of a group"
+#: ipalib/plugins/baseldap.py:39
+msgid "Failed members"
msgstr ""
-#: ipalib/plugins/aci.py:329
-msgid "Filter"
+#: ipalib/plugins/baseldap.py:42
+msgid "Member users"
msgstr ""
-#: ipalib/plugins/aci.py:330
-msgid "Legal LDAP filter (e.g. ou=Engineering)"
+#: ipalib/plugins/baseldap.py:45
+msgid "Member groups"
msgstr ""
-#: ipalib/plugins/aci.py:334
-msgid "Subtree"
+#: ipalib/plugins/baseldap.py:48
+msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/aci.py:335
-msgid "Subtree to apply ACI to"
+#: ipalib/plugins/baseldap.py:51
+msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/aci.py:339
-msgid "Target group"
+#: ipalib/plugins/baseldap.py:54
+msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:340
-msgid "Group to apply ACI to"
+#: ipalib/plugins/baseldap.py:57
+msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:344
-msgid "Target your own entry (self)"
+#: ipalib/plugins/baseldap.py:66
+msgid "Roles"
msgstr ""
-#: ipalib/plugins/aci.py:345
-msgid "Apply ACI to your own entry (self)"
+#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
+#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
+#: ipalib/plugins/sudorule.py:143
+msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/aci.py:357
-#, python-format
-msgid "Created ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:75
+msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/aci.py:407
-#, python-format
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:78
+msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:447
-#, python-format
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:81
+msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:519
-#, python-format
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/baseldap.py:84
+msgid "Member services"
+msgstr ""
-#: ipalib/plugins/automount.py:103
-msgid "Automount"
+#: ipalib/plugins/baseldap.py:87
+msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/automount.py:109 ipalib/plugins/host.py:134
-msgid "Location"
+#: ipalib/plugins/baseldap.py:93
+msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/automount.py:110
-msgid "Automount location name"
+#: ipalib/plugins/baseldap.py:102
+msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/automount.py:226
-msgid "Map"
+#: ipalib/plugins/baseldap.py:105
+msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/automount.py:227
-msgid "Automount map name"
+#: ipalib/plugins/baseldap.py:108
+msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/automount.py:232 ipalib/plugins/group.py:108
-#: ipalib/plugins/hbac.py:151 ipalib/plugins/hbacsvc.py:72
-#: ipalib/plugins/hbacsvcgroup.py:77 ipalib/plugins/host.py:124
-#: ipalib/plugins/hostgroup.py:81 ipalib/plugins/netgroup.py:96
-#: ipalib/plugins/rolegroup.py:90 ipalib/plugins/sudocmd.py:71
-#: ipalib/plugins/sudocmdgroup.py:77 ipalib/plugins/sudorule.py:58
-#: ipalib/plugins/taskgroup.py:62
-msgid "Description"
+#: ipalib/plugins/baseldap.py:111
+msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/automount.py:236
-msgid "Automount Maps"
+#: ipalib/plugins/baseldap.py:114
+msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid "Key"
+#: ipalib/plugins/baseldap.py:117
+msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/automount.py:309
-msgid "Automount key name"
+#: ipalib/plugins/baseldap.py:120
+msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/automount.py:314
-msgid "Mount information"
+#: ipalib/plugins/baseldap.py:123
+msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/automount.py:318
-msgid "description"
+#: ipalib/plugins/baseldap.py:126
+msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/automount.py:322
-msgid "Automount Keys"
+#: ipalib/plugins/baseldap.py:141
+msgid "External host"
msgstr ""
-#: ipalib/plugins/automount.py:342
-msgid "Mount point"
+#: ipalib/plugins/baseldap.py:144
+msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/automount.py:346
-msgid "Parent map"
+#: ipalib/plugins/baseldap.py:147
+msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/automount.py:347
-msgid "Name of parent automount map (default: auto.master)"
+#: ipalib/plugins/baseldap.py:150
+msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:79
-#, python-format
+#: ipalib/plugins/baseldap.py:153
+msgid "Failed to remove"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:171
+msgid ""
+"\n"
+" Given a list of values in the form name=value, return a list of name.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:197
+msgid ""
+"\n"
+" When adding or removing reverse members we are faking an update to\n"
+" object A by updating the member attribute in object B. The memberof\n"
+" plugin makes this work by adding or removing the memberof attribute\n"
+" to/from object A, it just takes a little bit of time.\n"
+"\n"
+" This will loop for 6+ seconds, retrieving object A so we can see\n"
+" if all the memberof attributes have been updated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:241
+msgid ""
+"\n"
+" Object representing a LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:281
+msgid "Entry"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:283
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:80
-#, python-format
+#: ipalib/plugins/baseldap.py:284
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
-#, python-format
+#: ipalib/plugins/baseldap.py:285
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
-msgid "Add an attribute/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:286
+msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:155
-msgid "Set an attribute to an name/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:415
+msgid ""
+"Add an attribute/value pair. Format is attr=value. The attribute must be "
+"part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:359
+#: ipalib/plugins/baseldap.py:420
+msgid ""
+"Set an attribute to a name/value pair. Format is attr=value.\n"
+"For multi-valued attributes, the command replaces the values already present."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:444
+msgid ""
+"\n"
+" If the set of objectclasses is limited enforce that only those\n"
+" are updated in entry_attrs (plus dn)\n"
+"\n"
+" allow_only tells us what mode to check in:\n"
+"\n"
+" If True then we enforce that the attributes must be in the list of\n"
+" allowed.\n"
+"\n"
+" If False then those attributes are not allowed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:474
+msgid ""
+"\n"
+" Callback registration interface\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:561
+msgid ""
+"\n"
+" Create a new entry in LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:703
+msgid ""
+"\n"
+" Base class for commands that need to retrieve an existing entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:727
+msgid ""
+"\n"
+" Base class for commands that need to retrieve one or more existing "
+"entries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:733
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:517
+#: ipalib/plugins/baseldap.py:750
+msgid ""
+"\n"
+" Retrieve an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
+#: ipalib/plugins/internal.py:232
+msgid "Rights"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+msgid ""
+"Display the access rights of this entry (requires --all). See ipa man page "
+"for details."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:821
+msgid ""
+"\n"
+" Update an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:837
+msgid "Rename"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:838
+msgid "Rename the %(ldap_obj_name)s object"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:957
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:674
+#: ipalib/plugins/baseldap.py:988
+msgid ""
+"\n"
+" Delete an LDAP entry and all of its direct subentries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1078
+msgid ""
+"\n"
+" Base class for member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1120
+msgid ""
+"\n"
+" Add other LDAP entries to members.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
+#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
+#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
msgid "Members that could not be added"
msgstr ""
-#: ipalib/plugins/baseldap.py:678
+#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:684 ipalib/plugins/baseldap.py:789
-msgid "Failed members"
+#: ipalib/plugins/baseldap.py:1226
+msgid ""
+"\n"
+" Remove LDAP entries from members.\n"
+" "
msgstr ""
-#: ipalib/plugins/baseldap.py:779
+#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:783
+#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:880
+#: ipalib/plugins/baseldap.py:1335
+msgid ""
+"\n"
+" Retrieve all LDAP entries matching the given criteria.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1344
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:881
+#: ipalib/plugins/baseldap.py:1345
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:887
+#: ipalib/plugins/baseldap.py:1351
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:888
+#: ipalib/plugins/baseldap.py:1352
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/cert.py:93
+#: ipalib/plugins/baseldap.py:1552
+msgid ""
+"\n"
+" Base class for reverse member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1574
+msgid ""
+"\n"
+" Add other LDAP entries to members in reverse.\n"
+"\n"
+" The call looks like \"add A to B\" but in fact executes\n"
+" add B to A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1654
+msgid "added"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1687
+msgid ""
+"\n"
+" Remove other LDAP entries from members in reverse.\n"
+"\n"
+" The call looks like \"remove A from B\" but in fact executes\n"
+" remove B from A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1767
+msgid "removed"
+msgstr ""
+
+#: ipalib/plugins/batch.py:21
+msgid ""
+"\n"
+"Plugin to make multiple ipa calls via one remote procedure call\n"
+"\n"
+"To run this code in the lite-server\n"
+"\n"
+"curl -H \"Content-Type:application/json\" -H \"Accept:application/"
+"json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /"
+"etc/ipa/ca.crt -d @batch_request.json -X POST http://"
+"localhost:8888/ipa/json\n"
+"\n"
+"where the contents of the file batch_request.json follow the below example\n"
+"\n"
+"{\"method\":\"batch\",\"params\":[[\n"
+" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
+" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all"
+"\":\"true\"}]},\n"
+" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
+" ],{}],\"id\":1}\n"
+"\n"
+"The format of the response is nested the same way. At the top you will see\n"
+" \"error\": null,\n"
+" \"id\": 1,\n"
+" \"result\": {\n"
+" \"count\": 3,\n"
+" \"results\": [\n"
+"\n"
+"\n"
+"And then a nested response for each IPA command method sent in the request\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/batch.py:61
+msgid "Nested Methods to execute"
+msgstr ""
+
+#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/plugins/cert.py:22
+msgid ""
+"\n"
+"IPA certificate operations\n"
+"\n"
+"Implements a set of commands for managing server SSL certificates.\n"
+"\n"
+"Certificate requests exist in the form of a Certificate Signing Request "
+"(CSR)\n"
+"in PEM format.\n"
+"\n"
+"If using the selfsign back end then the subject in the CSR needs to match\n"
+"the subject configured in the server. The dogtag CA uses just the CN\n"
+"value of the CSR and forces the rest of the subject.\n"
+"\n"
+"A certificate is stored with a service principal and a service principal\n"
+"needs a host.\n"
+"\n"
+"In order to request a certificate:\n"
+"\n"
+"* The host must exist\n"
+"* The service must exist (or you use the --add option to automatically add "
+"it)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Request a new certificate and add the principal:\n"
+" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n"
+"\n"
+" Retrieve an existing certificate:\n"
+" ipa cert-show 1032\n"
+"\n"
+" Revoke a certificate (see RFC 5280 for reason details):\n"
+" ipa cert-revoke --revocation-reason=6 1032\n"
+"\n"
+" Remove a certificate from revocation hold status:\n"
+" ipa cert-remove-hold 1032\n"
+"\n"
+" Check the status of a signing request:\n"
+" ipa cert-status 10\n"
+"\n"
+"IPA currently immediately issues (or declines) all certificate requests so\n"
+"the status of a request is not normally useful. This is for future use\n"
+"or the case where a CA does not immediately issue a certificate.\n"
+"\n"
+"The following revocation reasons are supported:\n"
+"\n"
+" * 0 - unspecified\n"
+" * 1 - keyCompromise\n"
+" * 2 - cACompromise\n"
+" * 3 - affiliationChanged\n"
+" * 4 - superseded\n"
+" * 5 - cessationOfOperation\n"
+" * 6 - certificateHold\n"
+" * 8 - removeFromCRL\n"
+" * 9 - privilegeWithdrawn\n"
+" * 10 - aACompromise\n"
+"\n"
+"Note that reason code 7 is not used. See RFC 5280 for more details:\n"
+"\n"
+"http://www.ietf.org/rfc/rfc5280.txt\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/cert.py:104
+msgid ""
+"\n"
+" Return the value of CN in the subject of the request or None\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:106 ipalib/plugins/cert.py:118
+#: ipalib/plugins/cert.py:115
+msgid ""
+"\n"
+" Return the first value of the subject alt name, if any\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:120
-#, python-format
+#: ipalib/plugins/cert.py:128
+msgid ""
+"\n"
+" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
+" parser.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:139
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:171 ipalib/plugins/service.py:197
+#: ipalib/plugins/cert.py:142
+msgid ""
+"\n"
+" Strip any leading and trailing cruft around the BEGIN/END block\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:162
+msgid ""
+"\n"
+" Convert a SN given in decimal or hexadecimal.\n"
+" Returns the number or None if conversion fails.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:188
+msgid ""
+"\n"
+" Given a principal with or without a realm return the\n"
+" host portion.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:202
+msgid ""
+"\n"
+" Submit a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:172
+#: ipalib/plugins/cert.py:217
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:179
+#: ipalib/plugins/cert.py:224
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:187 ipalib/plugins/cert.py:392
-#: ipalib/plugins/host.py:154 ipalib/plugins/service.py:204
+#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
+#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
+#: ipalib/plugins/service.py:232
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:191 ipalib/plugins/cert.py:395
+#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:195 ipalib/plugins/cert.py:398
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:199 ipalib/plugins/cert.py:401
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:203 ipalib/plugins/cert.py:404
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:207 ipalib/plugins/cert.py:407
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:211 ipalib/plugins/cert.py:410
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:215 ipalib/plugins/cert.py:379
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:223 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:357
+#: ipalib/plugins/cert.py:396
+msgid ""
+"\n"
+" Check the status of a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:402
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:363
+#: ipalib/plugins/cert.py:408
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:380
+#: ipalib/plugins/cert.py:426
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:413
+#: ipalib/plugins/cert.py:431
+msgid ""
+"\n"
+" Retrieve an existing certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
+#: ipalib/plugins/service.py:114
msgid "Revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:458
+#: ipalib/plugins/cert.py:466
+msgid "Output filename"
+msgstr ""
+
+#: ipalib/plugins/cert.py:467
+msgid "File to store the certificate in."
+msgstr ""
+
+#: ipalib/plugins/cert.py:518
+msgid ""
+"\n"
+" Revoke a certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:526
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:466
+#: ipalib/plugins/cert.py:534
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:467
+#: ipalib/plugins/cert.py:535
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:502
+#: ipalib/plugins/cert.py:562
+msgid ""
+"\n"
+" Take a revoked certificate off hold.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:570
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:505
+#: ipalib/plugins/cert.py:573
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:73
+#: ipalib/plugins/config.py:20
+msgid ""
+"\n"
+"Manage the IPA configuration\n"
+"\n"
+"Manage the default values that IPA uses and some of its tuning parameters.\n"
+"\n"
+" To show the current configuration:\n"
+" ipa config-show\n"
+"\n"
+" To modify the configuration:\n"
+" ipa config-mod --maxusername=99\n"
+"\n"
+"The available options are:\n"
+"\n"
+"User management options:\n"
+"\n"
+" --maxusername=INT Max. username length when creating/modifying a user\n"
+" --homedirectory=STR Default location of home directories (default /"
+"home)\n"
+" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
+" --defaultgroup=STR Default group for new users (default ipausers). The\n"
+" group must exist, or adding new users will fail.\n"
+" --emaildomain=STR Default e-mail domain for new users\n"
+"\n"
+"Search tuning options. These impact how much data is searched through and\n"
+"how many records may be returned on a given search.\n"
+"\n"
+" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 "
+"for\n"
+" unlimited)\n"
+" --searchrecordslimit=INT Max. number of records to search (-1 is "
+"unlimited)\n"
+"\n"
+"Server Configuration.\n"
+"\n"
+" --enable-migration=BOOL Enable migration mode\n"
+" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+"\n"
+"The password notification value is stored here so it will be replicated.\n"
+"It is not currently used to notify users in advance of an expiring\n"
+"password.\n"
+"\n"
+"Some attributes are read-only, provided only for information purposes. "
+"These\n"
+"include:\n"
+"\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
+msgstr ""
+
+#: ipalib/plugins/config.py:76
+msgid "searchtimelimit must be -1 or > 1."
+msgstr ""
+
+#: ipalib/plugins/config.py:80
+msgid ""
+"\n"
+" IPA configuration object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:78
-msgid "Max username length"
+#: ipalib/plugins/config.py:96
+msgid "Max. username length"
msgstr ""
-#: ipalib/plugins/config.py:83
+#: ipalib/plugins/config.py:101
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:84
-msgid "Default location of home directories"
+#: ipalib/plugins/config.py:102
+msgid "Default location of home directories."
msgstr ""
-#: ipalib/plugins/config.py:88
+#: ipalib/plugins/config.py:106
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:89
-msgid "Default shell for new users"
+#: ipalib/plugins/config.py:107
+msgid "Default shell for new users."
msgstr ""
-#: ipalib/plugins/config.py:93
+#: ipalib/plugins/config.py:111
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:94
-msgid "Default group for new users"
+#: ipalib/plugins/config.py:112
+msgid "Default group for new users."
msgstr ""
-#: ipalib/plugins/config.py:98
-msgid "Default e-mail domain"
+#: ipalib/plugins/config.py:116
+msgid "Default e-mail domain for new users"
msgstr ""
-#: ipalib/plugins/config.py:99
-msgid "Default e-mail domain new users"
+#: ipalib/plugins/config.py:117
+msgid "Default e-mail domain new users."
msgstr ""
-#: ipalib/plugins/config.py:103
+#: ipalib/plugins/config.py:121
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:104
-msgid "Max. amount of time (sec.) for a search (-1 is unlimited)"
+#: ipalib/plugins/config.py:122
+msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:109
+#: ipalib/plugins/config.py:127
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:110
-msgid "Max. number of records to search (-1 is unlimited)"
+#: ipalib/plugins/config.py:128
+msgid "Max. number of records to search (-1 is unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:115
+#: ipalib/plugins/config.py:133
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:116
-msgid "A comma-separated list of fields to search when searching for users"
+#: ipalib/plugins/config.py:134
+msgid "A comma-separated list of fields to search when searching for users."
msgstr ""
-#: ipalib/plugins/config.py:121
-msgid "A comma-separated list of fields to search when searching for groups"
+#: ipalib/plugins/config.py:139
+msgid "A comma-separated list of fields to search when searching for groups."
msgstr ""
-#: ipalib/plugins/config.py:125
+#: ipalib/plugins/config.py:143
msgid "Migration mode"
msgstr ""
-#: ipalib/plugins/config.py:126
-msgid "Enable migration mode"
+#: ipalib/plugins/config.py:144
+msgid "Enable migration mode."
msgstr ""
-#: ipalib/plugins/config.py:130
+#: ipalib/plugins/config.py:148
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:131
-msgid "Base for certificate subjects (OU=Test,O=Example)"
+#: ipalib/plugins/config.py:149
+msgid "Base for certificate subjects (OU=Test,O=Example)."
msgstr ""
-#: ipalib/plugins/dns.py:131
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:155
+msgid "Default group objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:159
+msgid "Default user objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:160
+msgid "Default user objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:164
+msgid "Password Expiration Notification"
+msgstr ""
+
+#: ipalib/plugins/config.py:165
+msgid "Number of days's notice of impending password expiration."
+msgstr ""
+
+#: ipalib/plugins/config.py:170
+msgid "Password plugin features"
+msgstr ""
+
+#: ipalib/plugins/config.py:171
+msgid "Extra hashes to generate in password plug-in."
+msgstr ""
+
+#: ipalib/plugins/config.py:183
+msgid ""
+"\n"
+" Modify configuration options.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:220
+msgid ""
+"\n"
+" Show the current configuration.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:19
+msgid ""
+"\n"
+"Group to Group Delegation\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"Group to Group Delegations grants the members of one group to update a set\n"
+"of attributes of members of another group.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a delegation rule to allow editors to edit admin's addresses:\n"
+" ipa delegation-add --attrs=street --membergroup=admins --group=editors "
+"'editors edit admins street'\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add postalCode to the list:\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --"
+"group=editors 'editors edit admins street'\n"
+"\n"
+" Display our updated rule:\n"
+" ipa delegation-show 'editors edit admins street'\n"
+"\n"
+" Delete a rule:\n"
+" ipa delegation-del 'editors edit admins street'\n"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:56
+msgid ""
+"\n"
+" memberOf is in filter but we want to pull out the group for easier\n"
+" displaying.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+msgid "Delegation '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:70
+msgid "Error retrieving member group %(group)s: %(error)s"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:79
+msgid ""
+"\n"
+" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a delegation ACI, adding a new attribute\n"
+" membergroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:95
+msgid ""
+"\n"
+" Delegation object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:102
+msgid "Delegation"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+msgid "Delegation name"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+msgid ""
+"Comma-separated list of permissions to grant (read, write). Default is write."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:125
+msgid "Member user group"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:126
+msgid "User group to apply delegation to"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:152
+msgid ""
+"\n"
+" Add a new delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:156
+msgid "Added delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:176
+msgid ""
+"\n"
+" Delete a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:181
+msgid "Deleted delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:197
+msgid ""
+"\n"
+" Modify a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:201
+msgid "Modified delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:219
+msgid ""
+"\n"
+" Search for delegations.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:223
+msgid "%(count)d delegation matched"
+msgid_plural "%(count)d delegations matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/delegation.py:250
+msgid ""
+"\n"
+" Display information about a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:20
+msgid ""
+"\n"
+"Domain Name System (DNS)\n"
+"\n"
+"Manage DNS zone and resource records.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add new zone:\n"
+" ipa dnszone-add example.com --name-server nameserver.example.com\n"
+" --admin-email admin@example.com\n"
+"\n"
+" Add second nameserver for example.com:\n"
+" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add a mail server for example.com:\n"
+" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n"
+"\n"
+" Delete previously added nameserver from example.com:\n"
+" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add new A record for www.example.com: (random IP)\n"
+" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n"
+"\n"
+" Add new PTR record for www.example.com\n"
+" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n"
+"\n"
+" Add new SRV records for LDAP servers. Three quarters of the requests\n"
+" should go to fast.example.com, one quarter to slow.example.com. If neither\n"
+" is available, switch to backup.example.com.\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup."
+"example.com\"\n"
+"\n"
+" When dnsrecord-add command is executed with no option to add a specific "
+"record\n"
+" an interactive mode is started. The mode interactively prompts for the "
+"most\n"
+" typical record types for the respective zone:\n"
+" ipa dnsrecord-add example.com www\n"
+" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random "
+"IPs)\n"
+" [AAAA record]: (no AAAA address entered)\n"
+" Record name: www\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" The interactive mode can also be used for deleting the DNS records:\n"
+" ipa dnsrecord-del example.com www\n"
+" No option to delete specific record provided.\n"
+" Delete all? Yes/No (default No): (do not delete all records)\n"
+" Current DNS record contents:\n"
+"\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
+" Record name: www\n"
+" A record: 1.2.3.4 (A record 11.22.33.44 has been "
+"deleted)\n"
+"\n"
+" Show zone example.com:\n"
+" ipa dnszone-show example.com\n"
+"\n"
+" Find zone with \"example\" in its domain name:\n"
+" ipa dnszone-find example\n"
+"\n"
+" Find records for resources with \"www\" in their name in zone example.com:\n"
+" ipa dnsrecord-find example.com www\n"
+"\n"
+" Find A records with value 10.10.0.1 in zone example.com\n"
+" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n"
+"\n"
+" Show records for resource www in zone example.com\n"
+" ipa dnsrecord-show example.com www\n"
+"\n"
+" Delete zone example.com with all resource records:\n"
+" ipa dnszone-del example.com\n"
+"\n"
+" Resolve a host name to see if it exists (will add default IPA domain\n"
+" if one is not included):\n"
+" ipa dns-resolve www.example.com\n"
+" ipa dns-resolve www\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:140
+msgid "Generate serial number for zones."
+msgstr ""
+
+#: ipalib/plugins/dns.py:189
+msgid "see RFC 2915 "
+msgstr ""
+
+#: ipalib/plugins/dns.py:249
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:272
+msgid ""
+"\n"
+" DNS Zone, container for resource records.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:284
msgid "DNS"
msgstr ""
-#: ipalib/plugins/dns.py:136
-msgid "Zone"
+#: ipalib/plugins/dns.py:289
+msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:137
+#: ipalib/plugins/dns.py:290
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:143
-msgid "Authoritative name server"
+#: ipalib/plugins/dns.py:296
+msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:147
-msgid "administrator e-mail address"
+#: ipalib/plugins/dns.py:297
+msgid "Authoritative nameserver."
msgstr ""
-#: ipalib/plugins/dns.py:153
+#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+msgid "Administrator e-mail address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:308
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:157
+#: ipalib/plugins/dns.py:309
+msgid "SOA record serial number"
+msgstr ""
+
+#: ipalib/plugins/dns.py:316
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:161
+#: ipalib/plugins/dns.py:317
+msgid "SOA record refresh time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:324
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:165
+#: ipalib/plugins/dns.py:325
+msgid "SOA record retry time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:169
+#: ipalib/plugins/dns.py:333
+msgid "SOA record expire time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:173
+#: ipalib/plugins/dns.py:341
+msgid "How long should negative responses be cached"
+msgstr ""
+
+#: ipalib/plugins/dns.py:349
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:177
+#: ipalib/plugins/dns.py:350
+msgid "SOA record time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:354
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:182
-msgid "allow dynamic update?"
+#: ipalib/plugins/dns.py:355
+msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:186
+#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:426 ipalib/plugins/dns.py:460
-#: ipalib/plugins/dns.py:495 ipalib/plugins/dns.py:610
-#: ipalib/plugins/dns.py:695 ipalib/plugins/dns.py:819
-msgid "Zone name"
+#: ipalib/plugins/dns.py:365
+msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:500
-msgid "resource name"
+#: ipalib/plugins/dns.py:366
+msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:505 ipalib/plugins/dns.py:620
-#: ipalib/plugins/dns.py:711
-msgid "Record type"
+#: ipalib/plugins/dns.py:372
+msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:509 ipalib/plugins/dns.py:624
-msgid "Data"
+#: ipalib/plugins/dns.py:373
+msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:510 ipalib/plugins/dns.py:625
-msgid "Type-specific data"
+#: ipalib/plugins/dns.py:382
+msgid ""
+"\n"
+" Create new DNS zone (SOA record).\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:517
-msgid "Time to live"
+#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
+#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+msgid "Force"
+msgstr ""
+
+#: ipalib/plugins/dns.py:388
+msgid "Force DNS zone creation even if nameserver not in DNS."
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+msgid "Add the nameserver to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:397
+msgid "DNS is not configured"
+msgstr ""
+
+#: ipalib/plugins/dns.py:431
+msgid ""
+"\n"
+" Delete DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"\n"
+" Modify DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:452
+msgid ""
+"\n"
+" Search for DNS zones (SOA records).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:460
+msgid ""
+"\n"
+" Display information about a DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+msgid ""
+"\n"
+" Disable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:472
+msgid "Disabled DNS zone \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:490
+msgid ""
+"\n"
+" Enable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:494
+msgid "Enabled DNS zone \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:512
+msgid ""
+"\n"
+" DNS record.\n"
+" "
msgstr ""
#: ipalib/plugins/dns.py:522
+msgid "DNS resource record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
+msgid "Record name"
+msgstr ""
+
+#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
+msgid "Time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:538
msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:615 ipalib/plugins/dns.py:707
-#: ipalib/plugins/dns.py:824
-msgid "Resource name"
+#: ipalib/plugins/dns.py:539
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:700
-msgid "Search criteria"
+#: ipalib/plugins/dns.py:566
+msgid ""
+"\n"
+" Base class for DNS record commands with record options.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:715
-msgid "type-specific data"
+#: ipalib/plugins/dns.py:610
+msgid ""
+"\n"
+" Base class for adding/removing records from DNS resource entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:865
-#, python-format
+#: ipalib/plugins/dns.py:674
+msgid ""
+"\n"
+" Add records to DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:690
+msgid ""
+"\n"
+" Add new DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:699
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:735
+msgid ""
+"Reverse zone for PTR record should be a sub-zone of one the following fully "
+"qualified domains: %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:740
+msgid "Reverse zone %s requires exactly %d IP address components, %d given"
+msgstr ""
+
+#: ipalib/plugins/dns.py:746
+msgid "PTR record '%s' is not fully qualified (check traling '.')"
+msgstr ""
+
+#: ipalib/plugins/dns.py:789
+msgid ""
+"\n"
+" Delete DNS record entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:792
+msgid "Deleted record \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:799
+msgid ""
+"\n"
+" Delete DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:802
+msgid ""
+"Neither --del-all nor options to delete a specific record provided.\n"
+"Command help may be consulted for all supported record types."
+msgstr ""
+
+#: ipalib/plugins/dns.py:807
+msgid "Delete all associated records"
+msgstr ""
+
+#: ipalib/plugins/dns.py:834
+msgid "No option to delete specific record provided."
+msgstr ""
+
+#: ipalib/plugins/dns.py:835
+msgid "Delete all?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:845
+msgid "Current DNS record contents:\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:875
+msgid "%s record with value %s not found"
+msgstr ""
+
+#: ipalib/plugins/dns.py:889
+msgid ""
+"\n"
+" Display DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:905
+msgid ""
+"\n"
+" Search for DNS resources.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:932
+msgid ""
+"\n"
+" Resolve a host name in DNS\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:936
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:869
+#: ipalib/plugins/dns.py:940
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:882
-#, python-format
+#: ipalib/plugins/dns.py:962
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/group.py:94
+#: ipalib/plugins/dns.py:970
+msgid ""
+"\n"
+" Checks if any of the servers has the DNS service enabled.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:19
+msgid ""
+"\n"
+"Entitlements\n"
+"\n"
+"Manage entitlements for client machines\n"
+"\n"
+"Entitlements can be managed either by registering with an entitlement\n"
+"server with a username and password or by manually importing entitlement\n"
+"certificates. An entitlement certificate contains embedded information\n"
+"such as the product being entitled, the quantity and the validity dates.\n"
+"\n"
+"An entitlement server manages the number of client entitlements available.\n"
+"To mark these entitlements as used by the IPA server you provide a quantity\n"
+"and they are marked as consumed on the entitlement server.\n"
+"\n"
+" Register with an entitlement server:\n"
+" ipa entitle-register consumer\n"
+"\n"
+" Import an entitlement certificate:\n"
+" ipa entitle-import /home/user/ipaclient.pem\n"
+"\n"
+" Display current entitlements:\n"
+" ipa entitle-status\n"
+"\n"
+" Retrieve details on entitlement certificates:\n"
+" ipa entitle-get\n"
+"\n"
+" Consume some entitlements from the entitlement server:\n"
+" ipa entitle-consume 50\n"
+"\n"
+"The registration ID is a Unique Identifier (UUID). This ID will be\n"
+"IMPORTED if you have used entitle-import.\n"
+"\n"
+"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:106
+msgid ""
+"\n"
+" Get our entitlement pool. Assume there is only one pool.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:129
+msgid ""
+"\n"
+" Retrieve our UUID, certificate and key from LDAP.\n"
+"\n"
+" Except on error the caller is responsible for removing temporary files\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:178
+msgid ""
+"\n"
+" Entitlement object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:189
+msgid "Entitlements"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:206
+msgid ""
+"\n"
+" Display current entitlements\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+msgid "UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
+#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
+#: ipalib/plugins/entitle.py:690
+msgid "Product"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
+#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
+#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+msgid "Quantity"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
+#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+msgid "Consumed"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:276
+msgid ""
+"\n"
+" Consume an entitlement\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:282
+msgid "Consumed %(value)s entitlement(s)."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:314
+msgid ""
+"\n"
+" Override this so we can set value to the number of entitlements\n"
+" consumed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
+msgid ""
+"\n"
+" Returning the certificates isn't very interesting. Return the\n"
+" status of entitlements instead.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:380
+msgid ""
+"\n"
+" Retrieve the entitlement certs\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:394
+msgid "Start"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:397
+msgid "End"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
+#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+msgid "Serial Number"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
+#: ipalib/plugins/entitle.py:628
+msgid "Not an entitlement certificate"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:460
+msgid ""
+"\n"
+" Search for entitlement accounts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:473
+msgid ""
+"\n"
+" Register to the entitlement system\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:479
+msgid "Registered to entitlement server."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:483
+msgid "Username"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
+msgid "Enrollment UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
+#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
+msgid "Password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:495
+msgid "Registration password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:569
+msgid ""
+"\n"
+" Import an entitlement certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:646
+msgid ""
+"\n"
+" If we are adding the first entry there are no updates so "
+"EmptyModlist\n"
+" will get thrown. Ignore it.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:667
+msgid ""
+"\n"
+" Re-sync the local entitlement cache with the entitlement server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:673
+msgid "Entitlement(s) synchronized."
+msgstr ""
+
+#: ipalib/plugins/group.py:20
+msgid ""
+"\n"
+"Groups of users\n"
+"\n"
+"Manage groups of users. By default, new groups are POSIX groups. You\n"
+"can add the --nonposix option to the group-add command to mark a new group\n"
+"as non-POSIX, and you can use the same argument to the group-mod command\n"
+"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"converted to non-POSIX groups.\n"
+"\n"
+"Every group must have a description.\n"
+"\n"
+"POSIX groups must have a Group ID (GID) number. Changing a GID is\n"
+"supported but can have an impact on your file permissions. It is not "
+"necessary\n"
+"to supply a GID when creating a group. IPA will generate one automatically\n"
+"if it is not provided.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new group:\n"
+" ipa group-add --desc='local administrators' localadmins\n"
+"\n"
+" Add a new non-POSIX group:\n"
+" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n"
+"\n"
+" Convert a non-POSIX group to posix:\n"
+" ipa group-mod --posix remoteadmins\n"
+"\n"
+" Add a new POSIX group with a specific Group ID number:\n"
+" ipa group-add --gid=500 --desc='unix admins' unixadmins\n"
+"\n"
+" Add a new POSIX group and let IPA assign a Group ID number:\n"
+" ipa group-add --desc='printer admins' printeradmins\n"
+"\n"
+" Remove a group:\n"
+" ipa group-del unixadmins\n"
+"\n"
+" To add the \"remoteadmins\" group to the \"localadmins\" group:\n"
+" ipa group-add-member --groups=remoteadmins localadmins\n"
+"\n"
+" Add a list of users to the \"localadmins\" group:\n"
+" ipa group-add-member --users=test1,test2 localadmins\n"
+"\n"
+" Remove a user from the \"localadmins\" group:\n"
+" ipa group-remove-member --users=test2 localadmins\n"
+"\n"
+" Display information about a named group.\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/group.py:76
+msgid ""
+"\n"
+" Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:100
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:102
+#: ipalib/plugins/group.py:108
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:109 ipalib/plugins/sudocmdgroup.py:78
+#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:113
+#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:114
+#: ipalib/plugins/group.py:120
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:117 ipalib/plugins/rolegroup.py:94
-#: ipalib/plugins/taskgroup.py:66
-msgid "Member groups"
+#: ipalib/plugins/group.py:128
+msgid ""
+"\n"
+" Create a new group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:121 ipalib/plugins/rolegroup.py:98
-#: ipalib/plugins/taskgroup.py:70
-msgid "Member users"
+#: ipalib/plugins/group.py:132
+msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:134
-#, python-format
-msgid "Added group \"%(value)s\""
+#: ipalib/plugins/group.py:137
+msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:139
-msgid "Create as a non-POSIX group?"
+#: ipalib/plugins/group.py:154
+msgid ""
+"\n"
+" Delete group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:160
-#, python-format
+#: ipalib/plugins/group.py:158
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:191
-#, python-format
+#: ipalib/plugins/group.py:186
+msgid ""
+"\n"
+" Modify a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:189
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:196
+#: ipalib/plugins/group.py:194
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:222 ipalib/plugins/hbacsvcgroup.py:129
-#, python-format
+#: ipalib/plugins/group.py:215
+msgid ""
+"\n"
+" Search for groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:220
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
+#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+msgid "search for private groups"
+msgstr ""
+
#: ipalib/plugins/group.py:257
-#, python-format
-msgid "Detached group \"%(value)s\" from user \"%(value)s\""
+msgid ""
+"\n"
+" Display information about a named group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:265
+msgid ""
+"\n"
+" Add members to a group.\n"
+" "
msgstr ""
#: ipalib/plugins/group.py:273
+msgid ""
+"\n"
+" Remove members from a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:281
+msgid ""
+"\n"
+" Detach a managed group from a user\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:285
+msgid "Detached group \"%(value)s\" from user \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/group.py:288
+msgid ""
+"\n"
+" This requires updating both the user and the group. We first need "
+"to\n"
+" verify that both the user and group can be updated, then we go\n"
+" about our work. We don't want a situation where only the user or\n"
+" group can be modified and we're left in a bad state.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:306
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:277
+#: ipalib/plugins/group.py:312
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:284 ipalib/plugins/group.py:295
+#: ipalib/plugins/group.py:331
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbac.py:106
-msgid "HBAC"
+#: ipalib/plugins/hbacrule.py:19
+msgid ""
+"\n"
+"Host-based access control\n"
+"\n"
+"Control who can access what services on what hosts and from where. You\n"
+"can use HBAC to control which users or groups on a source host can\n"
+"access a service, or group of services, on a target host.\n"
+"\n"
+"You can also specify a category of users, target hosts, and source\n"
+"hosts. This is currently limited to \"all\", but might be expanded in the\n"
+"future.\n"
+"\n"
+"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n"
+"\n"
+"The available services and groups of services are controlled by the\n"
+"hbacsvc and hbacsvcgroup plug-ins respectively.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a rule, \"test1\", that grants all users access to the host \"server"
+"\" from\n"
+" anywhere:\n"
+" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add-host --hosts=server.example.com test1\n"
+"\n"
+" Display the properties of a named HBAC rule:\n"
+" ipa hbacrule-show test1\n"
+"\n"
+" Create a rule for a specific service. This lets the user john access\n"
+" the sshd service on any machine from any machine:\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add-user --users=john john_sshd\n"
+" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
+"\n"
+" Create a rule for a new service group. This lets the user john access\n"
+" the FTP service on any machine from any machine:\n"
+" ipa hbacsvcgroup-add ftpers\n"
+" ipa hbacsvc-add sftp\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add-user --users=john john_ftp\n"
+" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
+"\n"
+" Disable a named HBAC rule:\n"
+" ipa hbacrule-disable test1\n"
+"\n"
+" Remove a named HBAC rule:\n"
+" ipa hbacrule-del allow_server\n"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:91
+msgid ""
+"\n"
+" See if options[attribute] is lower-case 'all' in a safe way.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:103
+msgid ""
+"\n"
+" HBAC object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbac.py:111 ipalib/plugins/sudorule.py:53
+#: ipalib/plugins/hbacrule.py:126
+msgid "HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbac.py:116
+#: ipalib/plugins/hbacrule.py:136
msgid "Rule type (allow or deny)"
msgstr ""
-#: ipalib/plugins/hbac.py:117
+#: ipalib/plugins/hbacrule.py:137
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbac.py:123
+#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
+#: ipalib/plugins/sudorule.py:86
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbac.py:124
+#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
+#: ipalib/plugins/sudorule.py:87
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:129
+#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
+#: ipalib/plugins/sudorule.py:92
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbac.py:130
+#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
+#: ipalib/plugins/sudorule.py:93
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:135
+#: ipalib/plugins/hbacrule.py:155
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbac.py:136
+#: ipalib/plugins/hbacrule.py:156
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:141
+#: ipalib/plugins/hbacrule.py:161
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbac.py:142
+#: ipalib/plugins/hbacrule.py:162
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:147 ipalib/plugins/hbac.py:325
-#: ipalib/plugins/hbac.py:363
-msgid "Access time"
-msgstr ""
-
-#: ipalib/plugins/hbac.py:154
+#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbac.py:158 ipalib/plugins/sudorule.py:61
-#: ipalib/plugins/user.py:76
+#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
+#: ipalib/plugins/user.py:108
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbac.py:162 ipalib/plugins/host.py:113
-#: ipalib/plugins/sudorule.py:65
+#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
+#: ipalib/plugins/sudorule.py:119
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
+#: ipalib/plugins/sudorule.py:123
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:166 ipalib/plugins/hostgroup.py:69
-#: ipalib/plugins/sudorule.py:69
+#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
+#: ipalib/plugins/sudorule.py:127
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbac.py:170
+#: ipalib/plugins/hbacrule.py:194
msgid "Source hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:174 ipalib/plugins/hbacsvc.py:60
-#: ipalib/plugins/service.py:192
+#: ipalib/plugins/hbacrule.py:198
+msgid "Source host groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
+#: ipalib/plugins/service.py:220
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbac.py:178
+#: ipalib/plugins/hbacrule.py:206
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:65
-msgid "Service name"
+#: ipalib/plugins/hbacrule.py:215
+msgid ""
+"\n"
+" Create a new HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:219
+msgid "Added HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:230
+msgid ""
+"\n"
+" Delete an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:234
+msgid "Deleted HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:240
+msgid ""
+"\n"
+" Modify an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:244
+msgid "Modified HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:266
+msgid ""
+"\n"
+" Search for HBAC rules.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:270
+msgid "%(count)d HBAC rule matched"
+msgid_plural "%(count)d HBAC rules matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/hbacrule.py:278
+msgid ""
+"\n"
+" Display the properties of an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:286
+msgid ""
+"\n"
+" Enable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:290
+msgid "Enabled HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:315
+msgid ""
+"\n"
+" Disable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:319
+msgid "Disabled HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:344
+msgid ""
+"\n"
+" Add an access time to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+msgid "Access time"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:385
+msgid ""
+"\n"
+" Remove access time to HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:425
+msgid ""
+"\n"
+" Add users and groups to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:442
+msgid ""
+"\n"
+" Remove users and groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:452
+msgid ""
+"\n"
+" Add target hosts and hostgroups to an HBAC rule\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:469
+msgid ""
+"\n"
+" Remove target hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:479
+msgid ""
+"\n"
+" Add source hosts and hostgroups from a HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:496
+msgid ""
+"\n"
+" Remove source hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:506
+msgid ""
+"\n"
+" Add services to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:523
+msgid ""
+"\n"
+" Remove service and service groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:19
+msgid ""
+"\n"
+"HBAC Services\n"
+"\n"
+"The PAM services that HBAC can control access to. The name used here\n"
+"must match the service name that PAM is evaluating.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service:\n"
+" ipa hbacsvc-add tftp\n"
+"\n"
+" Modify an existing HBAC service:\n"
+" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n"
+"\n"
+" Search for HBAC services. This example will return two results, the FTP\n"
+" service and the newly-added tftp service:\n"
+" ipa hbacsvc-find ftp\n"
+"\n"
+" Delete an HBAC service:\n"
+" ipa hbacsvc-del tftp\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:51
+msgid ""
+"\n"
+" HBAC Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:61
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "HBAC Service"
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:73
-msgid "Description of service"
+#: ipalib/plugins/hbacsvc.py:67
+msgid "HBAC service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:84 ipalib/plugins/service.py:216
-#, python-format
-msgid "Added service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:74
+msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:93 ipalib/plugins/service.py:255
-#, python-format
-msgid "Deleted service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:82
+msgid ""
+"\n"
+" Add a new HBAC service.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:66
-msgid "HBAC Service Groups"
+#: ipalib/plugins/hbacsvc.py:85
+msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:71
+#: ipalib/plugins/hbacsvc.py:91
+msgid ""
+"\n"
+" Delete an existing HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:94
+msgid "Deleted HBAC service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:100
+msgid ""
+"\n"
+" Modify an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modified HBAC service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:110
+msgid ""
+"\n"
+" Search for HBAC services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:114
+msgid "%(count)d HBAC service matched"
+msgid_plural "%(count)d HBAC services matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/hbacsvc.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:19
+msgid ""
+"\n"
+"HBAC Service Groups\n"
+"\n"
+"HBAC service groups can contain any number of individual services,\n"
+"or \"members\". Every group must have a description.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service group:\n"
+" ipa hbacsvcgroup-add --desc=\"login services\" login\n"
+"\n"
+" Add members to an HBAC service group:\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n"
+"\n"
+" Display information about a named group:\n"
+" ipa hbacsvcgroup-show login\n"
+"\n"
+" Add a new group to the \"login\" group:\n"
+" ipa hbacsvcgroup-add --desc=\"switch users\" login\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n"
+"\n"
+" Delete an HBAC service group:\n"
+" ipa hbacsvcgroup-del login\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:51
+msgid ""
+"\n"
+" HBAC service group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:64
+msgid "HBAC service Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:69
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:78
+#: ipalib/plugins/hbacsvcgroup.py:76
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:81
-msgid "Member services"
+#: ipalib/plugins/hbacsvcgroup.py:84
+msgid ""
+"\n"
+" Add a new HBAC service group.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:85
-msgid "Member service groups"
+#: ipalib/plugins/hbacsvcgroup.py:87
+msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:101
-#, python-format
-msgid "Added HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:93
+msgid ""
+"\n"
+" Delete an HBAC service group.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:110
-#, python-format
-msgid "Deleted HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:96
+msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:119
-#, python-format
-msgid "Modified HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:102
+msgid ""
+"\n"
+" Modify an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:105
+msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:86
+#: ipalib/plugins/hbacsvcgroup.py:111
+msgid ""
+"\n"
+" Search for an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:114
+msgid "%(count)d HBAC service group matched"
+msgid_plural "%(count)d HBAC service groups matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/hbacsvcgroup.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:130
+msgid ""
+"\n"
+" Add members to an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:138
+msgid ""
+"\n"
+" Remove members from an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:20
+msgid ""
+"\n"
+"Hosts/Machines\n"
+"\n"
+"A host represents a machine. It can be used in a number of contexts:\n"
+"- service entries are associated with a host\n"
+"- a host stores the host/ service principal\n"
+"- a host can be used in Host-based Access Control (HBAC) rules\n"
+"- every enrolled client generates a host entry\n"
+"\n"
+"ENROLLMENT:\n"
+"\n"
+"There are three enrollment scenarios when enrolling a new client:\n"
+"\n"
+"1. You are enrolling as a full administrator. The host entry may exist\n"
+" or not. A full administrator is a member of the hostadmin role\n"
+" or the admins group.\n"
+"2. You are enrolling as a limited administrator. The host must already\n"
+" exist. A limited administrator is a member a role with the\n"
+" Host Enrollment privilege.\n"
+"3. The host has been created with a one-time password.\n"
+"\n"
+"A host can only be enrolled once. If a client has enrolled and needs to\n"
+"be re-enrolled, the host entry must be removed and re-created. Note that\n"
+"re-creating the host entry will result in all services for the host being\n"
+"removed, and all SSL certificates associated with those services being\n"
+"revoked.\n"
+"\n"
+"A host can optionally store information such as where it is located,\n"
+"the OS that it runs, etc.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host:\n"
+" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example."
+"com\n"
+"\n"
+" Delete a host:\n"
+" ipa host-del test.example.com\n"
+"\n"
+" Add a new host with a one-time password:\n"
+" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n"
+"\n"
+" Add a new host with a random one-time password:\n"
+" ipa host-add --os='Fedora 12' --random test.example.com\n"
+"\n"
+" Modify information about a host:\n"
+" ipa host-mod --os='Fedora 12' test.example.com\n"
+"\n"
+" Disable the host Kerberos key, SSL certificate and all of its services:\n"
+" ipa host-disable test.example.com\n"
+"\n"
+" Add a host that can manage this host's keytab and certificate:\n"
+" ipa host-add-managedby --hosts=test2 test\n"
+msgstr ""
+
+#: ipalib/plugins/host.py:97
+msgid ""
+"\n"
+" Require at least one dot in the hostname (to support localhost."
+"localdomain)\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:118
+#: ipalib/plugins/host.py:129
+msgid "DNS reverse zone for IP address %(addr)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+msgid "Keytab"
+msgstr ""
+
+#: ipalib/plugins/host.py:185
+msgid ""
+"\n"
+" Verify that we have either an IPv4 or IPv6 address.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:189
+msgid "invalid IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:194
+msgid ""
+"\n"
+" Host object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:231
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:125
+#: ipalib/plugins/host.py:238
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:242
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:130
+#: ipalib/plugins/host.py:243
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:135
+#: ipalib/plugins/host.py:248
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:139
+#: ipalib/plugins/host.py:252
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:140
+#: ipalib/plugins/host.py:253
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:144
+#: ipalib/plugins/host.py:257
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:145
+#: ipalib/plugins/host.py:258
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:149
+#: ipalib/plugins/host.py:262
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:150
+#: ipalib/plugins/host.py:263
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:155 ipalib/plugins/service.py:205
-msgid "Base-64 encoded server certificate"
+#: ipalib/plugins/host.py:266
+msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:158 ipalib/plugins/host.py:274
-msgid "Principal name"
+#: ipalib/plugins/host.py:271
+msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:162 ipalib/plugins/hostgroup.py:93
-msgid "Member of host-groups"
+#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:166
-msgid "Member of net-groups"
+#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:170
-msgid "Member of role-groups"
+#: ipalib/plugins/host.py:306
+msgid ""
+"\n"
+" Add a new host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:199
-#, python-format
+#: ipalib/plugins/host.py:311
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:202
+#: ipalib/plugins/host.py:316
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:235
-#, python-format
+#: ipalib/plugins/host.py:319
+msgid "skip reverse DNS detection"
+msgstr ""
+
+#: ipalib/plugins/host.py:322
+msgid "Add the host to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+msgid "DNS zone %(zone)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:413
+msgid "The host was added but the DNS update failed with: %(exc)s"
+msgstr ""
+
+#: ipalib/plugins/host.py:422
+msgid ""
+"\n"
+" Delete a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:426
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:269
-#, python-format
+#: ipalib/plugins/host.py:431
+msgid "Remove entries from DNS"
+msgstr ""
+
+#: ipalib/plugins/host.py:537
+msgid ""
+"\n"
+" Modify information about a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:542
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:275
+#: ipalib/plugins/host.py:549
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:319
-#, python-format
+#: ipalib/plugins/host.py:618
+msgid ""
+"\n"
+" Search for hosts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:623
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:337 ipalib/plugins/service.py:84
-msgid "Keytab"
+#: ipalib/plugins/host.py:643
+msgid ""
+"\n"
+" Display information about a host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:359 ipalib/plugins/service.py:399
-#, python-format
-msgid "Removed kerberos key from \"%(value)s\""
+#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+msgid "file to store certificate in"
+msgstr ""
+
+#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+msgid "Certificate stored in file '%(file)s'"
+msgstr ""
+
+#: ipalib/plugins/host.py:684
+msgid ""
+"\n"
+" Disable the Kerberos key, SSL certificate and all services of a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:688
+msgid "Disabled host \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/host.py:770
+msgid ""
+"\n"
+" Add hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:781
+msgid ""
+"\n"
+" Remove hosts that can manage this host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:368
-msgid "Host principal has no kerberos key"
+#: ipalib/plugins/hostgroup.py:20
+msgid ""
+"\n"
+"Groups of hosts.\n"
+"\n"
+"Manage groups of hosts. This is useful for applying access control to a\n"
+"number of hosts by using Host-based Access Control.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host group:\n"
+" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n"
+"\n"
+" Add another new host group:\n"
+" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n"
+"\n"
+" Add members to the hostgroup:\n"
+" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n"
+"\n"
+" Add a hostgroup as a member of another hostgroup:\n"
+" ipa hostgroup-add-member --hostgroups=baltimore maryland\n"
+"\n"
+" Remove a host from the hostgroup:\n"
+" ipa hostgroup-remove-member --hosts=box2 baltimore\n"
+"\n"
+" Display a host group:\n"
+" ipa hostgroup-show baltimore\n"
+"\n"
+" Delete a hostgroup:\n"
+" ipa hostgroup-del baltimore\n"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:55
+msgid ""
+"\n"
+" Hostgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/hostgroup.py:78
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:75
+#: ipalib/plugins/hostgroup.py:79
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:82
+#: ipalib/plugins/hostgroup.py:86
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:85
-msgid "Member hosts"
+#: ipalib/plugins/hostgroup.py:94
+msgid ""
+"\n"
+" Add a new hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:89
-msgid "Member host-groups"
+#: ipalib/plugins/hostgroup.py:98
+msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:106
-#, python-format
-msgid "Added hostgroup \"%(value)s\""
+#: ipalib/plugins/hostgroup.py:104
+msgid ""
+"\n"
+" Delete a hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:116
-#, python-format
+#: ipalib/plugins/hostgroup.py:108
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:126
-#, python-format
+#: ipalib/plugins/hostgroup.py:114
+msgid ""
+"\n"
+" Modify a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:118
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:137
-#, python-format
+#: ipalib/plugins/hostgroup.py:124
+msgid ""
+"\n"
+" Search for hostgroups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:128
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/internal.py:39
+#: ipalib/plugins/hostgroup.py:136
+msgid ""
+"\n"
+" Display information about a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:144
+msgid ""
+"\n"
+" Add members to a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:152
+msgid ""
+"\n"
+" Remove members from a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:22
+msgid ""
+"\n"
+"Plugins not accessible directly through the CLI, commands used internally\n"
+msgstr ""
+
+#: ipalib/plugins/internal.py:36
+msgid ""
+"\n"
+" Export plugin meta-data for the webUI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:44
+msgid "Name of object to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:47
+msgid "Name of method to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:52
+msgid "Dict of JSON encoded IPA Objects"
+msgstr ""
+
+#: ipalib/plugins/internal.py:53
+msgid "Dict of JSON encoded IPA Methods"
+msgstr ""
+
+#: ipalib/plugins/internal.py:96
msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:41
+#: ipalib/plugins/internal.py:99
+msgid "Attribute"
+msgstr ""
+
+#: ipalib/plugins/internal.py:102
+msgid "Add Automount Location"
+msgstr ""
+
+#: ipalib/plugins/internal.py:103
+msgid "Automount Location Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:106
+msgid "Add Automount Map"
+msgstr ""
+
+#: ipalib/plugins/internal.py:109
+msgid "Add Automount Key"
+msgstr ""
+
+#: ipalib/plugins/internal.py:112
+msgid "Unspecified"
+msgstr ""
+
+#: ipalib/plugins/internal.py:113
+msgid "Key Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:114
+msgid "CA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:115
+msgid "Affiliation Changed"
+msgstr ""
+
+#: ipalib/plugins/internal.py:116
+msgid "Superseded"
+msgstr ""
+
+#: ipalib/plugins/internal.py:117
+msgid "Cessation of Operation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:118
+msgid "Certificate Hold"
+msgstr ""
+
+#: ipalib/plugins/internal.py:119
+msgid "Remove from CRL"
+msgstr ""
+
+#: ipalib/plugins/internal.py:120
+msgid "Privilege Withdrawn"
+msgstr ""
+
+#: ipalib/plugins/internal.py:121
+msgid "AA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:122
+msgid ""
+"To confirm your intention to revoke this certificate, select a reason from "
+"the pull-down list, and click the \"Revoke\" button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:124
+msgid "Note"
+msgstr ""
+
+#: ipalib/plugins/internal.py:125
+msgid "Reason for Revocation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:126
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\" "
+"button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:128
+msgid "Issued To"
+msgstr ""
+
+#: ipalib/plugins/internal.py:129
+msgid "Common Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:130
+msgid "Organization"
+msgstr ""
+
+#: ipalib/plugins/internal.py:131
+msgid "Organizational Unit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:133
+msgid "Issued By"
+msgstr ""
+
+#: ipalib/plugins/internal.py:134
+msgid "Validity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:135
+msgid "Issued On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:136
+msgid "Expires On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:137
+msgid "Fingerprints"
+msgstr ""
+
+#: ipalib/plugins/internal.py:138
+msgid "SHA1 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:139
+msgid "MD5 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:140
+msgid "Enter the Base64-encoded CSR below"
+msgstr ""
+
+#: ipalib/plugins/internal.py:141
+msgid "Valid Certificate Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:142
+msgid "New Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:143
+msgid "Certificate Revoked"
+msgstr ""
+
+#: ipalib/plugins/internal.py:144
+msgid "No Valid Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:145
+msgid "Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:146
+msgid "Issue New Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:147
+msgid "Revoke Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:148
+msgid "Restore Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:152
+msgid "Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:155
+msgid "Add Delegation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:158
+msgid "Add DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:159
+msgid "DNS Zone Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:162
+msgid "Add DNS Resource Record"
+msgstr ""
+
+#: ipalib/plugins/internal.py:163
+msgid "Resource"
+msgstr ""
+
+#: ipalib/plugins/internal.py:165
+msgid "Data"
+msgstr ""
+
+#: ipalib/plugins/internal.py:166
+msgid "Records for DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:169
+msgid "Add Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:170
+msgid "Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
+msgid "Is this a POSIX group?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:174
+msgid "Add HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:306
+msgid "Active"
+msgstr ""
+
+#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:308
+msgid "Inactive"
+msgstr ""
+
+#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
+msgid "Rule status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
+msgid "Who"
+msgstr ""
+
+#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
+msgid "Anyone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
+msgid "Specified Users and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:183
+msgid "Accessing"
+msgstr ""
+
+#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
+msgid "Any Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
+msgid "Specified Hosts and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:186
+msgid "Via Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:187
+msgid "Any Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:188
+msgid "Specified Services and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:189
+msgid "From"
+msgstr ""
+
+#: ipalib/plugins/internal.py:192
+msgid "Add HBAC Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:195
+msgid "Add HBAC Service Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:199
+msgid "Add Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:200
+msgid "Host Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:202
+msgid "Host Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:203
+msgid "Enrolled?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:204
+msgid "Enrollment"
+msgstr ""
+
+#: ipalib/plugins/internal.py:205
+msgid "Fully Qualified Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
+msgid "Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:208
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
+msgid "Delete Key, Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:211
+msgid "Enroll via One-Time-Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:212
+msgid "Set OTP"
+msgstr ""
+
+#: ipalib/plugins/internal.py:213
+msgid "One-Time-Password has been set."
+msgstr ""
+
+#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
+msgid "Unprovisioning ${entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:215
+msgid "Are you sure you want to unprovision this host?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
+msgid "Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:219
+msgid "Add Host Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:220
+msgid "Host Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:223
+msgid "Kerberos ticket policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:226
+msgid "Add Netgroup"
+msgstr ""
+
+#: ipalib/plugins/internal.py:227
+msgid "Netgroup Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:230
+msgid "Add Permission"
+msgstr ""
+
+#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
+msgid "Identity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:233
+msgid "Target"
+msgstr ""
+
+#: ipalib/plugins/internal.py:235
+msgid "By Subtree"
+msgstr ""
+
+#: ipalib/plugins/internal.py:236
+msgid "Target Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:237
+msgid "Object By Type"
+msgstr ""
+
+#: ipalib/plugins/internal.py:238
+msgid "Permission with invalid target specification"
+msgstr ""
+
+#: ipalib/plugins/internal.py:241
+msgid "Add Privilege"
+msgstr ""
+
+#: ipalib/plugins/internal.py:242
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:245
+msgid "Add Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:249
+msgid "Add Role"
+msgstr ""
+
+#: ipalib/plugins/internal.py:250
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:253
+msgid "Add Self Service Definition"
+msgstr ""
+
+#: ipalib/plugins/internal.py:256
+msgid "Add Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:257
+msgid "Service Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:258
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:260
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:261
+msgid "Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:263
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:267
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:271
+msgid "Add Sudo Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:275
+msgid "Add Sudo Command Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:279
+msgid "Add Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:287
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:290
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:291
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:292
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:293
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:294
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:295
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:297
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:300
+msgid "Add User"
+msgstr ""
+
+#: ipalib/plugins/internal.py:301
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:302
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:303
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:304
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:305
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:307
+msgid "Click to Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:309
+msgid "Click to Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:310
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:311
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:312
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:313
+msgid "Repeat Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:314
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:315
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:319
msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:42
+#: ipalib/plugins/internal.py:320
+msgid "Add and Add Another"
+msgstr ""
+
+#: ipalib/plugins/internal.py:321
+msgid "Add and Edit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:322
+msgid "Add and Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:323
+msgid "Add Many"
+msgstr ""
+
+#: ipalib/plugins/internal.py:324
+msgid "Back to List"
+msgstr ""
+
+#: ipalib/plugins/internal.py:325
+msgid "Cancel"
+msgstr ""
+
+#: ipalib/plugins/internal.py:326
+msgid "Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:327
+msgid "Enroll"
+msgstr ""
+
+#: ipalib/plugins/internal.py:328
msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:43
+#: ipalib/plugins/internal.py:329
+msgid "Get"
+msgstr ""
+
+#: ipalib/plugins/internal.py:330
+msgid "Issue"
+msgstr ""
+
+#: ipalib/plugins/internal.py:331
+msgid "OK"
+msgstr ""
+
+#: ipalib/plugins/internal.py:332
msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:333
+msgid "Delete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:334
+msgid "Restore"
+msgstr ""
+
+#: ipalib/plugins/internal.py:335
+msgid "Retry"
+msgstr ""
+
+#: ipalib/plugins/internal.py:336
+msgid "Revoke"
+msgstr ""
+
+#: ipalib/plugins/internal.py:337
msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:45
-msgid "Enroll"
+#: ipalib/plugins/internal.py:338
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:46
-msgid "Delete"
+#: ipalib/plugins/internal.py:341
+msgid "Available"
+msgstr ""
+
+#: ipalib/plugins/internal.py:342
+msgid "This page has unsaved changes. Please save or revert."
+msgstr ""
+
+#: ipalib/plugins/internal.py:343
+msgid "Dirty"
msgstr ""
-#: ipalib/plugins/internal.py:49
+#: ipalib/plugins/internal.py:344
+msgid "Hide already enrolled."
+msgstr ""
+
+#: ipalib/plugins/internal.py:345
+msgid "Select ${entity} to be removed."
+msgstr ""
+
+#: ipalib/plugins/internal.py:346
+msgid "Remove ${entity}."
+msgstr ""
+
+#: ipalib/plugins/internal.py:347
+msgid "Prospective"
+msgstr ""
+
+#: ipalib/plugins/internal.py:350
+msgid "Managed by"
+msgstr ""
+
+#: ipalib/plugins/internal.py:351
+msgid "Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:352
+msgid "Indirect Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:353
+msgid "Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:354
+msgid "Indirect Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
+msgid "Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:358
+msgid "Search"
+msgstr ""
+
+#: ipalib/plugins/internal.py:362
msgid "Quick Links"
msgstr ""
-#: ipalib/plugins/internal.py:50
+#: ipalib/plugins/internal.py:363
msgid "Select All"
msgstr ""
-#: ipalib/plugins/internal.py:51
+#: ipalib/plugins/internal.py:364
msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Do you really want to delete the selected entries?"
+#: ipalib/plugins/internal.py:365
+msgid "Are you sure you want to delete selected entries?"
msgstr ""
-#: ipalib/plugins/internal.py:55
-msgid "Identity Details"
+#: ipalib/plugins/internal.py:366
+msgid ""
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
msgstr ""
-#: ipalib/plugins/internal.py:56
-msgid "Account Details"
+#: ipalib/plugins/internal.py:370
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:57
-msgid "Contact Details"
+#: ipalib/plugins/internal.py:371
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:58
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:372
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:59
-msgid " Employee Information"
+#: ipalib/plugins/internal.py:373
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:60
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:377
+msgid "Policy"
msgstr ""
-#: ipalib/plugins/internal.py:61
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:378
+msgid "Audit"
msgstr ""
-#: ipalib/plugins/internal.py:66
-msgid "Name of object to export"
+#: ipalib/plugins/internal.py:379
+msgid "IPA Server"
msgstr ""
-#: ipalib/plugins/internal.py:71
-msgid "Dict of JSON encoded IPA Objects"
+#: ipalib/plugins/internal.py:380
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:381
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:382
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:383
+msgid "Automount"
msgstr ""
-#: ipalib/plugins/internal.py:72
+#: ipalib/plugins/internal.py:386
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:387
+msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:388
+msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:389
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:392
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:395
+msgid ""
+"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."
+msgstr ""
+
+#: ipalib/plugins/internal.py:399
msgid "Dict of I18N messages"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:59
+#: ipalib/plugins/kerberos.py:20
+msgid ""
+"\n"
+"Backend plugin for Kerberos.\n"
+"\n"
+"This wraps the python-kerberos and python-krbV bindings.\n"
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:35
+msgid ""
+"\n"
+" Kerberos backend plugin.\n"
+"\n"
+" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
+" bindings also). Importantly, this plugin does correct Unicode\n"
+" encoding/decoding of values going-to/coming-from the bindings.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:44
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:50
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:56
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:62
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:68
+msgid ""
+"\n"
+" Return the default ccache file name.\n"
+"\n"
+" This will return something like '/tmp/krb5cc_500'.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:79
+msgid ""
+"\n"
+" Return the principal name in default credential cache.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'. If no "
+"credential\n"
+" cache exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:91
+msgid ""
+"\n"
+" Return the realm from the default credential cache.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'. If no credential "
+"cache\n"
+" exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:103
+msgid ""
+"\n"
+" Return the principal from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:111
+msgid ""
+"\n"
+" Return the realm from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:19
+msgid ""
+"\n"
+"Kerberos ticket policy\n"
+"\n"
+"There is a single Kerberos ticket policy. This policy defines the\n"
+"maximum ticket lifetime and the maximum renewal age, the period during\n"
+"which the ticket is renewable.\n"
+"\n"
+"You can also create a per-user ticket policy by specifying the user login.\n"
+"\n"
+"For changes to the global policy to take effect, restarting the KDC service\n"
+"is required, which can be achieved using:\n"
+"\n"
+"service krb5kdc restart\n"
+"\n"
+"Changes to per-user policies take effect immediately for newly requested\n"
+"tickets (e.g. when the user next runs kinit).\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Display the current Kerberos ticket policy:\n"
+" ipa krbtpolicy-show\n"
+"\n"
+" Reset the policy to the default:\n"
+" ipa krbtpolicy-reset\n"
+"\n"
+" Modify the policy to 8 hours max life, 1-day max renewal:\n"
+" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n"
+"\n"
+" Display effective Kerberos ticket policy for user 'admin':\n"
+" ipa krbtpolicy-show admin\n"
+"\n"
+" Reset per-user policy for user 'admin':\n"
+" ipa krbtpolicy-reset admin\n"
+"\n"
+" Modify per-user policy for user 'admin':\n"
+" ipa krbtpolicy-mod admin --maxlife=3600\n"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:71
+msgid ""
+"\n"
+" Kerberos Ticket Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:79
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:64 ipalib/plugins/passwd.py:52
+#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
msgid "User name"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:65
+#: ipalib/plugins/krbtpolicy.py:85
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:70
+#: ipalib/plugins/krbtpolicy.py:90
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:75
+#: ipalib/plugins/krbtpolicy.py:96
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:76
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/migration.py:44
-#, python-format
+#: ipalib/plugins/krbtpolicy.py:111
+msgid ""
+"\n"
+" Modify Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:125
+msgid ""
+"\n"
+" Display the current Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:149
+msgid ""
+"\n"
+" Reset Kerberos ticket policy to the default values.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:19
+msgid ""
+"\n"
+"Migration to IPA\n"
+"\n"
+"Migrate users and groups from an LDAP server to IPA.\n"
+"\n"
+"This performs an LDAP query against the remote server searching for\n"
+"users and groups in a container. In order to migrate passwords you need\n"
+"to bind as a user that can read the userPassword attribute on the remote\n"
+"server. This is generally restricted to high-level admins such as\n"
+"cn=Directory Manager in 389-ds (this is the default bind user).\n"
+"\n"
+"The default user container is ou=People.\n"
+"\n"
+"The default group container is ou=Groups.\n"
+"\n"
+"Users and groups that already exist on the IPA server are skipped.\n"
+"\n"
+"Two LDAP schemas define how group members are stored: RFC2307 and\n"
+"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n"
+"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n"
+"\n"
+"Migrated users do not have Kerberos credentials, they have only their\n"
+"LDAP password. To complete the migration process, users need to go\n"
+"to http://ipa.example.com/ipa/migration and authenticate using their\n"
+"LDAP password in order to generate their Kerberos credentials.\n"
+"\n"
+"Migration is disabled by default. Use the command ipa config-mod to\n"
+"enable it:\n"
+"\n"
+" ipa config-mod --enable-migration=TRUE\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" The simplest migration, accepting all defaults:\n"
+" ipa migrate-ds ldap://ds.example.com:389\n"
+"\n"
+" Specify the user and group container. This can be used to migrate user and\n"
+" group data from an IPA v1 server:\n"
+" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-"
+"container='cn=groups,cn=accounts' ldap://ds.example.com:389\n"
+msgstr ""
+
+#: ipalib/plugins/migration.py:78
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:45
+#: ipalib/plugins/migration.py:79
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:169
+#: ipalib/plugins/migration.py:175
+msgid ""
+"\n"
+" Convert usernames in member attributes to work in IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:220
+msgid "Invalid LDAP URI."
+msgstr ""
+
+#: ipalib/plugins/migration.py:225
+msgid ""
+"\n"
+" Migrate users and groups from DS to IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:266
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:170
+#: ipalib/plugins/migration.py:267
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:174
+#: ipalib/plugins/migration.py:272
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:181
+#: ipalib/plugins/migration.py:279
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:187
+#: ipalib/plugins/migration.py:285
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:188
+#: ipalib/plugins/migration.py:286
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:194
+#: ipalib/plugins/migration.py:292
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:195
+#: ipalib/plugins/migration.py:293
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:200
-msgid "Continous operation mode. Errors are reported but the process continues"
+#: ipalib/plugins/migration.py:299
+msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:208
+#: ipalib/plugins/migration.py:300
+msgid ""
+"Comma-separated list of objectclasses used to search for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:306
+msgid "Group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:307
+msgid ""
+"Comma-separated list of objectclasses used to search for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:313
+msgid "LDAP schema"
+msgstr ""
+
+#: ipalib/plugins/migration.py:314
+msgid ""
+"The schema used on the LDAP server. Supported values are RFC2307 and "
+"RFC2307bis. The default is RFC2307bis"
+msgstr ""
+
+#: ipalib/plugins/migration.py:320
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues"
+msgstr ""
+
+#: ipalib/plugins/migration.py:328
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:212
+#: ipalib/plugins/migration.py:332
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:216
+#: ipalib/plugins/migration.py:336
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:220
-#, python-format
+#: ipalib/plugins/migration.py:340
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:222
+#: ipalib/plugins/migration.py:342
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
-"migration process might be uncomplete\n"
+"migration process might be incomplete\n"
msgstr ""
-#: ipalib/plugins/migration.py:227
+#: ipalib/plugins/migration.py:347
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:230
+#: ipalib/plugins/migration.py:350
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -1527,16 +4765,55 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:297
-#, python-format
+#: ipalib/plugins/migration.py:358
+msgid ""
+"\n"
+" Call get_options of the baseclass and add \"exclude\" options\n"
+" for each type of object being migrated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:375
+msgid ""
+"\n"
+" Convert all \"exclude\" option values to lower-case.\n"
+"\n"
+" Also, empty List parameters are converted to None, but the "
+"migration\n"
+" plugin doesn't like that - convert back to empty lists.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:399
+msgid ""
+"\n"
+" Migrate objects from DS to LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:425
msgid "Container for %(container)s not found"
msgstr ""
+#: ipalib/plugins/misc.py:20
+msgid ""
+"\n"
+"Misc plug-ins\n"
+msgstr ""
+
+#: ipalib/plugins/misc.py:36
+msgid "Show environment variables"
+msgstr ""
+
#: ipalib/plugins/misc.py:38
-#, python-format
msgid "%(count)d variables"
msgstr ""
+#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115
+msgid ""
+"retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
#: ipalib/plugins/misc.py:61
msgid "Total number of variables env (>= count)"
msgstr ""
@@ -1545,435 +4822,2391 @@ msgstr ""
msgid "Number of variables returned (<= total)"
msgstr ""
-#: ipalib/plugins/misc.py:109
-#, python-format
+#: ipalib/plugins/misc.py:106
+msgid "Show all loaded plugins"
+msgstr ""
+
+#: ipalib/plugins/misc.py:108
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/misc.py:116
+#: ipalib/plugins/misc.py:126
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:57
+#: ipalib/plugins/netgroup.py:20
+msgid ""
+"\n"
+"Netgroups\n"
+"\n"
+"A netgroup is a group used for permission checking. It can contain both\n"
+"user and host values.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new netgroup:\n"
+" ipa netgroup-add --desc=\"NFS admins\" admins\n"
+"\n"
+" Add members to the netgroup:\n"
+" ipa netgroup-add-member --users=tuser1,tuser2 admins\n"
+"\n"
+" Remove a member from the netgroup:\n"
+" ipa netgroup-remove-member --users=tuser2 admins\n"
+"\n"
+" Display information about a netgroup:\n"
+" ipa netgroup-show admins\n"
+"\n"
+" Delete a netgroup:\n"
+" ipa netgroup-del admins\n"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:59
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:63
-msgid "External host"
+#: ipalib/plugins/netgroup.py:67
+msgid ""
+"\n"
+" Netgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/netgroup.py:85
-msgid "Net Groups"
+#: ipalib/plugins/netgroup.py:98
+msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:90
+#: ipalib/plugins/netgroup.py:103
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:97
+#: ipalib/plugins/netgroup.py:110
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:101
+#: ipalib/plugins/netgroup.py:114
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:106
+#: ipalib/plugins/netgroup.py:119
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:84
-#, python-format
+#: ipalib/plugins/netgroup.py:140
+msgid ""
+"\n"
+" Add a new netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:144
+msgid "Added netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:153
+msgid ""
+"\n"
+" Delete a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:156
+msgid "Deleted netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:162
+msgid ""
+"\n"
+" Modify a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:166
+msgid "Modified netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:180
+msgid ""
+"\n"
+" Search for a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:185
+msgid "%(count)d netgroup matched"
+msgid_plural "%(count)d netgroups matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/netgroup.py:213
+msgid ""
+"\n"
+" Display information about a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:222
+msgid ""
+"\n"
+" Add members to a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:258
+msgid ""
+"\n"
+" Remove members from a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:19
+msgid ""
+"\n"
+"Set a user's password\n"
+"\n"
+"If someone other than a user changes that user's password (e.g., Helpdesk\n"
+"resets it) then the password will need to be changed the first time it\n"
+"is used. This is so the end-user is the only one who knows the password.\n"
+"\n"
+"The IPA password policy controls how often a password may be changed,\n"
+"what strength requirements exist, and the length of the password history.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" To reset your own password:\n"
+" ipa passwd\n"
+"\n"
+" To change another user's password:\n"
+" ipa passwd tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/passwd.py:46
+msgid ""
+"\n"
+" Set a user's password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:64
+msgid "Changed password for \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/passwd.py:67
+msgid ""
+"\n"
+" Execute the passwd operation.\n"
+"\n"
+" The dn should not be passed as a keyword argument as it is "
+"constructed\n"
+" by this method.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param principal: The login name or principal of the user\n"
+" :param password: the new password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:19
+msgid ""
+"\n"
+"Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of rights. A permission is\n"
+"a human-readable form of a 389-ds Access Control Rule, or instruction "
+"(ACI).\n"
+"A permission grants the right to perform a specific task such as adding a\n"
+"user, modifying a group, etc.\n"
+"\n"
+"A permission may not contain other permissions.\n"
+"\n"
+"* A permission grants access to read, write, add or delete.\n"
+"* A privilege combines similar permissions (for example all the permissions\n"
+" needed to add a user).\n"
+"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n"
+"\n"
+"A permission is made up of a number of different parts:\n"
+"\n"
+"1. The name of the permission.\n"
+"2. The target of the permission.\n"
+"3. The rights granted by the permission.\n"
+"\n"
+"Rights define what operations are allowed, and may be one or more\n"
+"of the following:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Read permission is granted for most attributes by default so the read\n"
+"permission is not expected to be used very often.\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"There are a number of allowed targets:\n"
+"1. type: a type of object (user, group, etc).\n"
+"2. memberof: a member of a group or hostgroup\n"
+"3. filter: an LDAP filter\n"
+"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n"
+" super-set of the \"type\" target.\n"
+"5. targetgroup: grant access to modify a specific group (such as granting\n"
+" the rights to manage group membership)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a permission that grants the creation of users:\n"
+" ipa permission-add --type=user --permissions=add \"Add Users\"\n"
+"\n"
+" Add a permission that grants the ability to manage group membership:\n"
+" ipa permission-add --attrs=member --permissions=write --type=group "
+"\"Manage Group Members\"\n"
+msgstr ""
+
+#: ipalib/plugins/permission.py:84
+msgid "Permission Type"
+msgstr ""
+
+#: ipalib/plugins/permission.py:89
+msgid ""
+"\n"
+" Permission object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:112
+msgid "Permission name"
+msgstr ""
+
+#: ipalib/plugins/permission.py:119
+msgid ""
+"Comma-separated list of permissions to grant (read, write, add, delete, all)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:132
+msgid ""
+"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:138
+msgid "Member of group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:139
+msgid "Target members of a group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:151
+msgid "Subtree to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:157
+msgid "User group to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:177
+msgid ""
+"\n"
+" Add a new permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:181
+msgid "Added permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:236
+msgid ""
+"\n"
+" Delete a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:240
+msgid "Deleted permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:256
+msgid ""
+"\n"
+" Modify a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:260
+msgid "Modified permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:352
+msgid ""
+"\n"
+" Search for permissions.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:356
+msgid "%(count)d permission matched"
+msgid_plural "%(count)d permissions matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/permission.py:405
+msgid ""
+"\n"
+" Display information about a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:428
+msgid ""
+"\n"
+" Add members to a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:437
+msgid ""
+"\n"
+" Remove members from a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:19
+msgid ""
+"\n"
+"Ping the remote IPA server\n"
+msgstr ""
+
+#: ipalib/plugins/ping.py:29
+msgid ""
+"\n"
+" ping a remote server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:37
+msgid ""
+"\n"
+" A possible enhancement would be to take an argument and echo it\n"
+" back but a fixed value works for now.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:19
+msgid ""
+"\n"
+"Kerberos pkinit options\n"
+"\n"
+"Enable or disable anonymous pkinit using the principal\n"
+"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n"
+"pkinit support.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Enable anonymous pkinit:\n"
+" ipa pkinit-anonymous enable\n"
+"\n"
+" Disable anonymous pkinit:\n"
+" ipa pkinit-anonymous disable\n"
+"\n"
+"For more information on anonymous pkinit see:\n"
+"\n"
+"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:46
+msgid ""
+"\n"
+" PKINIT Options\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:51
+msgid "PKINIT"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:56
+msgid ""
+"\n"
+" Accepts only Enable/Disable.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:67
+msgid ""
+"\n"
+" Enable or Disable Anonymous PKINIT\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:19
+msgid ""
+"\n"
+"Privileges\n"
+"\n"
+"A privilege combines permissions into a logical task. A permission provides\n"
+"the rights to do a single task. There are some IPA operations that require\n"
+"multiple permissions to succeed. A privilege is where permissions are\n"
+"combined in order to perform a specific task.\n"
+"\n"
+"For example, adding a user requires the following permissions:\n"
+" * Creating a new user entry\n"
+" * Resetting a user password\n"
+" * Adding the new user to the default IPA users group\n"
+"\n"
+"Combining these three low-level tasks into a higher level task in the\n"
+"form of a privilege named \"Add User\" makes it easier to manage Roles.\n"
+"\n"
+"A privilege may not contain other privileges.\n"
+"\n"
+"See role and permission for additional information.\n"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:45
+msgid ""
+"\n"
+" Privilege object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:65
+msgid "Privileges"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:70
+msgid "Privilege name"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:77
+msgid "Privilege description"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:85
+msgid ""
+"\n"
+" Add a new privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:89
+msgid "Added privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:95
+msgid ""
+"\n"
+" Delete a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:99
+msgid "Deleted privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:105
+msgid ""
+"\n"
+" Modify a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:109
+msgid "Modified privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:115
+msgid ""
+"\n"
+" Search for privileges.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:119
+msgid "%(count)d privilege matched"
+msgid_plural "%(count)d privileges matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/privilege.py:127
+msgid ""
+"\n"
+" Display information about a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:135
+msgid ""
+"\n"
+" Add members to a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:144
+msgid ""
+"\n"
+" Remove members from a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:153
+msgid ""
+"\n"
+" Add permissions to a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:169
+msgid "Number of permissions added"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:177
+msgid ""
+"\n"
+" Remove permissions from a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:195
+msgid "Number of permissions removed"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:20
+msgid ""
+"\n"
+"Password policy\n"
+"\n"
+"A password policy sets limitations on IPA passwords, including maximum\n"
+"lifetime, minimum lifetime, the number of passwords to save in\n"
+"history, the number of character classes required (for stronger passwords)\n"
+"and the minimum password length.\n"
+"\n"
+"By default there is a single, global policy for all users. You can also\n"
+"create a password policy to apply to a group. Each user is only subject\n"
+"to one password policy, either the group policy or the global policy. A\n"
+"group policy stands alone; it is not a super-set of the global policy plus\n"
+"custom settings.\n"
+"\n"
+"Each group password policy requires a unique priority setting. If a user\n"
+"is in multiple groups that have password policies, this priority determines\n"
+"which password policy is applied. A lower value indicates a higher priority\n"
+"policy.\n"
+"\n"
+"Group password policies are automatically removed when the groups they\n"
+"are associated with are removed.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Modify the global policy:\n"
+" ipa pwpolicy-mod --minlength=10\n"
+"\n"
+" Add a new group password policy:\n"
+" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --"
+"minlength=8 --priority=10 localadmins\n"
+"\n"
+" Display the global password policy:\n"
+" ipa pwpolicy-show\n"
+"\n"
+" Display a group password policy:\n"
+" ipa pwpolicy-show localadmins\n"
+"\n"
+" Display the policy that would be applied to a given user:\n"
+" ipa pwpolicy-show --user=tuser1\n"
+"\n"
+" Modify a group password policy:\n"
+" ipa pwpolicy-mod --minclasses=2 localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:72
+msgid ""
+"\n"
+" Class of Service object used for linking policies with groups\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:87
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:170
-msgid "Password Policy"
+#: ipalib/plugins/pwpolicy.py:172
+msgid ""
+"\n"
+" Password Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:201
+msgid "Max failures"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:202
+msgid "Consecutive failures before lockout"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:207
+msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:175
+#: ipalib/plugins/pwpolicy.py:208
+msgid "Period after which failure count will be reset (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:213
+msgid "Lockout duration"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:214
+msgid "Period for which lockout is enforced (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:224
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:176
+#: ipalib/plugins/pwpolicy.py:225
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:181
+#: ipalib/plugins/pwpolicy.py:230
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:182
+#: ipalib/plugins/pwpolicy.py:231
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:187
+#: ipalib/plugins/pwpolicy.py:236
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:188
+#: ipalib/plugins/pwpolicy.py:237
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:193
+#: ipalib/plugins/pwpolicy.py:242
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:194
+#: ipalib/plugins/pwpolicy.py:243
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:199
+#: ipalib/plugins/pwpolicy.py:248
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:200
+#: ipalib/plugins/pwpolicy.py:249
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:206
+#: ipalib/plugins/pwpolicy.py:255
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:256
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:212
+#: ipalib/plugins/pwpolicy.py:261
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:262
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:265
+#: ipalib/plugins/pwpolicy.py:294
+msgid ""
+"\n"
+" Ensure that the maximum lifetime is greater than the minimum.\n"
+" If there is no minimum lifetime set then don't return an error.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:314
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:330
+#: ipalib/plugins/pwpolicy.py:333
+msgid ""
+"\n"
+" Add a new group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:361
+msgid ""
+"\n"
+" Delete a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:380
+msgid ""
+"\n"
+" Modify a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:391
msgid "priority cannot be set on global policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:369
+#: ipalib/plugins/pwpolicy.py:423
+msgid ""
+"\n"
+" Display information about password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:428
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:370
+#: ipalib/plugins/pwpolicy.py:429
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/rolegroup.py:79
-msgid "Role Groups"
+#: ipalib/plugins/pwpolicy.py:452
+msgid ""
+"\n"
+" Search for group password policies.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:84
-msgid "Role-group name"
+#: ipalib/plugins/role.py:20
+msgid ""
+"\n"
+"Roles\n"
+"\n"
+"A role is used for fine-grained delegation. A permission grants the ability\n"
+"to perform given low-level tasks (add a user, modify a group, etc.). A\n"
+"privilege combines one or more permissions into a higher-level abstraction\n"
+"such as useradmin. A useradmin would be able to add, delete and modify "
+"users.\n"
+"\n"
+"Privileges are assigned to Roles.\n"
+"\n"
+"Users, groups, hosts and hostgroups may be members of a Role.\n"
+"\n"
+"Roles can not contain other roles.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new role:\n"
+" ipa role-add --desc=\"Junior-level admin\" junioradmin\n"
+"\n"
+" Add some privileges to this role:\n"
+" ipa role-add-privilege --privileges=addusers junioradmin\n"
+" ipa role-add-privilege --privileges=change_password junioradmin\n"
+" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n"
+"\n"
+" Add a group of users to this role:\n"
+" ipa group-add --desc=\"User admins\" useradmins\n"
+" ipa role-add-member --groups=useradmins junioradmin\n"
+"\n"
+" Display information about a role:\n"
+" ipa role-show junioradmin\n"
+"\n"
+" The result of this is that any users in the group 'useradmins' can\n"
+" add users, reset passwords or add a user to the default IPA user group.\n"
+msgstr ""
+
+#: ipalib/plugins/role.py:62
+msgid ""
+"\n"
+" Role object.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:91
+#: ipalib/plugins/role.py:81
+msgid "Role"
+msgstr ""
+
+#: ipalib/plugins/role.py:86
+msgid "Role name"
+msgstr ""
+
+#: ipalib/plugins/role.py:93
msgid "A description of this role-group"
msgstr ""
-#: ipalib/plugins/rolegroup.py:102
-msgid "Member of task-groups"
+#: ipalib/plugins/role.py:101
+msgid ""
+"\n"
+" Add a new role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:115
-#, python-format
-msgid "Added rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:105
+msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/rolegroup.py:125
-#, python-format
-msgid "Deleted rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:111
+msgid ""
+"\n"
+" Delete a role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:135
-#, python-format
-msgid "Modified rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:115
+msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/rolegroup.py:146
-#, python-format
-msgid "%(count)d rolegroup matched"
-msgid_plural "%(count)d rolegroups matched"
+#: ipalib/plugins/role.py:121
+msgid ""
+"\n"
+" Modify a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:125
+msgid "Modified role \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/role.py:131
+msgid ""
+"\n"
+" Search for roles.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:135
+msgid "%(count)d role matched"
+msgid_plural "%(count)d roles matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:198
+#: ipalib/plugins/role.py:143
+msgid ""
+"\n"
+" Display information about a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:151
+msgid ""
+"\n"
+" Add members to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:159
+msgid ""
+"\n"
+" Remove members from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:167
+msgid ""
+"\n"
+" Add privileges to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:183
+msgid "Number of privileges added"
+msgstr ""
+
+#: ipalib/plugins/role.py:191
+msgid ""
+"\n"
+" Remove privileges from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:207
+msgid "Number of privileges removed"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:19
+msgid ""
+"\n"
+"Self-service Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"A Self-service permission defines what an object can change in its own "
+"entry.\n"
+"\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a self-service rule to allow users to manage their address:\n"
+" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st "
+"\"Users manage their own address\"\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add telephoneNumber to the list:\n"
+" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber "
+"\"Users manage their own address\"\n"
+"\n"
+" Display our updated rule:\n"
+" ipa selfservice-show \"Users manage their own address\"\n"
+"\n"
+" Delete a rule:\n"
+" ipa selfservice-del \"Users manage their own address\"\n"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:56
+msgid ""
+"\n"
+" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a self-service ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:64
+msgid "Self-service permission '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:68
+msgid ""
+"\n"
+" Selfservice object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:75
+msgid "Self Service Permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
+msgid "Self-service name"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:114
+msgid ""
+"\n"
+" Add a new self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:118
+msgid "Added selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:137
+msgid ""
+"\n"
+" Delete a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:142
+msgid "Deleted selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:158
+msgid ""
+"\n"
+" Modify a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:162
+msgid "Modified selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:181
+msgid ""
+"\n"
+" Search for a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:185
+msgid "%(count)d selfservice matched"
+msgid_plural "%(count)d selfservices matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/selfservice.py:207
+msgid ""
+"\n"
+" Display information about a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:21
+msgid ""
+"\n"
+"Services\n"
+"\n"
+"A IPA service represents a service that runs on a host. The IPA service\n"
+"record can store a Kerberos principal, an SSL certificate, or both.\n"
+"\n"
+"An IPA service can be managed directly from a machine, provided that\n"
+"machine has been given the correct permission. This is true even for\n"
+"machines other than the one the service is associated with. For example,\n"
+"requesting an SSL certificate using the host service principal credentials\n"
+"of the host. To manage a service using host credentials you need to\n"
+"kinit as the host:\n"
+"\n"
+" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n"
+"\n"
+"Adding an IPA service allows the associated service to request an SSL\n"
+"certificate or keytab, but this is performed as a separate step; they\n"
+"are not produced as a result of adding the service.\n"
+"\n"
+"Only the public aspect of a certificate is stored in a service record;\n"
+"the private key is not stored.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new IPA service:\n"
+" ipa service-add HTTP/web.example.com\n"
+"\n"
+" Allow a host to manage an IPA service certificate:\n"
+" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n"
+" ipa role-add-member --hosts=web.example.com certadmin\n"
+"\n"
+" Delete an IPA service:\n"
+" ipa service-del HTTP/web.example.com\n"
+"\n"
+" Find all IPA services associated with a host:\n"
+" ipa service-find web.example.com\n"
+"\n"
+" Find all HTTP services:\n"
+" ipa service-find HTTP\n"
+"\n"
+" Disable the service Kerberos key and SSL certificate:\n"
+" ipa service-disable HTTP/web.example.com\n"
+"\n"
+" Request a certificate for an IPA service:\n"
+" ipa cert-request --principal=HTTP/web.example.com example.csr\n"
+"\n"
+" Generate and retrieve a keytab for an IPA service:\n"
+" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/"
+"httpd.keytab\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/service.py:162
+msgid ""
+"\n"
+" For now just verify that it is properly base64-encoded.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:175
+msgid ""
+"\n"
+" Set individual attributes from some values from a certificate.\n"
+"\n"
+" entry_attrs is a dict of an entry\n"
+"\n"
+" returns nothing\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:199
+msgid ""
+"\n"
+" Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:226
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:221
+#: ipalib/plugins/service.py:242
+msgid ""
+"\n"
+" Add a new IPA new service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:245
+msgid "Added service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/service.py:251
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:292
-#, python-format
+#: ipalib/plugins/service.py:284
+msgid ""
+"\n"
+" Delete an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:287
+msgid "Deleted service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/service.py:321
+msgid ""
+"\n"
+" Modify an existing IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:324
msgid "Modified service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:323
-#, python-format
+#: ipalib/plugins/service.py:356
+msgid ""
+"\n"
+" Search for IPA services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:359
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:409
-msgid "Service principal has no kerberos key"
+#: ipalib/plugins/service.py:394
+msgid ""
+"\n"
+" Display information about an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:432
+msgid ""
+"\n"
+" Add hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:442
+msgid ""
+"\n"
+" Remove hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:452
+msgid ""
+"\n"
+" Disable the Kerberos key and SSL certificate of a service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:456
+msgid "Disabled service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:19
+msgid ""
+"\n"
+"Sudo Commands\n"
+"\n"
+"Commands used as building blocks for sudo\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a new command\n"
+" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n"
+"\n"
+" Remove a command\n"
+" ipa sudocmd-del /usr/bin/less\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:46
+msgid ""
+"\n"
+" Sudo Command object.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmd.py:60
-msgid "SudoCmds"
+#: ipalib/plugins/sudocmd.py:64
+msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:65
+#: ipalib/plugins/sudocmd.py:69
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:72
+#: ipalib/plugins/sudocmd.py:75
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:99
-#, python-format
+#: ipalib/plugins/sudocmd.py:98
+msgid ""
+"\n"
+" Create new sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:102
msgid "Added sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:108
-#, python-format
+#: ipalib/plugins/sudocmd.py:107
+msgid ""
+"\n"
+" Delete sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:111
msgid "Deleted sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:117
-#, python-format
+#: ipalib/plugins/sudocmd.py:116
+msgid ""
+"\n"
+" Modify command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:120
msgid "Modified sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:127
-#, python-format
+#: ipalib/plugins/sudocmd.py:125
+msgid ""
+"\n"
+" Search for commands.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:129
msgid "%(count)d sudo command matched"
msgid_plural "%(count)d sudo command matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmdgroup.py:66 ipalib/plugins/sudocmdgroup.py:85
-#: ipalib/plugins/sudorule.py:81 ipalib/plugins/sudorule.py:85
-msgid "Sudo Command Groups"
+#: ipalib/plugins/sudocmd.py:136
+msgid ""
+"\n"
+" Display sudo command.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:71
+#: ipalib/plugins/sudocmdgroup.py:19
+msgid ""
+"\n"
+"Groups of Sudo commands\n"
+"\n"
+"Manage groups of Sudo commands.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new Sudo command group:\n"
+" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
+"\n"
+" Remove a Sudo command group:\n"
+" ipa sudocmdgroup-del admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim "
+"admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
+"\n"
+" Show a Sudo command group:\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:50
+msgid ""
+"\n"
+" Sudo Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:70
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:81
-msgid "Commands"
+#: ipalib/plugins/sudocmdgroup.py:93
+msgid ""
+"\n"
+" Create new sudo command group.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:98
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:97
msgid "Added sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:108
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:103
+msgid ""
+"\n"
+" Delete sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:107
msgid "Deleted sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:118
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:113
+msgid ""
+"\n"
+" Modify group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:117
msgid "Modified sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:129
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:123
+msgid ""
+"\n"
+" Search for sudo command groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:127
msgid "%(count)d sudo command group matched"
msgid_plural "%(count)d sudo command groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudorule.py:48
-msgid "SudoRule"
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid ""
+"\n"
+" Display sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:144
+msgid ""
+"\n"
+" Add members to sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:152
+msgid ""
+"\n"
+" Remove members from sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:19
+msgid ""
+"\n"
+"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
+"give certain users (or groups of users) the ability to run some (or all)\n"
+"commands as root or another user while providing an audit trail of the\n"
+"commands and their arguments.\n"
+"\n"
+"FreeIPA provides a designated binddn to use with Sudo located at:\n"
+"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
+"\n"
+"To enable the binddn run the following command to set the password:\n"
+"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -"
+"ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,"
+"dc=com\n"
+"\n"
+"For more information, see the FreeIPA Documentation to Sudo.\n"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:44
+msgid ""
+"\n"
+" Sudo Rule management\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:68
+msgid "Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:98
+msgid "Command category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:99
+msgid "Command category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:104
+msgid "Run As User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/sudorule.py:105
+msgid "Run As User category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:110
+msgid "Run As Group category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:111
+msgid "Run As Group category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:131
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:77
+#: ipalib/plugins/sudorule.py:135
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:109
-#, python-format
+#: ipalib/plugins/sudorule.py:147
+msgid "Run As User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:151
+msgid "Run As Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:156
+msgid "External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:157
+msgid "External User the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:161
+msgid "RunAs External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:162
+msgid "External User the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:166
+msgid "RunAs External Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:167
+msgid "External Group the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:175
+msgid ""
+"\n"
+" Create new Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "Added sudo rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/taskgroup.py:51
-msgid "Task Groups"
+#: ipalib/plugins/sudorule.py:189
+msgid ""
+"\n"
+" Delete Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:197
+msgid ""
+"\n"
+" Modify Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:56
-msgid "Task-group name"
+#: ipalib/plugins/sudorule.py:205
+msgid ""
+"\n"
+" Search for Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:63
-msgid "Task-group description"
+#: ipalib/plugins/sudorule.py:213
+msgid ""
+"\n"
+" Display Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:74
-msgid "Member role-groups"
+#: ipalib/plugins/sudorule.py:221
+msgid ""
+"\n"
+" Enable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:87
-#, python-format
-msgid "Added taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:247
+msgid ""
+"\n"
+" Disable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:97
-#, python-format
-msgid "Deleted taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
+msgid ""
+"\n"
+" Add commands and sudo command groups affected by Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:107
-#, python-format
-msgid "Modified taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
+msgid ""
+"\n"
+" Remove commands and sudo command groups affected by Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:118
-#, python-format
-msgid "%(count)d taskgroup matched"
-msgid_plural "%(count)d taskgroups matched"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/sudorule.py:313
+msgid ""
+"\n"
+" Add users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:349
+msgid ""
+"\n"
+" Remove users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:383
+msgid ""
+"\n"
+" Add hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:419
+msgid ""
+"\n"
+" Remove hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:453
+msgid ""
+"\n"
+" Add user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:489
+msgid ""
+"\n"
+" Remove user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:523
+msgid ""
+"\n"
+" Add group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:559
+msgid ""
+"\n"
+" Remove group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:593
+msgid ""
+"\n"
+" Add an option to the Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
+msgid "Sudo Option"
+msgstr ""
-#: ipalib/plugins/user.py:84
+#: ipalib/plugins/sudorule.py:635
+msgid ""
+"\n"
+" Remove an option from Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:20
+msgid ""
+"\n"
+"Users\n"
+"\n"
+"Manage user entries. All users are POSIX users.\n"
+"\n"
+"IPA supports a wide range of username formats, but you need to be aware of "
+"any\n"
+"restrictions that may apply to your particular environment. For example,\n"
+"usernames that start with a digit or usernames that exceed a certain length\n"
+"may cause problems for some UNIX systems.\n"
+"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n"
+"\n"
+"Disabling a user account prevents that user from obtaining new Kerberos\n"
+"credentials. It does not invalidate any credentials that have already\n"
+"been issued.\n"
+"\n"
+"Password management is not a part of this module. For more information\n"
+"about this topic please see: ipa help passwd\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1\n"
+"\n"
+" Find all users whose entries include the string \"Tim\":\n"
+" ipa user-find Tim\n"
+"\n"
+" Find all users with \"Tim\" as the first name:\n"
+" ipa user-find --first=Tim\n"
+"\n"
+" Disable a user account:\n"
+" ipa user-disable tuser1\n"
+"\n"
+" Enable a user account:\n"
+" ipa user-enable tuser1\n"
+"\n"
+" Delete a user:\n"
+" ipa user-del tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/user.py:79
+msgid ""
+"\n"
+" User object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:116
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:91
+#: ipalib/plugins/user.py:123
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:95
+#: ipalib/plugins/user.py:127
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:103
+#: ipalib/plugins/user.py:130
+msgid "Full name"
+msgstr ""
+
+#: ipalib/plugins/user.py:135
+msgid "Display name"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "Initials"
+msgstr ""
+
+#: ipalib/plugins/user.py:146
+msgid "Home directory"
+msgstr ""
+
+#: ipalib/plugins/user.py:150
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:109
+#: ipalib/plugins/user.py:156
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:114
+#: ipalib/plugins/user.py:161
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:120
+#: ipalib/plugins/user.py:168
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:124
-msgid "Password"
-msgstr ""
-
-#: ipalib/plugins/user.py:125
-msgid "Set the user password"
+#: ipalib/plugins/user.py:173
+msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:132
+#: ipalib/plugins/user.py:180
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:133
+#: ipalib/plugins/user.py:181
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:139
-msgid "Street address"
+#: ipalib/plugins/user.py:188
+msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:142
-msgid "Groups"
+#: ipalib/plugins/user.py:193
+msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:146
-msgid "Netgroups"
+#: ipalib/plugins/user.py:197
+msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:150
-msgid "Rolegroups"
+#: ipalib/plugins/user.py:201
+msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:154
-msgid "Taskgroups"
+#: ipalib/plugins/user.py:204
+msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:159
+#: ipalib/plugins/user.py:208
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:211
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:163
+#: ipalib/plugins/user.py:214
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:166
+#: ipalib/plugins/user.py:218
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:177
-#, python-format
+#: ipalib/plugins/user.py:222
+msgid "Org. Unit"
+msgstr ""
+
+#: ipalib/plugins/user.py:225
+msgid "Job Title"
+msgstr ""
+
+#: ipalib/plugins/user.py:228
+msgid "Manager"
+msgstr ""
+
+#: ipalib/plugins/user.py:231
+msgid "Car License"
+msgstr ""
+
+#: ipalib/plugins/user.py:234
+msgid "Account disabled"
+msgstr ""
+
+#: ipalib/plugins/user.py:258
+msgid ""
+"\n"
+" Given a userid verify the user's existence and return the dn.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:276
+msgid "manager %(manager)s not found"
+msgstr ""
+
+#: ipalib/plugins/user.py:281
+msgid ""
+"\n"
+" Convert a manager dn into a userid\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:295
+msgid ""
+"\n"
+" Add a new user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:298
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:226
-#, python-format
+#: ipalib/plugins/user.py:303
+msgid "Don't create user private group"
+msgstr ""
+
+#: ipalib/plugins/user.py:333
+msgid "can be at most %(len)d characters"
+msgstr ""
+
+#: ipalib/plugins/user.py:400
+msgid ""
+"\n"
+" Delete a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:404
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:240
-#, python-format
+#: ipalib/plugins/user.py:413
+msgid ""
+"\n"
+" Modify a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:417
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:252
+#: ipalib/plugins/user.py:437
+msgid ""
+"\n"
+" Search for users.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:444
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:253
+#: ipalib/plugins/user.py:445
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:263
-#, python-format
+#: ipalib/plugins/user.py:463
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:283
-#, python-format
+#: ipalib/plugins/user.py:471
+msgid ""
+"\n"
+" Display information about a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:484
+msgid ""
+"\n"
+" Disable a user account.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:489
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:309
-#, python-format
+#: ipalib/plugins/user.py:507
+msgid ""
+"\n"
+" Enable a user account.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:512
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipaserver/install/certs.py:599 ipaserver/plugins/dogtag.py:1313
-#: ipaserver/plugins/dogtag.py:1398 ipaserver/plugins/dogtag.py:1463
-#: ipaserver/plugins/dogtag.py:1543 ipaserver/plugins/dogtag.py:1602
+#: ipalib/plugins/user.py:529
+msgid ""
+"\n"
+" Unlock a user account\n"
+"\n"
+" An account may become locked if the password is entered incorrectly too\n"
+" many times within a specific time period as controlled by password\n"
+" policy. A locked account is a temporary condition and may be unlocked "
+"by\n"
+" an administrator.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:538
+msgid "Unlocked account \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/virtual.py:20
+msgid ""
+"\n"
+"Base classes for non-LDAP backend plugins.\n"
+msgstr ""
+
+#: ipalib/plugins/virtual.py:28
+msgid ""
+"\n"
+" A command that doesn't use the LDAP backend but wants to use the\n"
+" LDAP access control system to make authorization decisions.\n"
+"\n"
+" The class variable operation is the commonName attribute of the\n"
+" entry to be tested against.\n"
+"\n"
+" In advance, you need to create an entry of the form:\n"
+" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
+"\n"
+" Ex.\n"
+" cn=request certificate, cn=virtual operations,cn=etc, dc=example, "
+"dc=com\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/virtual.py:44
+msgid ""
+"\n"
+" Perform an LDAP query to determine authorization.\n"
+"\n"
+" This should be executed before any actual work is done.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/xmlclient.py:21
+msgid ""
+"\n"
+"XML-RPC client plugin.\n"
+msgstr ""
+
+#: ipalib/cli.py:581
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:590
+msgid "Cancelled."
+msgstr ""
+
+#: ipalib/cli.py:819
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1117
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:300
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:318
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:334
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:356
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:372
+#, python-format
+msgid "unknown command %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:389 ipalib/errors.py:414
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:405
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:423
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:439
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:465
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:482
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:498
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:514
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:530
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:546
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:562
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:578
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:597
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:641
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:661
+#, python-format
+msgid "command %(name)r takes at most %(count)d argument"
+msgid_plural "command %(name)r takes at most %(count)d arguments"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/errors.py:691
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:707
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:723 ipalib/errors.py:739
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:755
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:764
+msgid "Passwords do not match"
+msgstr ""
+
+#: ipalib/errors.py:773
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:782
+msgid "Client is not configured. Run ipa-client-install."
+msgstr ""
+
+#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
+#: ipalib/errors.py:1424 ipalib/errors.py:1441
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:826
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:842
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:858
+#, python-format
+msgid ""
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:874
+msgid ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr ""
+
+#: ipalib/errors.py:890
+msgid "This command requires root access"
+msgstr ""
+
+#: ipalib/errors.py:906
+msgid "This is already a posix group"
+msgstr ""
+
+#: ipalib/errors.py:922
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:938
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:954
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:970
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:986
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1002
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1018
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1034
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1066
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1082
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1098
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1113
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1128
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1160
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1176
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1192
+#, python-format
+msgid ""
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1216
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1240
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1256
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1272
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1288
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1303
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1318
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1334
+#, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr ""
+
+#: ipalib/errors.py:1350
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1366
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1391
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1407
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1458
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1474
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:398
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:850
+msgid ""
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:856
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:985
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:296
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:299
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:901
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1002
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1054
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1064
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1074
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1097
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1107
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1174
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1192
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1208
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1218
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1228
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1246
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1277
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1287
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1297
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1315
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1355
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/util.py:200
+#, python-format
+msgid "Permission denied: %(file)s"
+msgstr ""
+
+#: ipalib/x509.py:174
+#, python-format
+msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
+msgstr ""
+
+#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
+#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
+#: ipaserver/plugins/dogtag.py:1600
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -1994,27 +7227,27 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
-#: ipaserver/plugins/selfsign.py:98
+#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
"Request subject \"%(request_subject)s\" does not match the form "
"\"%(subject_base)s\""
msgstr ""
-#: ipaserver/plugins/selfsign.py:103
+#: ipaserver/plugins/selfsign.py:104
#, python-format
msgid "unable to decode csr: %s"
msgstr ""
-#: ipaserver/plugins/selfsign.py:124 ipaserver/plugins/selfsign.py:139
+#: ipaserver/plugins/selfsign.py:125 ipaserver/plugins/selfsign.py:140
msgid "file operation"
msgstr ""
-#: ipaserver/plugins/selfsign.py:153
+#: ipaserver/plugins/selfsign.py:154
msgid "cannot obtain next serial number"
msgstr ""
-#: ipaserver/plugins/selfsign.py:188
+#: ipaserver/plugins/selfsign.py:189
msgid "certutil failure"
msgstr ""
@@ -2028,543 +7261,573 @@ msgstr ""
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:75
+#: ipa-client/config.c:68
+#, c-format
+msgid "out of memory\n"
+msgstr ""
+
+#: ipa-client/config.c:79
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:138 ipa-client/ipa-getkeytab.c:838
+#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
+#: ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:146
+#: ipa-client/ipa-getkeytab.c:155
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:164 ipa-client/ipa-getkeytab.c:179
+#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:194
+#: ipa-client/ipa-getkeytab.c:203
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:209
+#: ipa-client/ipa-getkeytab.c:218
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:235
+#: ipa-client/ipa-getkeytab.c:245
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:297
+#: ipa-client/ipa-getkeytab.c:307
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:310 ipa-client/ipa-getkeytab.c:327
-#: ipa-client/ipa-getkeytab.c:335 ipa-client/ipa-getkeytab.c:372
+#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
+#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:317 ipa-client/ipa-getkeytab.c:350
+#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
+#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
+#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
+#: ipa-client/ipa-join.c:819
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:361
+#: ipa-client/ipa-getkeytab.c:371
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:481
+#: ipa-client/ipa-getkeytab.c:492
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:496
+#: ipa-client/ipa-getkeytab.c:507
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:534
+#: ipa-client/ipa-getkeytab.c:545
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:541
+#: ipa-client/ipa-getkeytab.c:552
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:565
+#: ipa-client/ipa-getkeytab.c:576
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:572
+#: ipa-client/ipa-getkeytab.c:583
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:579
+#: ipa-client/ipa-getkeytab.c:596
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:589
+#: ipa-client/ipa-getkeytab.c:606
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:605 ipa-client/ipa-getkeytab.c:618
-#: ipa-client/ipa-getkeytab.c:625 ipa-client/ipa-getkeytab.c:632
+#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
+#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:638 ipa-client/ipa-getkeytab.c:648
+#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655
+#: ipa-client/ipa-getkeytab.c:672
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:674
+#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:715
+#: ipa-client/ipa-getkeytab.c:736
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:721
+#: ipa-client/ipa-getkeytab.c:742
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781
+#: ipa-client/ipa-getkeytab.c:778
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782
+#: ipa-client/ipa-getkeytab.c:779
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:189
+#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:787
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:788
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:790
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:794
+#: ipa-client/ipa-getkeytab.c:791
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:796
+#: ipa-client/ipa-getkeytab.c:793
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:825 ipa-client/ipa-rmkeytab.c:207
-#, c-format
-msgid "Kerberos context initialization failed\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:837
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:845
+#: ipa-client/ipa-getkeytab.c:841
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:864
+#: ipa-client/ipa-getkeytab.c:860
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:877
+#: ipa-client/ipa-getkeytab.c:873
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. -P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:889
+#: ipa-client/ipa-getkeytab.c:885
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:897
+#: ipa-client/ipa-getkeytab.c:893
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:905
+#: ipa-client/ipa-getkeytab.c:901
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:913
+#: ipa-client/ipa-getkeytab.c:909
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:920
+#: ipa-client/ipa-getkeytab.c:916
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:939
+#: ipa-client/ipa-getkeytab.c:935
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:948
+#: ipa-client/ipa-getkeytab.c:944
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:954
+#: ipa-client/ipa-getkeytab.c:950
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:67
+#: ipa-client/ipa-join.c:65
#, c-format
msgid "No permission to join this host to the IPA domain.\n"
msgstr ""
-#: ipa-client/ipa-join.c:104 ipa-client/ipa-join.c:116
+#: ipa-client/ipa-join.c:94 ipa-client/ipa-join.c:106
#, c-format
msgid "No write permissions on keytab file '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:121
+#: ipa-client/ipa-join.c:111
#, c-format
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:200
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#, c-format
+msgid "Out of memory!"
+msgstr ""
+
+#: ipa-client/ipa-join.c:204
+#, c-format
+msgid "Unable to initialize connection to ldap server: %s"
+msgstr ""
+
+#: ipa-client/ipa-join.c:210
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:206
+#: ipa-client/ipa-join.c:216
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:236
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:249
+#: ipa-client/ipa-join.c:269
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:259 ipa-client/ipa-join.c:311
+#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:302
+#: ipa-client/ipa-join.c:322
#, c-format
msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:368
+#: ipa-client/ipa-join.c:390
#, c-format
msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:377
+#: ipa-client/ipa-join.c:399
#, c-format
msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:385
+#: ipa-client/ipa-join.c:407
#, c-format
msgid "Unable to make an LDAP connection to %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:394
+#: ipa-client/ipa-join.c:432
#, c-format
msgid "Searching with %s in %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:400
+#: ipa-client/ipa-join.c:438
#, c-format
msgid "ldap_search_ext_s: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:408
+#: ipa-client/ipa-join.c:446
#, c-format
msgid "Unable to find host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:415
+#: ipa-client/ipa-join.c:453
#, c-format
msgid "Unable to get binddn for host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:428
+#: ipa-client/ipa-join.c:466
#, c-format
msgid "Host already has principal, trying bind anyway\n"
msgstr ""
-#: ipa-client/ipa-join.c:442 ipa-client/ipa-join.c:579
+#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:484
#, c-format
msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:457
+#: ipa-client/ipa-join.c:495
#, c-format
msgid "principal not found in host entry\n"
msgstr ""
-#: ipa-client/ipa-join.c:564
+#: ipa-client/ipa-join.c:618
#, c-format
msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:646 ipa-client/ipa-join.c:823
+#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:662 ipa-client/ipa-join.c:838
+#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:671 ipa-client/ipa-join.c:848
+#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:679
+#: ipa-client/ipa-join.c:732
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:689
+#: ipa-client/ipa-join.c:741
+#, c-format
+msgid "Error getting default Kerberos realm: %s.\n"
+msgstr ""
+
+#: ipa-client/ipa-join.c:759
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:707
+#: ipa-client/ipa-join.c:777
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:718
+#: ipa-client/ipa-join.c:788
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:726
+#: ipa-client/ipa-join.c:796
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:769
+#: ipa-client/ipa-join.c:846
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:772
+#: ipa-client/ipa-join.c:849
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:854
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:855
+#: ipa-client/ipa-join.c:932
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:863
+#: ipa-client/ipa-join.c:940
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not "
"provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:877
+#: ipa-client/ipa-join.c:954
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:906
+#: ipa-client/ipa-join.c:983
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:909
+#: ipa-client/ipa-join.c:986
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:912
+#: ipa-client/ipa-join.c:989
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:924
+#: ipa-client/ipa-join.c:1001
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:930
+#: ipa-client/ipa-join.c:1007
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "Print the raw XML-RPC output"
+#: ipa-client/ipa-join.c:1042
+msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "XML-RPC debugging Output"
+#: ipa-client/ipa-join.c:1044
+msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:967
-msgid "Unenroll this host"
-msgstr ""
-
-#: ipa-client/ipa-join.c:967
+#: ipa-client/ipa-join.c:1046
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Use this hostname instead of the node name"
+#: ipa-client/ipa-join.c:1048
+msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Host Name"
+#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:971
+#: ipa-client/ipa-join.c:1050
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:971
-msgid "IPA Server Name"
+#: ipa-client/ipa-join.c:1052
+msgid "Specifies where to store keytab information."
+msgstr ""
+
+#: ipa-client/ipa-join.c:1052
+msgid "filename"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1054
+msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:44
+#: ipa-client/ipa-join.c:1054
+msgid "password"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:46
+#: ipa-client/ipa-rmkeytab.c:45
#, c-format
msgid "krb5_parse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:56
+#: ipa-client/ipa-rmkeytab.c:55
#, c-format
msgid "Removing principal %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:69
+#: ipa-client/ipa-rmkeytab.c:68
#, c-format
msgid "Failed to open keytab\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:73
+#: ipa-client/ipa-rmkeytab.c:72
#, c-format
msgid "principal not found\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:75
+#: ipa-client/ipa-rmkeytab.c:74
#, c-format
msgid "krb5_kt_get_entry %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:83
+#: ipa-client/ipa-rmkeytab.c:82
#, c-format
msgid "Unable to remove entry\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:85
+#: ipa-client/ipa-rmkeytab.c:84
#, c-format
msgid "kvno %d\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:86
+#: ipa-client/ipa-rmkeytab.c:85
#, c-format
msgid "krb5_kt_remove_entry %d: %s\n"
msgstr ""
@@ -2579,33 +7842,38 @@ msgstr ""
msgid "krb5_unparse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:143
+#, c-format
+msgid "realm not found\n"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Print debugging information"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Debugging output"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Remove all principals in this realm"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Realm name"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:241
+#: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237
#, c-format
-msgid "Failed to open keytab '%s'\n"
+msgid "Failed to open keytab '%s': %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:255
+#: ipa-client/ipa-rmkeytab.c:253
#, c-format
msgid "Closing keytab failed\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:257
+#: ipa-client/ipa-rmkeytab.c:255
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
diff --git a/install/po/id.po b/install/po/id.po
index 0bfdf30b0..9db9da3b9 100644
--- a/install/po/id.po
+++ b/install/po/id.po
@@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: ipa\n"
"Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/"
"newticket\n"
-"POT-Creation-Date: 2010-10-13 14:22-0400\n"
+"POT-Creation-Date: 2011-06-06 13:27-0400\n"
"PO-Revision-Date: 2010-02-12 05:59+0700\n"
"Last-Translator: Teguh DC <dheche@songolimo.net>\n"
"Language-Team: Fedora Indonesia <trans-id@lists.fedoraproject.org>\n"
@@ -18,1512 +18,4793 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Virtaal 0.5.1\n"
-#: ipalib/cli.py:507
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr "Masukkan %(label)s lagi untuk verifikasi:"
+#: ipalib/plugins/__init__.py:20
+msgid ""
+"\n"
+"Sub-package containing all core plugins.\n"
+msgstr ""
-#: ipalib/cli.py:511 ipa-client/ipa-getkeytab.c:730
-#, c-format
-msgid "Passwords do not match!"
-msgstr "Kata sandi tidak cocok!"
+#: ipalib/plugins/aci.py:20
+msgid ""
+"\n"
+"Directory Server Access Control Instructions (ACIs)\n"
+"\n"
+"ACIs are used to allow or deny access to information. This module is\n"
+"currently designed to allow, not deny, access.\n"
+"\n"
+"The aci commands are designed to grant permissions that allow updating\n"
+"existing entries or adding or deleting new ones. The goal of the ACIs\n"
+"that ship with IPA is to provide a set of low-level permissions that\n"
+"grant access to special groups called taskgroups. These low-level\n"
+"permissions can be combined into roles that grant broader access. These\n"
+"roles are another type of group, roles.\n"
+"\n"
+"For example, if you have taskgroups that allow adding and modifying users "
+"you\n"
+"could create a role, useradmin. You would assign users to the useradmin\n"
+"role to allow them to do the operations defined by the taskgroups.\n"
+"\n"
+"You can create ACIs that delegate permission so users in group A can write\n"
+"attributes on group B.\n"
+"\n"
+"The type option is a map that applies to all entries in the users, groups "
+"or\n"
+"host location. It is primarily designed to be used when granting add\n"
+"permissions (to write new entries).\n"
+"\n"
+"An ACI consists of three parts:\n"
+"1. target\n"
+"2. permissions\n"
+"3. bind rules\n"
+"\n"
+"The target is a set of rules that define which LDAP objects are being\n"
+"targeted. This can include a list of attributes, an area of that LDAP\n"
+"tree or an LDAP filter.\n"
+"\n"
+"The targets include:\n"
+"- attrs: list of attributes affected\n"
+"- type: an object type (user, group, host, service, etc)\n"
+"- memberof: members of a group\n"
+"- targetgroup: grant access to modify a specific group. This is primarily\n"
+" designed to enable users to add or remove members of a specific group.\n"
+"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
+"- subtree: Used to apply a rule across an entire set of objects. For "
+"example,\n"
+" to allow adding users you need to grant \"add\" permission to the subtree\n"
+" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
+" is a fail-safe for objects that may not be covered by the type option.\n"
+"\n"
+"The permissions define what the the ACI is allowed to do, and are one or\n"
+"more of:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
+"allows this to be any valid LDAP entry but we encourage the use of\n"
+"taskgroups so that the rights can be easily shared through roles.\n"
+"\n"
+"For a more thorough description of access controls see\n"
+"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control."
+"html\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
+"demonstrate how the various options work but this is done via the "
+"permission\n"
+"command-line now (see last example).\n"
+"\n"
+" Add an ACI so that the group \"secretaries\" can update the address on any "
+"user:\n"
+" ipa group-add --desc=\"Office secretaries\" secretaries\n"
+" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries "
+"--permissions=write --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Show the new ACI:\n"
+" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Add an ACI that allows members of the \"addusers\" permission to add new "
+"users:\n"
+" ipa aci-add --type=user --permission=addusers --permissions=add --"
+"prefix=none \"Add new users\"\n"
+"\n"
+" Add an ACI that allows members of the editors manage members of the admins "
+"group:\n"
+" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --"
+"group=editors --prefix=none \"Editors manage admins\"\n"
+"\n"
+" Add an ACI that allows members of the admin group to manage the street and "
+"zip code of those in the editors group:\n"
+" ipa aci-add --permissions=write --memberof=editors --group=admins --"
+"attrs=street,postalcode --prefix=none \"admins edit the address of editors"
+"\"\n"
+"\n"
+" Add an ACI that allows the admins group manage the street and zipcode of "
+"those who work for the boss:\n"
+" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode "
+"--filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --"
+"prefix=none \"Edit the address of those who work for the boss\"\n"
+"\n"
+" Add an entirely new kind of record to IPA that isn't covered by any of the "
+"--type options, creating a permission:\n"
+" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,"
+"cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
+"\n"
+"\n"
+"The show command shows the raw 389-ds ACI.\n"
+"\n"
+"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
+"must include all existing attributes as well. When doing an aci-mod the\n"
+"targetattr REPLACES the current attributes, it does not add to them.\n"
+"\n"
+msgstr ""
-#: ipalib/cli.py:516
-msgid "Cancelled."
-msgstr "Dibatalkan."
+#: ipalib/plugins/aci.py:153
+#, fuzzy
+msgid "A list of ACI values"
+msgstr "ACI \"%(value)s\" telah dihapus"
-#: ipalib/errors.py:297
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr "klien %(cver)s tidak kompatibel dengan server %(sver)s di %(server)r"
+#: ipalib/plugins/aci.py:172
+msgid ""
+"\n"
+" Given a name and a prefix construct an ACI name.\n"
+" "
+msgstr ""
-#: ipalib/errors.py:315
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr "kesalahan %(code)d tidak dikenal dari %(server)s: %(error)s"
+#: ipalib/plugins/aci.py:181
+msgid ""
+"\n"
+" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
+" and the actual ACI name.\n"
+" "
+msgstr ""
-#: ipalib/errors.py:331
-msgid "an internal error has occurred"
-msgstr "terjadi kesalahan internal"
+#: ipalib/plugins/aci.py:193
+msgid ""
+"\n"
+" Pull the group name out of a memberOf filter\n"
+" "
+msgstr ""
-#: ipalib/errors.py:353
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr "terjadi kesalahan internal di server %(server)r"
+#: ipalib/plugins/aci.py:204
+msgid ""
+"\n"
+" Given a name and a set of keywords construct an ACI.\n"
+" "
+msgstr ""
-#: ipalib/errors.py:369
-#, python-format
-msgid "unknown command %(name)r"
-msgstr "perintah %(name)r tidak dikenal"
+#: ipalib/plugins/aci.py:215
+msgid "type, filter, subtree and targetgroup are mutually exclusive"
+msgstr ""
-#: ipalib/errors.py:386 ipalib/errors.py:411
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr "kesalahan di server %(server)r: %(error)s"
+#: ipalib/plugins/aci.py:218
+#, fuzzy
+msgid "ACI prefix is required"
+msgstr "dibutuhkan %(name)r"
-#: ipalib/errors.py:402
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
-msgstr "tidak dapat terhubung ke %(uri)r: %(error)s"
+#: ipalib/plugins/aci.py:221
+msgid ""
+"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
+"required"
+msgstr ""
+"setidaknya diperlukan salah satu dari: type, filter, subtree, targetgroup, "
+"attrs atau memberof"
-#: ipalib/errors.py:420
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr "Permintaan JSON-RPC tidak valid: %(error)s"
+#: ipalib/plugins/aci.py:224
+msgid "filter and memberof are mutually exclusive"
+msgstr ""
-#: ipalib/errors.py:448
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr "Kesalahan kerberos: %(major)s/%(minor)s"
+#: ipalib/plugins/aci.py:230
+msgid "group, permission and self are mutually exclusive"
+msgstr ""
-#: ipalib/errors.py:465
-msgid "did not receive Kerberos credentials"
+#: ipalib/plugins/aci.py:232
+#, fuzzy
+msgid "One of group, permission or self is required"
+msgstr "Diperlukan satu grup atau taskgroup"
+
+#: ipalib/plugins/aci.py:251
+msgid "Group '%s' does not exist"
+msgstr "Grup '%s' tidak ada"
+
+#: ipalib/plugins/aci.py:273
+msgid "empty filter"
msgstr ""
-#: ipalib/errors.py:481
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr "Layanan %(service)r tidak ditemukan di basis data Kerberos"
+#: ipalib/plugins/aci.py:294
+#, fuzzy
+msgid "Syntax Error: %(error)s"
+msgstr "Operasi sertifikat tidak dapat diselesaikan: %(error)s"
-#: ipalib/errors.py:497
-msgid "No credentials cache found"
+#: ipalib/plugins/aci.py:299
+msgid ""
+"Convert an ACI into its equivalent keywords.\n"
+"\n"
+" This is used for the modify operation so we can merge the\n"
+" incoming kw and existing ACI and pass the result to\n"
+" _make_aci().\n"
+" "
msgstr ""
-#: ipalib/errors.py:513
-msgid "Ticket expired"
-msgstr "Tiket sudah kadaluarsa"
+#: ipalib/plugins/aci.py:379
+msgid "ACI with name \"%s\" not found"
+msgstr "ACI dengan nama \"%s\" tidak ditemukan"
-#: ipalib/errors.py:529
-msgid "Credentials cache permissions incorrect"
+#: ipalib/plugins/aci.py:400
+msgid "ACI prefix"
msgstr ""
-#: ipalib/errors.py:545
-msgid "Bad format in credentials cache"
+#: ipalib/plugins/aci.py:401
+msgid ""
+"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
+"none)"
msgstr ""
-#: ipalib/errors.py:561
-msgid "Cannot resolve KDC for requested realm"
+#: ipalib/plugins/aci.py:407
+msgid ""
+"\n"
+" ACI object.\n"
+" "
msgstr ""
-#: ipalib/errors.py:580
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr "Hak akses tidak mencukupi: %(info)s"
+#: ipalib/plugins/aci.py:412
+msgid "ACIs"
+msgstr ""
-#: ipalib/errors.py:624
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr "perintah %(name)r tidak membutuhkan argumen"
+#: ipalib/plugins/aci.py:417
+msgid "ACI name"
+msgstr ""
-#: ipalib/errors.py:644
-#, python-format
-msgid "command %(name)r takes at most %(count)d argument"
-msgid_plural "command %(name)r takes at most %(count)d arguments"
-msgstr[0] "perintah %(name)r setidaknya membutuhkan %(count)d argumen"
+#: ipalib/plugins/aci.py:422
+msgid "Permission"
+msgstr ""
-#: ipalib/errors.py:674
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr "argumen dan opsi saling tumpang tindih: %(names)r"
+#: ipalib/plugins/aci.py:423
+msgid "Permission ACI grants access to"
+msgstr ""
-#: ipalib/errors.py:690
-#, python-format
-msgid "%(name)r is required"
-msgstr "dibutuhkan %(name)r"
+#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+msgid "User group"
+msgstr ""
-#: ipalib/errors.py:706 ipalib/errors.py:722
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr "%(name)r tidak valid: %(error)s"
+#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+msgid "User group ACI grants access to"
+msgstr ""
-#: ipalib/errors.py:738
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr "api tidak memiliki namespace ini: %(name)r"
+#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
+#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
+#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+msgid "Permissions"
+msgstr ""
-#: ipalib/errors.py:747
-msgid "Passwords do not match"
-msgstr "Kata sandi tidak cocok"
+#: ipalib/plugins/aci.py:433
+msgid ""
+"comma-separated list of permissions to grant(read, write, add, delete, all)"
+msgstr ""
-#: ipalib/errors.py:755
-msgid "Command not implemented"
-msgstr "Perintah tidak diimplementasikan"
+#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
+#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+msgid "Attributes"
+msgstr ""
-#: ipalib/errors.py:783 ipalib/errors.py:1023 ipalib/errors.py:1254
-#, python-format
-msgid "%(reason)s"
-msgstr "%(reason)s"
+#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
+#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+msgid "Comma-separated list of attributes"
+msgstr ""
-#: ipalib/errors.py:799
-msgid "This entry already exists"
-msgstr "Entri ini sudah ada"
+#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
+#: ipalib/plugins/permission.py:131
+msgid "Type"
+msgstr ""
-#: ipalib/errors.py:815
-msgid "You must enroll a host in order to create a host service"
-msgstr "Anda harus mendaftarkan sebuah host untuk membuat layanan host"
+#: ipalib/plugins/aci.py:445
+msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
+msgstr ""
-#: ipalib/errors.py:831
-#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+#: ipalib/plugins/aci.py:450
+msgid "Member of"
msgstr ""
-#: ipalib/errors.py:847
-msgid ""
-"The realm for the principal does not match the realm for this IPA server"
+#: ipalib/plugins/aci.py:451
+msgid "Member of a group"
msgstr ""
-#: ipalib/errors.py:863
-msgid "This command requires root access"
-msgstr "Perintah ini memerlukan akses root"
+#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
+#: ipalib/plugins/permission.py:144
+msgid "Filter"
+msgstr ""
-#: ipalib/errors.py:879
-msgid "This is already a posix group"
-msgstr "Ini sudah merupakan grup posix"
+#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+msgid "Legal LDAP filter (e.g. ou=Engineering)"
+msgstr ""
-#: ipalib/errors.py:895
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
+#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+msgid "Subtree"
msgstr ""
-#: ipalib/errors.py:911
-msgid "This entry is already unlocked"
-msgstr "Entri ini sudah dibuka"
+#: ipalib/plugins/aci.py:461
+msgid "Subtree to apply ACI to"
+msgstr ""
-#: ipalib/errors.py:927
-msgid "This entry is already locked"
-msgstr "Entri ini sudah dikunci"
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+msgid "Target group"
+msgstr ""
-#: ipalib/errors.py:943
-msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
-msgstr "Entri ini telah diset nsAccountLock, tidak dapat dikunci atau dibuka"
+#: ipalib/plugins/aci.py:466
+msgid "Group to apply ACI to"
+msgstr ""
-#: ipalib/errors.py:959
-msgid "This entry is not a member of the group"
-msgstr "Entri ini bukan anggota dari grup"
+#: ipalib/plugins/aci.py:470
+msgid "Target your own entry (self)"
+msgstr ""
-#: ipalib/errors.py:975
-msgid "A group may not be a member of itself"
-msgstr "Sebuah grup tidak mungkin menjadi anggota grup itu sendiri"
+#: ipalib/plugins/aci.py:471
+msgid "Apply ACI to your own entry (self)"
+msgstr ""
-#: ipalib/errors.py:991
-msgid "This entry is already a member of the group"
-msgstr "Entri ini sudah menjadi anggota grup"
+#: ipalib/plugins/aci.py:478
+msgid ""
+"\n"
+" Create new ACI.\n"
+" "
+msgstr ""
-#: ipalib/errors.py:1007
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr "Penguraian Base64 gagal: %(reason)s"
+#: ipalib/plugins/aci.py:482
+msgid "Created ACI \"%(value)s\""
+msgstr "ACI \"%(value)s\" telah dibuat"
-#: ipalib/errors.py:1039
-msgid "A group may not be added as a member of itself"
+#: ipalib/plugins/aci.py:487
+msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/errors.py:1055
-msgid "The default users group cannot be removed"
+#: ipalib/plugins/aci.py:493
+msgid ""
+"\n"
+" Execute the aci-create operation.\n"
+"\n"
+" Returns the entry as it will be created in LDAP.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: Keyword arguments for the other LDAP attributes.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1071
-msgid "Host does not have corresponding DNS A record"
+#: ipalib/plugins/aci.py:533
+msgid ""
+"\n"
+" Delete ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1086
-msgid "Deleting a managed group is not allowed. It must be detached first."
+#: ipalib/plugins/aci.py:538
+msgid "Deleted ACI \"%(value)s\""
+msgstr "ACI \"%(value)s\" telah dihapus"
+
+#: ipalib/plugins/aci.py:543
+msgid ""
+"\n"
+" Execute the aci-delete operation.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/errors.py:1109
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr "tidak ada perintah maupun bantuan untuk topik %(topic)r"
+#: ipalib/plugins/aci.py:576
+msgid ""
+"\n"
+" Modify ACI.\n"
+" "
+msgstr ""
-#: ipalib/errors.py:1133
-msgid "change collided with another change"
-msgstr "perubahan bertabrakan dengan perubahan lain"
+#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
+#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
+#: ipalib/plugins/selfservice.py:212
+msgid "ACI"
+msgstr ""
-#: ipalib/errors.py:1149
-msgid "no modifications to be performed"
-msgstr "tidak ada modifikasi yang harus dilakukan"
+#: ipalib/plugins/aci.py:588
+msgid "Modified ACI \"%(value)s\""
+msgstr "ACI \"%(value)s\" telah dimodifikasi"
-#: ipalib/errors.py:1165
-#, python-format
-msgid "%(desc)s:%(info)s"
-msgstr "%(desc)s:%(info)s"
+#: ipalib/plugins/aci.py:633
+msgid ""
+"\n"
+" Search for ACIs.\n"
+"\n"
+" Returns a list of ACIs\n"
+"\n"
+" EXAMPLES:\n"
+"\n"
+" To find all ACIs that apply directly to members of the group ipausers:\n"
+" ipa aci-find --memberof=ipausers\n"
+"\n"
+" To find all ACIs that grant add access:\n"
+" ipa aci-find --permissions=add\n"
+"\n"
+" Note that the find command only looks for the given text in the set of\n"
+" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
+" For example, searching on memberof=ipausers will find all ACIs that\n"
+" have ipausers as a memberof. There may be other ACIs that apply to\n"
+" members of that group indirectly.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:653
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] "%(count)d ACI sesuai"
-#: ipalib/errors.py:1181
-msgid "limits exceeded for this query"
-msgstr "query ini telah melampaui batas"
+#: ipalib/plugins/aci.py:823
+msgid ""
+"\n"
+" Display a single ACI given an ACI name.\n"
+" "
+msgstr ""
-#: ipalib/errors.py:1196
-#, python-format
-msgid "%(info)s"
-msgstr "%(info)s"
+#: ipalib/plugins/aci.py:837
+msgid ""
+"\n"
+" Execute the aci-show operation.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param uid: The login name of the user to retrieve.\n"
+" :param kw: unused\n"
+" "
+msgstr ""
-#: ipalib/errors.py:1221
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr "Operasi sertifikat tidak dapat diselesaikan: %(error)s"
+#: ipalib/plugins/aci.py:865
+msgid ""
+"\n"
+" Rename an ACI.\n"
+" "
+msgstr ""
-#: ipalib/errors.py:1237
-#, fuzzy, python-format
-msgid "Certificate format error: %(error)s"
-msgstr "Operasi sertifikat tidak dapat diselesaikan: %(error)s"
+#: ipalib/plugins/aci.py:878
+msgid "New ACI name"
+msgstr ""
-#: ipalib/frontend.py:380
-msgid "Results are truncated, try a more specific search"
-msgstr "Hasil yang terpotong, coba cari dengan lebih spesifik"
+#: ipalib/plugins/aci.py:882
+#, fuzzy
+msgid "Renamed ACI to \"%(value)s\""
+msgstr "ACI \"%(value)s\" telah dibuat"
-#: ipalib/frontend.py:797 ipalib/plugins/misc.py:47
-msgid "retrieve all attributes"
+#: ipalib/plugins/automount.py:20
+msgid ""
+"\n"
+"Automount\n"
+"\n"
+"Stores automount(8) configuration for autofs(8) in IPA.\n"
+"\n"
+"The base of an automount configuration is the configuration file auto."
+"master.\n"
+"This is also the base location in IPA. Multiple auto.master configurations\n"
+"can be stored in separate locations. A location is implementation-specific\n"
+"with the default being a location named 'default'. For example, you can "
+"have\n"
+"locations by geographic region, by floor, by type, etc.\n"
+"\n"
+"Automount has three basic object types: locations, maps and keys.\n"
+"\n"
+"A location defines a set of maps anchored in auto.master. This allows you\n"
+"to store multiple automount configurations. A location in itself isn't\n"
+"very interesting, it is just a point to start a new automount map.\n"
+"\n"
+"A map is roughly equivalent to a discrete automount file and provides\n"
+"storage for keys.\n"
+"\n"
+"A key is a mount point associated with a map.\n"
+"\n"
+"When a new location is created, two maps are automatically created for\n"
+"it: auto.master and auto.direct. auto.master is the root map for all\n"
+"automount maps for the location. auto.direct is the default map for\n"
+"direct mounts and is mounted on /-.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"Locations:\n"
+"\n"
+" Create a named location, \"Baltimore\":\n"
+" ipa automountlocation-add baltimore\n"
+"\n"
+" Display the new location:\n"
+" ipa automountlocation-show baltimore\n"
+"\n"
+" Find available locations:\n"
+" ipa automountlocation-find\n"
+"\n"
+" Remove a named automount location:\n"
+" ipa automountlocation-del baltimore\n"
+"\n"
+" Show what the automount maps would look like if they were in the "
+"filesystem:\n"
+" ipa automountlocation-tofiles baltimore\n"
+"\n"
+" Import an existing configuration into a location:\n"
+" ipa automountlocation-import baltimore /etc/auto.master\n"
+"\n"
+" The import will fail if any duplicate entries are found. For\n"
+" continuous operation where errors are ignored, use the --continue\n"
+" option.\n"
+"\n"
+"Maps:\n"
+"\n"
+" Create a new map, \"auto.share\":\n"
+" ipa automountmap-add baltimore auto.share\n"
+"\n"
+" Display the new map:\n"
+" ipa automountmap-show baltimore auto.share\n"
+"\n"
+" Find maps in the location baltimore:\n"
+" ipa automountmap-find baltimore\n"
+"\n"
+" Remove the auto.share map:\n"
+" ipa automountmap-del baltimore auto.share\n"
+"\n"
+"Keys:\n"
+"\n"
+" Create a new key for the auto.share map in location baltimore. This ties\n"
+" the map we previously created to auto.master:\n"
+" ipa automountkey-add baltimore auto.master --key=/share --info=auto."
+"share\n"
+"\n"
+" Create a new key for our auto.share map, an NFS mount for man pages:\n"
+" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,"
+"rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n"
+"\n"
+" Find all keys for the auto.share map:\n"
+" ipa automountkey-find baltimore auto.share\n"
+"\n"
+" Find all direct automount keys:\n"
+" ipa automountkey-find baltimore --key=/-\n"
+"\n"
+" Remove the man key from the auto.share map:\n"
+" ipa automountkey-del baltimore auto.share --key=man\n"
+msgstr ""
+
+#: ipalib/plugins/automount.py:182
+msgid ""
+"\n"
+" Location container for automount maps.\n"
+" "
msgstr ""
-#: ipalib/frontend.py:803
-msgid "print entries as stored on the server"
+#: ipalib/plugins/automount.py:190
+msgid "Automount Locations"
msgstr ""
-#: ipalib/frontend.py:940
-msgid "Forward to server instead of running locally"
+#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+msgid "Location"
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
+#: ipalib/plugins/automount.py:197
+msgid "Automount location name."
msgstr ""
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
+#: ipalib/plugins/automount.py:206
+msgid ""
+"\n"
+" Create a new automount location.\n"
+" "
msgstr ""
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
+#: ipalib/plugins/automount.py:221
+msgid ""
+"\n"
+" Delete an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:295
-msgid "incorrect type"
-msgstr "type salah"
+#: ipalib/plugins/automount.py:229
+msgid ""
+"\n"
+" Display an automount location.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:298
-msgid "Only one value is allowed"
-msgstr "Hanya satu nilai yang diperbolehkan"
+#: ipalib/plugins/automount.py:237
+msgid ""
+"\n"
+" Search for an automount location.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:877
-msgid "must be True or False"
-msgstr "harus True atau False"
+#: ipalib/plugins/automount.py:245
+msgid ""
+"\n"
+" Generate automount files for a specific location.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:978
-msgid "must be an integer"
-msgstr "harus merupakan bilangan bulat"
+#: ipalib/plugins/automount.py:308
+msgid ""
+"\n"
+" Import automount files for a specific location.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:1029
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr "setidaknya harus %(minvalue)d"
+#: ipalib/plugins/automount.py:314
+msgid "Master file"
+msgstr ""
-#: ipalib/parameters.py:1039
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr "nilai maksimum yang diperbolehkan %(maxvalue)d"
+#: ipalib/plugins/automount.py:315
+msgid "Automount master file."
+msgstr ""
-#: ipalib/parameters.py:1049
-msgid "must be a decimal number"
-msgstr "harus merupakan angka desimal"
+#: ipalib/plugins/automount.py:322
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues."
+msgstr ""
-#: ipalib/parameters.py:1071
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr "nilai minimum yang diperbolehkan %(minvalue)f"
+#: ipalib/plugins/automount.py:334
+msgid "File %(file)s not found"
+msgstr ""
-#: ipalib/parameters.py:1081
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr "nilai maksimum yang diperbolehkan %(maxvalue)f"
+#: ipalib/plugins/automount.py:341
+msgid ""
+"\n"
+" The basic idea is to read the master file and create all the maps\n"
+" we need, then read each map file and add all the keys for the map.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:1145
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr "harus cocok dengan pola \"%(pattern)s\""
+#: ipalib/plugins/automount.py:492
+msgid ""
+"\n"
+" Automount map object.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:1163
-msgid "must be binary data"
-msgstr "harus merupakan data binari"
+#: ipalib/plugins/automount.py:505
+msgid "Map"
+msgstr ""
-#: ipalib/parameters.py:1179
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr "panjang minimum yang diperbolehkan %(minlength)d byte"
+#: ipalib/plugins/automount.py:506
+msgid "Automount map name."
+msgstr ""
-#: ipalib/parameters.py:1189
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr "panjang maksimum yang diperbolehkan %(maxlength)d byte"
+#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
+#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
+#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
+#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
+#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
+#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
+#: ipalib/plugins/sudorule.py:78
+msgid "Description"
+msgstr ""
-#: ipalib/parameters.py:1199
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr "harus tepat %(length)d byte"
+#: ipalib/plugins/automount.py:515
+msgid "Automount Maps"
+msgstr ""
-#: ipalib/parameters.py:1217
-msgid "must be Unicode text"
-msgstr "harus teks Unicode"
+#: ipalib/plugins/automount.py:521
+msgid ""
+"\n"
+" Create a new automount map.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:1248
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr "setidaknya minimum harus %(minlength)d karakter"
+#: ipalib/plugins/automount.py:529
+msgid ""
+"\n"
+" Delete an automount map.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:1258
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr "panjang maksimum yang diperbolehkan %(maxlength)d karakter"
+#: ipalib/plugins/automount.py:548
+msgid ""
+"\n"
+" Modify an automount map.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:1268
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr "harus tepat %(length)d karakter"
+#: ipalib/plugins/automount.py:556
+msgid ""
+"\n"
+" Search for an automount map.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:1307
-#, python-format
-msgid "must be one of %(values)r"
-msgstr "harus salah satu dari %(values)r"
+#: ipalib/plugins/automount.py:564
+msgid ""
+"\n"
+" Display an automount map.\n"
+" "
+msgstr ""
-#: ipalib/plugins/aci.py:111
-#, fuzzy
-msgid "A list of ACI values"
-msgstr "ACI \"%(value)s\" telah dihapus"
+#: ipalib/plugins/automount.py:572
+msgid ""
+"\n"
+" Automount key object.\n"
+" "
+msgstr ""
-#: ipalib/plugins/aci.py:142
-msgid "type, filter, subtree and targetgroup are mutually exclusive"
+#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
+#: ipalib/plugins/automount.py:850
+msgid "Key"
msgstr ""
-#: ipalib/plugins/aci.py:145
-msgid ""
-"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
-"required"
+#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
+#: ipalib/plugins/automount.py:851
+msgid "Automount key name."
msgstr ""
-"setidaknya diperlukan salah satu dari: type, filter, subtree, targetgroup, "
-"attrs atau memberof"
-#: ipalib/plugins/aci.py:151
-msgid "group, taskgroup and self are mutually exclusive"
+#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
+#: ipalib/plugins/automount.py:855
+msgid "Mount information"
msgstr ""
-#: ipalib/plugins/aci.py:153
+#: ipalib/plugins/automount.py:597
+msgid "description"
+msgstr ""
+
+#: ipalib/plugins/automount.py:606
+msgid "Automount Keys"
+msgstr ""
+
+#: ipalib/plugins/automount.py:607
+msgid ""
+"The key,info pair must be unique. A key named %(key)s with info %(info)s "
+"already exists"
+msgstr ""
+
+#: ipalib/plugins/automount.py:608
#, fuzzy
-msgid "One of group, taskgroup or self is required"
-msgstr "Diperlukan satu grup atau taskgroup"
+msgid "key named %(key)s already exists"
+msgstr "Entri ini sudah ada"
-#: ipalib/plugins/aci.py:172
-#, python-format
-msgid "Group '%s' does not exist"
-msgstr "Grup '%s' tidak ada"
+#: ipalib/plugins/automount.py:609
+msgid "The automount key %(key)s with info %(info)s does not exist"
+msgstr ""
-#: ipalib/plugins/aci.py:269
-#, python-format
-msgid "ACI with name \"%s\" not found"
-msgstr "ACI dengan nama \"%s\" tidak ditemukan"
+#: ipalib/plugins/automount.py:659
+msgid ""
+"More than one entry with key %(key)s found, use --info to select specific "
+"entry."
+msgstr ""
-#: ipalib/plugins/aci.py:286
-msgid "ACIs"
+#: ipalib/plugins/automount.py:717
+msgid ""
+"\n"
+" Create a new automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:291
-msgid "ACI name"
+#: ipalib/plugins/automount.py:742
+msgid ""
+"\n"
+" Create a new indirect mount point.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:296
-msgid "Taskgroup"
+#: ipalib/plugins/automount.py:748
+msgid "Mount point"
msgstr ""
-#: ipalib/plugins/aci.py:297
-msgid "Taskgroup ACI grants access to"
+#: ipalib/plugins/automount.py:752
+msgid "Parent map"
msgstr ""
-#: ipalib/plugins/aci.py:301
-msgid "User group"
+#: ipalib/plugins/automount.py:753
+msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/aci.py:302
-msgid "User group ACI grants access to"
+#: ipalib/plugins/automount.py:772
+msgid ""
+"\n"
+" Delete an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:306
-msgid "Permissions"
+#: ipalib/plugins/automount.py:803
+msgid ""
+"\n"
+" Modify an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:307
+#: ipalib/plugins/automount.py:809
+msgid "New mount information"
+msgstr ""
+
+#: ipalib/plugins/automount.py:836
msgid ""
-"comma-separated list of permissions to grant(read, write, add, delete, all)"
+"\n"
+" Search for an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:313
-msgid "Attributes"
+#: ipalib/plugins/automount.py:844
+msgid ""
+"\n"
+" Display an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:314
-msgid "Comma-separated list of attributes"
+#: ipalib/plugins/baseldap.py:19
+msgid ""
+"\n"
+"Base classes for LDAP plugins.\n"
msgstr ""
-#: ipalib/plugins/aci.py:318
-msgid "Type"
+#: ipalib/plugins/baseldap.py:39
+msgid "Failed members"
msgstr ""
-#: ipalib/plugins/aci.py:319
-msgid "type of IPA object (user, group, host)"
+#: ipalib/plugins/baseldap.py:42
+msgid "Member users"
msgstr ""
-#: ipalib/plugins/aci.py:324
-msgid "Member of"
+#: ipalib/plugins/baseldap.py:45
+msgid "Member groups"
msgstr ""
-#: ipalib/plugins/aci.py:325
-msgid "Member of a group"
+#: ipalib/plugins/baseldap.py:48
+msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/aci.py:329
-msgid "Filter"
+#: ipalib/plugins/baseldap.py:51
+msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/aci.py:330
-msgid "Legal LDAP filter (e.g. ou=Engineering)"
+#: ipalib/plugins/baseldap.py:54
+msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:334
-msgid "Subtree"
+#: ipalib/plugins/baseldap.py:57
+msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:335
-msgid "Subtree to apply ACI to"
+#: ipalib/plugins/baseldap.py:66
+msgid "Roles"
msgstr ""
-#: ipalib/plugins/aci.py:339
-msgid "Target group"
+#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
+#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
+#: ipalib/plugins/sudorule.py:143
+msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/aci.py:340
-msgid "Group to apply ACI to"
+#: ipalib/plugins/baseldap.py:75
+msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/aci.py:344
-msgid "Target your own entry (self)"
+#: ipalib/plugins/baseldap.py:78
+msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:345
-msgid "Apply ACI to your own entry (self)"
+#: ipalib/plugins/baseldap.py:81
+msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:357
-#, python-format
-msgid "Created ACI \"%(value)s\""
-msgstr "ACI \"%(value)s\" telah dibuat"
+#: ipalib/plugins/baseldap.py:84
+msgid "Member services"
+msgstr ""
-#: ipalib/plugins/aci.py:407
-#, python-format
-msgid "Deleted ACI \"%(value)s\""
-msgstr "ACI \"%(value)s\" telah dihapus"
+#: ipalib/plugins/baseldap.py:87
+msgid "Member service groups"
+msgstr ""
-#: ipalib/plugins/aci.py:447
-#, python-format
-msgid "Modified ACI \"%(value)s\""
-msgstr "ACI \"%(value)s\" telah dimodifikasi"
+#: ipalib/plugins/baseldap.py:93
+#, fuzzy
+msgid "Member HBAC service groups"
+msgstr "Rolegroup \"%(value)s\" telah dihapus"
-#: ipalib/plugins/aci.py:519
-#, python-format
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
-msgstr[0] "%(count)d ACI sesuai"
+#: ipalib/plugins/baseldap.py:102
+msgid "Indirect Member users"
+msgstr ""
-#: ipalib/plugins/automount.py:103
-msgid "Automount"
+#: ipalib/plugins/baseldap.py:105
+msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/automount.py:109 ipalib/plugins/host.py:134
-msgid "Location"
+#: ipalib/plugins/baseldap.py:108
+msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/automount.py:110
-msgid "Automount location name"
+#: ipalib/plugins/baseldap.py:111
+msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/automount.py:226
-msgid "Map"
+#: ipalib/plugins/baseldap.py:114
+msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/automount.py:227
-msgid "Automount map name"
+#: ipalib/plugins/baseldap.py:117
+msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/automount.py:232 ipalib/plugins/group.py:108
-#: ipalib/plugins/hbac.py:151 ipalib/plugins/hbacsvc.py:72
-#: ipalib/plugins/hbacsvcgroup.py:77 ipalib/plugins/host.py:124
-#: ipalib/plugins/hostgroup.py:81 ipalib/plugins/netgroup.py:96
-#: ipalib/plugins/rolegroup.py:90 ipalib/plugins/sudocmd.py:71
-#: ipalib/plugins/sudocmdgroup.py:77 ipalib/plugins/sudorule.py:58
-#: ipalib/plugins/taskgroup.py:62
-msgid "Description"
+#: ipalib/plugins/baseldap.py:120
+msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/automount.py:236
-msgid "Automount Maps"
+#: ipalib/plugins/baseldap.py:123
+msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid "Key"
+#: ipalib/plugins/baseldap.py:126
+msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/automount.py:309
-msgid "Automount key name"
+#: ipalib/plugins/baseldap.py:141
+msgid "External host"
msgstr ""
-#: ipalib/plugins/automount.py:314
-msgid "Mount information"
+#: ipalib/plugins/baseldap.py:144
+msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/automount.py:318
-msgid "description"
+#: ipalib/plugins/baseldap.py:147
+msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/automount.py:322
-msgid "Automount Keys"
+#: ipalib/plugins/baseldap.py:150
+msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/automount.py:342
-msgid "Mount point"
+#: ipalib/plugins/baseldap.py:153
+#, fuzzy
+msgid "Failed to remove"
+msgstr "Tidak dapat mengurai sertifikat dalam entri"
+
+#: ipalib/plugins/baseldap.py:171
+msgid ""
+"\n"
+" Given a list of values in the form name=value, return a list of name.\n"
+" "
msgstr ""
-#: ipalib/plugins/automount.py:346
-msgid "Parent map"
+#: ipalib/plugins/baseldap.py:197
+msgid ""
+"\n"
+" When adding or removing reverse members we are faking an update to\n"
+" object A by updating the member attribute in object B. The memberof\n"
+" plugin makes this work by adding or removing the memberof attribute\n"
+" to/from object A, it just takes a little bit of time.\n"
+"\n"
+" This will loop for 6+ seconds, retrieving object A so we can see\n"
+" if all the memberof attributes have been updated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:241
+msgid ""
+"\n"
+" Object representing a LDAP entry.\n"
+" "
msgstr ""
-#: ipalib/plugins/automount.py:347
-msgid "Name of parent automount map (default: auto.master)"
+#: ipalib/plugins/baseldap.py:281
+msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:79
-#, python-format
+#: ipalib/plugins/baseldap.py:283
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:80
-#, python-format
+#: ipalib/plugins/baseldap.py:284
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
-#, python-format
+#: ipalib/plugins/baseldap.py:285
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
-msgid "Add an attribute/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:286
+msgid "%(oname)s with name \"%(pkey)s\" already exists"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:415
+msgid ""
+"Add an attribute/value pair. Format is attr=value. The attribute must be "
+"part of the schema."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:420
+msgid ""
+"Set an attribute to a name/value pair. Format is attr=value.\n"
+"For multi-valued attributes, the command replaces the values already present."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:444
+msgid ""
+"\n"
+" If the set of objectclasses is limited enforce that only those\n"
+" are updated in entry_attrs (plus dn)\n"
+"\n"
+" allow_only tells us what mode to check in:\n"
+"\n"
+" If True then we enforce that the attributes must be in the list of\n"
+" allowed.\n"
+"\n"
+" If False then those attributes are not allowed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:474
+msgid ""
+"\n"
+" Callback registration interface\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:561
+msgid ""
+"\n"
+" Create a new entry in LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:703
+msgid ""
+"\n"
+" Base class for commands that need to retrieve an existing entry.\n"
+" "
msgstr ""
-#: ipalib/plugins/baseldap.py:155
-msgid "Set an attribute to an name/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:727
+msgid ""
+"\n"
+" Base class for commands that need to retrieve one or more existing "
+"entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/baseldap.py:359
+#: ipalib/plugins/baseldap.py:733
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:517
+#: ipalib/plugins/baseldap.py:750
+msgid ""
+"\n"
+" Retrieve an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
+#: ipalib/plugins/internal.py:232
+msgid "Rights"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+msgid ""
+"Display the access rights of this entry (requires --all). See ipa man page "
+"for details."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:821
+msgid ""
+"\n"
+" Update an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:837
+msgid "Rename"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:838
+msgid "Rename the %(ldap_obj_name)s object"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:957
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:674
+#: ipalib/plugins/baseldap.py:988
+msgid ""
+"\n"
+" Delete an LDAP entry and all of its direct subentries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1078
+msgid ""
+"\n"
+" Base class for member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1120
+msgid ""
+"\n"
+" Add other LDAP entries to members.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
+#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
+#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
msgid "Members that could not be added"
msgstr ""
-#: ipalib/plugins/baseldap.py:678
+#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:684 ipalib/plugins/baseldap.py:789
-msgid "Failed members"
+#: ipalib/plugins/baseldap.py:1226
+msgid ""
+"\n"
+" Remove LDAP entries from members.\n"
+" "
msgstr ""
-#: ipalib/plugins/baseldap.py:779
+#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:783
+#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:880
+#: ipalib/plugins/baseldap.py:1335
+msgid ""
+"\n"
+" Retrieve all LDAP entries matching the given criteria.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1344
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:881
+#: ipalib/plugins/baseldap.py:1345
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:887
+#: ipalib/plugins/baseldap.py:1351
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:888
+#: ipalib/plugins/baseldap.py:1352
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/cert.py:93
+#: ipalib/plugins/baseldap.py:1552
+msgid ""
+"\n"
+" Base class for reverse member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1574
+msgid ""
+"\n"
+" Add other LDAP entries to members in reverse.\n"
+"\n"
+" The call looks like \"add A to B\" but in fact executes\n"
+" add B to A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1654
+msgid "added"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1687
+msgid ""
+"\n"
+" Remove other LDAP entries from members in reverse.\n"
+"\n"
+" The call looks like \"remove A from B\" but in fact executes\n"
+" remove B from A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1767
+msgid "removed"
+msgstr ""
+
+#: ipalib/plugins/batch.py:21
+msgid ""
+"\n"
+"Plugin to make multiple ipa calls via one remote procedure call\n"
+"\n"
+"To run this code in the lite-server\n"
+"\n"
+"curl -H \"Content-Type:application/json\" -H \"Accept:application/"
+"json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /"
+"etc/ipa/ca.crt -d @batch_request.json -X POST http://"
+"localhost:8888/ipa/json\n"
+"\n"
+"where the contents of the file batch_request.json follow the below example\n"
+"\n"
+"{\"method\":\"batch\",\"params\":[[\n"
+" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
+" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all"
+"\":\"true\"}]},\n"
+" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
+" ],{}],\"id\":1}\n"
+"\n"
+"The format of the response is nested the same way. At the top you will see\n"
+" \"error\": null,\n"
+" \"id\": 1,\n"
+" \"result\": {\n"
+" \"count\": 3,\n"
+" \"results\": [\n"
+"\n"
+"\n"
+"And then a nested response for each IPA command method sent in the request\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/batch.py:61
+msgid "Nested Methods to execute"
+msgstr ""
+
+#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/plugins/cert.py:22
+msgid ""
+"\n"
+"IPA certificate operations\n"
+"\n"
+"Implements a set of commands for managing server SSL certificates.\n"
+"\n"
+"Certificate requests exist in the form of a Certificate Signing Request "
+"(CSR)\n"
+"in PEM format.\n"
+"\n"
+"If using the selfsign back end then the subject in the CSR needs to match\n"
+"the subject configured in the server. The dogtag CA uses just the CN\n"
+"value of the CSR and forces the rest of the subject.\n"
+"\n"
+"A certificate is stored with a service principal and a service principal\n"
+"needs a host.\n"
+"\n"
+"In order to request a certificate:\n"
+"\n"
+"* The host must exist\n"
+"* The service must exist (or you use the --add option to automatically add "
+"it)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Request a new certificate and add the principal:\n"
+" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n"
+"\n"
+" Retrieve an existing certificate:\n"
+" ipa cert-show 1032\n"
+"\n"
+" Revoke a certificate (see RFC 5280 for reason details):\n"
+" ipa cert-revoke --revocation-reason=6 1032\n"
+"\n"
+" Remove a certificate from revocation hold status:\n"
+" ipa cert-remove-hold 1032\n"
+"\n"
+" Check the status of a signing request:\n"
+" ipa cert-status 10\n"
+"\n"
+"IPA currently immediately issues (or declines) all certificate requests so\n"
+"the status of a request is not normally useful. This is for future use\n"
+"or the case where a CA does not immediately issue a certificate.\n"
+"\n"
+"The following revocation reasons are supported:\n"
+"\n"
+" * 0 - unspecified\n"
+" * 1 - keyCompromise\n"
+" * 2 - cACompromise\n"
+" * 3 - affiliationChanged\n"
+" * 4 - superseded\n"
+" * 5 - cessationOfOperation\n"
+" * 6 - certificateHold\n"
+" * 8 - removeFromCRL\n"
+" * 9 - privilegeWithdrawn\n"
+" * 10 - aACompromise\n"
+"\n"
+"Note that reason code 7 is not used. See RFC 5280 for more details:\n"
+"\n"
+"http://www.ietf.org/rfc/rfc5280.txt\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/cert.py:104
+msgid ""
+"\n"
+" Return the value of CN in the subject of the request or None\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:112
#, fuzzy
msgid "Failure decoding Certificate Signing Request:"
msgstr "Gagal mengurai Permintaan Penandatanganan Sertifikat"
-#: ipalib/plugins/cert.py:106 ipalib/plugins/cert.py:118
+#: ipalib/plugins/cert.py:115
+msgid ""
+"\n"
+" Return the first value of the subject alt name, if any\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
msgid "Failure decoding Certificate Signing Request"
msgstr "Gagal mengurai Permintaan Penandatanganan Sertifikat"
-#: ipalib/plugins/cert.py:120
-#, python-format
+#: ipalib/plugins/cert.py:128
+msgid ""
+"\n"
+" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
+" parser.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:139
msgid "Failure decoding Certificate Signing Request: %s"
msgstr "Gagal mengurai Permintaan Penandatanganan Sertifikat: %s"
-#: ipalib/plugins/cert.py:171 ipalib/plugins/service.py:197
+#: ipalib/plugins/cert.py:142
+msgid ""
+"\n"
+" Strip any leading and trailing cruft around the BEGIN/END block\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:162
+msgid ""
+"\n"
+" Convert a SN given in decimal or hexadecimal.\n"
+" Returns the number or None if conversion fails.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:188
+msgid ""
+"\n"
+" Given a principal with or without a realm return the\n"
+" host portion.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:202
+msgid ""
+"\n"
+" Submit a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:172
+#: ipalib/plugins/cert.py:217
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:179
+#: ipalib/plugins/cert.py:224
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:187 ipalib/plugins/cert.py:392
-#: ipalib/plugins/host.py:154 ipalib/plugins/service.py:204
+#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
+#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
+#: ipalib/plugins/service.py:232
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:191 ipalib/plugins/cert.py:395
+#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:195 ipalib/plugins/cert.py:398
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:199 ipalib/plugins/cert.py:401
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:203 ipalib/plugins/cert.py:404
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:207 ipalib/plugins/cert.py:407
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:211 ipalib/plugins/cert.py:410
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:215 ipalib/plugins/cert.py:379
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:223 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:357
+#: ipalib/plugins/cert.py:396
+msgid ""
+"\n"
+" Check the status of a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:402
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:363
+#: ipalib/plugins/cert.py:408
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:380
+#: ipalib/plugins/cert.py:426
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:413
+#: ipalib/plugins/cert.py:431
+msgid ""
+"\n"
+" Retrieve an existing certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
+#: ipalib/plugins/service.py:114
msgid "Revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:458
+#: ipalib/plugins/cert.py:466
+msgid "Output filename"
+msgstr ""
+
+#: ipalib/plugins/cert.py:467
+msgid "File to store the certificate in."
+msgstr ""
+
+#: ipalib/plugins/cert.py:518
+msgid ""
+"\n"
+" Revoke a certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:526
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:466
+#: ipalib/plugins/cert.py:534
#, fuzzy
msgid "Reason"
msgstr "%(reason)s"
-#: ipalib/plugins/cert.py:467
+#: ipalib/plugins/cert.py:535
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:502
+#: ipalib/plugins/cert.py:562
+msgid ""
+"\n"
+" Take a revoked certificate off hold.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:570
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:505
+#: ipalib/plugins/cert.py:573
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:73
+#: ipalib/plugins/config.py:20
+msgid ""
+"\n"
+"Manage the IPA configuration\n"
+"\n"
+"Manage the default values that IPA uses and some of its tuning parameters.\n"
+"\n"
+" To show the current configuration:\n"
+" ipa config-show\n"
+"\n"
+" To modify the configuration:\n"
+" ipa config-mod --maxusername=99\n"
+"\n"
+"The available options are:\n"
+"\n"
+"User management options:\n"
+"\n"
+" --maxusername=INT Max. username length when creating/modifying a user\n"
+" --homedirectory=STR Default location of home directories (default /"
+"home)\n"
+" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
+" --defaultgroup=STR Default group for new users (default ipausers). The\n"
+" group must exist, or adding new users will fail.\n"
+" --emaildomain=STR Default e-mail domain for new users\n"
+"\n"
+"Search tuning options. These impact how much data is searched through and\n"
+"how many records may be returned on a given search.\n"
+"\n"
+" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 "
+"for\n"
+" unlimited)\n"
+" --searchrecordslimit=INT Max. number of records to search (-1 is "
+"unlimited)\n"
+"\n"
+"Server Configuration.\n"
+"\n"
+" --enable-migration=BOOL Enable migration mode\n"
+" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+"\n"
+"The password notification value is stored here so it will be replicated.\n"
+"It is not currently used to notify users in advance of an expiring\n"
+"password.\n"
+"\n"
+"Some attributes are read-only, provided only for information purposes. "
+"These\n"
+"include:\n"
+"\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
+msgstr ""
+
+#: ipalib/plugins/config.py:76
+msgid "searchtimelimit must be -1 or > 1."
+msgstr ""
+
+#: ipalib/plugins/config.py:80
+msgid ""
+"\n"
+" IPA configuration object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:78
-msgid "Max username length"
+#: ipalib/plugins/config.py:96
+msgid "Max. username length"
msgstr ""
-#: ipalib/plugins/config.py:83
+#: ipalib/plugins/config.py:101
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:84
-msgid "Default location of home directories"
+#: ipalib/plugins/config.py:102
+msgid "Default location of home directories."
msgstr ""
-#: ipalib/plugins/config.py:88
+#: ipalib/plugins/config.py:106
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:89
-msgid "Default shell for new users"
+#: ipalib/plugins/config.py:107
+msgid "Default shell for new users."
msgstr ""
-#: ipalib/plugins/config.py:93
+#: ipalib/plugins/config.py:111
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:94
-msgid "Default group for new users"
+#: ipalib/plugins/config.py:112
+msgid "Default group for new users."
msgstr ""
-#: ipalib/plugins/config.py:98
-msgid "Default e-mail domain"
+#: ipalib/plugins/config.py:116
+msgid "Default e-mail domain for new users"
msgstr ""
-#: ipalib/plugins/config.py:99
-msgid "Default e-mail domain new users"
+#: ipalib/plugins/config.py:117
+msgid "Default e-mail domain new users."
msgstr ""
-#: ipalib/plugins/config.py:103
+#: ipalib/plugins/config.py:121
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:104
-msgid "Max. amount of time (sec.) for a search (-1 is unlimited)"
+#: ipalib/plugins/config.py:122
+msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:109
+#: ipalib/plugins/config.py:127
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:110
-msgid "Max. number of records to search (-1 is unlimited)"
+#: ipalib/plugins/config.py:128
+msgid "Max. number of records to search (-1 is unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:115
+#: ipalib/plugins/config.py:133
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:116
-msgid "A comma-separated list of fields to search when searching for users"
+#: ipalib/plugins/config.py:134
+msgid "A comma-separated list of fields to search when searching for users."
msgstr ""
-#: ipalib/plugins/config.py:121
-msgid "A comma-separated list of fields to search when searching for groups"
+#: ipalib/plugins/config.py:139
+msgid "A comma-separated list of fields to search when searching for groups."
msgstr ""
-#: ipalib/plugins/config.py:125
+#: ipalib/plugins/config.py:143
msgid "Migration mode"
msgstr ""
-#: ipalib/plugins/config.py:126
-msgid "Enable migration mode"
+#: ipalib/plugins/config.py:144
+msgid "Enable migration mode."
msgstr ""
-#: ipalib/plugins/config.py:130
+#: ipalib/plugins/config.py:148
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:131
-msgid "Base for certificate subjects (OU=Test,O=Example)"
+#: ipalib/plugins/config.py:149
+msgid "Base for certificate subjects (OU=Test,O=Example)."
+msgstr ""
+
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:155
+msgid "Default group objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:159
+msgid "Default user objectclasses"
msgstr ""
-#: ipalib/plugins/dns.py:131
+#: ipalib/plugins/config.py:160
+msgid "Default user objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:164
+msgid "Password Expiration Notification"
+msgstr ""
+
+#: ipalib/plugins/config.py:165
+msgid "Number of days's notice of impending password expiration."
+msgstr ""
+
+#: ipalib/plugins/config.py:170
+msgid "Password plugin features"
+msgstr ""
+
+#: ipalib/plugins/config.py:171
+msgid "Extra hashes to generate in password plug-in."
+msgstr ""
+
+#: ipalib/plugins/config.py:183
+msgid ""
+"\n"
+" Modify configuration options.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:220
+msgid ""
+"\n"
+" Show the current configuration.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:19
+msgid ""
+"\n"
+"Group to Group Delegation\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"Group to Group Delegations grants the members of one group to update a set\n"
+"of attributes of members of another group.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a delegation rule to allow editors to edit admin's addresses:\n"
+" ipa delegation-add --attrs=street --membergroup=admins --group=editors "
+"'editors edit admins street'\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add postalCode to the list:\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --"
+"group=editors 'editors edit admins street'\n"
+"\n"
+" Display our updated rule:\n"
+" ipa delegation-show 'editors edit admins street'\n"
+"\n"
+" Delete a rule:\n"
+" ipa delegation-del 'editors edit admins street'\n"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:56
+msgid ""
+"\n"
+" memberOf is in filter but we want to pull out the group for easier\n"
+" displaying.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+msgid "Delegation '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:70
+msgid "Error retrieving member group %(group)s: %(error)s"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:79
+msgid ""
+"\n"
+" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a delegation ACI, adding a new attribute\n"
+" membergroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:95
+msgid ""
+"\n"
+" Delegation object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:102
+msgid "Delegation"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+msgid "Delegation name"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+msgid ""
+"Comma-separated list of permissions to grant (read, write). Default is write."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:125
+msgid "Member user group"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:126
+msgid "User group to apply delegation to"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:152
+msgid ""
+"\n"
+" Add a new delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:156
+#, fuzzy
+msgid "Added delegation \"%(value)s\""
+msgstr "Rolegroup \"%(value)s\" telah ditambahkan"
+
+#: ipalib/plugins/delegation.py:176
+msgid ""
+"\n"
+" Delete a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:181
+#, fuzzy
+msgid "Deleted delegation \"%(value)s\""
+msgstr "Rolegroup \"%(value)s\" telah dihapus"
+
+#: ipalib/plugins/delegation.py:197
+msgid ""
+"\n"
+" Modify a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:201
+#, fuzzy
+msgid "Modified delegation \"%(value)s\""
+msgstr "Rolegroup \"%(value)s\" telah dimodifikasi"
+
+#: ipalib/plugins/delegation.py:219
+msgid ""
+"\n"
+" Search for delegations.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:223
+#, fuzzy
+msgid "%(count)d delegation matched"
+msgid_plural "%(count)d delegations matched"
+msgstr[0] "%(count)d rolegroup sesuai"
+
+#: ipalib/plugins/delegation.py:250
+msgid ""
+"\n"
+" Display information about a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:20
+msgid ""
+"\n"
+"Domain Name System (DNS)\n"
+"\n"
+"Manage DNS zone and resource records.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add new zone:\n"
+" ipa dnszone-add example.com --name-server nameserver.example.com\n"
+" --admin-email admin@example.com\n"
+"\n"
+" Add second nameserver for example.com:\n"
+" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add a mail server for example.com:\n"
+" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n"
+"\n"
+" Delete previously added nameserver from example.com:\n"
+" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add new A record for www.example.com: (random IP)\n"
+" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n"
+"\n"
+" Add new PTR record for www.example.com\n"
+" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n"
+"\n"
+" Add new SRV records for LDAP servers. Three quarters of the requests\n"
+" should go to fast.example.com, one quarter to slow.example.com. If neither\n"
+" is available, switch to backup.example.com.\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup."
+"example.com\"\n"
+"\n"
+" When dnsrecord-add command is executed with no option to add a specific "
+"record\n"
+" an interactive mode is started. The mode interactively prompts for the "
+"most\n"
+" typical record types for the respective zone:\n"
+" ipa dnsrecord-add example.com www\n"
+" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random "
+"IPs)\n"
+" [AAAA record]: (no AAAA address entered)\n"
+" Record name: www\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" The interactive mode can also be used for deleting the DNS records:\n"
+" ipa dnsrecord-del example.com www\n"
+" No option to delete specific record provided.\n"
+" Delete all? Yes/No (default No): (do not delete all records)\n"
+" Current DNS record contents:\n"
+"\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
+" Record name: www\n"
+" A record: 1.2.3.4 (A record 11.22.33.44 has been "
+"deleted)\n"
+"\n"
+" Show zone example.com:\n"
+" ipa dnszone-show example.com\n"
+"\n"
+" Find zone with \"example\" in its domain name:\n"
+" ipa dnszone-find example\n"
+"\n"
+" Find records for resources with \"www\" in their name in zone example.com:\n"
+" ipa dnsrecord-find example.com www\n"
+"\n"
+" Find A records with value 10.10.0.1 in zone example.com\n"
+" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n"
+"\n"
+" Show records for resource www in zone example.com\n"
+" ipa dnsrecord-show example.com www\n"
+"\n"
+" Delete zone example.com with all resource records:\n"
+" ipa dnszone-del example.com\n"
+"\n"
+" Resolve a host name to see if it exists (will add default IPA domain\n"
+" if one is not included):\n"
+" ipa dns-resolve www.example.com\n"
+" ipa dns-resolve www\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:140
+msgid "Generate serial number for zones."
+msgstr ""
+
+#: ipalib/plugins/dns.py:189
+msgid "see RFC 2915 "
+msgstr ""
+
+#: ipalib/plugins/dns.py:249
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:272
+msgid ""
+"\n"
+" DNS Zone, container for resource records.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:284
msgid "DNS"
msgstr ""
-#: ipalib/plugins/dns.py:136
-msgid "Zone"
+#: ipalib/plugins/dns.py:289
+msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:137
+#: ipalib/plugins/dns.py:290
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:143
-msgid "Authoritative name server"
+#: ipalib/plugins/dns.py:296
+msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:147
-msgid "administrator e-mail address"
+#: ipalib/plugins/dns.py:297
+msgid "Authoritative nameserver."
msgstr ""
-#: ipalib/plugins/dns.py:153
+#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+msgid "Administrator e-mail address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:308
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:157
+#: ipalib/plugins/dns.py:309
+msgid "SOA record serial number"
+msgstr ""
+
+#: ipalib/plugins/dns.py:316
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:161
+#: ipalib/plugins/dns.py:317
+msgid "SOA record refresh time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:324
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:165
+#: ipalib/plugins/dns.py:325
+msgid "SOA record retry time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:169
+#: ipalib/plugins/dns.py:333
+msgid "SOA record expire time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:173
+#: ipalib/plugins/dns.py:341
+msgid "How long should negative responses be cached"
+msgstr ""
+
+#: ipalib/plugins/dns.py:349
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:177
+#: ipalib/plugins/dns.py:350
+msgid "SOA record time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:354
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:182
-msgid "allow dynamic update?"
+#: ipalib/plugins/dns.py:355
+msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:186
+#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:426 ipalib/plugins/dns.py:460
-#: ipalib/plugins/dns.py:495 ipalib/plugins/dns.py:610
-#: ipalib/plugins/dns.py:695 ipalib/plugins/dns.py:819
-msgid "Zone name"
+#: ipalib/plugins/dns.py:365
+msgid "Active zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:366
+msgid "Is zone active?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:372
+msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:500
-msgid "resource name"
+#: ipalib/plugins/dns.py:373
+msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:505 ipalib/plugins/dns.py:620
-#: ipalib/plugins/dns.py:711
+#: ipalib/plugins/dns.py:382
+msgid ""
+"\n"
+" Create new DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
+#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+msgid "Force"
+msgstr ""
+
+#: ipalib/plugins/dns.py:388
+msgid "Force DNS zone creation even if nameserver not in DNS."
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+msgid "Add the nameserver to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:397
+msgid "DNS is not configured"
+msgstr ""
+
+#: ipalib/plugins/dns.py:431
+msgid ""
+"\n"
+" Delete DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"\n"
+" Modify DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:452
+msgid ""
+"\n"
+" Search for DNS zones (SOA records).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:460
+msgid ""
+"\n"
+" Display information about a DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+msgid ""
+"\n"
+" Disable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:472
#, fuzzy
-msgid "Record type"
-msgstr "type salah"
+msgid "Disabled DNS zone \"%(value)s\""
+msgstr "Pengguna \"%(value)s\" telah dihapus"
-#: ipalib/plugins/dns.py:509 ipalib/plugins/dns.py:624
-msgid "Data"
+#: ipalib/plugins/dns.py:490
+msgid ""
+"\n"
+" Enable DNS Zone.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:510 ipalib/plugins/dns.py:625
-msgid "Type-specific data"
+#: ipalib/plugins/dns.py:494
+#, fuzzy
+msgid "Enabled DNS zone \"%(value)s\""
+msgstr "Pengguna \"%(value)s\" telah dibuka kuncinya"
+
+#: ipalib/plugins/dns.py:512
+msgid ""
+"\n"
+" DNS record.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:517
+#: ipalib/plugins/dns.py:522
+msgid "DNS resource record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
+#, fuzzy
+msgid "Record name"
+msgstr "type salah"
+
+#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:522
+#: ipalib/plugins/dns.py:538
msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:615 ipalib/plugins/dns.py:707
-#: ipalib/plugins/dns.py:824
-msgid "Resource name"
+#: ipalib/plugins/dns.py:539
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:700
-msgid "Search criteria"
+#: ipalib/plugins/dns.py:566
+msgid ""
+"\n"
+" Base class for DNS record commands with record options.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:715
-msgid "type-specific data"
+#: ipalib/plugins/dns.py:610
+msgid ""
+"\n"
+" Base class for adding/removing records from DNS resource entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:865
-#, fuzzy, python-format
+#: ipalib/plugins/dns.py:674
+msgid ""
+"\n"
+" Add records to DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:690
+msgid ""
+"\n"
+" Add new DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:699
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:735
+msgid ""
+"Reverse zone for PTR record should be a sub-zone of one the following fully "
+"qualified domains: %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:740
+msgid "Reverse zone %s requires exactly %d IP address components, %d given"
+msgstr ""
+
+#: ipalib/plugins/dns.py:746
+msgid "PTR record '%s' is not fully qualified (check traling '.')"
+msgstr ""
+
+#: ipalib/plugins/dns.py:789
+msgid ""
+"\n"
+" Delete DNS record entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:792
+#, fuzzy
+msgid "Deleted record \"%(value)s\""
+msgstr "Pengguna \"%(value)s\" telah dihapus"
+
+#: ipalib/plugins/dns.py:799
+msgid ""
+"\n"
+" Delete DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:802
+msgid ""
+"Neither --del-all nor options to delete a specific record provided.\n"
+"Command help may be consulted for all supported record types."
+msgstr ""
+
+#: ipalib/plugins/dns.py:807
+msgid "Delete all associated records"
+msgstr ""
+
+#: ipalib/plugins/dns.py:834
+msgid "No option to delete specific record provided."
+msgstr ""
+
+#: ipalib/plugins/dns.py:835
+msgid "Delete all?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:845
+msgid "Current DNS record contents:\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:875
+#, fuzzy
+msgid "%s record with value %s not found"
+msgstr "ACI dengan nama \"%s\" tidak ditemukan"
+
+#: ipalib/plugins/dns.py:889
+msgid ""
+"\n"
+" Display DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:905
+msgid ""
+"\n"
+" Search for DNS resources.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:932
+msgid ""
+"\n"
+" Resolve a host name in DNS\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:936
+#, fuzzy
msgid "Found '%(value)s'"
msgstr "Grup \"%(value)s\" telah ditambahkan"
-#: ipalib/plugins/dns.py:869
+#: ipalib/plugins/dns.py:940
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:882
-#, python-format
+#: ipalib/plugins/dns.py:962
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/group.py:94
+#: ipalib/plugins/dns.py:970
+msgid ""
+"\n"
+" Checks if any of the servers has the DNS service enabled.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:19
+msgid ""
+"\n"
+"Entitlements\n"
+"\n"
+"Manage entitlements for client machines\n"
+"\n"
+"Entitlements can be managed either by registering with an entitlement\n"
+"server with a username and password or by manually importing entitlement\n"
+"certificates. An entitlement certificate contains embedded information\n"
+"such as the product being entitled, the quantity and the validity dates.\n"
+"\n"
+"An entitlement server manages the number of client entitlements available.\n"
+"To mark these entitlements as used by the IPA server you provide a quantity\n"
+"and they are marked as consumed on the entitlement server.\n"
+"\n"
+" Register with an entitlement server:\n"
+" ipa entitle-register consumer\n"
+"\n"
+" Import an entitlement certificate:\n"
+" ipa entitle-import /home/user/ipaclient.pem\n"
+"\n"
+" Display current entitlements:\n"
+" ipa entitle-status\n"
+"\n"
+" Retrieve details on entitlement certificates:\n"
+" ipa entitle-get\n"
+"\n"
+" Consume some entitlements from the entitlement server:\n"
+" ipa entitle-consume 50\n"
+"\n"
+"The registration ID is a Unique Identifier (UUID). This ID will be\n"
+"IMPORTED if you have used entitle-import.\n"
+"\n"
+"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:106
+msgid ""
+"\n"
+" Get our entitlement pool. Assume there is only one pool.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:129
+msgid ""
+"\n"
+" Retrieve our UUID, certificate and key from LDAP.\n"
+"\n"
+" Except on error the caller is responsible for removing temporary files\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:178
+msgid ""
+"\n"
+" Entitlement object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:189
+msgid "Entitlements"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:206
+msgid ""
+"\n"
+" Display current entitlements\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+msgid "UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
+#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
+#: ipalib/plugins/entitle.py:690
+msgid "Product"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
+#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
+#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+msgid "Quantity"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
+#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+msgid "Consumed"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:276
+msgid ""
+"\n"
+" Consume an entitlement\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:282
+msgid "Consumed %(value)s entitlement(s)."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:314
+msgid ""
+"\n"
+" Override this so we can set value to the number of entitlements\n"
+" consumed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
+msgid ""
+"\n"
+" Returning the certificates isn't very interesting. Return the\n"
+" status of entitlements instead.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:380
+msgid ""
+"\n"
+" Retrieve the entitlement certs\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:394
+msgid "Start"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:397
+msgid "End"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
+#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+msgid "Serial Number"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
+#: ipalib/plugins/entitle.py:628
+msgid "Not an entitlement certificate"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:460
+msgid ""
+"\n"
+" Search for entitlement accounts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:473
+msgid ""
+"\n"
+" Register to the entitlement system\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:479
+msgid "Registered to entitlement server."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:483
+msgid "Username"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
+msgid "Enrollment UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
+#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
+msgid "Password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:495
+msgid "Registration password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:569
+msgid ""
+"\n"
+" Import an entitlement certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:646
+msgid ""
+"\n"
+" If we are adding the first entry there are no updates so "
+"EmptyModlist\n"
+" will get thrown. Ignore it.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:667
+msgid ""
+"\n"
+" Re-sync the local entitlement cache with the entitlement server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:673
+msgid "Entitlement(s) synchronized."
+msgstr ""
+
+#: ipalib/plugins/group.py:20
+msgid ""
+"\n"
+"Groups of users\n"
+"\n"
+"Manage groups of users. By default, new groups are POSIX groups. You\n"
+"can add the --nonposix option to the group-add command to mark a new group\n"
+"as non-POSIX, and you can use the same argument to the group-mod command\n"
+"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"converted to non-POSIX groups.\n"
+"\n"
+"Every group must have a description.\n"
+"\n"
+"POSIX groups must have a Group ID (GID) number. Changing a GID is\n"
+"supported but can have an impact on your file permissions. It is not "
+"necessary\n"
+"to supply a GID when creating a group. IPA will generate one automatically\n"
+"if it is not provided.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new group:\n"
+" ipa group-add --desc='local administrators' localadmins\n"
+"\n"
+" Add a new non-POSIX group:\n"
+" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n"
+"\n"
+" Convert a non-POSIX group to posix:\n"
+" ipa group-mod --posix remoteadmins\n"
+"\n"
+" Add a new POSIX group with a specific Group ID number:\n"
+" ipa group-add --gid=500 --desc='unix admins' unixadmins\n"
+"\n"
+" Add a new POSIX group and let IPA assign a Group ID number:\n"
+" ipa group-add --desc='printer admins' printeradmins\n"
+"\n"
+" Remove a group:\n"
+" ipa group-del unixadmins\n"
+"\n"
+" To add the \"remoteadmins\" group to the \"localadmins\" group:\n"
+" ipa group-add-member --groups=remoteadmins localadmins\n"
+"\n"
+" Add a list of users to the \"localadmins\" group:\n"
+" ipa group-add-member --users=test1,test2 localadmins\n"
+"\n"
+" Remove a user from the \"localadmins\" group:\n"
+" ipa group-remove-member --users=test2 localadmins\n"
+"\n"
+" Display information about a named group.\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/group.py:76
+msgid ""
+"\n"
+" Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:100
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:102
+#: ipalib/plugins/group.py:108
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:109 ipalib/plugins/sudocmdgroup.py:78
+#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:113
+#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:114
+#: ipalib/plugins/group.py:120
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:117 ipalib/plugins/rolegroup.py:94
-#: ipalib/plugins/taskgroup.py:66
-msgid "Member groups"
-msgstr ""
-
-#: ipalib/plugins/group.py:121 ipalib/plugins/rolegroup.py:98
-#: ipalib/plugins/taskgroup.py:70
-msgid "Member users"
+#: ipalib/plugins/group.py:128
+msgid ""
+"\n"
+" Create a new group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:134
-#, python-format
+#: ipalib/plugins/group.py:132
msgid "Added group \"%(value)s\""
msgstr "Grup \"%(value)s\" telah ditambahkan"
-#: ipalib/plugins/group.py:139
+#: ipalib/plugins/group.py:137
#, fuzzy
-msgid "Create as a non-POSIX group?"
+msgid "Create as a non-POSIX group"
msgstr "Ini sudah merupakan grup posix"
-#: ipalib/plugins/group.py:160
-#, python-format
+#: ipalib/plugins/group.py:154
+msgid ""
+"\n"
+" Delete group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:158
msgid "Deleted group \"%(value)s\""
msgstr "Grup \"%(value)s\" telah dihapus"
-#: ipalib/plugins/group.py:191
-#, python-format
+#: ipalib/plugins/group.py:186
+msgid ""
+"\n"
+" Modify a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:189
msgid "Modified group \"%(value)s\""
msgstr "Grup \"%(value)s\" telah dimodifikasi"
-#: ipalib/plugins/group.py:196
+#: ipalib/plugins/group.py:194
#, fuzzy
msgid "change to a POSIX group"
msgstr "Ini sudah merupakan grup posix"
-#: ipalib/plugins/group.py:222 ipalib/plugins/hbacsvcgroup.py:129
-#, python-format
+#: ipalib/plugins/group.py:215
+msgid ""
+"\n"
+" Search for groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:220
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] "%(count)d grup sesuai"
+#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+msgid "search for private groups"
+msgstr ""
+
#: ipalib/plugins/group.py:257
-#, fuzzy, python-format
+msgid ""
+"\n"
+" Display information about a named group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:265
+msgid ""
+"\n"
+" Add members to a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:273
+msgid ""
+"\n"
+" Remove members from a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:281
+msgid ""
+"\n"
+" Detach a managed group from a user\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:285
+#, fuzzy
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr "Rolegroup \"%(value)s\" telah dihapus"
-#: ipalib/plugins/group.py:273
+#: ipalib/plugins/group.py:288
+msgid ""
+"\n"
+" This requires updating both the user and the group. We first need "
+"to\n"
+" verify that both the user and group can be updated, then we go\n"
+" about our work. We don't want a situation where only the user or\n"
+" group can be modified and we're left in a bad state.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:306
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:277
+#: ipalib/plugins/group.py:312
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:284 ipalib/plugins/group.py:295
+#: ipalib/plugins/group.py:331
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbac.py:106
-msgid "HBAC"
+#: ipalib/plugins/hbacrule.py:19
+msgid ""
+"\n"
+"Host-based access control\n"
+"\n"
+"Control who can access what services on what hosts and from where. You\n"
+"can use HBAC to control which users or groups on a source host can\n"
+"access a service, or group of services, on a target host.\n"
+"\n"
+"You can also specify a category of users, target hosts, and source\n"
+"hosts. This is currently limited to \"all\", but might be expanded in the\n"
+"future.\n"
+"\n"
+"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n"
+"\n"
+"The available services and groups of services are controlled by the\n"
+"hbacsvc and hbacsvcgroup plug-ins respectively.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a rule, \"test1\", that grants all users access to the host \"server"
+"\" from\n"
+" anywhere:\n"
+" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add-host --hosts=server.example.com test1\n"
+"\n"
+" Display the properties of a named HBAC rule:\n"
+" ipa hbacrule-show test1\n"
+"\n"
+" Create a rule for a specific service. This lets the user john access\n"
+" the sshd service on any machine from any machine:\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add-user --users=john john_sshd\n"
+" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
+"\n"
+" Create a rule for a new service group. This lets the user john access\n"
+" the FTP service on any machine from any machine:\n"
+" ipa hbacsvcgroup-add ftpers\n"
+" ipa hbacsvc-add sftp\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add-user --users=john john_ftp\n"
+" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
+"\n"
+" Disable a named HBAC rule:\n"
+" ipa hbacrule-disable test1\n"
+"\n"
+" Remove a named HBAC rule:\n"
+" ipa hbacrule-del allow_server\n"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:91
+msgid ""
+"\n"
+" See if options[attribute] is lower-case 'all' in a safe way.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbac.py:111 ipalib/plugins/sudorule.py:53
+#: ipalib/plugins/hbacrule.py:103
+msgid ""
+"\n"
+" HBAC object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:126
+msgid "HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbac.py:116
+#: ipalib/plugins/hbacrule.py:136
msgid "Rule type (allow or deny)"
msgstr ""
-#: ipalib/plugins/hbac.py:117
+#: ipalib/plugins/hbacrule.py:137
#, fuzzy
msgid "Rule type"
msgstr "type salah"
-#: ipalib/plugins/hbac.py:123
+#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
+#: ipalib/plugins/sudorule.py:86
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbac.py:124
+#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
+#: ipalib/plugins/sudorule.py:87
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:129
+#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
+#: ipalib/plugins/sudorule.py:92
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbac.py:130
+#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
+#: ipalib/plugins/sudorule.py:93
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:135
+#: ipalib/plugins/hbacrule.py:155
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbac.py:136
+#: ipalib/plugins/hbacrule.py:156
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:141
+#: ipalib/plugins/hbacrule.py:161
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbac.py:142
+#: ipalib/plugins/hbacrule.py:162
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:147 ipalib/plugins/hbac.py:325
-#: ipalib/plugins/hbac.py:363
-msgid "Access time"
-msgstr ""
-
-#: ipalib/plugins/hbac.py:154
+#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbac.py:158 ipalib/plugins/sudorule.py:61
-#: ipalib/plugins/user.py:76
+#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
+#: ipalib/plugins/user.py:108
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbac.py:162 ipalib/plugins/host.py:113
-#: ipalib/plugins/sudorule.py:65
+#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
+#: ipalib/plugins/sudorule.py:119
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
+#: ipalib/plugins/sudorule.py:123
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:166 ipalib/plugins/hostgroup.py:69
-#: ipalib/plugins/sudorule.py:69
+#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
+#: ipalib/plugins/sudorule.py:127
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbac.py:170
+#: ipalib/plugins/hbacrule.py:194
msgid "Source hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:174 ipalib/plugins/hbacsvc.py:60
-#: ipalib/plugins/service.py:192
+#: ipalib/plugins/hbacrule.py:198
+msgid "Source host groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
+#: ipalib/plugins/service.py:220
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbac.py:178
+#: ipalib/plugins/hbacrule.py:206
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:65
-msgid "Service name"
+#: ipalib/plugins/hbacrule.py:215
+msgid ""
+"\n"
+" Create a new HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:219
+#, fuzzy
+msgid "Added HBAC rule \"%(value)s\""
+msgstr "Pengguna \"%(value)s\" telah ditambahkan"
+
+#: ipalib/plugins/hbacrule.py:230
+msgid ""
+"\n"
+" Delete an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:234
+#, fuzzy
+msgid "Deleted HBAC rule \"%(value)s\""
+msgstr "ACI \"%(value)s\" telah dihapus"
+
+#: ipalib/plugins/hbacrule.py:240
+msgid ""
+"\n"
+" Modify an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:244
+#, fuzzy
+msgid "Modified HBAC rule \"%(value)s\""
+msgstr "ACI \"%(value)s\" telah dimodifikasi"
+
+#: ipalib/plugins/hbacrule.py:266
+msgid ""
+"\n"
+" Search for HBAC rules.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:270
+#, fuzzy
+msgid "%(count)d HBAC rule matched"
+msgid_plural "%(count)d HBAC rules matched"
+msgstr[0] "%(count)d ACI sesuai"
+
+#: ipalib/plugins/hbacrule.py:278
+msgid ""
+"\n"
+" Display the properties of an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:286
+msgid ""
+"\n"
+" Enable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:290
+#, fuzzy
+msgid "Enabled HBAC rule \"%(value)s\""
+msgstr "Pengguna \"%(value)s\" telah dibuka kuncinya"
+
+#: ipalib/plugins/hbacrule.py:315
+msgid ""
+"\n"
+" Disable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:319
+#, fuzzy
+msgid "Disabled HBAC rule \"%(value)s\""
+msgstr "Pengguna \"%(value)s\" telah dihapus"
+
+#: ipalib/plugins/hbacrule.py:344
+msgid ""
+"\n"
+" Add an access time to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+msgid "Access time"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:385
+msgid ""
+"\n"
+" Remove access time to HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:425
+msgid ""
+"\n"
+" Add users and groups to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:442
+msgid ""
+"\n"
+" Remove users and groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:452
+msgid ""
+"\n"
+" Add target hosts and hostgroups to an HBAC rule\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:469
+msgid ""
+"\n"
+" Remove target hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:479
+msgid ""
+"\n"
+" Add source hosts and hostgroups from a HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:496
+msgid ""
+"\n"
+" Remove source hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:506
+msgid ""
+"\n"
+" Add services to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:523
+msgid ""
+"\n"
+" Remove service and service groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:19
+msgid ""
+"\n"
+"HBAC Services\n"
+"\n"
+"The PAM services that HBAC can control access to. The name used here\n"
+"must match the service name that PAM is evaluating.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service:\n"
+" ipa hbacsvc-add tftp\n"
+"\n"
+" Modify an existing HBAC service:\n"
+" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n"
+"\n"
+" Search for HBAC services. This example will return two results, the FTP\n"
+" service and the newly-added tftp service:\n"
+" ipa hbacsvc-find ftp\n"
+"\n"
+" Delete an HBAC service:\n"
+" ipa hbacsvc-del tftp\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:51
+msgid ""
+"\n"
+" HBAC Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:61
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "HBAC Service"
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:73
-msgid "Description of service"
+#: ipalib/plugins/hbacsvc.py:67
+msgid "HBAC service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:84 ipalib/plugins/service.py:216
-#, fuzzy, python-format
-msgid "Added service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:74
+msgid "HBAC service description"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:82
+msgid ""
+"\n"
+" Add a new HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:85
+#, fuzzy
+msgid "Added HBAC service \"%(value)s\""
msgstr "Pengguna \"%(value)s\" telah ditambahkan"
-#: ipalib/plugins/hbacsvc.py:93 ipalib/plugins/service.py:255
-#, fuzzy, python-format
-msgid "Deleted service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:91
+msgid ""
+"\n"
+" Delete an existing HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:94
+#, fuzzy
+msgid "Deleted HBAC service \"%(value)s\""
msgstr "Pengguna \"%(value)s\" telah dihapus"
-#: ipalib/plugins/hbacsvcgroup.py:66
-msgid "HBAC Service Groups"
+#: ipalib/plugins/hbacsvc.py:100
+msgid ""
+"\n"
+" Modify an HBAC service.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:71
-msgid "Service group name"
+#: ipalib/plugins/hbacsvc.py:104
+#, fuzzy
+msgid "Modified HBAC service \"%(value)s\""
+msgstr "Pengguna \"%(value)s\" telah dimodifikasi"
+
+#: ipalib/plugins/hbacsvc.py:110
+msgid ""
+"\n"
+" Search for HBAC services.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:78
-msgid "HBAC service group description"
+#: ipalib/plugins/hbacsvc.py:114
+#, fuzzy
+msgid "%(count)d HBAC service matched"
+msgid_plural "%(count)d HBAC services matched"
+msgstr[0] "%(count)d pengguna sesuai"
+
+#: ipalib/plugins/hbacsvc.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:81
-msgid "Member services"
+#: ipalib/plugins/hbacsvcgroup.py:19
+msgid ""
+"\n"
+"HBAC Service Groups\n"
+"\n"
+"HBAC service groups can contain any number of individual services,\n"
+"or \"members\". Every group must have a description.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service group:\n"
+" ipa hbacsvcgroup-add --desc=\"login services\" login\n"
+"\n"
+" Add members to an HBAC service group:\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n"
+"\n"
+" Display information about a named group:\n"
+" ipa hbacsvcgroup-show login\n"
+"\n"
+" Add a new group to the \"login\" group:\n"
+" ipa hbacsvcgroup-add --desc=\"switch users\" login\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n"
+"\n"
+" Delete an HBAC service group:\n"
+" ipa hbacsvcgroup-del login\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:51
+msgid ""
+"\n"
+" HBAC service group object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:85
-msgid "Member service groups"
+#: ipalib/plugins/hbacsvcgroup.py:64
+#, fuzzy
+msgid "HBAC service Groups"
+msgstr "Rolegroup \"%(value)s\" telah ditambahkan"
+
+#: ipalib/plugins/hbacsvcgroup.py:69
+msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:101
-#, fuzzy, python-format
-msgid "Added HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:76
+msgid "HBAC service group description"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:84
+#, fuzzy
+msgid ""
+"\n"
+" Add a new HBAC service group.\n"
+" "
msgstr "Rolegroup \"%(value)s\" telah ditambahkan"
-#: ipalib/plugins/hbacsvcgroup.py:110
-#, fuzzy, python-format
-msgid "Deleted HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:87
+#, fuzzy
+msgid "Added HBAC service group \"%(value)s\""
+msgstr "Rolegroup \"%(value)s\" telah ditambahkan"
+
+#: ipalib/plugins/hbacsvcgroup.py:93
+#, fuzzy
+msgid ""
+"\n"
+" Delete an HBAC service group.\n"
+" "
msgstr "Rolegroup \"%(value)s\" telah dihapus"
-#: ipalib/plugins/hbacsvcgroup.py:119
-#, fuzzy, python-format
-msgid "Modified HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:96
+#, fuzzy
+msgid "Deleted HBAC service group \"%(value)s\""
+msgstr "Rolegroup \"%(value)s\" telah dihapus"
+
+#: ipalib/plugins/hbacsvcgroup.py:102
+#, fuzzy
+msgid ""
+"\n"
+" Modify an HBAC service group.\n"
+" "
+msgstr "Rolegroup \"%(value)s\" telah dimodifikasi"
+
+#: ipalib/plugins/hbacsvcgroup.py:105
+#, fuzzy
+msgid "Modified HBAC service group \"%(value)s\""
msgstr "Rolegroup \"%(value)s\" telah dimodifikasi"
-#: ipalib/plugins/host.py:86
+#: ipalib/plugins/hbacsvcgroup.py:111
+msgid ""
+"\n"
+" Search for an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:114
+#, fuzzy
+msgid "%(count)d HBAC service group matched"
+msgid_plural "%(count)d HBAC service groups matched"
+msgstr[0] "%(count)d pengguna sesuai"
+
+#: ipalib/plugins/hbacsvcgroup.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:130
+msgid ""
+"\n"
+" Add members to an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:138
+msgid ""
+"\n"
+" Remove members from an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:20
+msgid ""
+"\n"
+"Hosts/Machines\n"
+"\n"
+"A host represents a machine. It can be used in a number of contexts:\n"
+"- service entries are associated with a host\n"
+"- a host stores the host/ service principal\n"
+"- a host can be used in Host-based Access Control (HBAC) rules\n"
+"- every enrolled client generates a host entry\n"
+"\n"
+"ENROLLMENT:\n"
+"\n"
+"There are three enrollment scenarios when enrolling a new client:\n"
+"\n"
+"1. You are enrolling as a full administrator. The host entry may exist\n"
+" or not. A full administrator is a member of the hostadmin role\n"
+" or the admins group.\n"
+"2. You are enrolling as a limited administrator. The host must already\n"
+" exist. A limited administrator is a member a role with the\n"
+" Host Enrollment privilege.\n"
+"3. The host has been created with a one-time password.\n"
+"\n"
+"A host can only be enrolled once. If a client has enrolled and needs to\n"
+"be re-enrolled, the host entry must be removed and re-created. Note that\n"
+"re-creating the host entry will result in all services for the host being\n"
+"removed, and all SSL certificates associated with those services being\n"
+"revoked.\n"
+"\n"
+"A host can optionally store information such as where it is located,\n"
+"the OS that it runs, etc.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host:\n"
+" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example."
+"com\n"
+"\n"
+" Delete a host:\n"
+" ipa host-del test.example.com\n"
+"\n"
+" Add a new host with a one-time password:\n"
+" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n"
+"\n"
+" Add a new host with a random one-time password:\n"
+" ipa host-add --os='Fedora 12' --random test.example.com\n"
+"\n"
+" Modify information about a host:\n"
+" ipa host-mod --os='Fedora 12' test.example.com\n"
+"\n"
+" Disable the host Kerberos key, SSL certificate and all of its services:\n"
+" ipa host-disable test.example.com\n"
+"\n"
+" Add a host that can manage this host's keytab and certificate:\n"
+" ipa host-add-managedby --hosts=test2 test\n"
+msgstr ""
+
+#: ipalib/plugins/host.py:97
+msgid ""
+"\n"
+" Require at least one dot in the hostname (to support localhost."
+"localdomain)\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:118
+#: ipalib/plugins/host.py:129
+msgid "DNS reverse zone for IP address %(addr)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+msgid "Keytab"
+msgstr ""
+
+#: ipalib/plugins/host.py:185
+msgid ""
+"\n"
+" Verify that we have either an IPv4 or IPv6 address.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:189
+msgid "invalid IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:194
+msgid ""
+"\n"
+" Host object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:231
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:125
+#: ipalib/plugins/host.py:238
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:242
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:130
+#: ipalib/plugins/host.py:243
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:135
+#: ipalib/plugins/host.py:248
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:139
+#: ipalib/plugins/host.py:252
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:140
+#: ipalib/plugins/host.py:253
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:144
+#: ipalib/plugins/host.py:257
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:145
+#: ipalib/plugins/host.py:258
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:149
+#: ipalib/plugins/host.py:262
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:150
+#: ipalib/plugins/host.py:263
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:155 ipalib/plugins/service.py:205
-msgid "Base-64 encoded server certificate"
+#: ipalib/plugins/host.py:266
+msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:158 ipalib/plugins/host.py:274
-msgid "Principal name"
+#: ipalib/plugins/host.py:271
+msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:162 ipalib/plugins/hostgroup.py:93
-msgid "Member of host-groups"
+#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:166
-msgid "Member of net-groups"
+#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:170
-msgid "Member of role-groups"
+#: ipalib/plugins/host.py:306
+msgid ""
+"\n"
+" Add a new host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:199
-#, python-format
+#: ipalib/plugins/host.py:311
msgid "Added host \"%(value)s\""
msgstr "Host \"%(value)s\" telah ditambahkan"
-#: ipalib/plugins/host.py:202
+#: ipalib/plugins/host.py:316
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:235
-#, python-format
+#: ipalib/plugins/host.py:319
+msgid "skip reverse DNS detection"
+msgstr ""
+
+#: ipalib/plugins/host.py:322
+msgid "Add the host to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+msgid "DNS zone %(zone)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:413
+msgid "The host was added but the DNS update failed with: %(exc)s"
+msgstr ""
+
+#: ipalib/plugins/host.py:422
+msgid ""
+"\n"
+" Delete a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:426
msgid "Deleted host \"%(value)s\""
msgstr "Host \"%(value)s\" telah dihapus"
-#: ipalib/plugins/host.py:269
-#, python-format
+#: ipalib/plugins/host.py:431
+msgid "Remove entries from DNS"
+msgstr ""
+
+#: ipalib/plugins/host.py:537
+msgid ""
+"\n"
+" Modify information about a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:542
msgid "Modified host \"%(value)s\""
msgstr "Host \"%(value)s\" telah dimodifikasi"
-#: ipalib/plugins/host.py:275
+#: ipalib/plugins/host.py:549
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:319
-#, python-format
+#: ipalib/plugins/host.py:618
+msgid ""
+"\n"
+" Search for hosts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:623
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] "%(count)d host sesuai"
-#: ipalib/plugins/host.py:337 ipalib/plugins/service.py:84
-msgid "Keytab"
+#: ipalib/plugins/host.py:643
+msgid ""
+"\n"
+" Display information about a host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:359 ipalib/plugins/service.py:399
-#, fuzzy, python-format
-msgid "Removed kerberos key from \"%(value)s\""
-msgstr "Rolegroup \"%(value)s\" telah dihapus"
+#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+msgid "file to store certificate in"
+msgstr ""
-#: ipalib/plugins/host.py:368
-msgid "Host principal has no kerberos key"
+#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#, fuzzy
+msgid "Certificate stored in file '%(file)s'"
+msgstr "Operasi sertifikat tidak dapat diselesaikan: %(error)s"
+
+#: ipalib/plugins/host.py:684
+msgid ""
+"\n"
+" Disable the Kerberos key, SSL certificate and all services of a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:688
+#, fuzzy
+msgid "Disabled host \"%(value)s\""
+msgstr "Host \"%(value)s\" telah dihapus"
+
+#: ipalib/plugins/host.py:770
+msgid ""
+"\n"
+" Add hosts that can manage this host.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/host.py:781
+msgid ""
+"\n"
+" Remove hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:20
+msgid ""
+"\n"
+"Groups of hosts.\n"
+"\n"
+"Manage groups of hosts. This is useful for applying access control to a\n"
+"number of hosts by using Host-based Access Control.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host group:\n"
+" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n"
+"\n"
+" Add another new host group:\n"
+" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n"
+"\n"
+" Add members to the hostgroup:\n"
+" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n"
+"\n"
+" Add a hostgroup as a member of another hostgroup:\n"
+" ipa hostgroup-add-member --hostgroups=baltimore maryland\n"
+"\n"
+" Remove a host from the hostgroup:\n"
+" ipa hostgroup-remove-member --hosts=box2 baltimore\n"
+"\n"
+" Display a host group:\n"
+" ipa hostgroup-show baltimore\n"
+"\n"
+" Delete a hostgroup:\n"
+" ipa hostgroup-del baltimore\n"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:55
+msgid ""
+"\n"
+" Hostgroup object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:78
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:75
+#: ipalib/plugins/hostgroup.py:79
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:82
+#: ipalib/plugins/hostgroup.py:86
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:85
-msgid "Member hosts"
-msgstr ""
-
-#: ipalib/plugins/hostgroup.py:89
-msgid "Member host-groups"
+#: ipalib/plugins/hostgroup.py:94
+msgid ""
+"\n"
+" Add a new hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:106
-#, python-format
+#: ipalib/plugins/hostgroup.py:98
msgid "Added hostgroup \"%(value)s\""
msgstr "hostgroup \"%(value)s\" telah ditambahkan"
-#: ipalib/plugins/hostgroup.py:116
-#, python-format
+#: ipalib/plugins/hostgroup.py:104
+msgid ""
+"\n"
+" Delete a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:108
msgid "Deleted hostgroup \"%(value)s\""
msgstr "hostgroup \"%(value)s\" telah dihapus"
-#: ipalib/plugins/hostgroup.py:126
-#, python-format
+#: ipalib/plugins/hostgroup.py:114
+msgid ""
+"\n"
+" Modify a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:118
msgid "Modified hostgroup \"%(value)s\""
msgstr "hostgroup \"%(value)s\" telah dimodifikasi"
-#: ipalib/plugins/hostgroup.py:137
-#, python-format
+#: ipalib/plugins/hostgroup.py:124
+msgid ""
+"\n"
+" Search for hostgroups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:128
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] "%(count)d hostgroup sesuai"
-#: ipalib/plugins/internal.py:39
+#: ipalib/plugins/hostgroup.py:136
+msgid ""
+"\n"
+" Display information about a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:144
+msgid ""
+"\n"
+" Add members to a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:152
+msgid ""
+"\n"
+" Remove members from a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:22
+msgid ""
+"\n"
+"Plugins not accessible directly through the CLI, commands used internally\n"
+msgstr ""
+
+#: ipalib/plugins/internal.py:36
+msgid ""
+"\n"
+" Export plugin meta-data for the webUI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:44
+msgid "Name of object to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:47
+msgid "Name of method to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:52
+msgid "Dict of JSON encoded IPA Objects"
+msgstr ""
+
+#: ipalib/plugins/internal.py:53
+msgid "Dict of JSON encoded IPA Methods"
+msgstr ""
+
+#: ipalib/plugins/internal.py:96
msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:41
+#: ipalib/plugins/internal.py:99
+msgid "Attribute"
+msgstr ""
+
+#: ipalib/plugins/internal.py:102
+msgid "Add Automount Location"
+msgstr ""
+
+#: ipalib/plugins/internal.py:103
+msgid "Automount Location Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:106
+msgid "Add Automount Map"
+msgstr ""
+
+#: ipalib/plugins/internal.py:109
+msgid "Add Automount Key"
+msgstr ""
+
+#: ipalib/plugins/internal.py:112
+msgid "Unspecified"
+msgstr ""
+
+#: ipalib/plugins/internal.py:113
+msgid "Key Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:114
+msgid "CA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:115
+msgid "Affiliation Changed"
+msgstr ""
+
+#: ipalib/plugins/internal.py:116
+msgid "Superseded"
+msgstr ""
+
+#: ipalib/plugins/internal.py:117
+#, fuzzy
+msgid "Cessation of Operation"
+msgstr "operasi berkas"
+
+#: ipalib/plugins/internal.py:118
+msgid "Certificate Hold"
+msgstr ""
+
+#: ipalib/plugins/internal.py:119
+msgid "Remove from CRL"
+msgstr ""
+
+#: ipalib/plugins/internal.py:120
+msgid "Privilege Withdrawn"
+msgstr ""
+
+#: ipalib/plugins/internal.py:121
+msgid "AA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:122
+msgid ""
+"To confirm your intention to revoke this certificate, select a reason from "
+"the pull-down list, and click the \"Revoke\" button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:124
+msgid "Note"
+msgstr ""
+
+#: ipalib/plugins/internal.py:125
+msgid "Reason for Revocation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:126
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\" "
+"button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:128
+msgid "Issued To"
+msgstr ""
+
+#: ipalib/plugins/internal.py:129
+msgid "Common Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:130
+msgid "Organization"
+msgstr ""
+
+#: ipalib/plugins/internal.py:131
+msgid "Organizational Unit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:133
+msgid "Issued By"
+msgstr ""
+
+#: ipalib/plugins/internal.py:134
+msgid "Validity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:135
+msgid "Issued On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:136
+msgid "Expires On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:137
+msgid "Fingerprints"
+msgstr ""
+
+#: ipalib/plugins/internal.py:138
+msgid "SHA1 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:139
+msgid "MD5 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:140
+msgid "Enter the Base64-encoded CSR below"
+msgstr ""
+
+#: ipalib/plugins/internal.py:141
+msgid "Valid Certificate Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:142
+msgid "New Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:143
+msgid "Certificate Revoked"
+msgstr ""
+
+#: ipalib/plugins/internal.py:144
+msgid "No Valid Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:145
+msgid "Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:146
+msgid "Issue New Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:147
+msgid "Revoke Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:148
+msgid "Restore Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:152
+msgid "Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:155
+msgid "Add Delegation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:158
+msgid "Add DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:159
+msgid "DNS Zone Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:162
+msgid "Add DNS Resource Record"
+msgstr ""
+
+#: ipalib/plugins/internal.py:163
+msgid "Resource"
+msgstr ""
+
+#: ipalib/plugins/internal.py:165
+msgid "Data"
+msgstr ""
+
+#: ipalib/plugins/internal.py:166
+msgid "Records for DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:169
+msgid "Add Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:170
+msgid "Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
+#, fuzzy
+msgid "Is this a POSIX group?"
+msgstr "Ini sudah merupakan grup posix"
+
+#: ipalib/plugins/internal.py:174
+msgid "Add HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:306
+msgid "Active"
+msgstr ""
+
+#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:308
+msgid "Inactive"
+msgstr ""
+
+#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
+#, fuzzy
+msgid "Rule status"
+msgstr "type salah"
+
+#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
+msgid "Who"
+msgstr ""
+
+#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
+msgid "Anyone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
+msgid "Specified Users and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:183
+msgid "Accessing"
+msgstr ""
+
+#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
+msgid "Any Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
+msgid "Specified Hosts and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:186
+msgid "Via Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:187
+msgid "Any Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:188
+msgid "Specified Services and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:189
+msgid "From"
+msgstr ""
+
+#: ipalib/plugins/internal.py:192
+#, fuzzy
+msgid "Add HBAC Service"
+msgstr "Rolegroup \"%(value)s\" telah ditambahkan"
+
+#: ipalib/plugins/internal.py:195
+#, fuzzy
+msgid "Add HBAC Service Group"
+msgstr "Rolegroup \"%(value)s\" telah ditambahkan"
+
+#: ipalib/plugins/internal.py:199
+msgid "Add Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:200
+msgid "Host Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:202
+msgid "Host Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:203
+msgid "Enrolled?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:204
+msgid "Enrollment"
+msgstr ""
+
+#: ipalib/plugins/internal.py:205
+msgid "Fully Qualified Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
+msgid "Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:208
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
+msgid "Delete Key, Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:211
+msgid "Enroll via One-Time-Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:212
+msgid "Set OTP"
+msgstr ""
+
+#: ipalib/plugins/internal.py:213
+msgid "One-Time-Password has been set."
+msgstr ""
+
+#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
+msgid "Unprovisioning ${entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:215
+msgid "Are you sure you want to unprovision this host?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
+msgid "Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:219
+msgid "Add Host Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:220
+msgid "Host Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:223
+msgid "Kerberos ticket policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:226
+msgid "Add Netgroup"
+msgstr ""
+
+#: ipalib/plugins/internal.py:227
+msgid "Netgroup Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:230
+msgid "Add Permission"
+msgstr ""
+
+#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
+msgid "Identity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:233
+msgid "Target"
+msgstr ""
+
+#: ipalib/plugins/internal.py:235
+msgid "By Subtree"
+msgstr ""
+
+#: ipalib/plugins/internal.py:236
+msgid "Target Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:237
+msgid "Object By Type"
+msgstr ""
+
+#: ipalib/plugins/internal.py:238
+msgid "Permission with invalid target specification"
+msgstr ""
+
+#: ipalib/plugins/internal.py:241
+msgid "Add Privilege"
+msgstr ""
+
+#: ipalib/plugins/internal.py:242
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:245
+msgid "Add Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:249
+msgid "Add Role"
+msgstr ""
+
+#: ipalib/plugins/internal.py:250
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:253
+msgid "Add Self Service Definition"
+msgstr ""
+
+#: ipalib/plugins/internal.py:256
+msgid "Add Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:257
+msgid "Service Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:258
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:260
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:261
+msgid "Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:263
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:267
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:271
+#, fuzzy
+msgid "Add Sudo Command"
+msgstr "Host \"%(value)s\" telah ditambahkan"
+
+#: ipalib/plugins/internal.py:275
+#, fuzzy
+msgid "Add Sudo Command Group"
+msgstr "Grup \"%(value)s\" telah ditambahkan"
+
+#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:279
+msgid "Add Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:287
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:290
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:291
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:292
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:293
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:294
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:295
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:297
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:300
+msgid "Add User"
+msgstr ""
+
+#: ipalib/plugins/internal.py:301
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:302
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:303
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:304
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:305
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:307
+msgid "Click to Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:309
+msgid "Click to Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:310
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:311
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:312
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:313
+msgid "Repeat Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:314
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:315
+#, fuzzy
+msgid "Passwords must match"
+msgstr "Kata sandi tidak cocok"
+
+#: ipalib/plugins/internal.py:319
msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:42
+#: ipalib/plugins/internal.py:320
+msgid "Add and Add Another"
+msgstr ""
+
+#: ipalib/plugins/internal.py:321
+msgid "Add and Edit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:322
+msgid "Add and Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:323
+msgid "Add Many"
+msgstr ""
+
+#: ipalib/plugins/internal.py:324
+msgid "Back to List"
+msgstr ""
+
+#: ipalib/plugins/internal.py:325
+#, fuzzy
+msgid "Cancel"
+msgstr "Dibatalkan."
+
+#: ipalib/plugins/internal.py:326
+msgid "Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:327
+msgid "Enroll"
+msgstr ""
+
+#: ipalib/plugins/internal.py:328
msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:43
+#: ipalib/plugins/internal.py:329
+msgid "Get"
+msgstr ""
+
+#: ipalib/plugins/internal.py:330
+msgid "Issue"
+msgstr ""
+
+#: ipalib/plugins/internal.py:331
+msgid "OK"
+msgstr ""
+
+#: ipalib/plugins/internal.py:332
msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:333
+msgid "Delete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:334
+msgid "Restore"
+msgstr ""
+
+#: ipalib/plugins/internal.py:335
+msgid "Retry"
+msgstr ""
+
+#: ipalib/plugins/internal.py:336
+msgid "Revoke"
+msgstr ""
+
+#: ipalib/plugins/internal.py:337
msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:45
-msgid "Enroll"
+#: ipalib/plugins/internal.py:338
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:46
-msgid "Delete"
+#: ipalib/plugins/internal.py:341
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:49
+#: ipalib/plugins/internal.py:342
+msgid "This page has unsaved changes. Please save or revert."
+msgstr ""
+
+#: ipalib/plugins/internal.py:343
+msgid "Dirty"
+msgstr ""
+
+#: ipalib/plugins/internal.py:344
+#, fuzzy
+msgid "Hide already enrolled."
+msgstr "Entri ini sudah dikunci"
+
+#: ipalib/plugins/internal.py:345
+msgid "Select ${entity} to be removed."
+msgstr ""
+
+#: ipalib/plugins/internal.py:346
+msgid "Remove ${entity}."
+msgstr ""
+
+#: ipalib/plugins/internal.py:347
+msgid "Prospective"
+msgstr ""
+
+#: ipalib/plugins/internal.py:350
+msgid "Managed by"
+msgstr ""
+
+#: ipalib/plugins/internal.py:351
+msgid "Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:352
+msgid "Indirect Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:353
+msgid "Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:354
+msgid "Indirect Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
+msgid "Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:358
+msgid "Search"
+msgstr ""
+
+#: ipalib/plugins/internal.py:362
msgid "Quick Links"
msgstr ""
-#: ipalib/plugins/internal.py:50
+#: ipalib/plugins/internal.py:363
msgid "Select All"
msgstr ""
-#: ipalib/plugins/internal.py:51
+#: ipalib/plugins/internal.py:364
msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Do you really want to delete the selected entries?"
+#: ipalib/plugins/internal.py:365
+msgid "Are you sure you want to delete selected entries?"
msgstr ""
-#: ipalib/plugins/internal.py:55
-msgid "Identity Details"
+#: ipalib/plugins/internal.py:366
+msgid ""
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
msgstr ""
-#: ipalib/plugins/internal.py:56
-msgid "Account Details"
+#: ipalib/plugins/internal.py:370
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:57
-msgid "Contact Details"
+#: ipalib/plugins/internal.py:371
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:58
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:372
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:59
-msgid " Employee Information"
+#: ipalib/plugins/internal.py:373
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:60
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:377
+msgid "Policy"
msgstr ""
-#: ipalib/plugins/internal.py:61
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:378
+msgid "Audit"
msgstr ""
-#: ipalib/plugins/internal.py:66
-msgid "Name of object to export"
+#: ipalib/plugins/internal.py:379
+msgid "IPA Server"
msgstr ""
-#: ipalib/plugins/internal.py:71
-msgid "Dict of JSON encoded IPA Objects"
+#: ipalib/plugins/internal.py:380
+msgid "Sudo"
msgstr ""
-#: ipalib/plugins/internal.py:72
+#: ipalib/plugins/internal.py:381
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:382
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:383
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:386
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:387
+msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:388
+msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:389
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:392
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:395
+msgid ""
+"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."
+msgstr ""
+
+#: ipalib/plugins/internal.py:399
msgid "Dict of I18N messages"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:59
+#: ipalib/plugins/kerberos.py:20
+msgid ""
+"\n"
+"Backend plugin for Kerberos.\n"
+"\n"
+"This wraps the python-kerberos and python-krbV bindings.\n"
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:35
+msgid ""
+"\n"
+" Kerberos backend plugin.\n"
+"\n"
+" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
+" bindings also). Importantly, this plugin does correct Unicode\n"
+" encoding/decoding of values going-to/coming-from the bindings.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:44
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:50
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:56
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:62
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:68
+msgid ""
+"\n"
+" Return the default ccache file name.\n"
+"\n"
+" This will return something like '/tmp/krb5cc_500'.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:79
+msgid ""
+"\n"
+" Return the principal name in default credential cache.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'. If no "
+"credential\n"
+" cache exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:91
+msgid ""
+"\n"
+" Return the realm from the default credential cache.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'. If no credential "
+"cache\n"
+" exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:103
+msgid ""
+"\n"
+" Return the principal from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:111
+msgid ""
+"\n"
+" Return the realm from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:19
+msgid ""
+"\n"
+"Kerberos ticket policy\n"
+"\n"
+"There is a single Kerberos ticket policy. This policy defines the\n"
+"maximum ticket lifetime and the maximum renewal age, the period during\n"
+"which the ticket is renewable.\n"
+"\n"
+"You can also create a per-user ticket policy by specifying the user login.\n"
+"\n"
+"For changes to the global policy to take effect, restarting the KDC service\n"
+"is required, which can be achieved using:\n"
+"\n"
+"service krb5kdc restart\n"
+"\n"
+"Changes to per-user policies take effect immediately for newly requested\n"
+"tickets (e.g. when the user next runs kinit).\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Display the current Kerberos ticket policy:\n"
+" ipa krbtpolicy-show\n"
+"\n"
+" Reset the policy to the default:\n"
+" ipa krbtpolicy-reset\n"
+"\n"
+" Modify the policy to 8 hours max life, 1-day max renewal:\n"
+" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n"
+"\n"
+" Display effective Kerberos ticket policy for user 'admin':\n"
+" ipa krbtpolicy-show admin\n"
+"\n"
+" Reset per-user policy for user 'admin':\n"
+" ipa krbtpolicy-reset admin\n"
+"\n"
+" Modify per-user policy for user 'admin':\n"
+" ipa krbtpolicy-mod admin --maxlife=3600\n"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:71
+msgid ""
+"\n"
+" Kerberos Ticket Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:79
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:64 ipalib/plugins/passwd.py:52
+#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
msgid "User name"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:65
+#: ipalib/plugins/krbtpolicy.py:85
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:70
+#: ipalib/plugins/krbtpolicy.py:90
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:75
+#: ipalib/plugins/krbtpolicy.py:96
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:76
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/migration.py:44
-#, python-format
+#: ipalib/plugins/krbtpolicy.py:111
+msgid ""
+"\n"
+" Modify Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:125
+msgid ""
+"\n"
+" Display the current Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:149
+msgid ""
+"\n"
+" Reset Kerberos ticket policy to the default values.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:19
+msgid ""
+"\n"
+"Migration to IPA\n"
+"\n"
+"Migrate users and groups from an LDAP server to IPA.\n"
+"\n"
+"This performs an LDAP query against the remote server searching for\n"
+"users and groups in a container. In order to migrate passwords you need\n"
+"to bind as a user that can read the userPassword attribute on the remote\n"
+"server. This is generally restricted to high-level admins such as\n"
+"cn=Directory Manager in 389-ds (this is the default bind user).\n"
+"\n"
+"The default user container is ou=People.\n"
+"\n"
+"The default group container is ou=Groups.\n"
+"\n"
+"Users and groups that already exist on the IPA server are skipped.\n"
+"\n"
+"Two LDAP schemas define how group members are stored: RFC2307 and\n"
+"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n"
+"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n"
+"\n"
+"Migrated users do not have Kerberos credentials, they have only their\n"
+"LDAP password. To complete the migration process, users need to go\n"
+"to http://ipa.example.com/ipa/migration and authenticate using their\n"
+"LDAP password in order to generate their Kerberos credentials.\n"
+"\n"
+"Migration is disabled by default. Use the command ipa config-mod to\n"
+"enable it:\n"
+"\n"
+" ipa config-mod --enable-migration=TRUE\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" The simplest migration, accepting all defaults:\n"
+" ipa migrate-ds ldap://ds.example.com:389\n"
+"\n"
+" Specify the user and group container. This can be used to migrate user and\n"
+" group data from an IPA v1 server:\n"
+" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-"
+"container='cn=groups,cn=accounts' ldap://ds.example.com:389\n"
+msgstr ""
+
+#: ipalib/plugins/migration.py:78
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:45
+#: ipalib/plugins/migration.py:79
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:169
+#: ipalib/plugins/migration.py:175
+msgid ""
+"\n"
+" Convert usernames in member attributes to work in IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:220
+msgid "Invalid LDAP URI."
+msgstr ""
+
+#: ipalib/plugins/migration.py:225
+msgid ""
+"\n"
+" Migrate users and groups from DS to IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:266
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:170
+#: ipalib/plugins/migration.py:267
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:174
+#: ipalib/plugins/migration.py:272
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:181
+#: ipalib/plugins/migration.py:279
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:187
+#: ipalib/plugins/migration.py:285
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:188
+#: ipalib/plugins/migration.py:286
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:194
+#: ipalib/plugins/migration.py:292
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:195
+#: ipalib/plugins/migration.py:293
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:200
-msgid "Continous operation mode. Errors are reported but the process continues"
+#: ipalib/plugins/migration.py:299
+msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:208
+#: ipalib/plugins/migration.py:300
+msgid ""
+"Comma-separated list of objectclasses used to search for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:306
+msgid "Group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:307
+msgid ""
+"Comma-separated list of objectclasses used to search for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:313
+msgid "LDAP schema"
+msgstr ""
+
+#: ipalib/plugins/migration.py:314
+msgid ""
+"The schema used on the LDAP server. Supported values are RFC2307 and "
+"RFC2307bis. The default is RFC2307bis"
+msgstr ""
+
+#: ipalib/plugins/migration.py:320
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues"
+msgstr ""
+
+#: ipalib/plugins/migration.py:328
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:212
+#: ipalib/plugins/migration.py:332
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:216
+#: ipalib/plugins/migration.py:336
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:220
-#, python-format
+#: ipalib/plugins/migration.py:340
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:222
+#: ipalib/plugins/migration.py:342
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
-"migration process might be uncomplete\n"
+"migration process might be incomplete\n"
msgstr ""
-#: ipalib/plugins/migration.py:227
+#: ipalib/plugins/migration.py:347
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:230
+#: ipalib/plugins/migration.py:350
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -1532,16 +4813,55 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:297
-#, python-format
+#: ipalib/plugins/migration.py:358
+msgid ""
+"\n"
+" Call get_options of the baseclass and add \"exclude\" options\n"
+" for each type of object being migrated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:375
+msgid ""
+"\n"
+" Convert all \"exclude\" option values to lower-case.\n"
+"\n"
+" Also, empty List parameters are converted to None, but the "
+"migration\n"
+" plugin doesn't like that - convert back to empty lists.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:399
+msgid ""
+"\n"
+" Migrate objects from DS to LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:425
msgid "Container for %(container)s not found"
msgstr ""
+#: ipalib/plugins/misc.py:20
+msgid ""
+"\n"
+"Misc plug-ins\n"
+msgstr ""
+
+#: ipalib/plugins/misc.py:36
+msgid "Show environment variables"
+msgstr ""
+
#: ipalib/plugins/misc.py:38
-#, python-format
msgid "%(count)d variables"
msgstr "%(count)d variabel"
+#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115
+msgid ""
+"retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
#: ipalib/plugins/misc.py:61
msgid "Total number of variables env (>= count)"
msgstr ""
@@ -1550,429 +4870,2436 @@ msgstr ""
msgid "Number of variables returned (<= total)"
msgstr ""
-#: ipalib/plugins/misc.py:109
-#, python-format
+#: ipalib/plugins/misc.py:106
+msgid "Show all loaded plugins"
+msgstr ""
+
+#: ipalib/plugins/misc.py:108
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] "%(count)d pengaya telah dimuat"
-#: ipalib/plugins/misc.py:116
+#: ipalib/plugins/misc.py:126
#, fuzzy
msgid "Number of plugins loaded"
msgstr "%(count)d pengaya telah dimuat"
-#: ipalib/plugins/netgroup.py:57
+#: ipalib/plugins/netgroup.py:20
+msgid ""
+"\n"
+"Netgroups\n"
+"\n"
+"A netgroup is a group used for permission checking. It can contain both\n"
+"user and host values.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new netgroup:\n"
+" ipa netgroup-add --desc=\"NFS admins\" admins\n"
+"\n"
+" Add members to the netgroup:\n"
+" ipa netgroup-add-member --users=tuser1,tuser2 admins\n"
+"\n"
+" Remove a member from the netgroup:\n"
+" ipa netgroup-remove-member --users=tuser2 admins\n"
+"\n"
+" Display information about a netgroup:\n"
+" ipa netgroup-show admins\n"
+"\n"
+" Delete a netgroup:\n"
+" ipa netgroup-del admins\n"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:59
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:63
-msgid "External host"
+#: ipalib/plugins/netgroup.py:67
+msgid ""
+"\n"
+" Netgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/netgroup.py:85
-msgid "Net Groups"
+#: ipalib/plugins/netgroup.py:98
+msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:90
+#: ipalib/plugins/netgroup.py:103
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:97
+#: ipalib/plugins/netgroup.py:110
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:101
+#: ipalib/plugins/netgroup.py:114
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:106
+#: ipalib/plugins/netgroup.py:119
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:84
-#, python-format
+#: ipalib/plugins/netgroup.py:140
+msgid ""
+"\n"
+" Add a new netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:144
+#, fuzzy
+msgid "Added netgroup \"%(value)s\""
+msgstr "Grup \"%(value)s\" telah ditambahkan"
+
+#: ipalib/plugins/netgroup.py:153
+msgid ""
+"\n"
+" Delete a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:156
+#, fuzzy
+msgid "Deleted netgroup \"%(value)s\""
+msgstr "Grup \"%(value)s\" telah dihapus"
+
+#: ipalib/plugins/netgroup.py:162
+msgid ""
+"\n"
+" Modify a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:166
+#, fuzzy
+msgid "Modified netgroup \"%(value)s\""
+msgstr "Grup \"%(value)s\" telah dimodifikasi"
+
+#: ipalib/plugins/netgroup.py:180
+msgid ""
+"\n"
+" Search for a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:185
+#, fuzzy
+msgid "%(count)d netgroup matched"
+msgid_plural "%(count)d netgroups matched"
+msgstr[0] "%(count)d grup sesuai"
+
+#: ipalib/plugins/netgroup.py:213
+msgid ""
+"\n"
+" Display information about a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:222
+msgid ""
+"\n"
+" Add members to a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:258
+msgid ""
+"\n"
+" Remove members from a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:19
+msgid ""
+"\n"
+"Set a user's password\n"
+"\n"
+"If someone other than a user changes that user's password (e.g., Helpdesk\n"
+"resets it) then the password will need to be changed the first time it\n"
+"is used. This is so the end-user is the only one who knows the password.\n"
+"\n"
+"The IPA password policy controls how often a password may be changed,\n"
+"what strength requirements exist, and the length of the password history.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" To reset your own password:\n"
+" ipa passwd\n"
+"\n"
+" To change another user's password:\n"
+" ipa passwd tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/passwd.py:46
+msgid ""
+"\n"
+" Set a user's password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:64
+#, fuzzy
+msgid "Changed password for \"%(value)s\""
+msgstr "Pengguna \"%(value)s\" telah ditambahkan"
+
+#: ipalib/plugins/passwd.py:67
+msgid ""
+"\n"
+" Execute the passwd operation.\n"
+"\n"
+" The dn should not be passed as a keyword argument as it is "
+"constructed\n"
+" by this method.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param principal: The login name or principal of the user\n"
+" :param password: the new password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:19
+msgid ""
+"\n"
+"Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of rights. A permission is\n"
+"a human-readable form of a 389-ds Access Control Rule, or instruction "
+"(ACI).\n"
+"A permission grants the right to perform a specific task such as adding a\n"
+"user, modifying a group, etc.\n"
+"\n"
+"A permission may not contain other permissions.\n"
+"\n"
+"* A permission grants access to read, write, add or delete.\n"
+"* A privilege combines similar permissions (for example all the permissions\n"
+" needed to add a user).\n"
+"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n"
+"\n"
+"A permission is made up of a number of different parts:\n"
+"\n"
+"1. The name of the permission.\n"
+"2. The target of the permission.\n"
+"3. The rights granted by the permission.\n"
+"\n"
+"Rights define what operations are allowed, and may be one or more\n"
+"of the following:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Read permission is granted for most attributes by default so the read\n"
+"permission is not expected to be used very often.\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"There are a number of allowed targets:\n"
+"1. type: a type of object (user, group, etc).\n"
+"2. memberof: a member of a group or hostgroup\n"
+"3. filter: an LDAP filter\n"
+"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n"
+" super-set of the \"type\" target.\n"
+"5. targetgroup: grant access to modify a specific group (such as granting\n"
+" the rights to manage group membership)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a permission that grants the creation of users:\n"
+" ipa permission-add --type=user --permissions=add \"Add Users\"\n"
+"\n"
+" Add a permission that grants the ability to manage group membership:\n"
+" ipa permission-add --attrs=member --permissions=write --type=group "
+"\"Manage Group Members\"\n"
+msgstr ""
+
+#: ipalib/plugins/permission.py:84
+msgid "Permission Type"
+msgstr ""
+
+#: ipalib/plugins/permission.py:89
+msgid ""
+"\n"
+" Permission object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:112
+msgid "Permission name"
+msgstr ""
+
+#: ipalib/plugins/permission.py:119
+msgid ""
+"Comma-separated list of permissions to grant (read, write, add, delete, all)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:132
+msgid ""
+"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:138
+msgid "Member of group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:139
+#, fuzzy
+msgid "Target members of a group"
+msgstr "Entri ini bukan anggota dari grup"
+
+#: ipalib/plugins/permission.py:151
+msgid "Subtree to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:157
+msgid "User group to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:177
+msgid ""
+"\n"
+" Add a new permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:181
+#, fuzzy
+msgid "Added permission \"%(value)s\""
+msgstr "Pengguna \"%(value)s\" telah ditambahkan"
+
+#: ipalib/plugins/permission.py:236
+msgid ""
+"\n"
+" Delete a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:240
+#, fuzzy
+msgid "Deleted permission \"%(value)s\""
+msgstr "Pengguna \"%(value)s\" telah dihapus"
+
+#: ipalib/plugins/permission.py:256
+msgid ""
+"\n"
+" Modify a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:260
+#, fuzzy
+msgid "Modified permission \"%(value)s\""
+msgstr "Pengguna \"%(value)s\" telah dimodifikasi"
+
+#: ipalib/plugins/permission.py:352
+msgid ""
+"\n"
+" Search for permissions.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:356
+#, fuzzy
+msgid "%(count)d permission matched"
+msgid_plural "%(count)d permissions matched"
+msgstr[0] "%(count)d pengguna sesuai"
+
+#: ipalib/plugins/permission.py:405
+msgid ""
+"\n"
+" Display information about a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:428
+msgid ""
+"\n"
+" Add members to a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:437
+msgid ""
+"\n"
+" Remove members from a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:19
+msgid ""
+"\n"
+"Ping the remote IPA server\n"
+msgstr ""
+
+#: ipalib/plugins/ping.py:29
+msgid ""
+"\n"
+" ping a remote server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:37
+msgid ""
+"\n"
+" A possible enhancement would be to take an argument and echo it\n"
+" back but a fixed value works for now.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:19
+msgid ""
+"\n"
+"Kerberos pkinit options\n"
+"\n"
+"Enable or disable anonymous pkinit using the principal\n"
+"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n"
+"pkinit support.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Enable anonymous pkinit:\n"
+" ipa pkinit-anonymous enable\n"
+"\n"
+" Disable anonymous pkinit:\n"
+" ipa pkinit-anonymous disable\n"
+"\n"
+"For more information on anonymous pkinit see:\n"
+"\n"
+"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:46
+msgid ""
+"\n"
+" PKINIT Options\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:51
+msgid "PKINIT"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:56
+msgid ""
+"\n"
+" Accepts only Enable/Disable.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:67
+msgid ""
+"\n"
+" Enable or Disable Anonymous PKINIT\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:19
+msgid ""
+"\n"
+"Privileges\n"
+"\n"
+"A privilege combines permissions into a logical task. A permission provides\n"
+"the rights to do a single task. There are some IPA operations that require\n"
+"multiple permissions to succeed. A privilege is where permissions are\n"
+"combined in order to perform a specific task.\n"
+"\n"
+"For example, adding a user requires the following permissions:\n"
+" * Creating a new user entry\n"
+" * Resetting a user password\n"
+" * Adding the new user to the default IPA users group\n"
+"\n"
+"Combining these three low-level tasks into a higher level task in the\n"
+"form of a privilege named \"Add User\" makes it easier to manage Roles.\n"
+"\n"
+"A privilege may not contain other privileges.\n"
+"\n"
+"See role and permission for additional information.\n"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:45
+msgid ""
+"\n"
+" Privilege object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:65
+msgid "Privileges"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:70
+msgid "Privilege name"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:77
+msgid "Privilege description"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:85
+msgid ""
+"\n"
+" Add a new privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:89
+#, fuzzy
+msgid "Added privilege \"%(value)s\""
+msgstr "Pengguna \"%(value)s\" telah ditambahkan"
+
+#: ipalib/plugins/privilege.py:95
+msgid ""
+"\n"
+" Delete a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:99
+#, fuzzy
+msgid "Deleted privilege \"%(value)s\""
+msgstr "Pengguna \"%(value)s\" telah dihapus"
+
+#: ipalib/plugins/privilege.py:105
+msgid ""
+"\n"
+" Modify a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:109
+#, fuzzy
+msgid "Modified privilege \"%(value)s\""
+msgstr "Pengguna \"%(value)s\" telah dimodifikasi"
+
+#: ipalib/plugins/privilege.py:115
+msgid ""
+"\n"
+" Search for privileges.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:119
+#, fuzzy
+msgid "%(count)d privilege matched"
+msgid_plural "%(count)d privileges matched"
+msgstr[0] "%(count)d pengguna sesuai"
+
+#: ipalib/plugins/privilege.py:127
+msgid ""
+"\n"
+" Display information about a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:135
+msgid ""
+"\n"
+" Add members to a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:144
+msgid ""
+"\n"
+" Remove members from a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:153
+msgid ""
+"\n"
+" Add permissions to a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:169
+#, fuzzy
+msgid "Number of permissions added"
+msgstr "%(count)d pengaya telah dimuat"
+
+#: ipalib/plugins/privilege.py:177
+msgid ""
+"\n"
+" Remove permissions from a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:195
+#, fuzzy
+msgid "Number of permissions removed"
+msgstr "%(count)d pengaya telah dimuat"
+
+#: ipalib/plugins/pwpolicy.py:20
+msgid ""
+"\n"
+"Password policy\n"
+"\n"
+"A password policy sets limitations on IPA passwords, including maximum\n"
+"lifetime, minimum lifetime, the number of passwords to save in\n"
+"history, the number of character classes required (for stronger passwords)\n"
+"and the minimum password length.\n"
+"\n"
+"By default there is a single, global policy for all users. You can also\n"
+"create a password policy to apply to a group. Each user is only subject\n"
+"to one password policy, either the group policy or the global policy. A\n"
+"group policy stands alone; it is not a super-set of the global policy plus\n"
+"custom settings.\n"
+"\n"
+"Each group password policy requires a unique priority setting. If a user\n"
+"is in multiple groups that have password policies, this priority determines\n"
+"which password policy is applied. A lower value indicates a higher priority\n"
+"policy.\n"
+"\n"
+"Group password policies are automatically removed when the groups they\n"
+"are associated with are removed.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Modify the global policy:\n"
+" ipa pwpolicy-mod --minlength=10\n"
+"\n"
+" Add a new group password policy:\n"
+" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --"
+"minlength=8 --priority=10 localadmins\n"
+"\n"
+" Display the global password policy:\n"
+" ipa pwpolicy-show\n"
+"\n"
+" Display a group password policy:\n"
+" ipa pwpolicy-show localadmins\n"
+"\n"
+" Display the policy that would be applied to a given user:\n"
+" ipa pwpolicy-show --user=tuser1\n"
+"\n"
+" Modify a group password policy:\n"
+" ipa pwpolicy-mod --minclasses=2 localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:72
+msgid ""
+"\n"
+" Class of Service object used for linking policies with groups\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:87
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:170
-msgid "Password Policy"
+#: ipalib/plugins/pwpolicy.py:172
+msgid ""
+"\n"
+" Password Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:201
+msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:175
+#: ipalib/plugins/pwpolicy.py:202
+msgid "Consecutive failures before lockout"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:207
+msgid "Failure reset interval"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:208
+msgid "Period after which failure count will be reset (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:213
+msgid "Lockout duration"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:214
+msgid "Period for which lockout is enforced (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:224
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:176
+#: ipalib/plugins/pwpolicy.py:225
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:181
+#: ipalib/plugins/pwpolicy.py:230
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:182
+#: ipalib/plugins/pwpolicy.py:231
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:187
+#: ipalib/plugins/pwpolicy.py:236
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:188
+#: ipalib/plugins/pwpolicy.py:237
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:193
+#: ipalib/plugins/pwpolicy.py:242
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:194
+#: ipalib/plugins/pwpolicy.py:243
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:199
+#: ipalib/plugins/pwpolicy.py:248
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:200
+#: ipalib/plugins/pwpolicy.py:249
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:206
+#: ipalib/plugins/pwpolicy.py:255
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:256
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:212
+#: ipalib/plugins/pwpolicy.py:261
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:262
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:265
+#: ipalib/plugins/pwpolicy.py:294
+msgid ""
+"\n"
+" Ensure that the maximum lifetime is greater than the minimum.\n"
+" If there is no minimum lifetime set then don't return an error.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:314
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:330
+#: ipalib/plugins/pwpolicy.py:333
+msgid ""
+"\n"
+" Add a new group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:361
+msgid ""
+"\n"
+" Delete a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:380
+msgid ""
+"\n"
+" Modify a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:391
msgid "priority cannot be set on global policy"
msgstr "prioritas tidak dapat ditetapkan pada kebijakan global"
-#: ipalib/plugins/pwpolicy.py:369
+#: ipalib/plugins/pwpolicy.py:423
+msgid ""
+"\n"
+" Display information about password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:428
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:370
+#: ipalib/plugins/pwpolicy.py:429
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/rolegroup.py:79
-msgid "Role Groups"
+#: ipalib/plugins/pwpolicy.py:452
+msgid ""
+"\n"
+" Search for group password policies.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:84
-msgid "Role-group name"
+#: ipalib/plugins/role.py:20
+msgid ""
+"\n"
+"Roles\n"
+"\n"
+"A role is used for fine-grained delegation. A permission grants the ability\n"
+"to perform given low-level tasks (add a user, modify a group, etc.). A\n"
+"privilege combines one or more permissions into a higher-level abstraction\n"
+"such as useradmin. A useradmin would be able to add, delete and modify "
+"users.\n"
+"\n"
+"Privileges are assigned to Roles.\n"
+"\n"
+"Users, groups, hosts and hostgroups may be members of a Role.\n"
+"\n"
+"Roles can not contain other roles.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new role:\n"
+" ipa role-add --desc=\"Junior-level admin\" junioradmin\n"
+"\n"
+" Add some privileges to this role:\n"
+" ipa role-add-privilege --privileges=addusers junioradmin\n"
+" ipa role-add-privilege --privileges=change_password junioradmin\n"
+" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n"
+"\n"
+" Add a group of users to this role:\n"
+" ipa group-add --desc=\"User admins\" useradmins\n"
+" ipa role-add-member --groups=useradmins junioradmin\n"
+"\n"
+" Display information about a role:\n"
+" ipa role-show junioradmin\n"
+"\n"
+" The result of this is that any users in the group 'useradmins' can\n"
+" add users, reset passwords or add a user to the default IPA user group.\n"
+msgstr ""
+
+#: ipalib/plugins/role.py:62
+msgid ""
+"\n"
+" Role object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:81
+msgid "Role"
+msgstr ""
+
+#: ipalib/plugins/role.py:86
+msgid "Role name"
msgstr ""
-#: ipalib/plugins/rolegroup.py:91
+#: ipalib/plugins/role.py:93
msgid "A description of this role-group"
msgstr ""
-#: ipalib/plugins/rolegroup.py:102
-msgid "Member of task-groups"
+#: ipalib/plugins/role.py:101
+msgid ""
+"\n"
+" Add a new role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:115
-#, python-format
-msgid "Added rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:105
+#, fuzzy
+msgid "Added role \"%(value)s\""
msgstr "Rolegroup \"%(value)s\" telah ditambahkan"
-#: ipalib/plugins/rolegroup.py:125
-#, python-format
-msgid "Deleted rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:111
+msgid ""
+"\n"
+" Delete a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:115
+#, fuzzy
+msgid "Deleted role \"%(value)s\""
msgstr "Rolegroup \"%(value)s\" telah dihapus"
-#: ipalib/plugins/rolegroup.py:135
-#, python-format
-msgid "Modified rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:121
+msgid ""
+"\n"
+" Modify a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:125
+#, fuzzy
+msgid "Modified role \"%(value)s\""
msgstr "Rolegroup \"%(value)s\" telah dimodifikasi"
-#: ipalib/plugins/rolegroup.py:146
-#, python-format
-msgid "%(count)d rolegroup matched"
-msgid_plural "%(count)d rolegroups matched"
+#: ipalib/plugins/role.py:131
+msgid ""
+"\n"
+" Search for roles.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:135
+#, fuzzy
+msgid "%(count)d role matched"
+msgid_plural "%(count)d roles matched"
msgstr[0] "%(count)d rolegroup sesuai"
-#: ipalib/plugins/service.py:198
+#: ipalib/plugins/role.py:143
+msgid ""
+"\n"
+" Display information about a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:151
+msgid ""
+"\n"
+" Add members to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:159
+msgid ""
+"\n"
+" Remove members from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:167
+msgid ""
+"\n"
+" Add privileges to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:183
+#, fuzzy
+msgid "Number of privileges added"
+msgstr "%(count)d pengaya telah dimuat"
+
+#: ipalib/plugins/role.py:191
+msgid ""
+"\n"
+" Remove privileges from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:207
+#, fuzzy
+msgid "Number of privileges removed"
+msgstr "%(count)d pengaya telah dimuat"
+
+#: ipalib/plugins/selfservice.py:19
+msgid ""
+"\n"
+"Self-service Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"A Self-service permission defines what an object can change in its own "
+"entry.\n"
+"\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a self-service rule to allow users to manage their address:\n"
+" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st "
+"\"Users manage their own address\"\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add telephoneNumber to the list:\n"
+" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber "
+"\"Users manage their own address\"\n"
+"\n"
+" Display our updated rule:\n"
+" ipa selfservice-show \"Users manage their own address\"\n"
+"\n"
+" Delete a rule:\n"
+" ipa selfservice-del \"Users manage their own address\"\n"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:56
+msgid ""
+"\n"
+" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a self-service ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:64
+msgid "Self-service permission '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:68
+msgid ""
+"\n"
+" Selfservice object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:75
+msgid "Self Service Permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
+msgid "Self-service name"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:114
+msgid ""
+"\n"
+" Add a new self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:118
+#, fuzzy
+msgid "Added selfservice \"%(value)s\""
+msgstr "Pengguna \"%(value)s\" telah ditambahkan"
+
+#: ipalib/plugins/selfservice.py:137
+msgid ""
+"\n"
+" Delete a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:142
+#, fuzzy
+msgid "Deleted selfservice \"%(value)s\""
+msgstr "Pengguna \"%(value)s\" telah dihapus"
+
+#: ipalib/plugins/selfservice.py:158
+msgid ""
+"\n"
+" Modify a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:162
+#, fuzzy
+msgid "Modified selfservice \"%(value)s\""
+msgstr "Pengguna \"%(value)s\" telah dimodifikasi"
+
+#: ipalib/plugins/selfservice.py:181
+msgid ""
+"\n"
+" Search for a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:185
+#, fuzzy
+msgid "%(count)d selfservice matched"
+msgid_plural "%(count)d selfservices matched"
+msgstr[0] "%(count)d pengguna sesuai"
+
+#: ipalib/plugins/selfservice.py:207
+msgid ""
+"\n"
+" Display information about a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:21
+msgid ""
+"\n"
+"Services\n"
+"\n"
+"A IPA service represents a service that runs on a host. The IPA service\n"
+"record can store a Kerberos principal, an SSL certificate, or both.\n"
+"\n"
+"An IPA service can be managed directly from a machine, provided that\n"
+"machine has been given the correct permission. This is true even for\n"
+"machines other than the one the service is associated with. For example,\n"
+"requesting an SSL certificate using the host service principal credentials\n"
+"of the host. To manage a service using host credentials you need to\n"
+"kinit as the host:\n"
+"\n"
+" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n"
+"\n"
+"Adding an IPA service allows the associated service to request an SSL\n"
+"certificate or keytab, but this is performed as a separate step; they\n"
+"are not produced as a result of adding the service.\n"
+"\n"
+"Only the public aspect of a certificate is stored in a service record;\n"
+"the private key is not stored.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new IPA service:\n"
+" ipa service-add HTTP/web.example.com\n"
+"\n"
+" Allow a host to manage an IPA service certificate:\n"
+" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n"
+" ipa role-add-member --hosts=web.example.com certadmin\n"
+"\n"
+" Delete an IPA service:\n"
+" ipa service-del HTTP/web.example.com\n"
+"\n"
+" Find all IPA services associated with a host:\n"
+" ipa service-find web.example.com\n"
+"\n"
+" Find all HTTP services:\n"
+" ipa service-find HTTP\n"
+"\n"
+" Disable the service Kerberos key and SSL certificate:\n"
+" ipa service-disable HTTP/web.example.com\n"
+"\n"
+" Request a certificate for an IPA service:\n"
+" ipa cert-request --principal=HTTP/web.example.com example.csr\n"
+"\n"
+" Generate and retrieve a keytab for an IPA service:\n"
+" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/"
+"httpd.keytab\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/service.py:162
+msgid ""
+"\n"
+" For now just verify that it is properly base64-encoded.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:175
+msgid ""
+"\n"
+" Set individual attributes from some values from a certificate.\n"
+"\n"
+" entry_attrs is a dict of an entry\n"
+"\n"
+" returns nothing\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:199
+msgid ""
+"\n"
+" Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:226
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:221
+#: ipalib/plugins/service.py:242
+msgid ""
+"\n"
+" Add a new IPA new service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:245
+#, fuzzy
+msgid "Added service \"%(value)s\""
+msgstr "Pengguna \"%(value)s\" telah ditambahkan"
+
+#: ipalib/plugins/service.py:251
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:292
-#, fuzzy, python-format
+#: ipalib/plugins/service.py:284
+msgid ""
+"\n"
+" Delete an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:287
+#, fuzzy
+msgid "Deleted service \"%(value)s\""
+msgstr "Pengguna \"%(value)s\" telah dihapus"
+
+#: ipalib/plugins/service.py:321
+msgid ""
+"\n"
+" Modify an existing IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:324
+#, fuzzy
msgid "Modified service \"%(value)s\""
msgstr "Pengguna \"%(value)s\" telah dimodifikasi"
-#: ipalib/plugins/service.py:323
-#, fuzzy, python-format
+#: ipalib/plugins/service.py:356
+msgid ""
+"\n"
+" Search for IPA services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:359
+#, fuzzy
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] "%(count)d pengguna sesuai"
-#: ipalib/plugins/service.py:409
-msgid "Service principal has no kerberos key"
+#: ipalib/plugins/service.py:394
+msgid ""
+"\n"
+" Display information about an IPA service.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmd.py:60
-msgid "SudoCmds"
+#: ipalib/plugins/service.py:432
+msgid ""
+"\n"
+" Add hosts that can manage this service.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmd.py:65
+#: ipalib/plugins/service.py:442
+msgid ""
+"\n"
+" Remove hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:452
+msgid ""
+"\n"
+" Disable the Kerberos key and SSL certificate of a service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:456
+#, fuzzy
+msgid "Disabled service \"%(value)s\""
+msgstr "Pengguna \"%(value)s\" telah dihapus"
+
+#: ipalib/plugins/sudocmd.py:19
+msgid ""
+"\n"
+"Sudo Commands\n"
+"\n"
+"Commands used as building blocks for sudo\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a new command\n"
+" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n"
+"\n"
+" Remove a command\n"
+" ipa sudocmd-del /usr/bin/less\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:46
+msgid ""
+"\n"
+" Sudo Command object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:64
+msgid "Sudo Commands"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:69
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:72
+#: ipalib/plugins/sudocmd.py:75
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:99
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:98
+msgid ""
+"\n"
+" Create new sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:102
+#, fuzzy
msgid "Added sudo command \"%(value)s\""
msgstr "Host \"%(value)s\" telah ditambahkan"
-#: ipalib/plugins/sudocmd.py:108
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:107
+#, fuzzy
+msgid ""
+"\n"
+" Delete sudo command.\n"
+" "
+msgstr "Host \"%(value)s\" telah dihapus"
+
+#: ipalib/plugins/sudocmd.py:111
+#, fuzzy
msgid "Deleted sudo command \"%(value)s\""
msgstr "Host \"%(value)s\" telah dihapus"
-#: ipalib/plugins/sudocmd.py:117
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:116
+msgid ""
+"\n"
+" Modify command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:120
+#, fuzzy
msgid "Modified sudo command \"%(value)s\""
msgstr "Host \"%(value)s\" telah dimodifikasi"
-#: ipalib/plugins/sudocmd.py:127
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:125
+msgid ""
+"\n"
+" Search for commands.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:129
+#, fuzzy
msgid "%(count)d sudo command matched"
msgid_plural "%(count)d sudo command matched"
msgstr[0] "%(count)d host sesuai"
-#: ipalib/plugins/sudocmdgroup.py:66 ipalib/plugins/sudocmdgroup.py:85
-#: ipalib/plugins/sudorule.py:81 ipalib/plugins/sudorule.py:85
-msgid "Sudo Command Groups"
+#: ipalib/plugins/sudocmd.py:136
+msgid ""
+"\n"
+" Display sudo command.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:71
+#: ipalib/plugins/sudocmdgroup.py:19
+msgid ""
+"\n"
+"Groups of Sudo commands\n"
+"\n"
+"Manage groups of Sudo commands.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new Sudo command group:\n"
+" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
+"\n"
+" Remove a Sudo command group:\n"
+" ipa sudocmdgroup-del admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim "
+"admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
+"\n"
+" Show a Sudo command group:\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:50
+msgid ""
+"\n"
+" Sudo Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:70
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:81
-msgid "Commands"
+#: ipalib/plugins/sudocmdgroup.py:93
+msgid ""
+"\n"
+" Create new sudo command group.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:98
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:97
+#, fuzzy
msgid "Added sudo command group \"%(value)s\""
msgstr "Grup \"%(value)s\" telah ditambahkan"
-#: ipalib/plugins/sudocmdgroup.py:108
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:103
+#, fuzzy
+msgid ""
+"\n"
+" Delete sudo command group.\n"
+" "
+msgstr "Grup \"%(value)s\" telah dihapus"
+
+#: ipalib/plugins/sudocmdgroup.py:107
+#, fuzzy
msgid "Deleted sudo command group \"%(value)s\""
msgstr "Grup \"%(value)s\" telah dihapus"
-#: ipalib/plugins/sudocmdgroup.py:118
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:113
+msgid ""
+"\n"
+" Modify group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:117
+#, fuzzy
msgid "Modified sudo command group \"%(value)s\""
msgstr "Grup \"%(value)s\" telah dimodifikasi"
-#: ipalib/plugins/sudocmdgroup.py:129
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:123
+msgid ""
+"\n"
+" Search for sudo command groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:127
+#, fuzzy
msgid "%(count)d sudo command group matched"
msgid_plural "%(count)d sudo command groups matched"
msgstr[0] "%(count)d grup sesuai"
-#: ipalib/plugins/sudorule.py:48
-msgid "SudoRule"
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid ""
+"\n"
+" Display sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:144
+#, fuzzy
+msgid ""
+"\n"
+" Add members to sudo command group.\n"
+" "
+msgstr "Grup \"%(value)s\" telah ditambahkan"
+
+#: ipalib/plugins/sudocmdgroup.py:152
+msgid ""
+"\n"
+" Remove members from sudo command group.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/sudorule.py:19
+msgid ""
+"\n"
+"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
+"give certain users (or groups of users) the ability to run some (or all)\n"
+"commands as root or another user while providing an audit trail of the\n"
+"commands and their arguments.\n"
+"\n"
+"FreeIPA provides a designated binddn to use with Sudo located at:\n"
+"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
+"\n"
+"To enable the binddn run the following command to set the password:\n"
+"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -"
+"ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,"
+"dc=com\n"
+"\n"
+"For more information, see the FreeIPA Documentation to Sudo.\n"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:44
+msgid ""
+"\n"
+" Sudo Rule management\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:68
+msgid "Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:98
+msgid "Command category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:99
+msgid "Command category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:104
+msgid "Run As User category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:105
+msgid "Run As User category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:110
+msgid "Run As Group category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:111
+msgid "Run As Group category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:131
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:77
+#: ipalib/plugins/sudorule.py:135
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:109
-#, fuzzy, python-format
+#: ipalib/plugins/sudorule.py:147
+msgid "Run As User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:151
+msgid "Run As Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:156
+msgid "External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:157
+msgid "External User the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:161
+msgid "RunAs External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:162
+msgid "External User the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:166
+msgid "RunAs External Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:167
+msgid "External Group the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:175
+msgid ""
+"\n"
+" Create new Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
+#, fuzzy
msgid "Added sudo rule \"%(value)s\""
msgstr "Pengguna \"%(value)s\" telah ditambahkan"
-#: ipalib/plugins/taskgroup.py:51
-msgid "Task Groups"
+#: ipalib/plugins/sudorule.py:189
+msgid ""
+"\n"
+" Delete Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:56
-msgid "Task-group name"
+#: ipalib/plugins/sudorule.py:197
+msgid ""
+"\n"
+" Modify Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:63
-msgid "Task-group description"
+#: ipalib/plugins/sudorule.py:205
+msgid ""
+"\n"
+" Search for Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:74
-msgid "Member role-groups"
+#: ipalib/plugins/sudorule.py:213
+msgid ""
+"\n"
+" Display Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:87
-#, python-format
-msgid "Added taskgroup \"%(value)s\""
-msgstr "taskgroup \"%(value)s\" telah ditambahkan"
+#: ipalib/plugins/sudorule.py:221
+msgid ""
+"\n"
+" Enable a Sudo rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:97
-#, python-format
-msgid "Deleted taskgroup \"%(value)s\""
-msgstr "taskgroup \"%(value)s\" telah dihapus"
+#: ipalib/plugins/sudorule.py:247
+msgid ""
+"\n"
+" Disable a Sudo rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:107
-#, python-format
-msgid "Modified taskgroup \"%(value)s\""
-msgstr "taskgroup \"%(value)s\" telah dimodifikasi"
+#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
+msgid ""
+"\n"
+" Add commands and sudo command groups affected by Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:118
-#, python-format
-msgid "%(count)d taskgroup matched"
-msgid_plural "%(count)d taskgroups matched"
-msgstr[0] "%(count)d taskgroup sesuai"
+#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
+msgid ""
+"\n"
+" Remove commands and sudo command groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:313
+msgid ""
+"\n"
+" Add users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:349
+msgid ""
+"\n"
+" Remove users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:383
+msgid ""
+"\n"
+" Add hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:419
+msgid ""
+"\n"
+" Remove hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:453
+msgid ""
+"\n"
+" Add user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:489
+msgid ""
+"\n"
+" Remove user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:523
+msgid ""
+"\n"
+" Add group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:559
+msgid ""
+"\n"
+" Remove group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:593
+msgid ""
+"\n"
+" Add an option to the Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
+msgid "Sudo Option"
+msgstr ""
-#: ipalib/plugins/user.py:84
+#: ipalib/plugins/sudorule.py:635
+msgid ""
+"\n"
+" Remove an option from Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:20
+msgid ""
+"\n"
+"Users\n"
+"\n"
+"Manage user entries. All users are POSIX users.\n"
+"\n"
+"IPA supports a wide range of username formats, but you need to be aware of "
+"any\n"
+"restrictions that may apply to your particular environment. For example,\n"
+"usernames that start with a digit or usernames that exceed a certain length\n"
+"may cause problems for some UNIX systems.\n"
+"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n"
+"\n"
+"Disabling a user account prevents that user from obtaining new Kerberos\n"
+"credentials. It does not invalidate any credentials that have already\n"
+"been issued.\n"
+"\n"
+"Password management is not a part of this module. For more information\n"
+"about this topic please see: ipa help passwd\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1\n"
+"\n"
+" Find all users whose entries include the string \"Tim\":\n"
+" ipa user-find Tim\n"
+"\n"
+" Find all users with \"Tim\" as the first name:\n"
+" ipa user-find --first=Tim\n"
+"\n"
+" Disable a user account:\n"
+" ipa user-disable tuser1\n"
+"\n"
+" Enable a user account:\n"
+" ipa user-enable tuser1\n"
+"\n"
+" Delete a user:\n"
+" ipa user-del tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/user.py:79
+msgid ""
+"\n"
+" User object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:116
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:91
+#: ipalib/plugins/user.py:123
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:95
+#: ipalib/plugins/user.py:127
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:103
+#: ipalib/plugins/user.py:130
+msgid "Full name"
+msgstr ""
+
+#: ipalib/plugins/user.py:135
+msgid "Display name"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "Initials"
+msgstr ""
+
+#: ipalib/plugins/user.py:146
+msgid "Home directory"
+msgstr ""
+
+#: ipalib/plugins/user.py:150
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:109
+#: ipalib/plugins/user.py:156
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:114
+#: ipalib/plugins/user.py:161
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:120
+#: ipalib/plugins/user.py:168
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:124
-msgid "Password"
-msgstr ""
-
-#: ipalib/plugins/user.py:125
-msgid "Set the user password"
+#: ipalib/plugins/user.py:173
+msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:132
+#: ipalib/plugins/user.py:180
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:133
+#: ipalib/plugins/user.py:181
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:139
-msgid "Street address"
+#: ipalib/plugins/user.py:188
+msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:142
-msgid "Groups"
+#: ipalib/plugins/user.py:193
+msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:146
-msgid "Netgroups"
+#: ipalib/plugins/user.py:197
+msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:150
-msgid "Rolegroups"
+#: ipalib/plugins/user.py:201
+msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:154
-msgid "Taskgroups"
+#: ipalib/plugins/user.py:204
+msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:159
+#: ipalib/plugins/user.py:208
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:211
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:163
+#: ipalib/plugins/user.py:214
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:166
+#: ipalib/plugins/user.py:218
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:177
-#, python-format
+#: ipalib/plugins/user.py:222
+msgid "Org. Unit"
+msgstr ""
+
+#: ipalib/plugins/user.py:225
+msgid "Job Title"
+msgstr ""
+
+#: ipalib/plugins/user.py:228
+msgid "Manager"
+msgstr ""
+
+#: ipalib/plugins/user.py:231
+msgid "Car License"
+msgstr ""
+
+#: ipalib/plugins/user.py:234
+#, fuzzy
+msgid "Account disabled"
+msgstr "%(count)d variabel"
+
+#: ipalib/plugins/user.py:258
+msgid ""
+"\n"
+" Given a userid verify the user's existence and return the dn.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:276
+msgid "manager %(manager)s not found"
+msgstr ""
+
+#: ipalib/plugins/user.py:281
+msgid ""
+"\n"
+" Convert a manager dn into a userid\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:295
+msgid ""
+"\n"
+" Add a new user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:298
msgid "Added user \"%(value)s\""
msgstr "Pengguna \"%(value)s\" telah ditambahkan"
-#: ipalib/plugins/user.py:226
-#, python-format
+#: ipalib/plugins/user.py:303
+msgid "Don't create user private group"
+msgstr ""
+
+#: ipalib/plugins/user.py:333
+#, fuzzy
+msgid "can be at most %(len)d characters"
+msgstr "panjang maksimum yang diperbolehkan %(maxlength)d karakter"
+
+#: ipalib/plugins/user.py:400
+msgid ""
+"\n"
+" Delete a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:404
msgid "Deleted user \"%(value)s\""
msgstr "Pengguna \"%(value)s\" telah dihapus"
-#: ipalib/plugins/user.py:240
-#, python-format
+#: ipalib/plugins/user.py:413
+msgid ""
+"\n"
+" Modify a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:417
msgid "Modified user \"%(value)s\""
msgstr "Pengguna \"%(value)s\" telah dimodifikasi"
-#: ipalib/plugins/user.py:252
+#: ipalib/plugins/user.py:437
+msgid ""
+"\n"
+" Search for users.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:444
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:253
+#: ipalib/plugins/user.py:445
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:263
-#, python-format
+#: ipalib/plugins/user.py:463
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] "%(count)d pengguna sesuai"
-#: ipalib/plugins/user.py:283
-#, fuzzy, python-format
+#: ipalib/plugins/user.py:471
+msgid ""
+"\n"
+" Display information about a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:484
+#, fuzzy
+msgid ""
+"\n"
+" Disable a user account.\n"
+" "
+msgstr "Pengguna \"%(value)s\" telah dihapus"
+
+#: ipalib/plugins/user.py:489
+#, fuzzy
msgid "Disabled user account \"%(value)s\""
msgstr "Pengguna \"%(value)s\" telah dihapus"
-#: ipalib/plugins/user.py:309
-#, fuzzy, python-format
+#: ipalib/plugins/user.py:507
+#, fuzzy
+msgid ""
+"\n"
+" Enable a user account.\n"
+" "
+msgstr "Pengguna \"%(value)s\" telah dibuka kuncinya"
+
+#: ipalib/plugins/user.py:512
+#, fuzzy
msgid "Enabled user account \"%(value)s\""
msgstr "Pengguna \"%(value)s\" telah dibuka kuncinya"
-#: ipaserver/install/certs.py:599 ipaserver/plugins/dogtag.py:1313
-#: ipaserver/plugins/dogtag.py:1398 ipaserver/plugins/dogtag.py:1463
-#: ipaserver/plugins/dogtag.py:1543 ipaserver/plugins/dogtag.py:1602
+#: ipalib/plugins/user.py:529
+msgid ""
+"\n"
+" Unlock a user account\n"
+"\n"
+" An account may become locked if the password is entered incorrectly too\n"
+" many times within a specific time period as controlled by password\n"
+" policy. A locked account is a temporary condition and may be unlocked "
+"by\n"
+" an administrator.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:538
+#, fuzzy
+msgid "Unlocked account \"%(value)s\""
+msgstr "Pengguna \"%(value)s\" telah dibuka kuncinya"
+
+#: ipalib/plugins/virtual.py:20
+msgid ""
+"\n"
+"Base classes for non-LDAP backend plugins.\n"
+msgstr ""
+
+#: ipalib/plugins/virtual.py:28
+msgid ""
+"\n"
+" A command that doesn't use the LDAP backend but wants to use the\n"
+" LDAP access control system to make authorization decisions.\n"
+"\n"
+" The class variable operation is the commonName attribute of the\n"
+" entry to be tested against.\n"
+"\n"
+" In advance, you need to create an entry of the form:\n"
+" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
+"\n"
+" Ex.\n"
+" cn=request certificate, cn=virtual operations,cn=etc, dc=example, "
+"dc=com\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/virtual.py:44
+msgid ""
+"\n"
+" Perform an LDAP query to determine authorization.\n"
+"\n"
+" This should be executed before any actual work is done.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/xmlclient.py:21
+msgid ""
+"\n"
+"XML-RPC client plugin.\n"
+msgstr ""
+
+#: ipalib/cli.py:581
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr "Masukkan %(label)s lagi untuk verifikasi:"
+
+#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
+#, c-format
+msgid "Passwords do not match!"
+msgstr "Kata sandi tidak cocok!"
+
+#: ipalib/cli.py:590
+msgid "Cancelled."
+msgstr "Dibatalkan."
+
+#: ipalib/cli.py:819
+#, fuzzy
+msgid "Command name"
+msgstr "Perintah tidak diimplementasikan"
+
+#: ipalib/cli.py:1117
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:300
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr "klien %(cver)s tidak kompatibel dengan server %(sver)s di %(server)r"
+
+#: ipalib/errors.py:318
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr "kesalahan %(code)d tidak dikenal dari %(server)s: %(error)s"
+
+#: ipalib/errors.py:334
+msgid "an internal error has occurred"
+msgstr "terjadi kesalahan internal"
+
+#: ipalib/errors.py:356
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr "terjadi kesalahan internal di server %(server)r"
+
+#: ipalib/errors.py:372
+#, python-format
+msgid "unknown command %(name)r"
+msgstr "perintah %(name)r tidak dikenal"
+
+#: ipalib/errors.py:389 ipalib/errors.py:414
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr "kesalahan di server %(server)r: %(error)s"
+
+#: ipalib/errors.py:405
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr "tidak dapat terhubung ke %(uri)r: %(error)s"
+
+#: ipalib/errors.py:423
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr "Permintaan JSON-RPC tidak valid: %(error)s"
+
+#: ipalib/errors.py:439
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:465
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr "Kesalahan kerberos: %(major)s/%(minor)s"
+
+#: ipalib/errors.py:482
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:498
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr "Layanan %(service)r tidak ditemukan di basis data Kerberos"
+
+#: ipalib/errors.py:514
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:530
+msgid "Ticket expired"
+msgstr "Tiket sudah kadaluarsa"
+
+#: ipalib/errors.py:546
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:562
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:578
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:597
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr "Hak akses tidak mencukupi: %(info)s"
+
+#: ipalib/errors.py:641
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr "perintah %(name)r tidak membutuhkan argumen"
+
+#: ipalib/errors.py:661
+#, python-format
+msgid "command %(name)r takes at most %(count)d argument"
+msgid_plural "command %(name)r takes at most %(count)d arguments"
+msgstr[0] "perintah %(name)r setidaknya membutuhkan %(count)d argumen"
+
+#: ipalib/errors.py:691
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr "argumen dan opsi saling tumpang tindih: %(names)r"
+
+#: ipalib/errors.py:707
+#, python-format
+msgid "%(name)r is required"
+msgstr "dibutuhkan %(name)r"
+
+#: ipalib/errors.py:723 ipalib/errors.py:739
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr "%(name)r tidak valid: %(error)s"
+
+#: ipalib/errors.py:755
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr "api tidak memiliki namespace ini: %(name)r"
+
+#: ipalib/errors.py:764
+msgid "Passwords do not match"
+msgstr "Kata sandi tidak cocok"
+
+#: ipalib/errors.py:773
+msgid "Command not implemented"
+msgstr "Perintah tidak diimplementasikan"
+
+#: ipalib/errors.py:782
+msgid "Client is not configured. Run ipa-client-install."
+msgstr ""
+
+#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
+#: ipalib/errors.py:1424 ipalib/errors.py:1441
+#, python-format
+msgid "%(reason)s"
+msgstr "%(reason)s"
+
+#: ipalib/errors.py:826
+msgid "This entry already exists"
+msgstr "Entri ini sudah ada"
+
+#: ipalib/errors.py:842
+msgid "You must enroll a host in order to create a host service"
+msgstr "Anda harus mendaftarkan sebuah host untuk membuat layanan host"
+
+#: ipalib/errors.py:858
+#, python-format
+msgid ""
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:874
+msgid ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr ""
+
+#: ipalib/errors.py:890
+msgid "This command requires root access"
+msgstr "Perintah ini memerlukan akses root"
+
+#: ipalib/errors.py:906
+msgid "This is already a posix group"
+msgstr "Ini sudah merupakan grup posix"
+
+#: ipalib/errors.py:922
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:938
+#, fuzzy
+msgid "This entry is already enabled"
+msgstr "Entri ini sudah dibuka"
+
+#: ipalib/errors.py:954
+#, fuzzy
+msgid "This entry is already disabled"
+msgstr "Entri ini sudah dikunci"
+
+#: ipalib/errors.py:970
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:986
+#, fuzzy
+msgid "This entry is not a member"
+msgstr "Entri ini bukan anggota dari grup"
+
+#: ipalib/errors.py:1002
+msgid "A group may not be a member of itself"
+msgstr "Sebuah grup tidak mungkin menjadi anggota grup itu sendiri"
+
+#: ipalib/errors.py:1018
+#, fuzzy
+msgid "This entry is already a member"
+msgstr "Entri ini sudah menjadi anggota grup"
+
+#: ipalib/errors.py:1034
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr "Penguraian Base64 gagal: %(reason)s"
+
+#: ipalib/errors.py:1066
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1082
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1098
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1113
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1128
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1160
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1176
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1192
+#, python-format
+msgid ""
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1216
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr "tidak ada perintah maupun bantuan untuk topik %(topic)r"
+
+#: ipalib/errors.py:1240
+msgid "change collided with another change"
+msgstr "perubahan bertabrakan dengan perubahan lain"
+
+#: ipalib/errors.py:1256
+msgid "no modifications to be performed"
+msgstr "tidak ada modifikasi yang harus dilakukan"
+
+#: ipalib/errors.py:1272
+#, fuzzy, python-format
+msgid "%(desc)s: %(info)s"
+msgstr "%(desc)s:%(info)s"
+
+#: ipalib/errors.py:1288
+msgid "limits exceeded for this query"
+msgstr "query ini telah melampaui batas"
+
+#: ipalib/errors.py:1303
+#, python-format
+msgid "%(info)s"
+msgstr "%(info)s"
+
+#: ipalib/errors.py:1318
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1334
+#, fuzzy, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr "Hanya satu nilai yang diperbolehkan"
+
+#: ipalib/errors.py:1350
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1366
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1391
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr "Operasi sertifikat tidak dapat diselesaikan: %(error)s"
+
+#: ipalib/errors.py:1407
+#, fuzzy, python-format
+msgid "Certificate format error: %(error)s"
+msgstr "Operasi sertifikat tidak dapat diselesaikan: %(error)s"
+
+#: ipalib/errors.py:1458
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1474
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:398
+msgid "Results are truncated, try a more specific search"
+msgstr "Hasil yang terpotong, coba cari dengan lebih spesifik"
+
+#: ipalib/frontend.py:850
+msgid ""
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:856
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:985
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:296
+msgid "incorrect type"
+msgstr "type salah"
+
+#: ipalib/parameters.py:299
+msgid "Only one value is allowed"
+msgstr "Hanya satu nilai yang diperbolehkan"
+
+#: ipalib/parameters.py:901
+msgid "must be True or False"
+msgstr "harus True atau False"
+
+#: ipalib/parameters.py:1002
+msgid "must be an integer"
+msgstr "harus merupakan bilangan bulat"
+
+#: ipalib/parameters.py:1054
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr "setidaknya harus %(minvalue)d"
+
+#: ipalib/parameters.py:1064
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr "nilai maksimum yang diperbolehkan %(maxvalue)d"
+
+#: ipalib/parameters.py:1074
+msgid "must be a decimal number"
+msgstr "harus merupakan angka desimal"
+
+#: ipalib/parameters.py:1097
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr "nilai minimum yang diperbolehkan %(minvalue)f"
+
+#: ipalib/parameters.py:1107
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr "nilai maksimum yang diperbolehkan %(maxvalue)f"
+
+#: ipalib/parameters.py:1174
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr "harus cocok dengan pola \"%(pattern)s\""
+
+#: ipalib/parameters.py:1192
+msgid "must be binary data"
+msgstr "harus merupakan data binari"
+
+#: ipalib/parameters.py:1208
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr "panjang minimum yang diperbolehkan %(minlength)d byte"
+
+#: ipalib/parameters.py:1218
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr "panjang maksimum yang diperbolehkan %(maxlength)d byte"
+
+#: ipalib/parameters.py:1228
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr "harus tepat %(length)d byte"
+
+#: ipalib/parameters.py:1246
+msgid "must be Unicode text"
+msgstr "harus teks Unicode"
+
+#: ipalib/parameters.py:1277
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr "setidaknya minimum harus %(minlength)d karakter"
+
+#: ipalib/parameters.py:1287
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr "panjang maksimum yang diperbolehkan %(maxlength)d karakter"
+
+#: ipalib/parameters.py:1297
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr "harus tepat %(length)d karakter"
+
+#: ipalib/parameters.py:1315
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1355
+#, python-format
+msgid "must be one of %(values)r"
+msgstr "harus salah satu dari %(values)r"
+
+#: ipalib/util.py:200
+#, python-format
+msgid "Permission denied: %(file)s"
+msgstr ""
+
+#: ipalib/x509.py:174
+#, python-format
+msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
+msgstr ""
+
+#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
+#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
+#: ipaserver/plugins/dogtag.py:1600
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr "Tidak dapat berkomunikasi dengan CMS (%s)"
@@ -1993,27 +7320,27 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
-#: ipaserver/plugins/selfsign.py:98
+#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
"Request subject \"%(request_subject)s\" does not match the form "
"\"%(subject_base)s\""
msgstr ""
-#: ipaserver/plugins/selfsign.py:103
+#: ipaserver/plugins/selfsign.py:104
#, python-format
msgid "unable to decode csr: %s"
msgstr "tidak dapat mengurai csr: %s"
-#: ipaserver/plugins/selfsign.py:124 ipaserver/plugins/selfsign.py:139
+#: ipaserver/plugins/selfsign.py:125 ipaserver/plugins/selfsign.py:140
msgid "file operation"
msgstr "operasi berkas"
-#: ipaserver/plugins/selfsign.py:153
+#: ipaserver/plugins/selfsign.py:154
msgid "cannot obtain next serial number"
msgstr "tidak dapat memperoleh nomor seri berikutnya"
-#: ipaserver/plugins/selfsign.py:188
+#: ipaserver/plugins/selfsign.py:189
msgid "certutil failure"
msgstr "kegagalah certutil"
@@ -2027,543 +7354,573 @@ msgstr ""
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:75
+#: ipa-client/config.c:68
+#, c-format
+msgid "out of memory\n"
+msgstr ""
+
+#: ipa-client/config.c:79
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:138 ipa-client/ipa-getkeytab.c:838
+#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
+#: ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:146
+#: ipa-client/ipa-getkeytab.c:155
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:164 ipa-client/ipa-getkeytab.c:179
+#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:194
+#: ipa-client/ipa-getkeytab.c:203
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:209
+#: ipa-client/ipa-getkeytab.c:218
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:235
+#: ipa-client/ipa-getkeytab.c:245
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:297
+#: ipa-client/ipa-getkeytab.c:307
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:310 ipa-client/ipa-getkeytab.c:327
-#: ipa-client/ipa-getkeytab.c:335 ipa-client/ipa-getkeytab.c:372
+#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
+#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:317 ipa-client/ipa-getkeytab.c:350
+#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
+#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
+#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
+#: ipa-client/ipa-join.c:819
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:361
+#: ipa-client/ipa-getkeytab.c:371
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:481
+#: ipa-client/ipa-getkeytab.c:492
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:496
+#: ipa-client/ipa-getkeytab.c:507
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:534
+#: ipa-client/ipa-getkeytab.c:545
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:541
+#: ipa-client/ipa-getkeytab.c:552
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:565
+#: ipa-client/ipa-getkeytab.c:576
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:572
+#: ipa-client/ipa-getkeytab.c:583
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:579
+#: ipa-client/ipa-getkeytab.c:596
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:589
+#: ipa-client/ipa-getkeytab.c:606
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:605 ipa-client/ipa-getkeytab.c:618
-#: ipa-client/ipa-getkeytab.c:625 ipa-client/ipa-getkeytab.c:632
+#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
+#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:638 ipa-client/ipa-getkeytab.c:648
+#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655
+#: ipa-client/ipa-getkeytab.c:672
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:674
+#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:715
+#: ipa-client/ipa-getkeytab.c:736
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:721
+#: ipa-client/ipa-getkeytab.c:742
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781
+#: ipa-client/ipa-getkeytab.c:778
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782
+#: ipa-client/ipa-getkeytab.c:779
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:189
+#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:787
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:788
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:790
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:794
+#: ipa-client/ipa-getkeytab.c:791
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:796
+#: ipa-client/ipa-getkeytab.c:793
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:825 ipa-client/ipa-rmkeytab.c:207
-#, c-format
-msgid "Kerberos context initialization failed\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:837
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:845
+#: ipa-client/ipa-getkeytab.c:841
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:864
+#: ipa-client/ipa-getkeytab.c:860
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:877
+#: ipa-client/ipa-getkeytab.c:873
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. -P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:889
+#: ipa-client/ipa-getkeytab.c:885
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:897
+#: ipa-client/ipa-getkeytab.c:893
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:905
+#: ipa-client/ipa-getkeytab.c:901
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:913
+#: ipa-client/ipa-getkeytab.c:909
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:920
+#: ipa-client/ipa-getkeytab.c:916
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:939
+#: ipa-client/ipa-getkeytab.c:935
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:948
+#: ipa-client/ipa-getkeytab.c:944
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:954
+#: ipa-client/ipa-getkeytab.c:950
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:67
+#: ipa-client/ipa-join.c:65
#, c-format
msgid "No permission to join this host to the IPA domain.\n"
msgstr ""
-#: ipa-client/ipa-join.c:104 ipa-client/ipa-join.c:116
+#: ipa-client/ipa-join.c:94 ipa-client/ipa-join.c:106
#, c-format
msgid "No write permissions on keytab file '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:121
+#: ipa-client/ipa-join.c:111
#, c-format
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:200
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#, c-format
+msgid "Out of memory!"
+msgstr ""
+
+#: ipa-client/ipa-join.c:204
+#, c-format
+msgid "Unable to initialize connection to ldap server: %s"
+msgstr ""
+
+#: ipa-client/ipa-join.c:210
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:206
+#: ipa-client/ipa-join.c:216
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:236
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:249
+#: ipa-client/ipa-join.c:269
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:259 ipa-client/ipa-join.c:311
+#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:302
+#: ipa-client/ipa-join.c:322
#, c-format
msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:368
+#: ipa-client/ipa-join.c:390
#, c-format
msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:377
+#: ipa-client/ipa-join.c:399
#, fuzzy, c-format
msgid "Unable to determine certificate subject of %s\n"
msgstr "Tidak dapat mengurai sertifikat dalam entri"
-#: ipa-client/ipa-join.c:385
+#: ipa-client/ipa-join.c:407
#, c-format
msgid "Unable to make an LDAP connection to %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:394
+#: ipa-client/ipa-join.c:432
#, c-format
msgid "Searching with %s in %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:400
+#: ipa-client/ipa-join.c:438
#, c-format
msgid "ldap_search_ext_s: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:408
+#: ipa-client/ipa-join.c:446
#, fuzzy, c-format
msgid "Unable to find host '%s'\n"
msgstr "tidak dapat mengurai csr: %s"
-#: ipa-client/ipa-join.c:415
+#: ipa-client/ipa-join.c:453
#, c-format
msgid "Unable to get binddn for host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:428
+#: ipa-client/ipa-join.c:466
#, c-format
msgid "Host already has principal, trying bind anyway\n"
msgstr ""
-#: ipa-client/ipa-join.c:442 ipa-client/ipa-join.c:579
+#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
#, fuzzy, c-format
msgid "Host is already joined.\n"
msgstr "Entri ini sudah dikunci"
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:484
#, c-format
msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:457
+#: ipa-client/ipa-join.c:495
#, c-format
msgid "principal not found in host entry\n"
msgstr ""
-#: ipa-client/ipa-join.c:564
+#: ipa-client/ipa-join.c:618
#, c-format
msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:646 ipa-client/ipa-join.c:823
+#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:662 ipa-client/ipa-join.c:838
+#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:671 ipa-client/ipa-join.c:848
+#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:679
+#: ipa-client/ipa-join.c:732
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:689
+#: ipa-client/ipa-join.c:741
+#, c-format
+msgid "Error getting default Kerberos realm: %s.\n"
+msgstr ""
+
+#: ipa-client/ipa-join.c:759
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:707
+#: ipa-client/ipa-join.c:777
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:718
+#: ipa-client/ipa-join.c:788
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:726
+#: ipa-client/ipa-join.c:796
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:769
+#: ipa-client/ipa-join.c:846
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:772
+#: ipa-client/ipa-join.c:849
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:854
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:855
+#: ipa-client/ipa-join.c:932
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:863
+#: ipa-client/ipa-join.c:940
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not "
"provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:877
+#: ipa-client/ipa-join.c:954
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:906
+#: ipa-client/ipa-join.c:983
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:909
+#: ipa-client/ipa-join.c:986
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:912
+#: ipa-client/ipa-join.c:989
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:924
+#: ipa-client/ipa-join.c:1001
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:930
+#: ipa-client/ipa-join.c:1007
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "Print the raw XML-RPC output"
-msgstr ""
-
-#: ipa-client/ipa-join.c:963
-msgid "XML-RPC debugging Output"
+#: ipa-client/ipa-join.c:1042
+msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:967
-msgid "Unenroll this host"
+#: ipa-client/ipa-join.c:1044
+msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:967
+#: ipa-client/ipa-join.c:1046
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Use this hostname instead of the node name"
+#: ipa-client/ipa-join.c:1048
+msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Host Name"
+#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:971
+#: ipa-client/ipa-join.c:1050
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:971
-msgid "IPA Server Name"
+#: ipa-client/ipa-join.c:1052
+msgid "Specifies where to store keytab information."
+msgstr ""
+
+#: ipa-client/ipa-join.c:1052
+msgid "filename"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1054
+msgid "LDAP password (if not using Kerberos)"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1054
+msgid "password"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:44
+#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:46
+#: ipa-client/ipa-rmkeytab.c:45
#, c-format
msgid "krb5_parse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:56
+#: ipa-client/ipa-rmkeytab.c:55
#, c-format
msgid "Removing principal %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:69
+#: ipa-client/ipa-rmkeytab.c:68
#, c-format
msgid "Failed to open keytab\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:73
+#: ipa-client/ipa-rmkeytab.c:72
#, c-format
msgid "principal not found\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:75
+#: ipa-client/ipa-rmkeytab.c:74
#, c-format
msgid "krb5_kt_get_entry %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:83
+#: ipa-client/ipa-rmkeytab.c:82
#, fuzzy, c-format
msgid "Unable to remove entry\n"
msgstr "Tidak dapat mengurai sertifikat dalam entri"
-#: ipa-client/ipa-rmkeytab.c:85
+#: ipa-client/ipa-rmkeytab.c:84
#, c-format
msgid "kvno %d\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:86
+#: ipa-client/ipa-rmkeytab.c:85
#, c-format
msgid "krb5_kt_remove_entry %d: %s\n"
msgstr ""
@@ -2578,37 +7935,63 @@ msgstr ""
msgid "krb5_unparse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:143
+#, c-format
+msgid "realm not found\n"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Print debugging information"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Debugging output"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Remove all principals in this realm"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Realm name"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:241
+#: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237
#, c-format
-msgid "Failed to open keytab '%s'\n"
+msgid "Failed to open keytab '%s': %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:255
+#: ipa-client/ipa-rmkeytab.c:253
#, c-format
msgid "Closing keytab failed\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:257
+#: ipa-client/ipa-rmkeytab.c:255
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
+#~ msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
+#~ msgstr ""
+#~ "Entri ini telah diset nsAccountLock, tidak dapat dikunci atau dibuka"
+
+#, fuzzy
+#~ msgid "Removed kerberos key from \"%(value)s\""
+#~ msgstr "Rolegroup \"%(value)s\" telah dihapus"
+
+#~ msgid "Added taskgroup \"%(value)s\""
+#~ msgstr "taskgroup \"%(value)s\" telah ditambahkan"
+
+#~ msgid "Deleted taskgroup \"%(value)s\""
+#~ msgstr "taskgroup \"%(value)s\" telah dihapus"
+
+#~ msgid "Modified taskgroup \"%(value)s\""
+#~ msgstr "taskgroup \"%(value)s\" telah dimodifikasi"
+
+#~ msgid "%(count)d taskgroup matched"
+#~ msgid_plural "%(count)d taskgroups matched"
+#~ msgstr[0] "%(count)d taskgroup sesuai"
+
#~ msgid "Locked user \"%(value)s\""
#~ msgstr "Pengguna \"%(value)s\" telah dikunci"
diff --git a/install/po/ipa.pot b/install/po/ipa.pot
index 96acd1e0c..7a4894e4c 100644
--- a/install/po/ipa.pot
+++ b/install/po/ipa.pot
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: ipa\n"
"Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/"
"newticket\n"
-"POT-Creation-Date: 2011-03-14 16:23-0400\n"
+"POT-Creation-Date: 2011-06-06 13:27-0400\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"
@@ -85,7 +85,7 @@ msgid ""
"\n"
"Note the distinction between attributes and entries. The permissions are\n"
"independent, so being able to add a user does not mean that the user will\n"
-"be editabe.\n"
+"be editable.\n"
"\n"
"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
"allows this to be any valid LDAP entry but we encourage the use of\n"
@@ -97,7 +97,7 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-"NOTE: ACIs are now added via the permision plugin. These examples are to\n"
+"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
"demonstrate how the various options work but this is done via the "
"permission\n"
"command-line now (see last example).\n"
@@ -294,7 +294,7 @@ msgstr ""
msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:158
+#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
#: ipalib/plugins/permission.py:131
msgid "Type"
msgstr ""
@@ -311,7 +311,7 @@ msgstr ""
msgid "Member of a group"
msgstr ""
-#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:228
+#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
#: ipalib/plugins/permission.py:144
msgid "Filter"
msgstr ""
@@ -565,85 +565,85 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:181
+#: ipalib/plugins/automount.py:182
msgid ""
"\n"
" Location container for automount maps.\n"
" "
msgstr ""
-#: ipalib/plugins/automount.py:189
-msgid "Automount"
+#: ipalib/plugins/automount.py:190
+msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:195 ipalib/plugins/host.py:230
+#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
msgid "Location"
msgstr ""
-#: ipalib/plugins/automount.py:196
+#: ipalib/plugins/automount.py:197
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:205
+#: ipalib/plugins/automount.py:206
msgid ""
"\n"
" Create a new automount location.\n"
" "
msgstr ""
-#: ipalib/plugins/automount.py:220
+#: ipalib/plugins/automount.py:221
msgid ""
"\n"
" Delete an automount location.\n"
" "
msgstr ""
-#: ipalib/plugins/automount.py:228
+#: ipalib/plugins/automount.py:229
msgid ""
"\n"
" Display an automount location.\n"
" "
msgstr ""
-#: ipalib/plugins/automount.py:236
+#: ipalib/plugins/automount.py:237
msgid ""
"\n"
" Search for an automount location.\n"
" "
msgstr ""
-#: ipalib/plugins/automount.py:244
+#: ipalib/plugins/automount.py:245
msgid ""
"\n"
" Generate automount files for a specific location.\n"
" "
msgstr ""
-#: ipalib/plugins/automount.py:307
+#: ipalib/plugins/automount.py:308
msgid ""
"\n"
" Import automount files for a specific location.\n"
" "
msgstr ""
-#: ipalib/plugins/automount.py:313
+#: ipalib/plugins/automount.py:314
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:315
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:321
+#: ipalib/plugins/automount.py:322
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:333
+#: ipalib/plugins/automount.py:334
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:340
+#: ipalib/plugins/automount.py:341
msgid ""
"\n"
" The basic idea is to read the master file and create all the maps\n"
@@ -651,162 +651,172 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/automount.py:491
+#: ipalib/plugins/automount.py:492
msgid ""
"\n"
" Automount map object.\n"
" "
msgstr ""
-#: ipalib/plugins/automount.py:504
+#: ipalib/plugins/automount.py:505
msgid "Map"
msgstr ""
-#: ipalib/plugins/automount.py:505
+#: ipalib/plugins/automount.py:506
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:510 ipalib/plugins/group.py:113
+#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
-#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:220
+#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
-#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:93
+#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
#: ipalib/plugins/sudorule.py:78
msgid "Description"
msgstr ""
-#: ipalib/plugins/automount.py:514
+#: ipalib/plugins/automount.py:515
msgid "Automount Maps"
msgstr ""
-#: ipalib/plugins/automount.py:520
+#: ipalib/plugins/automount.py:521
msgid ""
"\n"
" Create a new automount map.\n"
" "
msgstr ""
-#: ipalib/plugins/automount.py:528
+#: ipalib/plugins/automount.py:529
msgid ""
"\n"
" Delete an automount map.\n"
" "
msgstr ""
-#: ipalib/plugins/automount.py:547
+#: ipalib/plugins/automount.py:548
msgid ""
"\n"
" Modify an automount map.\n"
" "
msgstr ""
-#: ipalib/plugins/automount.py:555
+#: ipalib/plugins/automount.py:556
msgid ""
"\n"
" Search for an automount map.\n"
" "
msgstr ""
-#: ipalib/plugins/automount.py:563
+#: ipalib/plugins/automount.py:564
msgid ""
"\n"
" Display an automount map.\n"
" "
msgstr ""
-#: ipalib/plugins/automount.py:571
+#: ipalib/plugins/automount.py:572
msgid ""
"\n"
" Automount key object.\n"
" "
msgstr ""
-#: ipalib/plugins/automount.py:588 ipalib/plugins/automount.py:724
-#: ipalib/plugins/automount.py:796
+#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
+#: ipalib/plugins/automount.py:850
msgid "Key"
msgstr ""
-#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:725
-#: ipalib/plugins/automount.py:797
+#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
+#: ipalib/plugins/automount.py:851
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:593 ipalib/plugins/automount.py:729
-#: ipalib/plugins/automount.py:801
+#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
+#: ipalib/plugins/automount.py:855
msgid "Mount information"
msgstr ""
-#: ipalib/plugins/automount.py:596
+#: ipalib/plugins/automount.py:597
msgid "description"
msgstr ""
-#: ipalib/plugins/automount.py:605
+#: ipalib/plugins/automount.py:606
msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/automount.py:606
+#: ipalib/plugins/automount.py:607
msgid ""
"The key,info pair must be unique. A key named %(key)s with info %(info)s "
"already exists"
msgstr ""
-#: ipalib/plugins/automount.py:607
+#: ipalib/plugins/automount.py:608
+msgid "key named %(key)s already exists"
+msgstr ""
+
+#: ipalib/plugins/automount.py:609
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:667
+#: ipalib/plugins/automount.py:659
+msgid ""
+"More than one entry with key %(key)s found, use --info to select specific "
+"entry."
+msgstr ""
+
+#: ipalib/plugins/automount.py:717
msgid ""
"\n"
" Create a new automount key.\n"
" "
msgstr ""
-#: ipalib/plugins/automount.py:688
+#: ipalib/plugins/automount.py:742
msgid ""
"\n"
" Create a new indirect mount point.\n"
" "
msgstr ""
-#: ipalib/plugins/automount.py:694
+#: ipalib/plugins/automount.py:748
msgid "Mount point"
msgstr ""
-#: ipalib/plugins/automount.py:698
+#: ipalib/plugins/automount.py:752
msgid "Parent map"
msgstr ""
-#: ipalib/plugins/automount.py:699
+#: ipalib/plugins/automount.py:753
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:718
+#: ipalib/plugins/automount.py:772
msgid ""
"\n"
" Delete an automount key.\n"
" "
msgstr ""
-#: ipalib/plugins/automount.py:749
+#: ipalib/plugins/automount.py:803
msgid ""
"\n"
" Modify an automount key.\n"
" "
msgstr ""
-#: ipalib/plugins/automount.py:755
+#: ipalib/plugins/automount.py:809
msgid "New mount information"
msgstr ""
-#: ipalib/plugins/automount.py:782
+#: ipalib/plugins/automount.py:836
msgid ""
"\n"
" Search for an automount key.\n"
" "
msgstr ""
-#: ipalib/plugins/automount.py:790
+#: ipalib/plugins/automount.py:844
msgid ""
"\n"
" Display an automount key.\n"
@@ -964,60 +974,75 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/baseldap.py:275
+#: ipalib/plugins/baseldap.py:281
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:277
+#: ipalib/plugins/baseldap.py:283
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:278
+#: ipalib/plugins/baseldap.py:284
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:279
+#: ipalib/plugins/baseldap.py:285
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:280
+#: ipalib/plugins/baseldap.py:286
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:409
+#: ipalib/plugins/baseldap.py:415
msgid ""
"Add an attribute/value pair. Format is attr=value. The attribute must be "
"part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:414
+#: ipalib/plugins/baseldap.py:420
msgid ""
"Set an attribute to a name/value pair. Format is attr=value.\n"
"For multi-valued attributes, the command replaces the values already present."
msgstr ""
-#: ipalib/plugins/baseldap.py:438
+#: ipalib/plugins/baseldap.py:444
+msgid ""
+"\n"
+" If the set of objectclasses is limited enforce that only those\n"
+" are updated in entry_attrs (plus dn)\n"
+"\n"
+" allow_only tells us what mode to check in:\n"
+"\n"
+" If True then we enforce that the attributes must be in the list of\n"
+" allowed.\n"
+"\n"
+" If False then those attributes are not allowed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:474
msgid ""
"\n"
" Callback registration interface\n"
" "
msgstr ""
-#: ipalib/plugins/baseldap.py:509
+#: ipalib/plugins/baseldap.py:561
msgid ""
"\n"
" Create a new entry in LDAP.\n"
" "
msgstr ""
-#: ipalib/plugins/baseldap.py:644
+#: ipalib/plugins/baseldap.py:703
msgid ""
"\n"
" Base class for commands that need to retrieve an existing entry.\n"
" "
msgstr ""
-#: ipalib/plugins/baseldap.py:657
+#: ipalib/plugins/baseldap.py:727
msgid ""
"\n"
" Base class for commands that need to retrieve one or more existing "
@@ -1025,124 +1050,124 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/baseldap.py:663
+#: ipalib/plugins/baseldap.py:733
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:679
+#: ipalib/plugins/baseldap.py:750
msgid ""
"\n"
" Retrieve an LDAP entry.\n"
" "
msgstr ""
-#: ipalib/plugins/baseldap.py:687 ipalib/plugins/baseldap.py:753
-#: ipalib/plugins/internal.py:226
+#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
+#: ipalib/plugins/internal.py:232
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:688 ipalib/plugins/baseldap.py:754
+#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:747
+#: ipalib/plugins/baseldap.py:821
msgid ""
"\n"
" Update an LDAP entry.\n"
" "
msgstr ""
-#: ipalib/plugins/baseldap.py:763
+#: ipalib/plugins/baseldap.py:837
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:764
+#: ipalib/plugins/baseldap.py:838
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:880
+#: ipalib/plugins/baseldap.py:957
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:908
+#: ipalib/plugins/baseldap.py:988
msgid ""
"\n"
" Delete an LDAP entry and all of its direct subentries.\n"
" "
msgstr ""
-#: ipalib/plugins/baseldap.py:995
+#: ipalib/plugins/baseldap.py:1078
msgid ""
"\n"
" Base class for member manipulation.\n"
" "
msgstr ""
-#: ipalib/plugins/baseldap.py:1037
+#: ipalib/plugins/baseldap.py:1120
msgid ""
"\n"
" Add other LDAP entries to members.\n"
" "
msgstr ""
-#: ipalib/plugins/baseldap.py:1048 ipalib/plugins/baseldap.py:1481
+#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
-#: ipalib/plugins/role.py:180 ipalib/plugins/role.py:204
+#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
msgid "Members that could not be added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1052 ipalib/plugins/baseldap.py:1485
+#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1140
+#: ipalib/plugins/baseldap.py:1226
msgid ""
"\n"
" Remove LDAP entries from members.\n"
" "
msgstr ""
-#: ipalib/plugins/baseldap.py:1150 ipalib/plugins/baseldap.py:1591
+#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1154 ipalib/plugins/baseldap.py:1595
+#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1246
+#: ipalib/plugins/baseldap.py:1335
msgid ""
"\n"
" Retrieve all LDAP entries matching the given criteria.\n"
" "
msgstr ""
-#: ipalib/plugins/baseldap.py:1255
+#: ipalib/plugins/baseldap.py:1344
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1256
+#: ipalib/plugins/baseldap.py:1345
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1262
+#: ipalib/plugins/baseldap.py:1351
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1263
+#: ipalib/plugins/baseldap.py:1352
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1441
+#: ipalib/plugins/baseldap.py:1552
msgid ""
"\n"
" Base class for reverse member manipulation.\n"
" "
msgstr ""
-#: ipalib/plugins/baseldap.py:1463
+#: ipalib/plugins/baseldap.py:1574
msgid ""
"\n"
" Add other LDAP entries to members in reverse.\n"
@@ -1152,11 +1177,11 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/baseldap.py:1543
+#: ipalib/plugins/baseldap.py:1654
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1573
+#: ipalib/plugins/baseldap.py:1687
msgid ""
"\n"
" Remove other LDAP entries from members in reverse.\n"
@@ -1166,7 +1191,7 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/baseldap.py:1653
+#: ipalib/plugins/baseldap.py:1767
msgid "removed"
msgstr ""
@@ -1177,12 +1202,12 @@ msgid ""
"\n"
"To run this code in the lite-server\n"
"\n"
-"curl -H \"Content-Type:application/json\" -H \"Acept:applicaton/"
+"curl -H \"Content-Type:application/json\" -H \"Accept:application/"
"json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /"
"etc/ipa/ca.crt -d @batch_request.json -X POST http://"
"localhost:8888/ipa/json\n"
"\n"
-"where the contenst of the file batch_request.json follow the below example\n"
+"where the contents of the file batch_request.json follow the below example\n"
"\n"
"{\"method\":\"batch\",\"params\":[[\n"
" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
@@ -1207,7 +1232,7 @@ msgstr ""
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/batch.py:68 ipalib/frontend.py:862
+#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
msgid "Client version. Used to determine if server will accept request."
msgstr ""
@@ -1275,29 +1300,29 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:105
+#: ipalib/plugins/cert.py:104
msgid ""
"\n"
" Return the value of CN in the subject of the request or None\n"
" "
msgstr ""
-#: ipalib/plugins/cert.py:113
+#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:116
+#: ipalib/plugins/cert.py:115
msgid ""
"\n"
" Return the first value of the subject alt name, if any\n"
" "
msgstr ""
-#: ipalib/plugins/cert.py:126 ipalib/plugins/cert.py:138
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:129
+#: ipalib/plugins/cert.py:128
msgid ""
"\n"
" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
@@ -1305,18 +1330,18 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/cert.py:140
+#: ipalib/plugins/cert.py:139
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:143
+#: ipalib/plugins/cert.py:142
msgid ""
"\n"
" Strip any leading and trailing cruft around the BEGIN/END block\n"
" "
msgstr ""
-#: ipalib/plugins/cert.py:163
+#: ipalib/plugins/cert.py:162
msgid ""
"\n"
" Convert a SN given in decimal or hexadecimal.\n"
@@ -1324,7 +1349,7 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/cert.py:189
+#: ipalib/plugins/cert.py:188
msgid ""
"\n"
" Given a principal with or without a realm return the\n"
@@ -1332,140 +1357,140 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/cert.py:203
+#: ipalib/plugins/cert.py:202
msgid ""
"\n"
" Submit a certificate signing request.\n"
" "
msgstr ""
-#: ipalib/plugins/cert.py:217 ipalib/plugins/service.py:304
+#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:218
+#: ipalib/plugins/cert.py:217
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:225
+#: ipalib/plugins/cert.py:224
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:233 ipalib/plugins/cert.py:440
-#: ipalib/plugins/entitle.py:182 ipalib/plugins/host.py:259
-#: ipalib/plugins/service.py:311
+#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
+#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
+#: ipalib/plugins/service.py:232
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:237 ipalib/plugins/cert.py:443
-#: ipalib/plugins/host.py:143 ipalib/plugins/service.py:93
+#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:241 ipalib/plugins/cert.py:446
-#: ipalib/plugins/host.py:149 ipalib/plugins/service.py:99
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:245 ipalib/plugins/cert.py:449
-#: ipalib/plugins/host.py:152 ipalib/plugins/service.py:102
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:249 ipalib/plugins/cert.py:452
-#: ipalib/plugins/host.py:155 ipalib/plugins/service.py:105
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:253 ipalib/plugins/cert.py:455
-#: ipalib/plugins/host.py:158 ipalib/plugins/service.py:108
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:257 ipalib/plugins/cert.py:458
-#: ipalib/plugins/host.py:161 ipalib/plugins/service.py:111
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:261 ipalib/plugins/cert.py:426
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:269 ipalib/plugins/entitle.py:237
-#: ipalib/plugins/entitle.py:595 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:397
+#: ipalib/plugins/cert.py:396
msgid ""
"\n"
" Check the status of a certificate signing request.\n"
" "
msgstr ""
-#: ipalib/plugins/cert.py:403
+#: ipalib/plugins/cert.py:402
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:409
+#: ipalib/plugins/cert.py:408
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:427
+#: ipalib/plugins/cert.py:426
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:432
+#: ipalib/plugins/cert.py:431
msgid ""
"\n"
" Retrieve an existing certificate.\n"
" "
msgstr ""
-#: ipalib/plugins/cert.py:461 ipalib/plugins/host.py:164
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
#: ipalib/plugins/service.py:114
msgid "Revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:467
+#: ipalib/plugins/cert.py:466
msgid "Output filename"
msgstr ""
-#: ipalib/plugins/cert.py:468
+#: ipalib/plugins/cert.py:467
msgid "File to store the certificate in."
msgstr ""
-#: ipalib/plugins/cert.py:519
+#: ipalib/plugins/cert.py:518
msgid ""
"\n"
" Revoke a certificate.\n"
" "
msgstr ""
-#: ipalib/plugins/cert.py:527
+#: ipalib/plugins/cert.py:526
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:535
+#: ipalib/plugins/cert.py:534
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:536
+#: ipalib/plugins/cert.py:535
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:563
+#: ipalib/plugins/cert.py:562
msgid ""
"\n"
" Take a revoked certificate off hold.\n"
" "
msgstr ""
-#: ipalib/plugins/cert.py:571
+#: ipalib/plugins/cert.py:570
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:574
+#: ipalib/plugins/cert.py:573
msgid "Error"
msgstr ""
@@ -1533,7 +1558,7 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:145
+#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
msgid "Configuration"
msgstr ""
@@ -1801,7 +1826,7 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/dns.py:19
+#: ipalib/plugins/dns.py:20
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -1839,6 +1864,32 @@ msgid ""
" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup."
"example.com\"\n"
"\n"
+" When dnsrecord-add command is executed with no option to add a specific "
+"record\n"
+" an interactive mode is started. The mode interactively prompts for the "
+"most\n"
+" typical record types for the respective zone:\n"
+" ipa dnsrecord-add example.com www\n"
+" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random "
+"IPs)\n"
+" [AAAA record]: (no AAAA address entered)\n"
+" Record name: www\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" The interactive mode can also be used for deleting the DNS records:\n"
+" ipa dnsrecord-del example.com www\n"
+" No option to delete specific record provided.\n"
+" Delete all? Yes/No (default No): (do not delete all records)\n"
+" Current DNS record contents:\n"
+"\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
+" Record name: www\n"
+" A record: 1.2.3.4 (A record 11.22.33.44 has been "
+"deleted)\n"
+"\n"
" Show zone example.com:\n"
" ipa dnszone-show example.com\n"
"\n"
@@ -1861,312 +1912,352 @@ msgid ""
" if one is not included):\n"
" ipa dns-resolve www.example.com\n"
" ipa dns-resolve www\n"
-"\n"
msgstr ""
-#: ipalib/plugins/dns.py:110
+#: ipalib/plugins/dns.py:140
msgid "Generate serial number for zones."
msgstr ""
-#: ipalib/plugins/dns.py:159
+#: ipalib/plugins/dns.py:189
msgid "see RFC 2915 "
msgstr ""
-#: ipalib/plugins/dns.py:205
+#: ipalib/plugins/dns.py:249
msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
msgstr ""
-#: ipalib/plugins/dns.py:228
+#: ipalib/plugins/dns.py:272
msgid ""
"\n"
" DNS Zone, container for resource records.\n"
" "
msgstr ""
-#: ipalib/plugins/dns.py:240
+#: ipalib/plugins/dns.py:284
msgid "DNS"
msgstr ""
-#: ipalib/plugins/dns.py:245
+#: ipalib/plugins/dns.py:289
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:246
+#: ipalib/plugins/dns.py:290
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:252
+#: ipalib/plugins/dns.py:296
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:253
+#: ipalib/plugins/dns.py:297
msgid "Authoritative nameserver."
msgstr ""
-#: ipalib/plugins/dns.py:257 ipalib/plugins/dns.py:258
+#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:264
+#: ipalib/plugins/dns.py:308
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:265
+#: ipalib/plugins/dns.py:309
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:272
+#: ipalib/plugins/dns.py:316
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:273
+#: ipalib/plugins/dns.py:317
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:280
+#: ipalib/plugins/dns.py:324
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:281
+#: ipalib/plugins/dns.py:325
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:288
+#: ipalib/plugins/dns.py:332
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:289
+#: ipalib/plugins/dns.py:333
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:296
+#: ipalib/plugins/dns.py:340
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:297
+#: ipalib/plugins/dns.py:341
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:305
+#: ipalib/plugins/dns.py:349
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:306
+#: ipalib/plugins/dns.py:350
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:310
+#: ipalib/plugins/dns.py:354
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:311
+#: ipalib/plugins/dns.py:355
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:316 ipalib/plugins/dns.py:317
+#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:321
+#: ipalib/plugins/dns.py:365
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:322
+#: ipalib/plugins/dns.py:366
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:328
+#: ipalib/plugins/dns.py:372
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:329
+#: ipalib/plugins/dns.py:373
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:338
+#: ipalib/plugins/dns.py:382
msgid ""
"\n"
" Create new DNS zone (SOA record).\n"
" "
msgstr ""
-#: ipalib/plugins/dns.py:343
+#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
+#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+msgid "Force"
+msgstr ""
+
+#: ipalib/plugins/dns.py:388
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:346
+#: ipalib/plugins/dns.py:391
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:352
+#: ipalib/plugins/dns.py:397
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:386
+#: ipalib/plugins/dns.py:431
msgid ""
"\n"
" Delete DNS zone (SOA record).\n"
" "
msgstr ""
-#: ipalib/plugins/dns.py:394
+#: ipalib/plugins/dns.py:439
msgid ""
"\n"
" Modify DNS zone (SOA record).\n"
" "
msgstr ""
-#: ipalib/plugins/dns.py:407
+#: ipalib/plugins/dns.py:452
msgid ""
"\n"
" Search for DNS zones (SOA records).\n"
" "
msgstr ""
-#: ipalib/plugins/dns.py:415
+#: ipalib/plugins/dns.py:460
msgid ""
"\n"
" Display information about a DNS zone (SOA record).\n"
" "
msgstr ""
-#: ipalib/plugins/dns.py:423
+#: ipalib/plugins/dns.py:468
msgid ""
"\n"
" Disable DNS Zone.\n"
" "
msgstr ""
-#: ipalib/plugins/dns.py:427
+#: ipalib/plugins/dns.py:472
msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:445
+#: ipalib/plugins/dns.py:490
msgid ""
"\n"
" Enable DNS Zone.\n"
" "
msgstr ""
-#: ipalib/plugins/dns.py:449
+#: ipalib/plugins/dns.py:494
msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:467
+#: ipalib/plugins/dns.py:512
msgid ""
"\n"
" DNS record.\n"
" "
msgstr ""
-#: ipalib/plugins/dns.py:477
+#: ipalib/plugins/dns.py:522
msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:482 ipalib/plugins/dns.py:483
+#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:488 ipalib/plugins/dns.py:489
+#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:493
+#: ipalib/plugins/dns.py:538
msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:494
+#: ipalib/plugins/dns.py:539
msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:521
+#: ipalib/plugins/dns.py:566
msgid ""
"\n"
" Base class for DNS record commands with record options.\n"
" "
msgstr ""
-#: ipalib/plugins/dns.py:550
+#: ipalib/plugins/dns.py:610
msgid ""
"\n"
" Base class for adding/removing records from DNS resource entries.\n"
" "
msgstr ""
-#: ipalib/plugins/dns.py:614
+#: ipalib/plugins/dns.py:674
msgid ""
"\n"
" Add records to DNS resource.\n"
" "
msgstr ""
-#: ipalib/plugins/dns.py:630
+#: ipalib/plugins/dns.py:690
msgid ""
"\n"
" Add new DNS resource record.\n"
" "
msgstr ""
-#: ipalib/plugins/dns.py:637
+#: ipalib/plugins/dns.py:699
msgid "force NS record creation even if its hostname is not in DNS"
msgstr ""
-#: ipalib/plugins/dns.py:696
+#: ipalib/plugins/dns.py:735
+msgid ""
+"Reverse zone for PTR record should be a sub-zone of one the following fully "
+"qualified domains: %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:740
+msgid "Reverse zone %s requires exactly %d IP address components, %d given"
+msgstr ""
+
+#: ipalib/plugins/dns.py:746
+msgid "PTR record '%s' is not fully qualified (check traling '.')"
+msgstr ""
+
+#: ipalib/plugins/dns.py:789
msgid ""
"\n"
" Delete DNS record entry.\n"
" "
msgstr ""
-#: ipalib/plugins/dns.py:699
+#: ipalib/plugins/dns.py:792
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:706
+#: ipalib/plugins/dns.py:799
msgid ""
"\n"
" Delete DNS resource record.\n"
" "
msgstr ""
-#: ipalib/plugins/dns.py:713
+#: ipalib/plugins/dns.py:802
+msgid ""
+"Neither --del-all nor options to delete a specific record provided.\n"
+"Command help may be consulted for all supported record types."
+msgstr ""
+
+#: ipalib/plugins/dns.py:807
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:749
+#: ipalib/plugins/dns.py:834
+msgid "No option to delete specific record provided."
+msgstr ""
+
+#: ipalib/plugins/dns.py:835
+msgid "Delete all?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:845
+msgid "Current DNS record contents:\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:875
+msgid "%s record with value %s not found"
+msgstr ""
+
+#: ipalib/plugins/dns.py:889
msgid ""
"\n"
" Display DNS resource.\n"
" "
msgstr ""
-#: ipalib/plugins/dns.py:765
+#: ipalib/plugins/dns.py:905
msgid ""
"\n"
" Search for DNS resources.\n"
" "
msgstr ""
-#: ipalib/plugins/dns.py:792
+#: ipalib/plugins/dns.py:932
msgid ""
"\n"
" Resolve a host name in DNS\n"
" "
msgstr ""
-#: ipalib/plugins/dns.py:796
+#: ipalib/plugins/dns.py:936
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:800
+#: ipalib/plugins/dns.py:940
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:822
+#: ipalib/plugins/dns.py:962
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/dns.py:830
+#: ipalib/plugins/dns.py:970
msgid ""
"\n"
" Checks if any of the servers has the DNS service enabled.\n"
@@ -2210,22 +2301,14 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:105
-msgid ""
-"\n"
-" The M2Crypto/openSSL modules are very picky about PEM format and\n"
-" require lines split to 64 characters with proper headers.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/entitle.py:115
+#: ipalib/plugins/entitle.py:106
msgid ""
"\n"
" Get our entitlement pool. Assume there is only one pool.\n"
" "
msgstr ""
-#: ipalib/plugins/entitle.py:138
+#: ipalib/plugins/entitle.py:129
msgid ""
"\n"
" Retrieve our UUID, certificate and key from LDAP.\n"
@@ -2234,53 +2317,57 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/entitle.py:187
+#: ipalib/plugins/entitle.py:178
msgid ""
"\n"
" Entitlement object\n"
" "
msgstr ""
-#: ipalib/plugins/entitle.py:213
+#: ipalib/plugins/entitle.py:189
+msgid "Entitlements"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:206
msgid ""
"\n"
" Display current entitlements\n"
" "
msgstr ""
-#: ipalib/plugins/entitle.py:221 ipalib/plugins/entitle.py:609
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:224 ipalib/plugins/entitle.py:313
-#: ipalib/plugins/entitle.py:395 ipalib/plugins/entitle.py:582
-#: ipalib/plugins/entitle.py:697
+#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
+#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
+#: ipalib/plugins/entitle.py:690
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:227 ipalib/plugins/entitle.py:293
-#: ipalib/plugins/entitle.py:303 ipalib/plugins/entitle.py:398
-#: ipalib/plugins/entitle.py:585 ipalib/plugins/entitle.py:687
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
+#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
+#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:230 ipalib/plugins/entitle.py:316
-#: ipalib/plugins/entitle.py:588 ipalib/plugins/entitle.py:700
+#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
+#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
msgid "Consumed"
msgstr ""
-#: ipalib/plugins/entitle.py:283
+#: ipalib/plugins/entitle.py:276
msgid ""
"\n"
" Consume an entitlement\n"
" "
msgstr ""
-#: ipalib/plugins/entitle.py:289
+#: ipalib/plugins/entitle.py:282
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:321
+#: ipalib/plugins/entitle.py:314
msgid ""
"\n"
" Override this so we can set value to the number of entitlements\n"
@@ -2288,7 +2375,7 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/entitle.py:369 ipalib/plugins/entitle.py:731
+#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
msgid ""
"\n"
" Returning the certificates isn't very interesting. Return the\n"
@@ -2296,74 +2383,74 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/entitle.py:387
+#: ipalib/plugins/entitle.py:380
msgid ""
"\n"
" Retrieve the entitlement certs\n"
" "
msgstr ""
-#: ipalib/plugins/entitle.py:401
+#: ipalib/plugins/entitle.py:394
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:404
+#: ipalib/plugins/entitle.py:397
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:407 ipalib/plugins/host.py:146
-#: ipalib/plugins/internal.py:126 ipalib/plugins/service.py:96
+#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
+#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:442 ipalib/plugins/entitle.py:633
-#: ipalib/plugins/entitle.py:635
+#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
+#: ipalib/plugins/entitle.py:628
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:467
+#: ipalib/plugins/entitle.py:460
msgid ""
"\n"
" Search for entitlement accounts.\n"
" "
msgstr ""
-#: ipalib/plugins/entitle.py:480
+#: ipalib/plugins/entitle.py:473
msgid ""
"\n"
" Register to the entitlement system\n"
" "
msgstr ""
-#: ipalib/plugins/entitle.py:486
+#: ipalib/plugins/entitle.py:479
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:490
+#: ipalib/plugins/entitle.py:483
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:497 ipalib/plugins/entitle.py:610
+#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:501 ipalib/plugins/migration.py:264
-#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:161
+#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
+#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
msgid "Password"
msgstr ""
-#: ipalib/plugins/entitle.py:502
+#: ipalib/plugins/entitle.py:495
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:576
+#: ipalib/plugins/entitle.py:569
msgid ""
"\n"
" Import an entitlement certificate.\n"
" "
msgstr ""
-#: ipalib/plugins/entitle.py:653
+#: ipalib/plugins/entitle.py:646
msgid ""
"\n"
" If we are adding the first entry there are no updates so "
@@ -2372,14 +2459,14 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/entitle.py:674
+#: ipalib/plugins/entitle.py:667
msgid ""
"\n"
" Re-sync the local entitlement cache with the entitlement server\n"
" "
msgstr ""
-#: ipalib/plugins/entitle.py:680
+#: ipalib/plugins/entitle.py:673
msgid "Entitlement(s) synchronized."
msgstr ""
@@ -2442,117 +2529,117 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/group.py:99
+#: ipalib/plugins/group.py:100
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:107
+#: ipalib/plugins/group.py:108
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:114 ipalib/plugins/sudocmdgroup.py:77
+#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:118 ipalib/plugins/user.py:176
+#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:119
+#: ipalib/plugins/group.py:120
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:127
+#: ipalib/plugins/group.py:128
msgid ""
"\n"
" Create a new group.\n"
" "
msgstr ""
-#: ipalib/plugins/group.py:131
+#: ipalib/plugins/group.py:132
msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:136
+#: ipalib/plugins/group.py:137
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:153
+#: ipalib/plugins/group.py:154
msgid ""
"\n"
" Delete group.\n"
" "
msgstr ""
-#: ipalib/plugins/group.py:157
+#: ipalib/plugins/group.py:158
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:185
+#: ipalib/plugins/group.py:186
msgid ""
"\n"
" Modify a group.\n"
" "
msgstr ""
-#: ipalib/plugins/group.py:188
+#: ipalib/plugins/group.py:189
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:193
+#: ipalib/plugins/group.py:194
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:214
+#: ipalib/plugins/group.py:215
msgid ""
"\n"
" Search for groups.\n"
" "
msgstr ""
-#: ipalib/plugins/group.py:219
+#: ipalib/plugins/group.py:220
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/group.py:226 ipalib/plugins/netgroup.py:192
+#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:256
+#: ipalib/plugins/group.py:257
msgid ""
"\n"
" Display information about a named group.\n"
" "
msgstr ""
-#: ipalib/plugins/group.py:264
+#: ipalib/plugins/group.py:265
msgid ""
"\n"
" Add members to a group.\n"
" "
msgstr ""
-#: ipalib/plugins/group.py:272
+#: ipalib/plugins/group.py:273
msgid ""
"\n"
" Remove members from a group.\n"
" "
msgstr ""
-#: ipalib/plugins/group.py:280
+#: ipalib/plugins/group.py:281
msgid ""
"\n"
" Detach a managed group from a user\n"
" "
msgstr ""
-#: ipalib/plugins/group.py:284
+#: ipalib/plugins/group.py:285
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:287
+#: ipalib/plugins/group.py:288
msgid ""
"\n"
" This requires updating both the user and the group. We first need "
@@ -2563,15 +2650,15 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/group.py:305
+#: ipalib/plugins/group.py:306
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:311
+#: ipalib/plugins/group.py:312
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:330
+#: ipalib/plugins/group.py:331
msgid "Not a managed group"
msgstr ""
@@ -2640,8 +2727,8 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/hbacrule.py:126 ipalib/plugins/internal.py:367
-msgid "HBAC"
+#: ipalib/plugins/hbacrule.py:126
+msgid "HBAC Rule"
msgstr ""
#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
@@ -2697,16 +2784,16 @@ msgid "Enabled"
msgstr ""
#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
-#: ipalib/plugins/user.py:97
+#: ipalib/plugins/user.py:108
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:266
+#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
#: ipalib/plugins/sudorule.py:119
msgid "Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:209
+#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
#: ipalib/plugins/sudorule.py:123
msgid "Hosts"
msgstr ""
@@ -2724,8 +2811,8 @@ msgstr ""
msgid "Source host groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:190
-#: ipalib/plugins/service.py:299
+#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
+#: ipalib/plugins/service.py:220
msgid "Services"
msgstr ""
@@ -3153,7 +3240,7 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:102
+#: ipalib/plugins/host.py:97
msgid ""
"\n"
" Require at least one dot in the hostname (to support localhost."
@@ -3161,208 +3248,204 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/host.py:106
+#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:137 ipalib/plugins/service.py:87
+#: ipalib/plugins/host.py:129
+msgid "DNS reverse zone for IP address %(addr)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:169
+#: ipalib/plugins/host.py:185
msgid ""
"\n"
" Verify that we have either an IPv4 or IPv6 address.\n"
" "
msgstr ""
-#: ipalib/plugins/host.py:173
+#: ipalib/plugins/host.py:189
msgid "invalid IP address"
msgstr ""
-#: ipalib/plugins/host.py:178
+#: ipalib/plugins/host.py:194
msgid ""
"\n"
" Host object.\n"
" "
msgstr ""
-#: ipalib/plugins/host.py:214
+#: ipalib/plugins/host.py:231
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:221
+#: ipalib/plugins/host.py:238
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:225
+#: ipalib/plugins/host.py:242
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:226
+#: ipalib/plugins/host.py:243
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:231
+#: ipalib/plugins/host.py:248
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:235
+#: ipalib/plugins/host.py:252
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:236
+#: ipalib/plugins/host.py:253
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:240
+#: ipalib/plugins/host.py:257
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:241
+#: ipalib/plugins/host.py:258
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:245
+#: ipalib/plugins/host.py:262
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:246
+#: ipalib/plugins/host.py:263
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:249
+#: ipalib/plugins/host.py:266
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:254
+#: ipalib/plugins/host.py:271
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:260 ipalib/plugins/service.py:312
+#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:263 ipalib/plugins/host.py:539
+#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:289
+#: ipalib/plugins/host.py:306
msgid ""
"\n"
" Add a new host.\n"
" "
msgstr ""
-#: ipalib/plugins/host.py:294
+#: ipalib/plugins/host.py:311
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:298 ipalib/plugins/service.py:329
-msgid "Force"
-msgstr ""
-
-#: ipalib/plugins/host.py:299
+#: ipalib/plugins/host.py:316
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:302
+#: ipalib/plugins/host.py:319
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:305
+#: ipalib/plugins/host.py:322
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:321 ipalib/plugins/host.py:468
+#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:334
-msgid "Reverse DNS zone %(zone)s not found"
-msgstr ""
-
-#: ipalib/plugins/host.py:404
+#: ipalib/plugins/host.py:413
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:413
+#: ipalib/plugins/host.py:422
msgid ""
"\n"
" Delete a host.\n"
" "
msgstr ""
-#: ipalib/plugins/host.py:417
+#: ipalib/plugins/host.py:426
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:422
+#: ipalib/plugins/host.py:431
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:528
+#: ipalib/plugins/host.py:537
msgid ""
"\n"
" Modify information about a host.\n"
" "
msgstr ""
-#: ipalib/plugins/host.py:533
+#: ipalib/plugins/host.py:542
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:540
+#: ipalib/plugins/host.py:549
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:608
+#: ipalib/plugins/host.py:618
msgid ""
"\n"
" Search for hosts.\n"
" "
msgstr ""
-#: ipalib/plugins/host.py:613
+#: ipalib/plugins/host.py:623
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:633
+#: ipalib/plugins/host.py:643
msgid ""
"\n"
" Display information about a host.\n"
" "
msgstr ""
-#: ipalib/plugins/host.py:639 ipalib/plugins/service.py:475
+#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:663 ipalib/plugins/service.py:497
+#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:674
+#: ipalib/plugins/host.py:684
msgid ""
"\n"
" Disable the Kerberos key, SSL certificate and all services of a host.\n"
" "
msgstr ""
-#: ipalib/plugins/host.py:678
+#: ipalib/plugins/host.py:688
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:760
+#: ipalib/plugins/host.py:770
msgid ""
"\n"
" Add hosts that can manage this host.\n"
" "
msgstr ""
-#: ipalib/plugins/host.py:771
+#: ipalib/plugins/host.py:781
msgid ""
"\n"
" Remove hosts that can manage this host.\n"
@@ -3533,730 +3616,770 @@ msgid "Automount Location Settings"
msgstr ""
#: ipalib/plugins/internal.py:106
+msgid "Add Automount Map"
+msgstr ""
+
+#: ipalib/plugins/internal.py:109
+msgid "Add Automount Key"
+msgstr ""
+
+#: ipalib/plugins/internal.py:112
msgid "Unspecified"
msgstr ""
-#: ipalib/plugins/internal.py:107
+#: ipalib/plugins/internal.py:113
msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:108
+#: ipalib/plugins/internal.py:114
msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:109
+#: ipalib/plugins/internal.py:115
msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:110
+#: ipalib/plugins/internal.py:116
msgid "Superseded"
msgstr ""
-#: ipalib/plugins/internal.py:111
+#: ipalib/plugins/internal.py:117
msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:112
+#: ipalib/plugins/internal.py:118
msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:113
+#: ipalib/plugins/internal.py:119
msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:114
+#: ipalib/plugins/internal.py:120
msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:115
+#: ipalib/plugins/internal.py:121
msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:116
+#: ipalib/plugins/internal.py:122
msgid ""
"To confirm your intention to revoke this certificate, select a reason from "
"the pull-down list, and click the \"Revoke\" button."
msgstr ""
-#: ipalib/plugins/internal.py:118
+#: ipalib/plugins/internal.py:124
msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:119
+#: ipalib/plugins/internal.py:125
msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:120
+#: ipalib/plugins/internal.py:126
msgid ""
"To confirm your intention to restore this certificate, click the \"Restore\" "
"button."
msgstr ""
-#: ipalib/plugins/internal.py:122
+#: ipalib/plugins/internal.py:128
msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:123
+#: ipalib/plugins/internal.py:129
msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:124
+#: ipalib/plugins/internal.py:130
msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:125
+#: ipalib/plugins/internal.py:131
msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:127
+#: ipalib/plugins/internal.py:133
msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:128
+#: ipalib/plugins/internal.py:134
msgid "Validity"
msgstr ""
-#: ipalib/plugins/internal.py:129
+#: ipalib/plugins/internal.py:135
msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:130
+#: ipalib/plugins/internal.py:136
msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:131
+#: ipalib/plugins/internal.py:137
msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:132
+#: ipalib/plugins/internal.py:138
msgid "SHA1 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:133
+#: ipalib/plugins/internal.py:139
msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:134
+#: ipalib/plugins/internal.py:140
msgid "Enter the Base64-encoded CSR below"
msgstr ""
-#: ipalib/plugins/internal.py:135
+#: ipalib/plugins/internal.py:141
msgid "Valid Certificate Present"
msgstr ""
-#: ipalib/plugins/internal.py:136
+#: ipalib/plugins/internal.py:142
msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:137
+#: ipalib/plugins/internal.py:143
msgid "Certificate Revoked"
msgstr ""
-#: ipalib/plugins/internal.py:138
+#: ipalib/plugins/internal.py:144
msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:139
+#: ipalib/plugins/internal.py:145
msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:140
+#: ipalib/plugins/internal.py:146
msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:141
+#: ipalib/plugins/internal.py:147
msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:142
+#: ipalib/plugins/internal.py:148
msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:146
+#: ipalib/plugins/internal.py:152
msgid "Name"
msgstr ""
-#: ipalib/plugins/internal.py:149
+#: ipalib/plugins/internal.py:155
msgid "Add Delegation"
msgstr ""
-#: ipalib/plugins/internal.py:152
+#: ipalib/plugins/internal.py:158
msgid "Add DNS Zone"
msgstr ""
-#: ipalib/plugins/internal.py:153
+#: ipalib/plugins/internal.py:159
msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:156
+#: ipalib/plugins/internal.py:162
msgid "Add DNS Resource Record"
msgstr ""
-#: ipalib/plugins/internal.py:157
+#: ipalib/plugins/internal.py:163
msgid "Resource"
msgstr ""
-#: ipalib/plugins/internal.py:159
+#: ipalib/plugins/internal.py:165
msgid "Data"
msgstr ""
-#: ipalib/plugins/internal.py:160
+#: ipalib/plugins/internal.py:166
msgid "Records for DNS Zone"
msgstr ""
-#: ipalib/plugins/internal.py:163
-msgid "Add New Group"
+#: ipalib/plugins/internal.py:169
+msgid "Add Group"
msgstr ""
-#: ipalib/plugins/internal.py:164
+#: ipalib/plugins/internal.py:170
msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:165 ipalib/plugins/internal.py:200
+#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
msgid "Is this a POSIX group?"
msgstr ""
-#: ipalib/plugins/internal.py:168 ipalib/plugins/internal.py:273
-msgid "Add New Rule"
+#: ipalib/plugins/internal.py:174
+msgid "Add HBAC Rule"
msgstr ""
-#: ipalib/plugins/internal.py:169 ipalib/plugins/internal.py:274
-#: ipalib/plugins/internal.py:300
+#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:306
msgid "Active"
msgstr ""
-#: ipalib/plugins/internal.py:170 ipalib/plugins/internal.py:276
+#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
msgid "Allow"
msgstr ""
-#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:277
+#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
msgid "Deny"
msgstr ""
-#: ipalib/plugins/internal.py:172 ipalib/plugins/internal.py:275
-#: ipalib/plugins/internal.py:302
+#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:308
msgid "Inactive"
msgstr ""
-#: ipalib/plugins/internal.py:173 ipalib/plugins/internal.py:290
+#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:174 ipalib/plugins/internal.py:278
+#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
msgid "Who"
msgstr ""
-#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:279
+#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
msgid "Anyone"
msgstr ""
-#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:177
+#: ipalib/plugins/internal.py:183
msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:282
+#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
msgid "Any Host"
msgstr ""
-#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:283
+#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:180
+#: ipalib/plugins/internal.py:186
msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:181
+#: ipalib/plugins/internal.py:187
msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:182
+#: ipalib/plugins/internal.py:188
msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:183
+#: ipalib/plugins/internal.py:189
msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:186
-msgid "Add New HBAC Service"
+#: ipalib/plugins/internal.py:192
+msgid "Add HBAC Service"
msgstr ""
-#: ipalib/plugins/internal.py:189
-msgid "Add New HBAC Service Group"
+#: ipalib/plugins/internal.py:195
+msgid "Add HBAC Service Group"
msgstr ""
-#: ipalib/plugins/internal.py:193
-msgid "Add New Host"
+#: ipalib/plugins/internal.py:199
+msgid "Add Host"
msgstr ""
-#: ipalib/plugins/internal.py:194
+#: ipalib/plugins/internal.py:200
msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:195 ipalib/plugins/internal.py:253
+#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
msgid "Host Name"
msgstr ""
-#: ipalib/plugins/internal.py:196
+#: ipalib/plugins/internal.py:202
msgid "Host Settings"
msgstr ""
-#: ipalib/plugins/internal.py:197
+#: ipalib/plugins/internal.py:203
msgid "Enrolled?"
msgstr ""
-#: ipalib/plugins/internal.py:198
+#: ipalib/plugins/internal.py:204
msgid "Enrollment"
msgstr ""
-#: ipalib/plugins/internal.py:199
+#: ipalib/plugins/internal.py:205
msgid "Fully Qualified Host Name"
msgstr ""
-#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:256
+#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
msgid "Status"
msgstr ""
-#: ipalib/plugins/internal.py:202
+#: ipalib/plugins/internal.py:208
msgid "Kerberos Key Present, Host Provisioned"
msgstr ""
-#: ipalib/plugins/internal.py:203 ipalib/plugins/internal.py:258
+#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
msgid "Delete Key, Unprovision"
msgstr ""
-#: ipalib/plugins/internal.py:204 ipalib/plugins/internal.py:259
+#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
msgid "Kerberos Key Not Present"
msgstr ""
-#: ipalib/plugins/internal.py:205
+#: ipalib/plugins/internal.py:211
msgid "Enroll via One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:206
+#: ipalib/plugins/internal.py:212
msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:207
+#: ipalib/plugins/internal.py:213
msgid "One-Time-Password has been set."
msgstr ""
-#: ipalib/plugins/internal.py:208 ipalib/plugins/internal.py:260
+#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:209
+#: ipalib/plugins/internal.py:215
msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:262
+#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/internal.py:213
-msgid "Add Hostgroup"
+#: ipalib/plugins/internal.py:219
+msgid "Add Host Group"
msgstr ""
-#: ipalib/plugins/internal.py:214
-msgid "Hostgroup Settings"
+#: ipalib/plugins/internal.py:220
+msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:217
+#: ipalib/plugins/internal.py:223
msgid "Kerberos ticket policy"
msgstr ""
-#: ipalib/plugins/internal.py:220
+#: ipalib/plugins/internal.py:226
msgid "Add Netgroup"
msgstr ""
-#: ipalib/plugins/internal.py:221
+#: ipalib/plugins/internal.py:227
msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/internal.py:224
+#: ipalib/plugins/internal.py:230
msgid "Add Permission"
msgstr ""
-#: ipalib/plugins/internal.py:225 ipalib/plugins/internal.py:362
+#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
msgid "Identity"
msgstr ""
-#: ipalib/plugins/internal.py:227
+#: ipalib/plugins/internal.py:233
msgid "Target"
msgstr ""
-#: ipalib/plugins/internal.py:229
+#: ipalib/plugins/internal.py:235
msgid "By Subtree"
msgstr ""
-#: ipalib/plugins/internal.py:230
+#: ipalib/plugins/internal.py:236
msgid "Target Group"
msgstr ""
-#: ipalib/plugins/internal.py:231
+#: ipalib/plugins/internal.py:237
msgid "Object By Type"
msgstr ""
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/internal.py:238
msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/internal.py:235
+#: ipalib/plugins/internal.py:241
msgid "Add Privilege"
msgstr ""
-#: ipalib/plugins/internal.py:236
+#: ipalib/plugins/internal.py:242
msgid "Privilege Settings"
msgstr ""
-#: ipalib/plugins/internal.py:239
+#: ipalib/plugins/internal.py:245
msgid "Add Password Policy"
msgstr ""
-#: ipalib/plugins/internal.py:240 ipalib/plugins/pwpolicy.py:209
+#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
msgid "Password Policy"
msgstr ""
-#: ipalib/plugins/internal.py:243
+#: ipalib/plugins/internal.py:249
msgid "Add Role"
msgstr ""
-#: ipalib/plugins/internal.py:244
+#: ipalib/plugins/internal.py:250
msgid "Role Settings"
msgstr ""
-#: ipalib/plugins/internal.py:247
+#: ipalib/plugins/internal.py:253
msgid "Add Self Service Definition"
msgstr ""
-#: ipalib/plugins/internal.py:250
-msgid "Add New Service"
+#: ipalib/plugins/internal.py:256
+msgid "Add Service"
msgstr ""
-#: ipalib/plugins/internal.py:251
+#: ipalib/plugins/internal.py:257
msgid "Service Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:252
+#: ipalib/plugins/internal.py:258
msgid "Service Settings"
msgstr ""
-#: ipalib/plugins/internal.py:254
+#: ipalib/plugins/internal.py:260
msgid "Provisioning"
msgstr ""
-#: ipalib/plugins/internal.py:255
+#: ipalib/plugins/internal.py:261
msgid "Service"
msgstr ""
-#: ipalib/plugins/internal.py:257
+#: ipalib/plugins/internal.py:263
msgid "Kerberos Key Present, Service Provisioned"
msgstr ""
-#: ipalib/plugins/internal.py:261
+#: ipalib/plugins/internal.py:267
msgid "Are you sure you want to unprovision this service?"
msgstr ""
-#: ipalib/plugins/internal.py:265
-msgid "Add New Sudo Command"
+#: ipalib/plugins/internal.py:271
+msgid "Add Sudo Command"
msgstr ""
-#: ipalib/plugins/internal.py:269
-msgid "Add New Sudo Command Group"
+#: ipalib/plugins/internal.py:275
+msgid "Add Sudo Command Group"
msgstr ""
-#: ipalib/plugins/internal.py:270 ipalib/plugins/sudocmdgroup.py:80
+#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
msgid "Commands"
msgstr ""
-#: ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:279
+msgid "Add Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:287
msgid "Access this host"
msgstr ""
-#: ipalib/plugins/internal.py:284
+#: ipalib/plugins/internal.py:290
msgid "Run Commands"
msgstr ""
-#: ipalib/plugins/internal.py:285
+#: ipalib/plugins/internal.py:291
msgid "Any Command"
msgstr ""
-#: ipalib/plugins/internal.py:286
+#: ipalib/plugins/internal.py:292
msgid "Specified Commands and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:287
+#: ipalib/plugins/internal.py:293
msgid "As Whom"
msgstr ""
-#: ipalib/plugins/internal.py:288
+#: ipalib/plugins/internal.py:294
msgid "Any Group"
msgstr ""
-#: ipalib/plugins/internal.py:289
+#: ipalib/plugins/internal.py:295
msgid "Specified Groups"
msgstr ""
-#: ipalib/plugins/internal.py:291
+#: ipalib/plugins/internal.py:297
msgid "External"
msgstr ""
-#: ipalib/plugins/internal.py:294
+#: ipalib/plugins/internal.py:300
msgid "Add User"
msgstr ""
-#: ipalib/plugins/internal.py:295
+#: ipalib/plugins/internal.py:301
msgid "Account Settings"
msgstr ""
-#: ipalib/plugins/internal.py:296
+#: ipalib/plugins/internal.py:302
msgid "Contact Settings"
msgstr ""
-#: ipalib/plugins/internal.py:297
+#: ipalib/plugins/internal.py:303
msgid "Mailing Address"
msgstr ""
-#: ipalib/plugins/internal.py:298
+#: ipalib/plugins/internal.py:304
msgid "Employee Information"
msgstr ""
-#: ipalib/plugins/internal.py:299
+#: ipalib/plugins/internal.py:305
msgid "Misc. Information"
msgstr ""
-#: ipalib/plugins/internal.py:301
+#: ipalib/plugins/internal.py:307
msgid "Click to Deactivate"
msgstr ""
-#: ipalib/plugins/internal.py:303
+#: ipalib/plugins/internal.py:309
msgid "Click to Activate"
msgstr ""
-#: ipalib/plugins/internal.py:304
+#: ipalib/plugins/internal.py:310
msgid "Error changing account status"
msgstr ""
-#: ipalib/plugins/internal.py:305
+#: ipalib/plugins/internal.py:311
msgid "Reset Password"
msgstr ""
-#: ipalib/plugins/internal.py:306
+#: ipalib/plugins/internal.py:312
msgid "New Password"
msgstr ""
-#: ipalib/plugins/internal.py:307
+#: ipalib/plugins/internal.py:313
msgid "Repeat Password"
msgstr ""
-#: ipalib/plugins/internal.py:308
+#: ipalib/plugins/internal.py:314
msgid "Password change complete"
msgstr ""
-#: ipalib/plugins/internal.py:309
+#: ipalib/plugins/internal.py:315
msgid "Passwords must match"
msgstr ""
-#: ipalib/plugins/internal.py:313
+#: ipalib/plugins/internal.py:319
msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:314
+#: ipalib/plugins/internal.py:320
msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:315
+#: ipalib/plugins/internal.py:321
msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:316
+#: ipalib/plugins/internal.py:322
msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:317
+#: ipalib/plugins/internal.py:323
msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:318
+#: ipalib/plugins/internal.py:324
msgid "Back to List"
msgstr ""
-#: ipalib/plugins/internal.py:319
+#: ipalib/plugins/internal.py:325
msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:320
+#: ipalib/plugins/internal.py:326
msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:321
+#: ipalib/plugins/internal.py:327
msgid "Enroll"
msgstr ""
-#: ipalib/plugins/internal.py:322
+#: ipalib/plugins/internal.py:328
msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:323
+#: ipalib/plugins/internal.py:329
msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:324
+#: ipalib/plugins/internal.py:330
msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:325
+#: ipalib/plugins/internal.py:331
msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:326
+#: ipalib/plugins/internal.py:332
msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:327
+#: ipalib/plugins/internal.py:333
msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:328
+#: ipalib/plugins/internal.py:334
msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:329
+#: ipalib/plugins/internal.py:335
msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:330
+#: ipalib/plugins/internal.py:336
msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:331
+#: ipalib/plugins/internal.py:337
msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:332
+#: ipalib/plugins/internal.py:338
msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:335
+#: ipalib/plugins/internal.py:341
msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:336
+#: ipalib/plugins/internal.py:342
msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:337
+#: ipalib/plugins/internal.py:343
msgid "Dirty"
msgstr ""
-#: ipalib/plugins/internal.py:338
+#: ipalib/plugins/internal.py:344
msgid "Hide already enrolled."
msgstr ""
-#: ipalib/plugins/internal.py:339
+#: ipalib/plugins/internal.py:345
msgid "Select ${entity} to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:340
+#: ipalib/plugins/internal.py:346
msgid "Remove ${entity}."
msgstr ""
-#: ipalib/plugins/internal.py:341
+#: ipalib/plugins/internal.py:347
msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:344
-msgid "Search"
+#: ipalib/plugins/internal.py:350
+msgid "Managed by"
msgstr ""
-#: ipalib/plugins/internal.py:345
+#: ipalib/plugins/internal.py:351
+msgid "Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:352
+msgid "Indirect Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:353
+msgid "Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:354
+msgid "Indirect Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:348
+#: ipalib/plugins/internal.py:358
+msgid "Search"
+msgstr ""
+
+#: ipalib/plugins/internal.py:362
msgid "Quick Links"
msgstr ""
-#: ipalib/plugins/internal.py:349
+#: ipalib/plugins/internal.py:363
msgid "Select All"
msgstr ""
-#: ipalib/plugins/internal.py:350
+#: ipalib/plugins/internal.py:364
msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/internal.py:351
+#: ipalib/plugins/internal.py:365
msgid "Are you sure you want to delete selected entries?"
msgstr ""
-#: ipalib/plugins/internal.py:352
+#: ipalib/plugins/internal.py:366
msgid ""
"Query returned more results than the configured size limit. Displaying the "
"first ${counter} results."
msgstr ""
-#: ipalib/plugins/internal.py:356
+#: ipalib/plugins/internal.py:370
msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:357
-msgid "${entity} Settings"
+#: ipalib/plugins/internal.py:371
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:358
-msgid "Identity Settings"
+#: ipalib/plugins/internal.py:372
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:359
+#: ipalib/plugins/internal.py:373
msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:363
+#: ipalib/plugins/internal.py:377
msgid "Policy"
msgstr ""
-#: ipalib/plugins/internal.py:364
+#: ipalib/plugins/internal.py:378
msgid "Audit"
msgstr ""
-#: ipalib/plugins/internal.py:365
+#: ipalib/plugins/internal.py:379
msgid "IPA Server"
msgstr ""
-#: ipalib/plugins/internal.py:366 ipalib/plugins/sudorule.py:68
+#: ipalib/plugins/internal.py:380
msgid "Sudo"
msgstr ""
-#: ipalib/plugins/internal.py:368
+#: ipalib/plugins/internal.py:381
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:382
msgid "Role Based Access Control"
msgstr ""
-#: ipalib/plugins/internal.py:371
+#: ipalib/plugins/internal.py:383
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:386
msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:372
+#: ipalib/plugins/internal.py:387
msgid "${other_entity} enrolled in ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:373
+#: ipalib/plugins/internal.py:388
msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:374
+#: ipalib/plugins/internal.py:389
msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:377
+#: ipalib/plugins/internal.py:392
msgid "Text does not match field pattern"
msgstr ""
-#: ipalib/plugins/internal.py:380
+#: ipalib/plugins/internal.py:395
msgid ""
"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/"
@@ -4264,7 +4387,7 @@ msgid ""
"browser."
msgstr ""
-#: ipalib/plugins/internal.py:384
+#: ipalib/plugins/internal.py:399
msgid "Dict of I18N messages"
msgstr ""
@@ -4420,49 +4543,49 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:78
+#: ipalib/plugins/krbtpolicy.py:79
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:83 ipalib/plugins/passwd.py:53
+#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
msgid "User name"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:84
+#: ipalib/plugins/krbtpolicy.py:85
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:89
+#: ipalib/plugins/krbtpolicy.py:90
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:90
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:95
+#: ipalib/plugins/krbtpolicy.py:96
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:96
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:110
+#: ipalib/plugins/krbtpolicy.py:111
msgid ""
"\n"
" Modify Kerberos ticket policy.\n"
" "
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:124
+#: ipalib/plugins/krbtpolicy.py:125
msgid ""
"\n"
" Display the current Kerberos ticket policy.\n"
" "
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:148
+#: ipalib/plugins/krbtpolicy.py:149
msgid ""
"\n"
" Reset Kerberos ticket policy to the default values.\n"
@@ -4531,110 +4654,110 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/migration.py:213
+#: ipalib/plugins/migration.py:220
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:218
+#: ipalib/plugins/migration.py:225
msgid ""
"\n"
" Migrate users and groups from DS to IPA.\n"
" "
msgstr ""
-#: ipalib/plugins/migration.py:259
+#: ipalib/plugins/migration.py:266
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:260
+#: ipalib/plugins/migration.py:267
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:265
+#: ipalib/plugins/migration.py:272
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:272
+#: ipalib/plugins/migration.py:279
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:278
+#: ipalib/plugins/migration.py:285
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:279
+#: ipalib/plugins/migration.py:286
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:285
+#: ipalib/plugins/migration.py:292
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:286
+#: ipalib/plugins/migration.py:293
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:292
+#: ipalib/plugins/migration.py:299
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:293
+#: ipalib/plugins/migration.py:300
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:299
+#: ipalib/plugins/migration.py:306
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:300
+#: ipalib/plugins/migration.py:307
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:306
+#: ipalib/plugins/migration.py:313
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:307
+#: ipalib/plugins/migration.py:314
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:313
+#: ipalib/plugins/migration.py:320
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:321
+#: ipalib/plugins/migration.py:328
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:325
+#: ipalib/plugins/migration.py:332
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:329
+#: ipalib/plugins/migration.py:336
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:333
+#: ipalib/plugins/migration.py:340
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:335
+#: ipalib/plugins/migration.py:342
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
"migration process might be incomplete\n"
msgstr ""
-#: ipalib/plugins/migration.py:340
+#: ipalib/plugins/migration.py:347
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:343
+#: ipalib/plugins/migration.py:350
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -4643,7 +4766,7 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:351
+#: ipalib/plugins/migration.py:358
msgid ""
"\n"
" Call get_options of the baseclass and add \"exclude\" options\n"
@@ -4651,7 +4774,7 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/migration.py:368
+#: ipalib/plugins/migration.py:375
msgid ""
"\n"
" Convert all \"exclude\" option values to lower-case.\n"
@@ -4662,14 +4785,14 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/migration.py:392
+#: ipalib/plugins/migration.py:399
msgid ""
"\n"
" Migrate objects from DS to LDAP.\n"
" "
msgstr ""
-#: ipalib/plugins/migration.py:418
+#: ipalib/plugins/migration.py:425
msgid "Container for %(container)s not found"
msgstr ""
@@ -4733,7 +4856,7 @@ msgid ""
" Remove a member from the netgroup:\n"
" ipa netgroup-remove-member --users=tuser2 admins\n"
"\n"
-" Display infromation about a netgroup:\n"
+" Display information about a netgroup:\n"
" ipa netgroup-show admins\n"
"\n"
" Delete a netgroup:\n"
@@ -5038,14 +5161,14 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/permission.py:423
+#: ipalib/plugins/permission.py:428
msgid ""
"\n"
" Add members to a permission.\n"
" "
msgstr ""
-#: ipalib/plugins/permission.py:432
+#: ipalib/plugins/permission.py:437
msgid ""
"\n"
" Remove members from a permission.\n"
@@ -5251,7 +5374,7 @@ msgstr ""
msgid "Number of permissions removed"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:19
+#: ipalib/plugins/pwpolicy.py:20
msgid ""
"\n"
"Password policy\n"
@@ -5297,105 +5420,105 @@ msgid ""
" ipa pwpolicy-mod --minclasses=2 localadmins\n"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:70
+#: ipalib/plugins/pwpolicy.py:72
msgid ""
"\n"
" Class of Service object used for linking policies with groups\n"
" "
msgstr ""
-#: ipalib/plugins/pwpolicy.py:85
+#: ipalib/plugins/pwpolicy.py:87
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:162
+#: ipalib/plugins/pwpolicy.py:172
msgid ""
"\n"
" Password Policy object\n"
" "
msgstr ""
-#: ipalib/plugins/pwpolicy.py:191
+#: ipalib/plugins/pwpolicy.py:201
msgid "Max failures"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:192
+#: ipalib/plugins/pwpolicy.py:202
msgid "Consecutive failures before lockout"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:197
+#: ipalib/plugins/pwpolicy.py:207
msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:198
+#: ipalib/plugins/pwpolicy.py:208
msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:203
+#: ipalib/plugins/pwpolicy.py:213
msgid "Lockout duration"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:204
+#: ipalib/plugins/pwpolicy.py:214
msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:214
+#: ipalib/plugins/pwpolicy.py:224
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:215
+#: ipalib/plugins/pwpolicy.py:225
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:220
+#: ipalib/plugins/pwpolicy.py:230
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:221
+#: ipalib/plugins/pwpolicy.py:231
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:226
+#: ipalib/plugins/pwpolicy.py:236
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:227
+#: ipalib/plugins/pwpolicy.py:237
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:232
+#: ipalib/plugins/pwpolicy.py:242
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:233
+#: ipalib/plugins/pwpolicy.py:243
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:238
+#: ipalib/plugins/pwpolicy.py:248
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:239
+#: ipalib/plugins/pwpolicy.py:249
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:245
+#: ipalib/plugins/pwpolicy.py:255
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:246
+#: ipalib/plugins/pwpolicy.py:256
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:251
+#: ipalib/plugins/pwpolicy.py:261
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:252
+#: ipalib/plugins/pwpolicy.py:262
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:284
+#: ipalib/plugins/pwpolicy.py:294
msgid ""
"\n"
" Ensure that the maximum lifetime is greater than the minimum.\n"
@@ -5403,51 +5526,51 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/pwpolicy.py:304
+#: ipalib/plugins/pwpolicy.py:314
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:311
+#: ipalib/plugins/pwpolicy.py:333
msgid ""
"\n"
" Add a new group password policy.\n"
" "
msgstr ""
-#: ipalib/plugins/pwpolicy.py:340
+#: ipalib/plugins/pwpolicy.py:361
msgid ""
"\n"
" Delete a group password policy.\n"
" "
msgstr ""
-#: ipalib/plugins/pwpolicy.py:359
+#: ipalib/plugins/pwpolicy.py:380
msgid ""
"\n"
" Modify a group password policy.\n"
" "
msgstr ""
-#: ipalib/plugins/pwpolicy.py:369
+#: ipalib/plugins/pwpolicy.py:391
msgid "priority cannot be set on global policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:401
+#: ipalib/plugins/pwpolicy.py:423
msgid ""
"\n"
" Display information about password policy.\n"
" "
msgstr ""
-#: ipalib/plugins/pwpolicy.py:406
+#: ipalib/plugins/pwpolicy.py:428
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:407
+#: ipalib/plugins/pwpolicy.py:429
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:442
+#: ipalib/plugins/pwpolicy.py:452
msgid ""
"\n"
" Search for group password policies.\n"
@@ -5499,104 +5622,104 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/role.py:82
+#: ipalib/plugins/role.py:81
msgid "Role"
msgstr ""
-#: ipalib/plugins/role.py:87
+#: ipalib/plugins/role.py:86
msgid "Role name"
msgstr ""
-#: ipalib/plugins/role.py:94
+#: ipalib/plugins/role.py:93
msgid "A description of this role-group"
msgstr ""
-#: ipalib/plugins/role.py:102
+#: ipalib/plugins/role.py:101
msgid ""
"\n"
" Add a new role.\n"
" "
msgstr ""
-#: ipalib/plugins/role.py:106
+#: ipalib/plugins/role.py:105
msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:112
+#: ipalib/plugins/role.py:111
msgid ""
"\n"
" Delete a role.\n"
" "
msgstr ""
-#: ipalib/plugins/role.py:116
+#: ipalib/plugins/role.py:115
msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:122
+#: ipalib/plugins/role.py:121
msgid ""
"\n"
" Modify a role.\n"
" "
msgstr ""
-#: ipalib/plugins/role.py:126
+#: ipalib/plugins/role.py:125
msgid "Modified role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/role.py:132
+#: ipalib/plugins/role.py:131
msgid ""
"\n"
" Search for roles.\n"
" "
msgstr ""
-#: ipalib/plugins/role.py:136
+#: ipalib/plugins/role.py:135
msgid "%(count)d role matched"
msgid_plural "%(count)d roles matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/role.py:144
+#: ipalib/plugins/role.py:143
msgid ""
"\n"
" Display information about a role.\n"
" "
msgstr ""
-#: ipalib/plugins/role.py:152
+#: ipalib/plugins/role.py:151
msgid ""
"\n"
" Add members to a role.\n"
" "
msgstr ""
-#: ipalib/plugins/role.py:160
+#: ipalib/plugins/role.py:159
msgid ""
"\n"
" Remove members from a role.\n"
" "
msgstr ""
-#: ipalib/plugins/role.py:168
+#: ipalib/plugins/role.py:167
msgid ""
"\n"
" Add privileges to a role.\n"
" "
msgstr ""
-#: ipalib/plugins/role.py:184
+#: ipalib/plugins/role.py:183
msgid "Number of privileges added"
msgstr ""
-#: ipalib/plugins/role.py:192
+#: ipalib/plugins/role.py:191
msgid ""
"\n"
" Remove privileges from a role.\n"
" "
msgstr ""
-#: ipalib/plugins/role.py:208
+#: ipalib/plugins/role.py:207
msgid "Number of privileges removed"
msgstr ""
@@ -5777,16 +5900,6 @@ msgstr ""
#: ipalib/plugins/service.py:175
msgid ""
"\n"
-" Incoming certificates should be DER-encoded.\n"
-"\n"
-" Note that this can't be a normalizer on the Param because only unicode\n"
-" variables are normalized.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:210
-msgid ""
-"\n"
" Set individual attributes from some values from a certificate.\n"
"\n"
" entry_attrs is a dict of an entry\n"
@@ -5795,123 +5908,96 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/service.py:234
-msgid ""
-"\n"
-" Determine if the file is writable. If the file doesn't exist then\n"
-" open the file to test writability.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:243
-msgid "Permission denied: %(file)s"
-msgstr ""
-
-#: ipalib/plugins/service.py:251
-msgid ""
-"\n"
-" Convert a raw base64-encoded blob into something that looks like a PE\n"
-" file with lines split to 64 characters and proper headers.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:261
-msgid ""
-"\n"
-" Check to see if the certificate should be written to a file and do so.\n"
-" "
-msgstr ""
-
-#: ipalib/plugins/service.py:278
+#: ipalib/plugins/service.py:199
msgid ""
"\n"
" Service object.\n"
" "
msgstr ""
-#: ipalib/plugins/service.py:305
+#: ipalib/plugins/service.py:226
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:321
+#: ipalib/plugins/service.py:242
msgid ""
"\n"
" Add a new IPA new service.\n"
" "
msgstr ""
-#: ipalib/plugins/service.py:324
+#: ipalib/plugins/service.py:245
msgid "Added service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:330
+#: ipalib/plugins/service.py:251
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:361
+#: ipalib/plugins/service.py:284
msgid ""
"\n"
" Delete an IPA service.\n"
" "
msgstr ""
-#: ipalib/plugins/service.py:364
+#: ipalib/plugins/service.py:287
msgid "Deleted service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:398
+#: ipalib/plugins/service.py:321
msgid ""
"\n"
" Modify an existing IPA service.\n"
" "
msgstr ""
-#: ipalib/plugins/service.py:401
+#: ipalib/plugins/service.py:324
msgid "Modified service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:431
+#: ipalib/plugins/service.py:356
msgid ""
"\n"
" Search for IPA services.\n"
" "
msgstr ""
-#: ipalib/plugins/service.py:434
+#: ipalib/plugins/service.py:359
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:469
+#: ipalib/plugins/service.py:394
msgid ""
"\n"
" Display information about an IPA service.\n"
" "
msgstr ""
-#: ipalib/plugins/service.py:507
+#: ipalib/plugins/service.py:432
msgid ""
"\n"
" Add hosts that can manage this service.\n"
" "
msgstr ""
-#: ipalib/plugins/service.py:517
+#: ipalib/plugins/service.py:442
msgid ""
"\n"
" Remove hosts that can manage this service.\n"
" "
msgstr ""
-#: ipalib/plugins/service.py:527
+#: ipalib/plugins/service.py:452
msgid ""
"\n"
" Disable the Kerberos key and SSL certificate of a service.\n"
" "
msgstr ""
-#: ipalib/plugins/service.py:531
+#: ipalib/plugins/service.py:456
msgid "Disabled service \"%(value)s\""
msgstr ""
@@ -5924,7 +6010,7 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Create a new commnad\n"
+" Create a new command\n"
" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n"
"\n"
" Remove a command\n"
@@ -6134,6 +6220,10 @@ msgid ""
" "
msgstr ""
+#: ipalib/plugins/sudorule.py:68
+msgid "Sudo Rule"
+msgstr ""
+
#: ipalib/plugins/sudorule.py:98
msgid "Command category"
msgstr ""
@@ -6233,7 +6323,7 @@ msgstr ""
#: ipalib/plugins/sudorule.py:213
msgid ""
"\n"
-" Dispaly Sudo Rule.\n"
+" Display Sudo Rule.\n"
" "
msgstr ""
@@ -6381,213 +6471,235 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:74
+#: ipalib/plugins/user.py:79
msgid ""
"\n"
" User object.\n"
" "
msgstr ""
-#: ipalib/plugins/user.py:105
+#: ipalib/plugins/user.py:116
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:112
+#: ipalib/plugins/user.py:123
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:116
+#: ipalib/plugins/user.py:127
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:119
+#: ipalib/plugins/user.py:130
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:124
+#: ipalib/plugins/user.py:135
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:129
+#: ipalib/plugins/user.py:140
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:135
+#: ipalib/plugins/user.py:146
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:139
+#: ipalib/plugins/user.py:150
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:145
+#: ipalib/plugins/user.py:156
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:150
+#: ipalib/plugins/user.py:161
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:157
+#: ipalib/plugins/user.py:168
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:162
+#: ipalib/plugins/user.py:173
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:169
+#: ipalib/plugins/user.py:180
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:170
+#: ipalib/plugins/user.py:181
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:177
+#: ipalib/plugins/user.py:188
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:182
+#: ipalib/plugins/user.py:193
msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:186
+#: ipalib/plugins/user.py:197
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:190
+#: ipalib/plugins/user.py:201
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:193
+#: ipalib/plugins/user.py:204
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:208
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:200
+#: ipalib/plugins/user.py:211
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:203
+#: ipalib/plugins/user.py:214
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:207
+#: ipalib/plugins/user.py:218
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:211
+#: ipalib/plugins/user.py:222
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:214
+#: ipalib/plugins/user.py:225
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:217
+#: ipalib/plugins/user.py:228
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:220
+#: ipalib/plugins/user.py:231
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:223
+#: ipalib/plugins/user.py:234
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:250
+#: ipalib/plugins/user.py:258
+msgid ""
+"\n"
+" Given a userid verify the user's existence and return the dn.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:276
+msgid "manager %(manager)s not found"
+msgstr ""
+
+#: ipalib/plugins/user.py:281
+msgid ""
+"\n"
+" Convert a manager dn into a userid\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:295
msgid ""
"\n"
" Add a new user.\n"
" "
msgstr ""
-#: ipalib/plugins/user.py:254
+#: ipalib/plugins/user.py:298
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:275
+#: ipalib/plugins/user.py:303
+msgid "Don't create user private group"
+msgstr ""
+
+#: ipalib/plugins/user.py:333
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:324
+#: ipalib/plugins/user.py:400
msgid ""
"\n"
" Delete a user.\n"
" "
msgstr ""
-#: ipalib/plugins/user.py:328
+#: ipalib/plugins/user.py:404
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:337
+#: ipalib/plugins/user.py:413
msgid ""
"\n"
" Modify a user.\n"
" "
msgstr ""
-#: ipalib/plugins/user.py:341
+#: ipalib/plugins/user.py:417
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:358
+#: ipalib/plugins/user.py:437
msgid ""
"\n"
" Search for users.\n"
" "
msgstr ""
-#: ipalib/plugins/user.py:365
+#: ipalib/plugins/user.py:444
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:366
+#: ipalib/plugins/user.py:445
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:383
+#: ipalib/plugins/user.py:463
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:391
+#: ipalib/plugins/user.py:471
msgid ""
"\n"
" Display information about a user.\n"
" "
msgstr ""
-#: ipalib/plugins/user.py:403
+#: ipalib/plugins/user.py:484
msgid ""
"\n"
" Disable a user account.\n"
" "
msgstr ""
-#: ipalib/plugins/user.py:408
+#: ipalib/plugins/user.py:489
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:426
+#: ipalib/plugins/user.py:507
msgid ""
"\n"
" Enable a user account.\n"
" "
msgstr ""
-#: ipalib/plugins/user.py:431
+#: ipalib/plugins/user.py:512
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:448
+#: ipalib/plugins/user.py:529
msgid ""
"\n"
" Unlock a user account\n"
@@ -6600,7 +6712,7 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/user.py:457
+#: ipalib/plugins/user.py:538
msgid "Unlocked account \"%(value)s\""
msgstr ""
@@ -6643,338 +6755,338 @@ msgid ""
"XML-RPC client plugin.\n"
msgstr ""
-#: ipalib/cli.py:539
+#: ipalib/cli.py:581
#, python-format
msgid "Enter %(label)s again to verify: "
msgstr ""
-#: ipalib/cli.py:543 ipa-client/ipa-getkeytab.c:751
+#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
#, c-format
msgid "Passwords do not match!"
msgstr ""
-#: ipalib/cli.py:548
+#: ipalib/cli.py:590
msgid "Cancelled."
msgstr ""
-#: ipalib/cli.py:777
+#: ipalib/cli.py:819
msgid "Command name"
msgstr ""
-#: ipalib/cli.py:1066
+#: ipalib/cli.py:1117
msgid "No file to read"
msgstr ""
-#: ipalib/errors.py:297
+#: ipalib/errors.py:300
#, python-format
msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
msgstr ""
-#: ipalib/errors.py:315
+#: ipalib/errors.py:318
#, python-format
msgid "unknown error %(code)d from %(server)s: %(error)s"
msgstr ""
-#: ipalib/errors.py:331
+#: ipalib/errors.py:334
msgid "an internal error has occurred"
msgstr ""
-#: ipalib/errors.py:353
+#: ipalib/errors.py:356
#, python-format
msgid "an internal error has occurred on server at %(server)r"
msgstr ""
-#: ipalib/errors.py:369
+#: ipalib/errors.py:372
#, python-format
msgid "unknown command %(name)r"
msgstr ""
-#: ipalib/errors.py:386 ipalib/errors.py:411
+#: ipalib/errors.py:389 ipalib/errors.py:414
#, python-format
msgid "error on server %(server)r: %(error)s"
msgstr ""
-#: ipalib/errors.py:402
+#: ipalib/errors.py:405
#, python-format
msgid "cannot connect to %(uri)r: %(error)s"
msgstr ""
-#: ipalib/errors.py:420
+#: ipalib/errors.py:423
#, python-format
msgid "Invalid JSON-RPC request: %(error)s"
msgstr ""
-#: ipalib/errors.py:436
+#: ipalib/errors.py:439
#, python-format
msgid "error marshalling data for XML-RPC transport: %(error)s"
msgstr ""
-#: ipalib/errors.py:462
+#: ipalib/errors.py:465
#, python-format
msgid "Kerberos error: %(major)s/%(minor)s"
msgstr ""
-#: ipalib/errors.py:479
+#: ipalib/errors.py:482
msgid "did not receive Kerberos credentials"
msgstr ""
-#: ipalib/errors.py:495
+#: ipalib/errors.py:498
#, python-format
msgid "Service %(service)r not found in Kerberos database"
msgstr ""
-#: ipalib/errors.py:511
+#: ipalib/errors.py:514
msgid "No credentials cache found"
msgstr ""
-#: ipalib/errors.py:527
+#: ipalib/errors.py:530
msgid "Ticket expired"
msgstr ""
-#: ipalib/errors.py:543
+#: ipalib/errors.py:546
msgid "Credentials cache permissions incorrect"
msgstr ""
-#: ipalib/errors.py:559
+#: ipalib/errors.py:562
msgid "Bad format in credentials cache"
msgstr ""
-#: ipalib/errors.py:575
+#: ipalib/errors.py:578
msgid "Cannot resolve KDC for requested realm"
msgstr ""
-#: ipalib/errors.py:594
+#: ipalib/errors.py:597
#, python-format
msgid "Insufficient access: %(info)s"
msgstr ""
-#: ipalib/errors.py:638
+#: ipalib/errors.py:641
#, python-format
msgid "command %(name)r takes no arguments"
msgstr ""
-#: ipalib/errors.py:658
+#: ipalib/errors.py:661
#, python-format
msgid "command %(name)r takes at most %(count)d argument"
msgid_plural "command %(name)r takes at most %(count)d arguments"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/errors.py:688
+#: ipalib/errors.py:691
#, python-format
msgid "overlapping arguments and options: %(names)r"
msgstr ""
-#: ipalib/errors.py:704
+#: ipalib/errors.py:707
#, python-format
msgid "%(name)r is required"
msgstr ""
-#: ipalib/errors.py:720 ipalib/errors.py:736
+#: ipalib/errors.py:723 ipalib/errors.py:739
#, python-format
msgid "invalid %(name)r: %(error)s"
msgstr ""
-#: ipalib/errors.py:752
+#: ipalib/errors.py:755
#, python-format
msgid "api has no such namespace: %(name)r"
msgstr ""
-#: ipalib/errors.py:761
+#: ipalib/errors.py:764
msgid "Passwords do not match"
msgstr ""
-#: ipalib/errors.py:770
+#: ipalib/errors.py:773
msgid "Command not implemented"
msgstr ""
-#: ipalib/errors.py:779
+#: ipalib/errors.py:782
msgid "Client is not configured. Run ipa-client-install."
msgstr ""
-#: ipalib/errors.py:807 ipalib/errors.py:1047 ipalib/errors.py:1141
-#: ipalib/errors.py:1421 ipalib/errors.py:1438
+#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
+#: ipalib/errors.py:1424 ipalib/errors.py:1441
#, python-format
msgid "%(reason)s"
msgstr ""
-#: ipalib/errors.py:823
+#: ipalib/errors.py:826
msgid "This entry already exists"
msgstr ""
-#: ipalib/errors.py:839
+#: ipalib/errors.py:842
msgid "You must enroll a host in order to create a host service"
msgstr ""
-#: ipalib/errors.py:855
+#: ipalib/errors.py:858
#, python-format
msgid ""
"Service principal is not of the form: service/fully-qualified host name: "
"%(reason)s"
msgstr ""
-#: ipalib/errors.py:871
+#: ipalib/errors.py:874
msgid ""
"The realm for the principal does not match the realm for this IPA server"
msgstr ""
-#: ipalib/errors.py:887
+#: ipalib/errors.py:890
msgid "This command requires root access"
msgstr ""
-#: ipalib/errors.py:903
+#: ipalib/errors.py:906
msgid "This is already a posix group"
msgstr ""
-#: ipalib/errors.py:919
+#: ipalib/errors.py:922
#, python-format
msgid "Principal is not of the form user@REALM: %(principal)r"
msgstr ""
-#: ipalib/errors.py:935
+#: ipalib/errors.py:938
msgid "This entry is already enabled"
msgstr ""
-#: ipalib/errors.py:951
+#: ipalib/errors.py:954
msgid "This entry is already disabled"
msgstr ""
-#: ipalib/errors.py:967
+#: ipalib/errors.py:970
msgid "This entry cannot be enabled or disabled"
msgstr ""
-#: ipalib/errors.py:983
+#: ipalib/errors.py:986
msgid "This entry is not a member"
msgstr ""
-#: ipalib/errors.py:999
+#: ipalib/errors.py:1002
msgid "A group may not be a member of itself"
msgstr ""
-#: ipalib/errors.py:1015
+#: ipalib/errors.py:1018
msgid "This entry is already a member"
msgstr ""
-#: ipalib/errors.py:1031
+#: ipalib/errors.py:1034
#, python-format
msgid "Base64 decoding failed: %(reason)s"
msgstr ""
-#: ipalib/errors.py:1063
+#: ipalib/errors.py:1066
msgid "A group may not be added as a member of itself"
msgstr ""
-#: ipalib/errors.py:1079
+#: ipalib/errors.py:1082
msgid "The default users group cannot be removed"
msgstr ""
-#: ipalib/errors.py:1095
+#: ipalib/errors.py:1098
msgid "Host does not have corresponding DNS A record"
msgstr ""
-#: ipalib/errors.py:1110
+#: ipalib/errors.py:1113
msgid "Deleting a managed group is not allowed. It must be detached first."
msgstr ""
-#: ipalib/errors.py:1125
+#: ipalib/errors.py:1128
msgid "A managed group cannot have a password policy."
msgstr ""
-#: ipalib/errors.py:1157
+#: ipalib/errors.py:1160
#, python-format
msgid "'%(entry)s' doesn't have a certificate."
msgstr ""
-#: ipalib/errors.py:1173
+#: ipalib/errors.py:1176
#, python-format
msgid "Unable to create private group. A group '%(group)s' already exists."
msgstr ""
-#: ipalib/errors.py:1189
+#: ipalib/errors.py:1192
#, python-format
msgid ""
"A problem was encountered when verifying that all members were %(verb)s: "
"%(exc)s"
msgstr ""
-#: ipalib/errors.py:1213
+#: ipalib/errors.py:1216
#, python-format
msgid "no command nor help topic %(topic)r"
msgstr ""
-#: ipalib/errors.py:1237
+#: ipalib/errors.py:1240
msgid "change collided with another change"
msgstr ""
-#: ipalib/errors.py:1253
+#: ipalib/errors.py:1256
msgid "no modifications to be performed"
msgstr ""
-#: ipalib/errors.py:1269
+#: ipalib/errors.py:1272
#, python-format
msgid "%(desc)s: %(info)s"
msgstr ""
-#: ipalib/errors.py:1285
+#: ipalib/errors.py:1288
msgid "limits exceeded for this query"
msgstr ""
-#: ipalib/errors.py:1300
+#: ipalib/errors.py:1303
#, python-format
msgid "%(info)s"
msgstr ""
-#: ipalib/errors.py:1315
+#: ipalib/errors.py:1318
msgid "modifying primary key is not allowed"
msgstr ""
-#: ipalib/errors.py:1331
+#: ipalib/errors.py:1334
#, python-format
msgid "%(attr)s: Only one value allowed."
msgstr ""
-#: ipalib/errors.py:1347
+#: ipalib/errors.py:1350
#, python-format
msgid "%(attr)s: Invalid syntax."
msgstr ""
-#: ipalib/errors.py:1363
+#: ipalib/errors.py:1366
#, python-format
msgid "Bad search filter %(info)s"
msgstr ""
-#: ipalib/errors.py:1388
+#: ipalib/errors.py:1391
#, python-format
msgid "Certificate operation cannot be completed: %(error)s"
msgstr ""
-#: ipalib/errors.py:1404
+#: ipalib/errors.py:1407
#, python-format
msgid "Certificate format error: %(error)s"
msgstr ""
-#: ipalib/errors.py:1455
+#: ipalib/errors.py:1458
msgid "Already registered"
msgstr ""
-#: ipalib/errors.py:1471
+#: ipalib/errors.py:1474
msgid "Not registered yet"
msgstr ""
-#: ipalib/frontend.py:399
+#: ipalib/frontend.py:398
msgid "Results are truncated, try a more specific search"
msgstr ""
-#: ipalib/frontend.py:851
+#: ipalib/frontend.py:850
msgid ""
"Retrieve and print all attributes from the server. Affects command output."
msgstr ""
-#: ipalib/frontend.py:857
+#: ipalib/frontend.py:856
msgid "Print entries as stored on the server. Only affects output format."
msgstr ""
-#: ipalib/frontend.py:986
+#: ipalib/frontend.py:985
msgid "Forward to server instead of running locally"
msgstr ""
@@ -7006,83 +7118,93 @@ msgstr ""
msgid "must be an integer"
msgstr ""
-#: ipalib/parameters.py:1053
+#: ipalib/parameters.py:1054
#, python-format
msgid "must be at least %(minvalue)d"
msgstr ""
-#: ipalib/parameters.py:1063
+#: ipalib/parameters.py:1064
#, python-format
msgid "can be at most %(maxvalue)d"
msgstr ""
-#: ipalib/parameters.py:1073
+#: ipalib/parameters.py:1074
msgid "must be a decimal number"
msgstr ""
-#: ipalib/parameters.py:1095
+#: ipalib/parameters.py:1097
#, python-format
msgid "must be at least %(minvalue)f"
msgstr ""
-#: ipalib/parameters.py:1105
+#: ipalib/parameters.py:1107
#, python-format
msgid "can be at most %(maxvalue)f"
msgstr ""
-#: ipalib/parameters.py:1169
+#: ipalib/parameters.py:1174
#, python-format
msgid "must match pattern \"%(pattern)s\""
msgstr ""
-#: ipalib/parameters.py:1187
+#: ipalib/parameters.py:1192
msgid "must be binary data"
msgstr ""
-#: ipalib/parameters.py:1203
+#: ipalib/parameters.py:1208
#, python-format
msgid "must be at least %(minlength)d bytes"
msgstr ""
-#: ipalib/parameters.py:1213
+#: ipalib/parameters.py:1218
#, python-format
msgid "can be at most %(maxlength)d bytes"
msgstr ""
-#: ipalib/parameters.py:1223
+#: ipalib/parameters.py:1228
#, python-format
msgid "must be exactly %(length)d bytes"
msgstr ""
-#: ipalib/parameters.py:1241
+#: ipalib/parameters.py:1246
msgid "must be Unicode text"
msgstr ""
-#: ipalib/parameters.py:1272
+#: ipalib/parameters.py:1277
#, python-format
msgid "must be at least %(minlength)d characters"
msgstr ""
-#: ipalib/parameters.py:1282
+#: ipalib/parameters.py:1287
#, python-format
msgid "can be at most %(maxlength)d characters"
msgstr ""
-#: ipalib/parameters.py:1292
+#: ipalib/parameters.py:1297
#, python-format
msgid "must be exactly %(length)d characters"
msgstr ""
-#: ipalib/parameters.py:1310
+#: ipalib/parameters.py:1315
#, python-format
msgid "The character '%(char)r' is not allowed."
msgstr ""
-#: ipalib/parameters.py:1350
+#: ipalib/parameters.py:1355
#, python-format
msgid "must be one of %(values)r"
msgstr ""
+#: ipalib/util.py:200
+#, python-format
+msgid "Permission denied: %(file)s"
+msgstr ""
+
+#: ipalib/x509.py:174
+#, python-format
+msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
+msgstr ""
+
#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
#: ipaserver/plugins/dogtag.py:1600
@@ -7140,13 +7262,18 @@ msgstr ""
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:75
+#: ipa-client/config.c:68
+#, c-format
+msgid "out of memory\n"
+msgstr ""
+
+#: ipa-client/config.c:79
#, c-format
msgid "read error\n"
msgstr ""
#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
-#: ipa-client/ipa-rmkeytab.c:182
+#: ipa-client/ipa-rmkeytab.c:190
#, c-format
msgid "Kerberos context initialization failed\n"
msgstr ""
@@ -7193,9 +7320,9 @@ msgid "Failed to create key!\n"
msgstr ""
#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
-#: ipa-client/ipa-join.c:413 ipa-client/ipa-join.c:422
-#: ipa-client/ipa-join.c:559 ipa-client/ipa-join.c:747
-#: ipa-client/ipa-join.c:815
+#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
+#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
+#: ipa-client/ipa-join.c:819
#, c-format
msgid "Out of memory!\n"
msgstr ""
@@ -7290,19 +7417,19 @@ msgstr ""
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:163
+#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:164
+#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:166
+#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:166
+#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
@@ -7419,330 +7546,335 @@ msgstr ""
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:193
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:200
+#: ipa-client/ipa-join.c:204
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:206
+#: ipa-client/ipa-join.c:210
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:212
+#: ipa-client/ipa-join.c:216
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:232
+#: ipa-client/ipa-join.c:236
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:265
+#: ipa-client/ipa-join.c:269
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:275 ipa-client/ipa-join.c:327
+#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:318
+#: ipa-client/ipa-join.c:322
#, c-format
msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:386
+#: ipa-client/ipa-join.c:390
#, c-format
msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:395
+#: ipa-client/ipa-join.c:399
#, c-format
msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:403
+#: ipa-client/ipa-join.c:407
#, c-format
msgid "Unable to make an LDAP connection to %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:428
+#: ipa-client/ipa-join.c:432
#, c-format
msgid "Searching with %s in %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:434
+#: ipa-client/ipa-join.c:438
#, c-format
msgid "ldap_search_ext_s: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:442
+#: ipa-client/ipa-join.c:446
#, c-format
msgid "Unable to find host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:449
+#: ipa-client/ipa-join.c:453
#, c-format
msgid "Unable to get binddn for host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:462
+#: ipa-client/ipa-join.c:466
#, c-format
msgid "Host already has principal, trying bind anyway\n"
msgstr ""
-#: ipa-client/ipa-join.c:476 ipa-client/ipa-join.c:629
+#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:480
+#: ipa-client/ipa-join.c:484
#, c-format
msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:491
+#: ipa-client/ipa-join.c:495
#, c-format
msgid "principal not found in host entry\n"
msgstr ""
-#: ipa-client/ipa-join.c:614
+#: ipa-client/ipa-join.c:618
#, c-format
msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:695 ipa-client/ipa-join.c:896
+#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:911
+#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:720 ipa-client/ipa-join.c:921
+#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:728
+#: ipa-client/ipa-join.c:732
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:737
+#: ipa-client/ipa-join.c:741
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:755
+#: ipa-client/ipa-join.c:759
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:773
+#: ipa-client/ipa-join.c:777
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:784
+#: ipa-client/ipa-join.c:788
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:792
+#: ipa-client/ipa-join.c:796
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:842
+#: ipa-client/ipa-join.c:846
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:845
+#: ipa-client/ipa-join.c:849
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:850
+#: ipa-client/ipa-join.c:854
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:928
+#: ipa-client/ipa-join.c:932
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:936
+#: ipa-client/ipa-join.c:940
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not "
"provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:950
+#: ipa-client/ipa-join.c:954
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:979
+#: ipa-client/ipa-join.c:983
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:982
+#: ipa-client/ipa-join.c:986
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:985
+#: ipa-client/ipa-join.c:989
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:997
+#: ipa-client/ipa-join.c:1001
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1003
+#: ipa-client/ipa-join.c:1007
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1038
+#: ipa-client/ipa-join.c:1042
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1040
+#: ipa-client/ipa-join.c:1044
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1046
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1044
+#: ipa-client/ipa-join.c:1048
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1044 ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1046
+#: ipa-client/ipa-join.c:1050
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1052
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1048
+#: ipa-client/ipa-join.c:1052
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1054
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1050
+#: ipa-client/ipa-join.c:1054
msgid "password"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:42
+#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:44
+#: ipa-client/ipa-rmkeytab.c:45
#, c-format
msgid "krb5_parse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:54
+#: ipa-client/ipa-rmkeytab.c:55
#, c-format
msgid "Removing principal %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:67
+#: ipa-client/ipa-rmkeytab.c:68
#, c-format
msgid "Failed to open keytab\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:71
+#: ipa-client/ipa-rmkeytab.c:72
#, c-format
msgid "principal not found\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:73
+#: ipa-client/ipa-rmkeytab.c:74
#, c-format
msgid "krb5_kt_get_entry %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:81
+#: ipa-client/ipa-rmkeytab.c:82
#, c-format
msgid "Unable to remove entry\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:83
+#: ipa-client/ipa-rmkeytab.c:84
#, c-format
msgid "kvno %d\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:84
+#: ipa-client/ipa-rmkeytab.c:85
#, c-format
msgid "krb5_kt_remove_entry %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:117
+#: ipa-client/ipa-rmkeytab.c:119
#, c-format
msgid "Unable to parse principal\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:119
+#: ipa-client/ipa-rmkeytab.c:121
#, c-format
msgid "krb5_unparse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:161
+#: ipa-client/ipa-rmkeytab.c:143
+#, c-format
+msgid "realm not found\n"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Print debugging information"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:161
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Debugging output"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:168
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Remove all principals in this realm"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:168
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Realm name"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:222 ipa-client/ipa-rmkeytab.c:229
+#: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237
#, c-format
msgid "Failed to open keytab '%s': %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:245
+#: ipa-client/ipa-rmkeytab.c:253
#, c-format
msgid "Closing keytab failed\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:247
+#: ipa-client/ipa-rmkeytab.c:255
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
diff --git a/install/po/it.po b/install/po/it.po
index 4795a2ea7..d78a55539 100644
--- a/install/po/it.po
+++ b/install/po/it.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: ipa\n"
"Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/"
"newticket\n"
-"POT-Creation-Date: 2010-10-13 14:22-0400\n"
+"POT-Creation-Date: 2011-06-06 13:27-0400\n"
"PO-Revision-Date: 2010-09-27 10:25-0400\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -18,1507 +18,4745 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ipalib/cli.py:507
-#, python-format
-msgid "Enter %(label)s again to verify: "
+#: ipalib/plugins/__init__.py:20
+msgid ""
+"\n"
+"Sub-package containing all core plugins.\n"
msgstr ""
-#: ipalib/cli.py:511 ipa-client/ipa-getkeytab.c:730
-#, c-format
-msgid "Passwords do not match!"
+#: ipalib/plugins/aci.py:20
+msgid ""
+"\n"
+"Directory Server Access Control Instructions (ACIs)\n"
+"\n"
+"ACIs are used to allow or deny access to information. This module is\n"
+"currently designed to allow, not deny, access.\n"
+"\n"
+"The aci commands are designed to grant permissions that allow updating\n"
+"existing entries or adding or deleting new ones. The goal of the ACIs\n"
+"that ship with IPA is to provide a set of low-level permissions that\n"
+"grant access to special groups called taskgroups. These low-level\n"
+"permissions can be combined into roles that grant broader access. These\n"
+"roles are another type of group, roles.\n"
+"\n"
+"For example, if you have taskgroups that allow adding and modifying users "
+"you\n"
+"could create a role, useradmin. You would assign users to the useradmin\n"
+"role to allow them to do the operations defined by the taskgroups.\n"
+"\n"
+"You can create ACIs that delegate permission so users in group A can write\n"
+"attributes on group B.\n"
+"\n"
+"The type option is a map that applies to all entries in the users, groups "
+"or\n"
+"host location. It is primarily designed to be used when granting add\n"
+"permissions (to write new entries).\n"
+"\n"
+"An ACI consists of three parts:\n"
+"1. target\n"
+"2. permissions\n"
+"3. bind rules\n"
+"\n"
+"The target is a set of rules that define which LDAP objects are being\n"
+"targeted. This can include a list of attributes, an area of that LDAP\n"
+"tree or an LDAP filter.\n"
+"\n"
+"The targets include:\n"
+"- attrs: list of attributes affected\n"
+"- type: an object type (user, group, host, service, etc)\n"
+"- memberof: members of a group\n"
+"- targetgroup: grant access to modify a specific group. This is primarily\n"
+" designed to enable users to add or remove members of a specific group.\n"
+"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
+"- subtree: Used to apply a rule across an entire set of objects. For "
+"example,\n"
+" to allow adding users you need to grant \"add\" permission to the subtree\n"
+" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
+" is a fail-safe for objects that may not be covered by the type option.\n"
+"\n"
+"The permissions define what the the ACI is allowed to do, and are one or\n"
+"more of:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
+"allows this to be any valid LDAP entry but we encourage the use of\n"
+"taskgroups so that the rights can be easily shared through roles.\n"
+"\n"
+"For a more thorough description of access controls see\n"
+"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control."
+"html\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
+"demonstrate how the various options work but this is done via the "
+"permission\n"
+"command-line now (see last example).\n"
+"\n"
+" Add an ACI so that the group \"secretaries\" can update the address on any "
+"user:\n"
+" ipa group-add --desc=\"Office secretaries\" secretaries\n"
+" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries "
+"--permissions=write --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Show the new ACI:\n"
+" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Add an ACI that allows members of the \"addusers\" permission to add new "
+"users:\n"
+" ipa aci-add --type=user --permission=addusers --permissions=add --"
+"prefix=none \"Add new users\"\n"
+"\n"
+" Add an ACI that allows members of the editors manage members of the admins "
+"group:\n"
+" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --"
+"group=editors --prefix=none \"Editors manage admins\"\n"
+"\n"
+" Add an ACI that allows members of the admin group to manage the street and "
+"zip code of those in the editors group:\n"
+" ipa aci-add --permissions=write --memberof=editors --group=admins --"
+"attrs=street,postalcode --prefix=none \"admins edit the address of editors"
+"\"\n"
+"\n"
+" Add an ACI that allows the admins group manage the street and zipcode of "
+"those who work for the boss:\n"
+" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode "
+"--filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --"
+"prefix=none \"Edit the address of those who work for the boss\"\n"
+"\n"
+" Add an entirely new kind of record to IPA that isn't covered by any of the "
+"--type options, creating a permission:\n"
+" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,"
+"cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
+"\n"
+"\n"
+"The show command shows the raw 389-ds ACI.\n"
+"\n"
+"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
+"must include all existing attributes as well. When doing an aci-mod the\n"
+"targetattr REPLACES the current attributes, it does not add to them.\n"
+"\n"
msgstr ""
-#: ipalib/cli.py:516
-msgid "Cancelled."
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
-#: ipalib/errors.py:297
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+#: ipalib/plugins/aci.py:172
+msgid ""
+"\n"
+" Given a name and a prefix construct an ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:315
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
+#: ipalib/plugins/aci.py:181
+msgid ""
+"\n"
+" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
+" and the actual ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:331
-msgid "an internal error has occurred"
+#: ipalib/plugins/aci.py:193
+msgid ""
+"\n"
+" Pull the group name out of a memberOf filter\n"
+" "
msgstr ""
-#: ipalib/errors.py:353
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
+#: ipalib/plugins/aci.py:204
+msgid ""
+"\n"
+" Given a name and a set of keywords construct an ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:369
-#, python-format
-msgid "unknown command %(name)r"
+#: ipalib/plugins/aci.py:215
+msgid "type, filter, subtree and targetgroup are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:386 ipalib/errors.py:411
-#, python-format
-msgid "error on server %(server)r: %(error)s"
+#: ipalib/plugins/aci.py:218
+msgid "ACI prefix is required"
msgstr ""
-#: ipalib/errors.py:402
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+#: ipalib/plugins/aci.py:221
+msgid ""
+"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
+"required"
msgstr ""
-#: ipalib/errors.py:420
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
+#: ipalib/plugins/aci.py:224
+msgid "filter and memberof are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:448
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
+#: ipalib/plugins/aci.py:230
+msgid "group, permission and self are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:465
-msgid "did not receive Kerberos credentials"
+#: ipalib/plugins/aci.py:232
+msgid "One of group, permission or self is required"
msgstr ""
-#: ipalib/errors.py:481
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
+#: ipalib/plugins/aci.py:251
+msgid "Group '%s' does not exist"
msgstr ""
-#: ipalib/errors.py:497
-msgid "No credentials cache found"
+#: ipalib/plugins/aci.py:273
+msgid "empty filter"
msgstr ""
-#: ipalib/errors.py:513
-msgid "Ticket expired"
+#: ipalib/plugins/aci.py:294
+msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/errors.py:529
-msgid "Credentials cache permissions incorrect"
+#: ipalib/plugins/aci.py:299
+msgid ""
+"Convert an ACI into its equivalent keywords.\n"
+"\n"
+" This is used for the modify operation so we can merge the\n"
+" incoming kw and existing ACI and pass the result to\n"
+" _make_aci().\n"
+" "
msgstr ""
-#: ipalib/errors.py:545
-msgid "Bad format in credentials cache"
+#: ipalib/plugins/aci.py:379
+msgid "ACI with name \"%s\" not found"
msgstr ""
-#: ipalib/errors.py:561
-msgid "Cannot resolve KDC for requested realm"
+#: ipalib/plugins/aci.py:400
+msgid "ACI prefix"
msgstr ""
-#: ipalib/errors.py:580
-#, python-format
-msgid "Insufficient access: %(info)s"
+#: ipalib/plugins/aci.py:401
+msgid ""
+"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
+"none)"
msgstr ""
-#: ipalib/errors.py:624
-#, python-format
-msgid "command %(name)r takes no arguments"
+#: ipalib/plugins/aci.py:407
+msgid ""
+"\n"
+" ACI object.\n"
+" "
msgstr ""
-#: ipalib/errors.py:644
-#, python-format
-msgid "command %(name)r takes at most %(count)d argument"
-msgid_plural "command %(name)r takes at most %(count)d arguments"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/aci.py:412
+msgid "ACIs"
+msgstr ""
-#: ipalib/errors.py:674
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
+#: ipalib/plugins/aci.py:417
+msgid "ACI name"
msgstr ""
-#: ipalib/errors.py:690
-#, python-format
-msgid "%(name)r is required"
+#: ipalib/plugins/aci.py:422
+msgid "Permission"
msgstr ""
-#: ipalib/errors.py:706 ipalib/errors.py:722
-#, python-format
-msgid "invalid %(name)r: %(error)s"
+#: ipalib/plugins/aci.py:423
+msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/errors.py:738
-#, python-format
-msgid "api has no such namespace: %(name)r"
+#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+msgid "User group"
msgstr ""
-#: ipalib/errors.py:747
-msgid "Passwords do not match"
+#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/errors.py:755
-msgid "Command not implemented"
+#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
+#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
+#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+msgid "Permissions"
msgstr ""
-#: ipalib/errors.py:783 ipalib/errors.py:1023 ipalib/errors.py:1254
-#, python-format
-msgid "%(reason)s"
+#: ipalib/plugins/aci.py:433
+msgid ""
+"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/errors.py:799
-msgid "This entry already exists"
+#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
+#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+msgid "Attributes"
msgstr ""
-#: ipalib/errors.py:815
-msgid "You must enroll a host in order to create a host service"
+#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
+#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/errors.py:831
-#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
+#: ipalib/plugins/permission.py:131
+msgid "Type"
msgstr ""
-#: ipalib/errors.py:847
-msgid ""
-"The realm for the principal does not match the realm for this IPA server"
+#: ipalib/plugins/aci.py:445
+msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/errors.py:863
-msgid "This command requires root access"
+#: ipalib/plugins/aci.py:450
+msgid "Member of"
msgstr ""
-#: ipalib/errors.py:879
-msgid "This is already a posix group"
+#: ipalib/plugins/aci.py:451
+msgid "Member of a group"
msgstr ""
-#: ipalib/errors.py:895
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
+#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
+#: ipalib/plugins/permission.py:144
+msgid "Filter"
msgstr ""
-#: ipalib/errors.py:911
-msgid "This entry is already unlocked"
+#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/errors.py:927
-msgid "This entry is already locked"
+#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+msgid "Subtree"
msgstr ""
-#: ipalib/errors.py:943
-msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
+#: ipalib/plugins/aci.py:461
+msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/errors.py:959
-msgid "This entry is not a member of the group"
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+msgid "Target group"
msgstr ""
-#: ipalib/errors.py:975
-msgid "A group may not be a member of itself"
+#: ipalib/plugins/aci.py:466
+msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/errors.py:991
-msgid "This entry is already a member of the group"
+#: ipalib/plugins/aci.py:470
+msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/errors.py:1007
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
+#: ipalib/plugins/aci.py:471
+msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/errors.py:1039
-msgid "A group may not be added as a member of itself"
+#: ipalib/plugins/aci.py:478
+msgid ""
+"\n"
+" Create new ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1055
-msgid "The default users group cannot be removed"
+#: ipalib/plugins/aci.py:482
+msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1071
-msgid "Host does not have corresponding DNS A record"
+#: ipalib/plugins/aci.py:487
+msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/errors.py:1086
-msgid "Deleting a managed group is not allowed. It must be detached first."
+#: ipalib/plugins/aci.py:493
+msgid ""
+"\n"
+" Execute the aci-create operation.\n"
+"\n"
+" Returns the entry as it will be created in LDAP.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: Keyword arguments for the other LDAP attributes.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1109
-#, python-format
-msgid "no command nor help topic %(topic)r"
+#: ipalib/plugins/aci.py:533
+msgid ""
+"\n"
+" Delete ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1133
-msgid "change collided with another change"
+#: ipalib/plugins/aci.py:538
+msgid "Deleted ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1149
-msgid "no modifications to be performed"
+#: ipalib/plugins/aci.py:543
+msgid ""
+"\n"
+" Execute the aci-delete operation.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/errors.py:1165
-#, python-format
-msgid "%(desc)s:%(info)s"
+#: ipalib/plugins/aci.py:576
+msgid ""
+"\n"
+" Modify ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1181
-msgid "limits exceeded for this query"
+#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
+#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
+#: ipalib/plugins/selfservice.py:212
+msgid "ACI"
msgstr ""
-#: ipalib/errors.py:1196
-#, python-format
-msgid "%(info)s"
+#: ipalib/plugins/aci.py:588
+msgid "Modified ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1221
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
+#: ipalib/plugins/aci.py:633
+msgid ""
+"\n"
+" Search for ACIs.\n"
+"\n"
+" Returns a list of ACIs\n"
+"\n"
+" EXAMPLES:\n"
+"\n"
+" To find all ACIs that apply directly to members of the group ipausers:\n"
+" ipa aci-find --memberof=ipausers\n"
+"\n"
+" To find all ACIs that grant add access:\n"
+" ipa aci-find --permissions=add\n"
+"\n"
+" Note that the find command only looks for the given text in the set of\n"
+" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
+" For example, searching on memberof=ipausers will find all ACIs that\n"
+" have ipausers as a memberof. There may be other ACIs that apply to\n"
+" members of that group indirectly.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:653
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/aci.py:823
+msgid ""
+"\n"
+" Display a single ACI given an ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1237
-#, python-format
-msgid "Certificate format error: %(error)s"
+#: ipalib/plugins/aci.py:837
+msgid ""
+"\n"
+" Execute the aci-show operation.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param uid: The login name of the user to retrieve.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/frontend.py:380
-msgid "Results are truncated, try a more specific search"
+#: ipalib/plugins/aci.py:865
+msgid ""
+"\n"
+" Rename an ACI.\n"
+" "
msgstr ""
-#: ipalib/frontend.py:797 ipalib/plugins/misc.py:47
-msgid "retrieve all attributes"
+#: ipalib/plugins/aci.py:878
+msgid "New ACI name"
msgstr ""
-#: ipalib/frontend.py:803
-msgid "print entries as stored on the server"
+#: ipalib/plugins/aci.py:882
+msgid "Renamed ACI to \"%(value)s\""
msgstr ""
-#: ipalib/frontend.py:940
-msgid "Forward to server instead of running locally"
+#: ipalib/plugins/automount.py:20
+msgid ""
+"\n"
+"Automount\n"
+"\n"
+"Stores automount(8) configuration for autofs(8) in IPA.\n"
+"\n"
+"The base of an automount configuration is the configuration file auto."
+"master.\n"
+"This is also the base location in IPA. Multiple auto.master configurations\n"
+"can be stored in separate locations. A location is implementation-specific\n"
+"with the default being a location named 'default'. For example, you can "
+"have\n"
+"locations by geographic region, by floor, by type, etc.\n"
+"\n"
+"Automount has three basic object types: locations, maps and keys.\n"
+"\n"
+"A location defines a set of maps anchored in auto.master. This allows you\n"
+"to store multiple automount configurations. A location in itself isn't\n"
+"very interesting, it is just a point to start a new automount map.\n"
+"\n"
+"A map is roughly equivalent to a discrete automount file and provides\n"
+"storage for keys.\n"
+"\n"
+"A key is a mount point associated with a map.\n"
+"\n"
+"When a new location is created, two maps are automatically created for\n"
+"it: auto.master and auto.direct. auto.master is the root map for all\n"
+"automount maps for the location. auto.direct is the default map for\n"
+"direct mounts and is mounted on /-.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"Locations:\n"
+"\n"
+" Create a named location, \"Baltimore\":\n"
+" ipa automountlocation-add baltimore\n"
+"\n"
+" Display the new location:\n"
+" ipa automountlocation-show baltimore\n"
+"\n"
+" Find available locations:\n"
+" ipa automountlocation-find\n"
+"\n"
+" Remove a named automount location:\n"
+" ipa automountlocation-del baltimore\n"
+"\n"
+" Show what the automount maps would look like if they were in the "
+"filesystem:\n"
+" ipa automountlocation-tofiles baltimore\n"
+"\n"
+" Import an existing configuration into a location:\n"
+" ipa automountlocation-import baltimore /etc/auto.master\n"
+"\n"
+" The import will fail if any duplicate entries are found. For\n"
+" continuous operation where errors are ignored, use the --continue\n"
+" option.\n"
+"\n"
+"Maps:\n"
+"\n"
+" Create a new map, \"auto.share\":\n"
+" ipa automountmap-add baltimore auto.share\n"
+"\n"
+" Display the new map:\n"
+" ipa automountmap-show baltimore auto.share\n"
+"\n"
+" Find maps in the location baltimore:\n"
+" ipa automountmap-find baltimore\n"
+"\n"
+" Remove the auto.share map:\n"
+" ipa automountmap-del baltimore auto.share\n"
+"\n"
+"Keys:\n"
+"\n"
+" Create a new key for the auto.share map in location baltimore. This ties\n"
+" the map we previously created to auto.master:\n"
+" ipa automountkey-add baltimore auto.master --key=/share --info=auto."
+"share\n"
+"\n"
+" Create a new key for our auto.share map, an NFS mount for man pages:\n"
+" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,"
+"rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n"
+"\n"
+" Find all keys for the auto.share map:\n"
+" ipa automountkey-find baltimore auto.share\n"
+"\n"
+" Find all direct automount keys:\n"
+" ipa automountkey-find baltimore --key=/-\n"
+"\n"
+" Remove the man key from the auto.share map:\n"
+" ipa automountkey-del baltimore auto.share --key=man\n"
+msgstr ""
+
+#: ipalib/plugins/automount.py:182
+msgid ""
+"\n"
+" Location container for automount maps.\n"
+" "
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
+#: ipalib/plugins/automount.py:190
+msgid "Automount Locations"
msgstr ""
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
+#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+msgid "Location"
msgstr ""
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
+#: ipalib/plugins/automount.py:197
+msgid "Automount location name."
msgstr ""
-#: ipalib/parameters.py:295
-msgid "incorrect type"
+#: ipalib/plugins/automount.py:206
+msgid ""
+"\n"
+" Create a new automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:298
-msgid "Only one value is allowed"
+#: ipalib/plugins/automount.py:221
+msgid ""
+"\n"
+" Delete an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:877
-msgid "must be True or False"
+#: ipalib/plugins/automount.py:229
+msgid ""
+"\n"
+" Display an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:978
-msgid "must be an integer"
+#: ipalib/plugins/automount.py:237
+msgid ""
+"\n"
+" Search for an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1029
-#, python-format
-msgid "must be at least %(minvalue)d"
+#: ipalib/plugins/automount.py:245
+msgid ""
+"\n"
+" Generate automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1039
-#, python-format
-msgid "can be at most %(maxvalue)d"
+#: ipalib/plugins/automount.py:308
+msgid ""
+"\n"
+" Import automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1049
-msgid "must be a decimal number"
+#: ipalib/plugins/automount.py:314
+msgid "Master file"
msgstr ""
-#: ipalib/parameters.py:1071
-#, python-format
-msgid "must be at least %(minvalue)f"
+#: ipalib/plugins/automount.py:315
+msgid "Automount master file."
msgstr ""
-#: ipalib/parameters.py:1081
-#, python-format
-msgid "can be at most %(maxvalue)f"
+#: ipalib/plugins/automount.py:322
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/parameters.py:1145
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
+#: ipalib/plugins/automount.py:334
+msgid "File %(file)s not found"
msgstr ""
-#: ipalib/parameters.py:1163
-msgid "must be binary data"
+#: ipalib/plugins/automount.py:341
+msgid ""
+"\n"
+" The basic idea is to read the master file and create all the maps\n"
+" we need, then read each map file and add all the keys for the map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1179
-#, python-format
-msgid "must be at least %(minlength)d bytes"
+#: ipalib/plugins/automount.py:492
+msgid ""
+"\n"
+" Automount map object.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1189
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
+#: ipalib/plugins/automount.py:505
+msgid "Map"
msgstr ""
-#: ipalib/parameters.py:1199
-#, python-format
-msgid "must be exactly %(length)d bytes"
+#: ipalib/plugins/automount.py:506
+msgid "Automount map name."
msgstr ""
-#: ipalib/parameters.py:1217
-msgid "must be Unicode text"
+#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
+#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
+#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
+#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
+#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
+#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
+#: ipalib/plugins/sudorule.py:78
+msgid "Description"
msgstr ""
-#: ipalib/parameters.py:1248
-#, python-format
-msgid "must be at least %(minlength)d characters"
+#: ipalib/plugins/automount.py:515
+msgid "Automount Maps"
msgstr ""
-#: ipalib/parameters.py:1258
-#, python-format
-msgid "can be at most %(maxlength)d characters"
+#: ipalib/plugins/automount.py:521
+msgid ""
+"\n"
+" Create a new automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1268
-#, python-format
-msgid "must be exactly %(length)d characters"
+#: ipalib/plugins/automount.py:529
+msgid ""
+"\n"
+" Delete an automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1307
-#, python-format
-msgid "must be one of %(values)r"
+#: ipalib/plugins/automount.py:548
+msgid ""
+"\n"
+" Modify an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:111
-msgid "A list of ACI values"
+#: ipalib/plugins/automount.py:556
+msgid ""
+"\n"
+" Search for an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:142
-msgid "type, filter, subtree and targetgroup are mutually exclusive"
+#: ipalib/plugins/automount.py:564
+msgid ""
+"\n"
+" Display an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:145
+#: ipalib/plugins/automount.py:572
msgid ""
-"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
-"required"
+"\n"
+" Automount key object.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:151
-msgid "group, taskgroup and self are mutually exclusive"
+#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
+#: ipalib/plugins/automount.py:850
+msgid "Key"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "One of group, taskgroup or self is required"
+#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
+#: ipalib/plugins/automount.py:851
+msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/aci.py:172
-#, python-format
-msgid "Group '%s' does not exist"
+#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
+#: ipalib/plugins/automount.py:855
+msgid "Mount information"
msgstr ""
-#: ipalib/plugins/aci.py:269
-#, python-format
-msgid "ACI with name \"%s\" not found"
+#: ipalib/plugins/automount.py:597
+msgid "description"
msgstr ""
-#: ipalib/plugins/aci.py:286
-msgid "ACIs"
+#: ipalib/plugins/automount.py:606
+msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/aci.py:291
-msgid "ACI name"
+#: ipalib/plugins/automount.py:607
+msgid ""
+"The key,info pair must be unique. A key named %(key)s with info %(info)s "
+"already exists"
msgstr ""
-#: ipalib/plugins/aci.py:296
-msgid "Taskgroup"
+#: ipalib/plugins/automount.py:608
+msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/aci.py:297
-msgid "Taskgroup ACI grants access to"
+#: ipalib/plugins/automount.py:609
+msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/aci.py:301
-msgid "User group"
+#: ipalib/plugins/automount.py:659
+msgid ""
+"More than one entry with key %(key)s found, use --info to select specific "
+"entry."
msgstr ""
-#: ipalib/plugins/aci.py:302
-msgid "User group ACI grants access to"
+#: ipalib/plugins/automount.py:717
+msgid ""
+"\n"
+" Create a new automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:306
-msgid "Permissions"
+#: ipalib/plugins/automount.py:742
+msgid ""
+"\n"
+" Create a new indirect mount point.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:748
+msgid "Mount point"
+msgstr ""
+
+#: ipalib/plugins/automount.py:752
+msgid "Parent map"
msgstr ""
-#: ipalib/plugins/aci.py:307
+#: ipalib/plugins/automount.py:753
+msgid "Name of parent automount map (default: auto.master)."
+msgstr ""
+
+#: ipalib/plugins/automount.py:772
msgid ""
-"comma-separated list of permissions to grant(read, write, add, delete, all)"
+"\n"
+" Delete an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:313
-msgid "Attributes"
+#: ipalib/plugins/automount.py:803
+msgid ""
+"\n"
+" Modify an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:314
-msgid "Comma-separated list of attributes"
+#: ipalib/plugins/automount.py:809
+msgid "New mount information"
msgstr ""
-#: ipalib/plugins/aci.py:318
-msgid "Type"
+#: ipalib/plugins/automount.py:836
+msgid ""
+"\n"
+" Search for an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:319
-msgid "type of IPA object (user, group, host)"
+#: ipalib/plugins/automount.py:844
+msgid ""
+"\n"
+" Display an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:324
-msgid "Member of"
+#: ipalib/plugins/baseldap.py:19
+msgid ""
+"\n"
+"Base classes for LDAP plugins.\n"
msgstr ""
-#: ipalib/plugins/aci.py:325
-msgid "Member of a group"
+#: ipalib/plugins/baseldap.py:39
+msgid "Failed members"
msgstr ""
-#: ipalib/plugins/aci.py:329
-msgid "Filter"
+#: ipalib/plugins/baseldap.py:42
+msgid "Member users"
msgstr ""
-#: ipalib/plugins/aci.py:330
-msgid "Legal LDAP filter (e.g. ou=Engineering)"
+#: ipalib/plugins/baseldap.py:45
+msgid "Member groups"
msgstr ""
-#: ipalib/plugins/aci.py:334
-msgid "Subtree"
+#: ipalib/plugins/baseldap.py:48
+msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/aci.py:335
-msgid "Subtree to apply ACI to"
+#: ipalib/plugins/baseldap.py:51
+msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/aci.py:339
-msgid "Target group"
+#: ipalib/plugins/baseldap.py:54
+msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:340
-msgid "Group to apply ACI to"
+#: ipalib/plugins/baseldap.py:57
+msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:344
-msgid "Target your own entry (self)"
+#: ipalib/plugins/baseldap.py:66
+msgid "Roles"
msgstr ""
-#: ipalib/plugins/aci.py:345
-msgid "Apply ACI to your own entry (self)"
+#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
+#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
+#: ipalib/plugins/sudorule.py:143
+msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/aci.py:357
-#, python-format
-msgid "Created ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:75
+msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/aci.py:407
-#, python-format
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:78
+msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:447
-#, python-format
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:81
+msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:519
-#, python-format
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/baseldap.py:84
+msgid "Member services"
+msgstr ""
-#: ipalib/plugins/automount.py:103
-msgid "Automount"
+#: ipalib/plugins/baseldap.py:87
+msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/automount.py:109 ipalib/plugins/host.py:134
-msgid "Location"
+#: ipalib/plugins/baseldap.py:93
+msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/automount.py:110
-msgid "Automount location name"
+#: ipalib/plugins/baseldap.py:102
+msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/automount.py:226
-msgid "Map"
+#: ipalib/plugins/baseldap.py:105
+msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/automount.py:227
-msgid "Automount map name"
+#: ipalib/plugins/baseldap.py:108
+msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/automount.py:232 ipalib/plugins/group.py:108
-#: ipalib/plugins/hbac.py:151 ipalib/plugins/hbacsvc.py:72
-#: ipalib/plugins/hbacsvcgroup.py:77 ipalib/plugins/host.py:124
-#: ipalib/plugins/hostgroup.py:81 ipalib/plugins/netgroup.py:96
-#: ipalib/plugins/rolegroup.py:90 ipalib/plugins/sudocmd.py:71
-#: ipalib/plugins/sudocmdgroup.py:77 ipalib/plugins/sudorule.py:58
-#: ipalib/plugins/taskgroup.py:62
-msgid "Description"
+#: ipalib/plugins/baseldap.py:111
+msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/automount.py:236
-msgid "Automount Maps"
+#: ipalib/plugins/baseldap.py:114
+msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid "Key"
+#: ipalib/plugins/baseldap.py:117
+msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/automount.py:309
-msgid "Automount key name"
+#: ipalib/plugins/baseldap.py:120
+msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/automount.py:314
-msgid "Mount information"
+#: ipalib/plugins/baseldap.py:123
+msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/automount.py:318
-msgid "description"
+#: ipalib/plugins/baseldap.py:126
+msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/automount.py:322
-msgid "Automount Keys"
+#: ipalib/plugins/baseldap.py:141
+msgid "External host"
msgstr ""
-#: ipalib/plugins/automount.py:342
-msgid "Mount point"
+#: ipalib/plugins/baseldap.py:144
+msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/automount.py:346
-msgid "Parent map"
+#: ipalib/plugins/baseldap.py:147
+msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/automount.py:347
-msgid "Name of parent automount map (default: auto.master)"
+#: ipalib/plugins/baseldap.py:150
+msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:79
-#, python-format
+#: ipalib/plugins/baseldap.py:153
+msgid "Failed to remove"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:171
+msgid ""
+"\n"
+" Given a list of values in the form name=value, return a list of name.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:197
+msgid ""
+"\n"
+" When adding or removing reverse members we are faking an update to\n"
+" object A by updating the member attribute in object B. The memberof\n"
+" plugin makes this work by adding or removing the memberof attribute\n"
+" to/from object A, it just takes a little bit of time.\n"
+"\n"
+" This will loop for 6+ seconds, retrieving object A so we can see\n"
+" if all the memberof attributes have been updated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:241
+msgid ""
+"\n"
+" Object representing a LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:281
+msgid "Entry"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:283
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:80
-#, python-format
+#: ipalib/plugins/baseldap.py:284
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
-#, python-format
+#: ipalib/plugins/baseldap.py:285
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
-msgid "Add an attribute/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:286
+msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:155
-msgid "Set an attribute to an name/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:415
+msgid ""
+"Add an attribute/value pair. Format is attr=value. The attribute must be "
+"part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:359
+#: ipalib/plugins/baseldap.py:420
+msgid ""
+"Set an attribute to a name/value pair. Format is attr=value.\n"
+"For multi-valued attributes, the command replaces the values already present."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:444
+msgid ""
+"\n"
+" If the set of objectclasses is limited enforce that only those\n"
+" are updated in entry_attrs (plus dn)\n"
+"\n"
+" allow_only tells us what mode to check in:\n"
+"\n"
+" If True then we enforce that the attributes must be in the list of\n"
+" allowed.\n"
+"\n"
+" If False then those attributes are not allowed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:474
+msgid ""
+"\n"
+" Callback registration interface\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:561
+msgid ""
+"\n"
+" Create a new entry in LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:703
+msgid ""
+"\n"
+" Base class for commands that need to retrieve an existing entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:727
+msgid ""
+"\n"
+" Base class for commands that need to retrieve one or more existing "
+"entries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:733
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:517
+#: ipalib/plugins/baseldap.py:750
+msgid ""
+"\n"
+" Retrieve an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
+#: ipalib/plugins/internal.py:232
+msgid "Rights"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+msgid ""
+"Display the access rights of this entry (requires --all). See ipa man page "
+"for details."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:821
+msgid ""
+"\n"
+" Update an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:837
+msgid "Rename"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:838
+msgid "Rename the %(ldap_obj_name)s object"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:957
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:674
+#: ipalib/plugins/baseldap.py:988
+msgid ""
+"\n"
+" Delete an LDAP entry and all of its direct subentries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1078
+msgid ""
+"\n"
+" Base class for member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1120
+msgid ""
+"\n"
+" Add other LDAP entries to members.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
+#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
+#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
msgid "Members that could not be added"
msgstr ""
-#: ipalib/plugins/baseldap.py:678
+#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:684 ipalib/plugins/baseldap.py:789
-msgid "Failed members"
+#: ipalib/plugins/baseldap.py:1226
+msgid ""
+"\n"
+" Remove LDAP entries from members.\n"
+" "
msgstr ""
-#: ipalib/plugins/baseldap.py:779
+#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:783
+#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:880
+#: ipalib/plugins/baseldap.py:1335
+msgid ""
+"\n"
+" Retrieve all LDAP entries matching the given criteria.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1344
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:881
+#: ipalib/plugins/baseldap.py:1345
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:887
+#: ipalib/plugins/baseldap.py:1351
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:888
+#: ipalib/plugins/baseldap.py:1352
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/cert.py:93
+#: ipalib/plugins/baseldap.py:1552
+msgid ""
+"\n"
+" Base class for reverse member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1574
+msgid ""
+"\n"
+" Add other LDAP entries to members in reverse.\n"
+"\n"
+" The call looks like \"add A to B\" but in fact executes\n"
+" add B to A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1654
+msgid "added"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1687
+msgid ""
+"\n"
+" Remove other LDAP entries from members in reverse.\n"
+"\n"
+" The call looks like \"remove A from B\" but in fact executes\n"
+" remove B from A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1767
+msgid "removed"
+msgstr ""
+
+#: ipalib/plugins/batch.py:21
+msgid ""
+"\n"
+"Plugin to make multiple ipa calls via one remote procedure call\n"
+"\n"
+"To run this code in the lite-server\n"
+"\n"
+"curl -H \"Content-Type:application/json\" -H \"Accept:application/"
+"json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /"
+"etc/ipa/ca.crt -d @batch_request.json -X POST http://"
+"localhost:8888/ipa/json\n"
+"\n"
+"where the contents of the file batch_request.json follow the below example\n"
+"\n"
+"{\"method\":\"batch\",\"params\":[[\n"
+" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
+" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all"
+"\":\"true\"}]},\n"
+" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
+" ],{}],\"id\":1}\n"
+"\n"
+"The format of the response is nested the same way. At the top you will see\n"
+" \"error\": null,\n"
+" \"id\": 1,\n"
+" \"result\": {\n"
+" \"count\": 3,\n"
+" \"results\": [\n"
+"\n"
+"\n"
+"And then a nested response for each IPA command method sent in the request\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/batch.py:61
+msgid "Nested Methods to execute"
+msgstr ""
+
+#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/plugins/cert.py:22
+msgid ""
+"\n"
+"IPA certificate operations\n"
+"\n"
+"Implements a set of commands for managing server SSL certificates.\n"
+"\n"
+"Certificate requests exist in the form of a Certificate Signing Request "
+"(CSR)\n"
+"in PEM format.\n"
+"\n"
+"If using the selfsign back end then the subject in the CSR needs to match\n"
+"the subject configured in the server. The dogtag CA uses just the CN\n"
+"value of the CSR and forces the rest of the subject.\n"
+"\n"
+"A certificate is stored with a service principal and a service principal\n"
+"needs a host.\n"
+"\n"
+"In order to request a certificate:\n"
+"\n"
+"* The host must exist\n"
+"* The service must exist (or you use the --add option to automatically add "
+"it)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Request a new certificate and add the principal:\n"
+" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n"
+"\n"
+" Retrieve an existing certificate:\n"
+" ipa cert-show 1032\n"
+"\n"
+" Revoke a certificate (see RFC 5280 for reason details):\n"
+" ipa cert-revoke --revocation-reason=6 1032\n"
+"\n"
+" Remove a certificate from revocation hold status:\n"
+" ipa cert-remove-hold 1032\n"
+"\n"
+" Check the status of a signing request:\n"
+" ipa cert-status 10\n"
+"\n"
+"IPA currently immediately issues (or declines) all certificate requests so\n"
+"the status of a request is not normally useful. This is for future use\n"
+"or the case where a CA does not immediately issue a certificate.\n"
+"\n"
+"The following revocation reasons are supported:\n"
+"\n"
+" * 0 - unspecified\n"
+" * 1 - keyCompromise\n"
+" * 2 - cACompromise\n"
+" * 3 - affiliationChanged\n"
+" * 4 - superseded\n"
+" * 5 - cessationOfOperation\n"
+" * 6 - certificateHold\n"
+" * 8 - removeFromCRL\n"
+" * 9 - privilegeWithdrawn\n"
+" * 10 - aACompromise\n"
+"\n"
+"Note that reason code 7 is not used. See RFC 5280 for more details:\n"
+"\n"
+"http://www.ietf.org/rfc/rfc5280.txt\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/cert.py:104
+msgid ""
+"\n"
+" Return the value of CN in the subject of the request or None\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:106 ipalib/plugins/cert.py:118
+#: ipalib/plugins/cert.py:115
+msgid ""
+"\n"
+" Return the first value of the subject alt name, if any\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:120
-#, python-format
+#: ipalib/plugins/cert.py:128
+msgid ""
+"\n"
+" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
+" parser.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:139
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:171 ipalib/plugins/service.py:197
+#: ipalib/plugins/cert.py:142
+msgid ""
+"\n"
+" Strip any leading and trailing cruft around the BEGIN/END block\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:162
+msgid ""
+"\n"
+" Convert a SN given in decimal or hexadecimal.\n"
+" Returns the number or None if conversion fails.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:188
+msgid ""
+"\n"
+" Given a principal with or without a realm return the\n"
+" host portion.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:202
+msgid ""
+"\n"
+" Submit a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:172
+#: ipalib/plugins/cert.py:217
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:179
+#: ipalib/plugins/cert.py:224
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:187 ipalib/plugins/cert.py:392
-#: ipalib/plugins/host.py:154 ipalib/plugins/service.py:204
+#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
+#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
+#: ipalib/plugins/service.py:232
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:191 ipalib/plugins/cert.py:395
+#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:195 ipalib/plugins/cert.py:398
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:199 ipalib/plugins/cert.py:401
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:203 ipalib/plugins/cert.py:404
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:207 ipalib/plugins/cert.py:407
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:211 ipalib/plugins/cert.py:410
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:215 ipalib/plugins/cert.py:379
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:223 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:357
+#: ipalib/plugins/cert.py:396
+msgid ""
+"\n"
+" Check the status of a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:402
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:363
+#: ipalib/plugins/cert.py:408
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:380
+#: ipalib/plugins/cert.py:426
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:413
+#: ipalib/plugins/cert.py:431
+msgid ""
+"\n"
+" Retrieve an existing certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
+#: ipalib/plugins/service.py:114
msgid "Revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:458
+#: ipalib/plugins/cert.py:466
+msgid "Output filename"
+msgstr ""
+
+#: ipalib/plugins/cert.py:467
+msgid "File to store the certificate in."
+msgstr ""
+
+#: ipalib/plugins/cert.py:518
+msgid ""
+"\n"
+" Revoke a certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:526
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:466
+#: ipalib/plugins/cert.py:534
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:467
+#: ipalib/plugins/cert.py:535
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:502
+#: ipalib/plugins/cert.py:562
+msgid ""
+"\n"
+" Take a revoked certificate off hold.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:570
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:505
+#: ipalib/plugins/cert.py:573
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:73
+#: ipalib/plugins/config.py:20
+msgid ""
+"\n"
+"Manage the IPA configuration\n"
+"\n"
+"Manage the default values that IPA uses and some of its tuning parameters.\n"
+"\n"
+" To show the current configuration:\n"
+" ipa config-show\n"
+"\n"
+" To modify the configuration:\n"
+" ipa config-mod --maxusername=99\n"
+"\n"
+"The available options are:\n"
+"\n"
+"User management options:\n"
+"\n"
+" --maxusername=INT Max. username length when creating/modifying a user\n"
+" --homedirectory=STR Default location of home directories (default /"
+"home)\n"
+" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
+" --defaultgroup=STR Default group for new users (default ipausers). The\n"
+" group must exist, or adding new users will fail.\n"
+" --emaildomain=STR Default e-mail domain for new users\n"
+"\n"
+"Search tuning options. These impact how much data is searched through and\n"
+"how many records may be returned on a given search.\n"
+"\n"
+" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 "
+"for\n"
+" unlimited)\n"
+" --searchrecordslimit=INT Max. number of records to search (-1 is "
+"unlimited)\n"
+"\n"
+"Server Configuration.\n"
+"\n"
+" --enable-migration=BOOL Enable migration mode\n"
+" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+"\n"
+"The password notification value is stored here so it will be replicated.\n"
+"It is not currently used to notify users in advance of an expiring\n"
+"password.\n"
+"\n"
+"Some attributes are read-only, provided only for information purposes. "
+"These\n"
+"include:\n"
+"\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
+msgstr ""
+
+#: ipalib/plugins/config.py:76
+msgid "searchtimelimit must be -1 or > 1."
+msgstr ""
+
+#: ipalib/plugins/config.py:80
+msgid ""
+"\n"
+" IPA configuration object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:78
-msgid "Max username length"
+#: ipalib/plugins/config.py:96
+msgid "Max. username length"
msgstr ""
-#: ipalib/plugins/config.py:83
+#: ipalib/plugins/config.py:101
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:84
-msgid "Default location of home directories"
+#: ipalib/plugins/config.py:102
+msgid "Default location of home directories."
msgstr ""
-#: ipalib/plugins/config.py:88
+#: ipalib/plugins/config.py:106
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:89
-msgid "Default shell for new users"
+#: ipalib/plugins/config.py:107
+msgid "Default shell for new users."
msgstr ""
-#: ipalib/plugins/config.py:93
+#: ipalib/plugins/config.py:111
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:94
-msgid "Default group for new users"
+#: ipalib/plugins/config.py:112
+msgid "Default group for new users."
msgstr ""
-#: ipalib/plugins/config.py:98
-msgid "Default e-mail domain"
+#: ipalib/plugins/config.py:116
+msgid "Default e-mail domain for new users"
msgstr ""
-#: ipalib/plugins/config.py:99
-msgid "Default e-mail domain new users"
+#: ipalib/plugins/config.py:117
+msgid "Default e-mail domain new users."
msgstr ""
-#: ipalib/plugins/config.py:103
+#: ipalib/plugins/config.py:121
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:104
-msgid "Max. amount of time (sec.) for a search (-1 is unlimited)"
+#: ipalib/plugins/config.py:122
+msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:109
+#: ipalib/plugins/config.py:127
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:110
-msgid "Max. number of records to search (-1 is unlimited)"
+#: ipalib/plugins/config.py:128
+msgid "Max. number of records to search (-1 is unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:115
+#: ipalib/plugins/config.py:133
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:116
-msgid "A comma-separated list of fields to search when searching for users"
+#: ipalib/plugins/config.py:134
+msgid "A comma-separated list of fields to search when searching for users."
msgstr ""
-#: ipalib/plugins/config.py:121
-msgid "A comma-separated list of fields to search when searching for groups"
+#: ipalib/plugins/config.py:139
+msgid "A comma-separated list of fields to search when searching for groups."
msgstr ""
-#: ipalib/plugins/config.py:125
+#: ipalib/plugins/config.py:143
msgid "Migration mode"
msgstr ""
-#: ipalib/plugins/config.py:126
-msgid "Enable migration mode"
+#: ipalib/plugins/config.py:144
+msgid "Enable migration mode."
msgstr ""
-#: ipalib/plugins/config.py:130
+#: ipalib/plugins/config.py:148
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:131
-msgid "Base for certificate subjects (OU=Test,O=Example)"
+#: ipalib/plugins/config.py:149
+msgid "Base for certificate subjects (OU=Test,O=Example)."
msgstr ""
-#: ipalib/plugins/dns.py:131
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:155
+msgid "Default group objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:159
+msgid "Default user objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:160
+msgid "Default user objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:164
+msgid "Password Expiration Notification"
+msgstr ""
+
+#: ipalib/plugins/config.py:165
+msgid "Number of days's notice of impending password expiration."
+msgstr ""
+
+#: ipalib/plugins/config.py:170
+msgid "Password plugin features"
+msgstr ""
+
+#: ipalib/plugins/config.py:171
+msgid "Extra hashes to generate in password plug-in."
+msgstr ""
+
+#: ipalib/plugins/config.py:183
+msgid ""
+"\n"
+" Modify configuration options.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:220
+msgid ""
+"\n"
+" Show the current configuration.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:19
+msgid ""
+"\n"
+"Group to Group Delegation\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"Group to Group Delegations grants the members of one group to update a set\n"
+"of attributes of members of another group.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a delegation rule to allow editors to edit admin's addresses:\n"
+" ipa delegation-add --attrs=street --membergroup=admins --group=editors "
+"'editors edit admins street'\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add postalCode to the list:\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --"
+"group=editors 'editors edit admins street'\n"
+"\n"
+" Display our updated rule:\n"
+" ipa delegation-show 'editors edit admins street'\n"
+"\n"
+" Delete a rule:\n"
+" ipa delegation-del 'editors edit admins street'\n"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:56
+msgid ""
+"\n"
+" memberOf is in filter but we want to pull out the group for easier\n"
+" displaying.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+msgid "Delegation '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:70
+msgid "Error retrieving member group %(group)s: %(error)s"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:79
+msgid ""
+"\n"
+" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a delegation ACI, adding a new attribute\n"
+" membergroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:95
+msgid ""
+"\n"
+" Delegation object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:102
+msgid "Delegation"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+msgid "Delegation name"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+msgid ""
+"Comma-separated list of permissions to grant (read, write). Default is write."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:125
+msgid "Member user group"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:126
+msgid "User group to apply delegation to"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:152
+msgid ""
+"\n"
+" Add a new delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:156
+msgid "Added delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:176
+msgid ""
+"\n"
+" Delete a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:181
+msgid "Deleted delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:197
+msgid ""
+"\n"
+" Modify a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:201
+msgid "Modified delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:219
+msgid ""
+"\n"
+" Search for delegations.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:223
+msgid "%(count)d delegation matched"
+msgid_plural "%(count)d delegations matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/delegation.py:250
+msgid ""
+"\n"
+" Display information about a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:20
+msgid ""
+"\n"
+"Domain Name System (DNS)\n"
+"\n"
+"Manage DNS zone and resource records.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add new zone:\n"
+" ipa dnszone-add example.com --name-server nameserver.example.com\n"
+" --admin-email admin@example.com\n"
+"\n"
+" Add second nameserver for example.com:\n"
+" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add a mail server for example.com:\n"
+" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n"
+"\n"
+" Delete previously added nameserver from example.com:\n"
+" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add new A record for www.example.com: (random IP)\n"
+" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n"
+"\n"
+" Add new PTR record for www.example.com\n"
+" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n"
+"\n"
+" Add new SRV records for LDAP servers. Three quarters of the requests\n"
+" should go to fast.example.com, one quarter to slow.example.com. If neither\n"
+" is available, switch to backup.example.com.\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup."
+"example.com\"\n"
+"\n"
+" When dnsrecord-add command is executed with no option to add a specific "
+"record\n"
+" an interactive mode is started. The mode interactively prompts for the "
+"most\n"
+" typical record types for the respective zone:\n"
+" ipa dnsrecord-add example.com www\n"
+" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random "
+"IPs)\n"
+" [AAAA record]: (no AAAA address entered)\n"
+" Record name: www\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" The interactive mode can also be used for deleting the DNS records:\n"
+" ipa dnsrecord-del example.com www\n"
+" No option to delete specific record provided.\n"
+" Delete all? Yes/No (default No): (do not delete all records)\n"
+" Current DNS record contents:\n"
+"\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
+" Record name: www\n"
+" A record: 1.2.3.4 (A record 11.22.33.44 has been "
+"deleted)\n"
+"\n"
+" Show zone example.com:\n"
+" ipa dnszone-show example.com\n"
+"\n"
+" Find zone with \"example\" in its domain name:\n"
+" ipa dnszone-find example\n"
+"\n"
+" Find records for resources with \"www\" in their name in zone example.com:\n"
+" ipa dnsrecord-find example.com www\n"
+"\n"
+" Find A records with value 10.10.0.1 in zone example.com\n"
+" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n"
+"\n"
+" Show records for resource www in zone example.com\n"
+" ipa dnsrecord-show example.com www\n"
+"\n"
+" Delete zone example.com with all resource records:\n"
+" ipa dnszone-del example.com\n"
+"\n"
+" Resolve a host name to see if it exists (will add default IPA domain\n"
+" if one is not included):\n"
+" ipa dns-resolve www.example.com\n"
+" ipa dns-resolve www\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:140
+msgid "Generate serial number for zones."
+msgstr ""
+
+#: ipalib/plugins/dns.py:189
+msgid "see RFC 2915 "
+msgstr ""
+
+#: ipalib/plugins/dns.py:249
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:272
+msgid ""
+"\n"
+" DNS Zone, container for resource records.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:284
msgid "DNS"
msgstr ""
-#: ipalib/plugins/dns.py:136
-msgid "Zone"
+#: ipalib/plugins/dns.py:289
+msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:137
+#: ipalib/plugins/dns.py:290
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:143
-msgid "Authoritative name server"
+#: ipalib/plugins/dns.py:296
+msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:147
-msgid "administrator e-mail address"
+#: ipalib/plugins/dns.py:297
+msgid "Authoritative nameserver."
msgstr ""
-#: ipalib/plugins/dns.py:153
+#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+msgid "Administrator e-mail address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:308
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:157
+#: ipalib/plugins/dns.py:309
+msgid "SOA record serial number"
+msgstr ""
+
+#: ipalib/plugins/dns.py:316
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:161
+#: ipalib/plugins/dns.py:317
+msgid "SOA record refresh time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:324
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:165
+#: ipalib/plugins/dns.py:325
+msgid "SOA record retry time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:169
+#: ipalib/plugins/dns.py:333
+msgid "SOA record expire time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:173
+#: ipalib/plugins/dns.py:341
+msgid "How long should negative responses be cached"
+msgstr ""
+
+#: ipalib/plugins/dns.py:349
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:177
+#: ipalib/plugins/dns.py:350
+msgid "SOA record time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:354
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:182
-msgid "allow dynamic update?"
+#: ipalib/plugins/dns.py:355
+msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:186
+#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:426 ipalib/plugins/dns.py:460
-#: ipalib/plugins/dns.py:495 ipalib/plugins/dns.py:610
-#: ipalib/plugins/dns.py:695 ipalib/plugins/dns.py:819
-msgid "Zone name"
+#: ipalib/plugins/dns.py:365
+msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:500
-msgid "resource name"
+#: ipalib/plugins/dns.py:366
+msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:505 ipalib/plugins/dns.py:620
-#: ipalib/plugins/dns.py:711
-msgid "Record type"
+#: ipalib/plugins/dns.py:372
+msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:509 ipalib/plugins/dns.py:624
-msgid "Data"
+#: ipalib/plugins/dns.py:373
+msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:510 ipalib/plugins/dns.py:625
-msgid "Type-specific data"
+#: ipalib/plugins/dns.py:382
+msgid ""
+"\n"
+" Create new DNS zone (SOA record).\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:517
-msgid "Time to live"
+#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
+#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+msgid "Force"
+msgstr ""
+
+#: ipalib/plugins/dns.py:388
+msgid "Force DNS zone creation even if nameserver not in DNS."
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+msgid "Add the nameserver to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:397
+msgid "DNS is not configured"
+msgstr ""
+
+#: ipalib/plugins/dns.py:431
+msgid ""
+"\n"
+" Delete DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"\n"
+" Modify DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:452
+msgid ""
+"\n"
+" Search for DNS zones (SOA records).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:460
+msgid ""
+"\n"
+" Display information about a DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+msgid ""
+"\n"
+" Disable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:472
+msgid "Disabled DNS zone \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:490
+msgid ""
+"\n"
+" Enable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:494
+msgid "Enabled DNS zone \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:512
+msgid ""
+"\n"
+" DNS record.\n"
+" "
msgstr ""
#: ipalib/plugins/dns.py:522
+msgid "DNS resource record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
+msgid "Record name"
+msgstr ""
+
+#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
+msgid "Time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:538
msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:615 ipalib/plugins/dns.py:707
-#: ipalib/plugins/dns.py:824
-msgid "Resource name"
+#: ipalib/plugins/dns.py:539
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:700
-msgid "Search criteria"
+#: ipalib/plugins/dns.py:566
+msgid ""
+"\n"
+" Base class for DNS record commands with record options.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:715
-msgid "type-specific data"
+#: ipalib/plugins/dns.py:610
+msgid ""
+"\n"
+" Base class for adding/removing records from DNS resource entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:865
-#, python-format
+#: ipalib/plugins/dns.py:674
+msgid ""
+"\n"
+" Add records to DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:690
+msgid ""
+"\n"
+" Add new DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:699
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:735
+msgid ""
+"Reverse zone for PTR record should be a sub-zone of one the following fully "
+"qualified domains: %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:740
+msgid "Reverse zone %s requires exactly %d IP address components, %d given"
+msgstr ""
+
+#: ipalib/plugins/dns.py:746
+msgid "PTR record '%s' is not fully qualified (check traling '.')"
+msgstr ""
+
+#: ipalib/plugins/dns.py:789
+msgid ""
+"\n"
+" Delete DNS record entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:792
+msgid "Deleted record \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:799
+msgid ""
+"\n"
+" Delete DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:802
+msgid ""
+"Neither --del-all nor options to delete a specific record provided.\n"
+"Command help may be consulted for all supported record types."
+msgstr ""
+
+#: ipalib/plugins/dns.py:807
+msgid "Delete all associated records"
+msgstr ""
+
+#: ipalib/plugins/dns.py:834
+msgid "No option to delete specific record provided."
+msgstr ""
+
+#: ipalib/plugins/dns.py:835
+msgid "Delete all?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:845
+msgid "Current DNS record contents:\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:875
+msgid "%s record with value %s not found"
+msgstr ""
+
+#: ipalib/plugins/dns.py:889
+msgid ""
+"\n"
+" Display DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:905
+msgid ""
+"\n"
+" Search for DNS resources.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:932
+msgid ""
+"\n"
+" Resolve a host name in DNS\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:936
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:869
+#: ipalib/plugins/dns.py:940
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:882
-#, python-format
+#: ipalib/plugins/dns.py:962
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/group.py:94
+#: ipalib/plugins/dns.py:970
+msgid ""
+"\n"
+" Checks if any of the servers has the DNS service enabled.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:19
+msgid ""
+"\n"
+"Entitlements\n"
+"\n"
+"Manage entitlements for client machines\n"
+"\n"
+"Entitlements can be managed either by registering with an entitlement\n"
+"server with a username and password or by manually importing entitlement\n"
+"certificates. An entitlement certificate contains embedded information\n"
+"such as the product being entitled, the quantity and the validity dates.\n"
+"\n"
+"An entitlement server manages the number of client entitlements available.\n"
+"To mark these entitlements as used by the IPA server you provide a quantity\n"
+"and they are marked as consumed on the entitlement server.\n"
+"\n"
+" Register with an entitlement server:\n"
+" ipa entitle-register consumer\n"
+"\n"
+" Import an entitlement certificate:\n"
+" ipa entitle-import /home/user/ipaclient.pem\n"
+"\n"
+" Display current entitlements:\n"
+" ipa entitle-status\n"
+"\n"
+" Retrieve details on entitlement certificates:\n"
+" ipa entitle-get\n"
+"\n"
+" Consume some entitlements from the entitlement server:\n"
+" ipa entitle-consume 50\n"
+"\n"
+"The registration ID is a Unique Identifier (UUID). This ID will be\n"
+"IMPORTED if you have used entitle-import.\n"
+"\n"
+"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:106
+msgid ""
+"\n"
+" Get our entitlement pool. Assume there is only one pool.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:129
+msgid ""
+"\n"
+" Retrieve our UUID, certificate and key from LDAP.\n"
+"\n"
+" Except on error the caller is responsible for removing temporary files\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:178
+msgid ""
+"\n"
+" Entitlement object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:189
+msgid "Entitlements"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:206
+msgid ""
+"\n"
+" Display current entitlements\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+msgid "UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
+#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
+#: ipalib/plugins/entitle.py:690
+msgid "Product"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
+#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
+#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+msgid "Quantity"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
+#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+msgid "Consumed"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:276
+msgid ""
+"\n"
+" Consume an entitlement\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:282
+msgid "Consumed %(value)s entitlement(s)."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:314
+msgid ""
+"\n"
+" Override this so we can set value to the number of entitlements\n"
+" consumed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
+msgid ""
+"\n"
+" Returning the certificates isn't very interesting. Return the\n"
+" status of entitlements instead.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:380
+msgid ""
+"\n"
+" Retrieve the entitlement certs\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:394
+msgid "Start"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:397
+msgid "End"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
+#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+msgid "Serial Number"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
+#: ipalib/plugins/entitle.py:628
+msgid "Not an entitlement certificate"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:460
+msgid ""
+"\n"
+" Search for entitlement accounts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:473
+msgid ""
+"\n"
+" Register to the entitlement system\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:479
+msgid "Registered to entitlement server."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:483
+msgid "Username"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
+msgid "Enrollment UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
+#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
+msgid "Password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:495
+msgid "Registration password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:569
+msgid ""
+"\n"
+" Import an entitlement certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:646
+msgid ""
+"\n"
+" If we are adding the first entry there are no updates so "
+"EmptyModlist\n"
+" will get thrown. Ignore it.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:667
+msgid ""
+"\n"
+" Re-sync the local entitlement cache with the entitlement server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:673
+msgid "Entitlement(s) synchronized."
+msgstr ""
+
+#: ipalib/plugins/group.py:20
+msgid ""
+"\n"
+"Groups of users\n"
+"\n"
+"Manage groups of users. By default, new groups are POSIX groups. You\n"
+"can add the --nonposix option to the group-add command to mark a new group\n"
+"as non-POSIX, and you can use the same argument to the group-mod command\n"
+"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"converted to non-POSIX groups.\n"
+"\n"
+"Every group must have a description.\n"
+"\n"
+"POSIX groups must have a Group ID (GID) number. Changing a GID is\n"
+"supported but can have an impact on your file permissions. It is not "
+"necessary\n"
+"to supply a GID when creating a group. IPA will generate one automatically\n"
+"if it is not provided.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new group:\n"
+" ipa group-add --desc='local administrators' localadmins\n"
+"\n"
+" Add a new non-POSIX group:\n"
+" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n"
+"\n"
+" Convert a non-POSIX group to posix:\n"
+" ipa group-mod --posix remoteadmins\n"
+"\n"
+" Add a new POSIX group with a specific Group ID number:\n"
+" ipa group-add --gid=500 --desc='unix admins' unixadmins\n"
+"\n"
+" Add a new POSIX group and let IPA assign a Group ID number:\n"
+" ipa group-add --desc='printer admins' printeradmins\n"
+"\n"
+" Remove a group:\n"
+" ipa group-del unixadmins\n"
+"\n"
+" To add the \"remoteadmins\" group to the \"localadmins\" group:\n"
+" ipa group-add-member --groups=remoteadmins localadmins\n"
+"\n"
+" Add a list of users to the \"localadmins\" group:\n"
+" ipa group-add-member --users=test1,test2 localadmins\n"
+"\n"
+" Remove a user from the \"localadmins\" group:\n"
+" ipa group-remove-member --users=test2 localadmins\n"
+"\n"
+" Display information about a named group.\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/group.py:76
+msgid ""
+"\n"
+" Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:100
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:102
+#: ipalib/plugins/group.py:108
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:109 ipalib/plugins/sudocmdgroup.py:78
+#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:113
+#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:114
+#: ipalib/plugins/group.py:120
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:117 ipalib/plugins/rolegroup.py:94
-#: ipalib/plugins/taskgroup.py:66
-msgid "Member groups"
+#: ipalib/plugins/group.py:128
+msgid ""
+"\n"
+" Create a new group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:121 ipalib/plugins/rolegroup.py:98
-#: ipalib/plugins/taskgroup.py:70
-msgid "Member users"
+#: ipalib/plugins/group.py:132
+msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:134
-#, python-format
-msgid "Added group \"%(value)s\""
+#: ipalib/plugins/group.py:137
+msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:139
-msgid "Create as a non-POSIX group?"
+#: ipalib/plugins/group.py:154
+msgid ""
+"\n"
+" Delete group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:160
-#, python-format
+#: ipalib/plugins/group.py:158
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:191
-#, python-format
+#: ipalib/plugins/group.py:186
+msgid ""
+"\n"
+" Modify a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:189
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:196
+#: ipalib/plugins/group.py:194
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:222 ipalib/plugins/hbacsvcgroup.py:129
-#, python-format
+#: ipalib/plugins/group.py:215
+msgid ""
+"\n"
+" Search for groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:220
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
+#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+msgid "search for private groups"
+msgstr ""
+
#: ipalib/plugins/group.py:257
-#, python-format
-msgid "Detached group \"%(value)s\" from user \"%(value)s\""
+msgid ""
+"\n"
+" Display information about a named group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:265
+msgid ""
+"\n"
+" Add members to a group.\n"
+" "
msgstr ""
#: ipalib/plugins/group.py:273
+msgid ""
+"\n"
+" Remove members from a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:281
+msgid ""
+"\n"
+" Detach a managed group from a user\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:285
+msgid "Detached group \"%(value)s\" from user \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/group.py:288
+msgid ""
+"\n"
+" This requires updating both the user and the group. We first need "
+"to\n"
+" verify that both the user and group can be updated, then we go\n"
+" about our work. We don't want a situation where only the user or\n"
+" group can be modified and we're left in a bad state.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:306
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:277
+#: ipalib/plugins/group.py:312
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:284 ipalib/plugins/group.py:295
+#: ipalib/plugins/group.py:331
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbac.py:106
-msgid "HBAC"
+#: ipalib/plugins/hbacrule.py:19
+msgid ""
+"\n"
+"Host-based access control\n"
+"\n"
+"Control who can access what services on what hosts and from where. You\n"
+"can use HBAC to control which users or groups on a source host can\n"
+"access a service, or group of services, on a target host.\n"
+"\n"
+"You can also specify a category of users, target hosts, and source\n"
+"hosts. This is currently limited to \"all\", but might be expanded in the\n"
+"future.\n"
+"\n"
+"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n"
+"\n"
+"The available services and groups of services are controlled by the\n"
+"hbacsvc and hbacsvcgroup plug-ins respectively.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a rule, \"test1\", that grants all users access to the host \"server"
+"\" from\n"
+" anywhere:\n"
+" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add-host --hosts=server.example.com test1\n"
+"\n"
+" Display the properties of a named HBAC rule:\n"
+" ipa hbacrule-show test1\n"
+"\n"
+" Create a rule for a specific service. This lets the user john access\n"
+" the sshd service on any machine from any machine:\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add-user --users=john john_sshd\n"
+" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
+"\n"
+" Create a rule for a new service group. This lets the user john access\n"
+" the FTP service on any machine from any machine:\n"
+" ipa hbacsvcgroup-add ftpers\n"
+" ipa hbacsvc-add sftp\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add-user --users=john john_ftp\n"
+" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
+"\n"
+" Disable a named HBAC rule:\n"
+" ipa hbacrule-disable test1\n"
+"\n"
+" Remove a named HBAC rule:\n"
+" ipa hbacrule-del allow_server\n"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:91
+msgid ""
+"\n"
+" See if options[attribute] is lower-case 'all' in a safe way.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:103
+msgid ""
+"\n"
+" HBAC object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbac.py:111 ipalib/plugins/sudorule.py:53
+#: ipalib/plugins/hbacrule.py:126
+msgid "HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbac.py:116
+#: ipalib/plugins/hbacrule.py:136
msgid "Rule type (allow or deny)"
msgstr ""
-#: ipalib/plugins/hbac.py:117
+#: ipalib/plugins/hbacrule.py:137
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbac.py:123
+#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
+#: ipalib/plugins/sudorule.py:86
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbac.py:124
+#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
+#: ipalib/plugins/sudorule.py:87
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:129
+#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
+#: ipalib/plugins/sudorule.py:92
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbac.py:130
+#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
+#: ipalib/plugins/sudorule.py:93
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:135
+#: ipalib/plugins/hbacrule.py:155
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbac.py:136
+#: ipalib/plugins/hbacrule.py:156
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:141
+#: ipalib/plugins/hbacrule.py:161
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbac.py:142
+#: ipalib/plugins/hbacrule.py:162
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:147 ipalib/plugins/hbac.py:325
-#: ipalib/plugins/hbac.py:363
-msgid "Access time"
-msgstr ""
-
-#: ipalib/plugins/hbac.py:154
+#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbac.py:158 ipalib/plugins/sudorule.py:61
-#: ipalib/plugins/user.py:76
+#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
+#: ipalib/plugins/user.py:108
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbac.py:162 ipalib/plugins/host.py:113
-#: ipalib/plugins/sudorule.py:65
+#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
+#: ipalib/plugins/sudorule.py:119
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
+#: ipalib/plugins/sudorule.py:123
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:166 ipalib/plugins/hostgroup.py:69
-#: ipalib/plugins/sudorule.py:69
+#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
+#: ipalib/plugins/sudorule.py:127
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbac.py:170
+#: ipalib/plugins/hbacrule.py:194
msgid "Source hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:174 ipalib/plugins/hbacsvc.py:60
-#: ipalib/plugins/service.py:192
+#: ipalib/plugins/hbacrule.py:198
+msgid "Source host groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
+#: ipalib/plugins/service.py:220
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbac.py:178
+#: ipalib/plugins/hbacrule.py:206
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:65
-msgid "Service name"
+#: ipalib/plugins/hbacrule.py:215
+msgid ""
+"\n"
+" Create a new HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:219
+msgid "Added HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:230
+msgid ""
+"\n"
+" Delete an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:234
+msgid "Deleted HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:240
+msgid ""
+"\n"
+" Modify an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:244
+msgid "Modified HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:266
+msgid ""
+"\n"
+" Search for HBAC rules.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:270
+msgid "%(count)d HBAC rule matched"
+msgid_plural "%(count)d HBAC rules matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/hbacrule.py:278
+msgid ""
+"\n"
+" Display the properties of an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:286
+msgid ""
+"\n"
+" Enable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:290
+msgid "Enabled HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:315
+msgid ""
+"\n"
+" Disable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:319
+msgid "Disabled HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:344
+msgid ""
+"\n"
+" Add an access time to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+msgid "Access time"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:385
+msgid ""
+"\n"
+" Remove access time to HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:425
+msgid ""
+"\n"
+" Add users and groups to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:442
+msgid ""
+"\n"
+" Remove users and groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:452
+msgid ""
+"\n"
+" Add target hosts and hostgroups to an HBAC rule\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:469
+msgid ""
+"\n"
+" Remove target hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:479
+msgid ""
+"\n"
+" Add source hosts and hostgroups from a HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:496
+msgid ""
+"\n"
+" Remove source hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:506
+msgid ""
+"\n"
+" Add services to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:523
+msgid ""
+"\n"
+" Remove service and service groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:19
+msgid ""
+"\n"
+"HBAC Services\n"
+"\n"
+"The PAM services that HBAC can control access to. The name used here\n"
+"must match the service name that PAM is evaluating.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service:\n"
+" ipa hbacsvc-add tftp\n"
+"\n"
+" Modify an existing HBAC service:\n"
+" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n"
+"\n"
+" Search for HBAC services. This example will return two results, the FTP\n"
+" service and the newly-added tftp service:\n"
+" ipa hbacsvc-find ftp\n"
+"\n"
+" Delete an HBAC service:\n"
+" ipa hbacsvc-del tftp\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:51
+msgid ""
+"\n"
+" HBAC Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:61
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "HBAC Service"
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:73
-msgid "Description of service"
+#: ipalib/plugins/hbacsvc.py:67
+msgid "HBAC service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:84 ipalib/plugins/service.py:216
-#, python-format
-msgid "Added service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:74
+msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:93 ipalib/plugins/service.py:255
-#, python-format
-msgid "Deleted service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:82
+msgid ""
+"\n"
+" Add a new HBAC service.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:66
-msgid "HBAC Service Groups"
+#: ipalib/plugins/hbacsvc.py:85
+msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:71
+#: ipalib/plugins/hbacsvc.py:91
+msgid ""
+"\n"
+" Delete an existing HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:94
+msgid "Deleted HBAC service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:100
+msgid ""
+"\n"
+" Modify an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modified HBAC service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:110
+msgid ""
+"\n"
+" Search for HBAC services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:114
+msgid "%(count)d HBAC service matched"
+msgid_plural "%(count)d HBAC services matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/hbacsvc.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:19
+msgid ""
+"\n"
+"HBAC Service Groups\n"
+"\n"
+"HBAC service groups can contain any number of individual services,\n"
+"or \"members\". Every group must have a description.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service group:\n"
+" ipa hbacsvcgroup-add --desc=\"login services\" login\n"
+"\n"
+" Add members to an HBAC service group:\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n"
+"\n"
+" Display information about a named group:\n"
+" ipa hbacsvcgroup-show login\n"
+"\n"
+" Add a new group to the \"login\" group:\n"
+" ipa hbacsvcgroup-add --desc=\"switch users\" login\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n"
+"\n"
+" Delete an HBAC service group:\n"
+" ipa hbacsvcgroup-del login\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:51
+msgid ""
+"\n"
+" HBAC service group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:64
+msgid "HBAC service Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:69
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:78
+#: ipalib/plugins/hbacsvcgroup.py:76
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:81
-msgid "Member services"
+#: ipalib/plugins/hbacsvcgroup.py:84
+msgid ""
+"\n"
+" Add a new HBAC service group.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:85
-msgid "Member service groups"
+#: ipalib/plugins/hbacsvcgroup.py:87
+msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:101
-#, python-format
-msgid "Added HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:93
+msgid ""
+"\n"
+" Delete an HBAC service group.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:110
-#, python-format
-msgid "Deleted HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:96
+msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:119
-#, python-format
-msgid "Modified HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:102
+msgid ""
+"\n"
+" Modify an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:105
+msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:86
+#: ipalib/plugins/hbacsvcgroup.py:111
+msgid ""
+"\n"
+" Search for an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:114
+msgid "%(count)d HBAC service group matched"
+msgid_plural "%(count)d HBAC service groups matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/hbacsvcgroup.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:130
+msgid ""
+"\n"
+" Add members to an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:138
+msgid ""
+"\n"
+" Remove members from an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:20
+msgid ""
+"\n"
+"Hosts/Machines\n"
+"\n"
+"A host represents a machine. It can be used in a number of contexts:\n"
+"- service entries are associated with a host\n"
+"- a host stores the host/ service principal\n"
+"- a host can be used in Host-based Access Control (HBAC) rules\n"
+"- every enrolled client generates a host entry\n"
+"\n"
+"ENROLLMENT:\n"
+"\n"
+"There are three enrollment scenarios when enrolling a new client:\n"
+"\n"
+"1. You are enrolling as a full administrator. The host entry may exist\n"
+" or not. A full administrator is a member of the hostadmin role\n"
+" or the admins group.\n"
+"2. You are enrolling as a limited administrator. The host must already\n"
+" exist. A limited administrator is a member a role with the\n"
+" Host Enrollment privilege.\n"
+"3. The host has been created with a one-time password.\n"
+"\n"
+"A host can only be enrolled once. If a client has enrolled and needs to\n"
+"be re-enrolled, the host entry must be removed and re-created. Note that\n"
+"re-creating the host entry will result in all services for the host being\n"
+"removed, and all SSL certificates associated with those services being\n"
+"revoked.\n"
+"\n"
+"A host can optionally store information such as where it is located,\n"
+"the OS that it runs, etc.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host:\n"
+" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example."
+"com\n"
+"\n"
+" Delete a host:\n"
+" ipa host-del test.example.com\n"
+"\n"
+" Add a new host with a one-time password:\n"
+" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n"
+"\n"
+" Add a new host with a random one-time password:\n"
+" ipa host-add --os='Fedora 12' --random test.example.com\n"
+"\n"
+" Modify information about a host:\n"
+" ipa host-mod --os='Fedora 12' test.example.com\n"
+"\n"
+" Disable the host Kerberos key, SSL certificate and all of its services:\n"
+" ipa host-disable test.example.com\n"
+"\n"
+" Add a host that can manage this host's keytab and certificate:\n"
+" ipa host-add-managedby --hosts=test2 test\n"
+msgstr ""
+
+#: ipalib/plugins/host.py:97
+msgid ""
+"\n"
+" Require at least one dot in the hostname (to support localhost."
+"localdomain)\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:118
+#: ipalib/plugins/host.py:129
+msgid "DNS reverse zone for IP address %(addr)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+msgid "Keytab"
+msgstr ""
+
+#: ipalib/plugins/host.py:185
+msgid ""
+"\n"
+" Verify that we have either an IPv4 or IPv6 address.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:189
+msgid "invalid IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:194
+msgid ""
+"\n"
+" Host object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:231
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:125
+#: ipalib/plugins/host.py:238
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:242
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:130
+#: ipalib/plugins/host.py:243
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:135
+#: ipalib/plugins/host.py:248
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:139
+#: ipalib/plugins/host.py:252
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:140
+#: ipalib/plugins/host.py:253
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:144
+#: ipalib/plugins/host.py:257
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:145
+#: ipalib/plugins/host.py:258
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:149
+#: ipalib/plugins/host.py:262
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:150
+#: ipalib/plugins/host.py:263
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:155 ipalib/plugins/service.py:205
-msgid "Base-64 encoded server certificate"
+#: ipalib/plugins/host.py:266
+msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:158 ipalib/plugins/host.py:274
-msgid "Principal name"
+#: ipalib/plugins/host.py:271
+msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:162 ipalib/plugins/hostgroup.py:93
-msgid "Member of host-groups"
+#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:166
-msgid "Member of net-groups"
+#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:170
-msgid "Member of role-groups"
+#: ipalib/plugins/host.py:306
+msgid ""
+"\n"
+" Add a new host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:199
-#, python-format
+#: ipalib/plugins/host.py:311
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:202
+#: ipalib/plugins/host.py:316
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:235
-#, python-format
+#: ipalib/plugins/host.py:319
+msgid "skip reverse DNS detection"
+msgstr ""
+
+#: ipalib/plugins/host.py:322
+msgid "Add the host to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+msgid "DNS zone %(zone)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:413
+msgid "The host was added but the DNS update failed with: %(exc)s"
+msgstr ""
+
+#: ipalib/plugins/host.py:422
+msgid ""
+"\n"
+" Delete a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:426
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:269
-#, python-format
+#: ipalib/plugins/host.py:431
+msgid "Remove entries from DNS"
+msgstr ""
+
+#: ipalib/plugins/host.py:537
+msgid ""
+"\n"
+" Modify information about a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:542
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:275
+#: ipalib/plugins/host.py:549
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:319
-#, python-format
+#: ipalib/plugins/host.py:618
+msgid ""
+"\n"
+" Search for hosts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:623
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:337 ipalib/plugins/service.py:84
-msgid "Keytab"
+#: ipalib/plugins/host.py:643
+msgid ""
+"\n"
+" Display information about a host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:359 ipalib/plugins/service.py:399
-#, python-format
-msgid "Removed kerberos key from \"%(value)s\""
+#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+msgid "file to store certificate in"
+msgstr ""
+
+#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+msgid "Certificate stored in file '%(file)s'"
+msgstr ""
+
+#: ipalib/plugins/host.py:684
+msgid ""
+"\n"
+" Disable the Kerberos key, SSL certificate and all services of a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:688
+msgid "Disabled host \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/host.py:770
+msgid ""
+"\n"
+" Add hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:781
+msgid ""
+"\n"
+" Remove hosts that can manage this host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:368
-msgid "Host principal has no kerberos key"
+#: ipalib/plugins/hostgroup.py:20
+msgid ""
+"\n"
+"Groups of hosts.\n"
+"\n"
+"Manage groups of hosts. This is useful for applying access control to a\n"
+"number of hosts by using Host-based Access Control.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host group:\n"
+" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n"
+"\n"
+" Add another new host group:\n"
+" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n"
+"\n"
+" Add members to the hostgroup:\n"
+" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n"
+"\n"
+" Add a hostgroup as a member of another hostgroup:\n"
+" ipa hostgroup-add-member --hostgroups=baltimore maryland\n"
+"\n"
+" Remove a host from the hostgroup:\n"
+" ipa hostgroup-remove-member --hosts=box2 baltimore\n"
+"\n"
+" Display a host group:\n"
+" ipa hostgroup-show baltimore\n"
+"\n"
+" Delete a hostgroup:\n"
+" ipa hostgroup-del baltimore\n"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:55
+msgid ""
+"\n"
+" Hostgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/hostgroup.py:78
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:75
+#: ipalib/plugins/hostgroup.py:79
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:82
+#: ipalib/plugins/hostgroup.py:86
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:85
-msgid "Member hosts"
+#: ipalib/plugins/hostgroup.py:94
+msgid ""
+"\n"
+" Add a new hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:89
-msgid "Member host-groups"
+#: ipalib/plugins/hostgroup.py:98
+msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:106
-#, python-format
-msgid "Added hostgroup \"%(value)s\""
+#: ipalib/plugins/hostgroup.py:104
+msgid ""
+"\n"
+" Delete a hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:116
-#, python-format
+#: ipalib/plugins/hostgroup.py:108
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:126
-#, python-format
+#: ipalib/plugins/hostgroup.py:114
+msgid ""
+"\n"
+" Modify a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:118
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:137
-#, python-format
+#: ipalib/plugins/hostgroup.py:124
+msgid ""
+"\n"
+" Search for hostgroups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:128
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/internal.py:39
+#: ipalib/plugins/hostgroup.py:136
+msgid ""
+"\n"
+" Display information about a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:144
+msgid ""
+"\n"
+" Add members to a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:152
+msgid ""
+"\n"
+" Remove members from a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:22
+msgid ""
+"\n"
+"Plugins not accessible directly through the CLI, commands used internally\n"
+msgstr ""
+
+#: ipalib/plugins/internal.py:36
+msgid ""
+"\n"
+" Export plugin meta-data for the webUI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:44
+msgid "Name of object to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:47
+msgid "Name of method to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:52
+msgid "Dict of JSON encoded IPA Objects"
+msgstr ""
+
+#: ipalib/plugins/internal.py:53
+msgid "Dict of JSON encoded IPA Methods"
+msgstr ""
+
+#: ipalib/plugins/internal.py:96
msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:41
+#: ipalib/plugins/internal.py:99
+msgid "Attribute"
+msgstr ""
+
+#: ipalib/plugins/internal.py:102
+msgid "Add Automount Location"
+msgstr ""
+
+#: ipalib/plugins/internal.py:103
+msgid "Automount Location Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:106
+msgid "Add Automount Map"
+msgstr ""
+
+#: ipalib/plugins/internal.py:109
+msgid "Add Automount Key"
+msgstr ""
+
+#: ipalib/plugins/internal.py:112
+msgid "Unspecified"
+msgstr ""
+
+#: ipalib/plugins/internal.py:113
+msgid "Key Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:114
+msgid "CA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:115
+msgid "Affiliation Changed"
+msgstr ""
+
+#: ipalib/plugins/internal.py:116
+msgid "Superseded"
+msgstr ""
+
+#: ipalib/plugins/internal.py:117
+msgid "Cessation of Operation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:118
+msgid "Certificate Hold"
+msgstr ""
+
+#: ipalib/plugins/internal.py:119
+msgid "Remove from CRL"
+msgstr ""
+
+#: ipalib/plugins/internal.py:120
+msgid "Privilege Withdrawn"
+msgstr ""
+
+#: ipalib/plugins/internal.py:121
+msgid "AA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:122
+msgid ""
+"To confirm your intention to revoke this certificate, select a reason from "
+"the pull-down list, and click the \"Revoke\" button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:124
+msgid "Note"
+msgstr ""
+
+#: ipalib/plugins/internal.py:125
+msgid "Reason for Revocation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:126
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\" "
+"button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:128
+msgid "Issued To"
+msgstr ""
+
+#: ipalib/plugins/internal.py:129
+msgid "Common Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:130
+msgid "Organization"
+msgstr ""
+
+#: ipalib/plugins/internal.py:131
+msgid "Organizational Unit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:133
+msgid "Issued By"
+msgstr ""
+
+#: ipalib/plugins/internal.py:134
+msgid "Validity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:135
+msgid "Issued On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:136
+msgid "Expires On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:137
+msgid "Fingerprints"
+msgstr ""
+
+#: ipalib/plugins/internal.py:138
+msgid "SHA1 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:139
+msgid "MD5 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:140
+msgid "Enter the Base64-encoded CSR below"
+msgstr ""
+
+#: ipalib/plugins/internal.py:141
+msgid "Valid Certificate Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:142
+msgid "New Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:143
+msgid "Certificate Revoked"
+msgstr ""
+
+#: ipalib/plugins/internal.py:144
+msgid "No Valid Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:145
+msgid "Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:146
+msgid "Issue New Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:147
+msgid "Revoke Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:148
+msgid "Restore Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:152
+msgid "Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:155
+msgid "Add Delegation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:158
+msgid "Add DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:159
+msgid "DNS Zone Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:162
+msgid "Add DNS Resource Record"
+msgstr ""
+
+#: ipalib/plugins/internal.py:163
+msgid "Resource"
+msgstr ""
+
+#: ipalib/plugins/internal.py:165
+msgid "Data"
+msgstr ""
+
+#: ipalib/plugins/internal.py:166
+msgid "Records for DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:169
+msgid "Add Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:170
+msgid "Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
+msgid "Is this a POSIX group?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:174
+msgid "Add HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:306
+msgid "Active"
+msgstr ""
+
+#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:308
+msgid "Inactive"
+msgstr ""
+
+#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
+msgid "Rule status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
+msgid "Who"
+msgstr ""
+
+#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
+msgid "Anyone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
+msgid "Specified Users and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:183
+msgid "Accessing"
+msgstr ""
+
+#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
+msgid "Any Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
+msgid "Specified Hosts and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:186
+msgid "Via Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:187
+msgid "Any Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:188
+msgid "Specified Services and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:189
+msgid "From"
+msgstr ""
+
+#: ipalib/plugins/internal.py:192
+msgid "Add HBAC Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:195
+msgid "Add HBAC Service Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:199
+msgid "Add Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:200
+msgid "Host Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:202
+msgid "Host Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:203
+msgid "Enrolled?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:204
+msgid "Enrollment"
+msgstr ""
+
+#: ipalib/plugins/internal.py:205
+msgid "Fully Qualified Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
+msgid "Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:208
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
+msgid "Delete Key, Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:211
+msgid "Enroll via One-Time-Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:212
+msgid "Set OTP"
+msgstr ""
+
+#: ipalib/plugins/internal.py:213
+msgid "One-Time-Password has been set."
+msgstr ""
+
+#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
+msgid "Unprovisioning ${entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:215
+msgid "Are you sure you want to unprovision this host?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
+msgid "Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:219
+msgid "Add Host Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:220
+msgid "Host Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:223
+msgid "Kerberos ticket policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:226
+msgid "Add Netgroup"
+msgstr ""
+
+#: ipalib/plugins/internal.py:227
+msgid "Netgroup Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:230
+msgid "Add Permission"
+msgstr ""
+
+#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
+msgid "Identity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:233
+msgid "Target"
+msgstr ""
+
+#: ipalib/plugins/internal.py:235
+msgid "By Subtree"
+msgstr ""
+
+#: ipalib/plugins/internal.py:236
+msgid "Target Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:237
+msgid "Object By Type"
+msgstr ""
+
+#: ipalib/plugins/internal.py:238
+msgid "Permission with invalid target specification"
+msgstr ""
+
+#: ipalib/plugins/internal.py:241
+msgid "Add Privilege"
+msgstr ""
+
+#: ipalib/plugins/internal.py:242
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:245
+msgid "Add Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:249
+msgid "Add Role"
+msgstr ""
+
+#: ipalib/plugins/internal.py:250
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:253
+msgid "Add Self Service Definition"
+msgstr ""
+
+#: ipalib/plugins/internal.py:256
+msgid "Add Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:257
+msgid "Service Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:258
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:260
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:261
+msgid "Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:263
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:267
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:271
+msgid "Add Sudo Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:275
+msgid "Add Sudo Command Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:279
+msgid "Add Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:287
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:290
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:291
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:292
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:293
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:294
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:295
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:297
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:300
+msgid "Add User"
+msgstr ""
+
+#: ipalib/plugins/internal.py:301
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:302
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:303
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:304
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:305
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:307
+msgid "Click to Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:309
+msgid "Click to Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:310
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:311
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:312
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:313
+msgid "Repeat Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:314
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:315
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:319
msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:42
+#: ipalib/plugins/internal.py:320
+msgid "Add and Add Another"
+msgstr ""
+
+#: ipalib/plugins/internal.py:321
+msgid "Add and Edit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:322
+msgid "Add and Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:323
+msgid "Add Many"
+msgstr ""
+
+#: ipalib/plugins/internal.py:324
+msgid "Back to List"
+msgstr ""
+
+#: ipalib/plugins/internal.py:325
+msgid "Cancel"
+msgstr ""
+
+#: ipalib/plugins/internal.py:326
+msgid "Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:327
+msgid "Enroll"
+msgstr ""
+
+#: ipalib/plugins/internal.py:328
msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:43
+#: ipalib/plugins/internal.py:329
+msgid "Get"
+msgstr ""
+
+#: ipalib/plugins/internal.py:330
+msgid "Issue"
+msgstr ""
+
+#: ipalib/plugins/internal.py:331
+msgid "OK"
+msgstr ""
+
+#: ipalib/plugins/internal.py:332
msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:333
+msgid "Delete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:334
+msgid "Restore"
+msgstr ""
+
+#: ipalib/plugins/internal.py:335
+msgid "Retry"
+msgstr ""
+
+#: ipalib/plugins/internal.py:336
+msgid "Revoke"
+msgstr ""
+
+#: ipalib/plugins/internal.py:337
msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:45
-msgid "Enroll"
+#: ipalib/plugins/internal.py:338
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:46
-msgid "Delete"
+#: ipalib/plugins/internal.py:341
+msgid "Available"
+msgstr ""
+
+#: ipalib/plugins/internal.py:342
+msgid "This page has unsaved changes. Please save or revert."
+msgstr ""
+
+#: ipalib/plugins/internal.py:343
+msgid "Dirty"
msgstr ""
-#: ipalib/plugins/internal.py:49
+#: ipalib/plugins/internal.py:344
+msgid "Hide already enrolled."
+msgstr ""
+
+#: ipalib/plugins/internal.py:345
+msgid "Select ${entity} to be removed."
+msgstr ""
+
+#: ipalib/plugins/internal.py:346
+msgid "Remove ${entity}."
+msgstr ""
+
+#: ipalib/plugins/internal.py:347
+msgid "Prospective"
+msgstr ""
+
+#: ipalib/plugins/internal.py:350
+msgid "Managed by"
+msgstr ""
+
+#: ipalib/plugins/internal.py:351
+msgid "Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:352
+msgid "Indirect Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:353
+msgid "Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:354
+msgid "Indirect Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
+msgid "Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:358
+msgid "Search"
+msgstr ""
+
+#: ipalib/plugins/internal.py:362
msgid "Quick Links"
msgstr ""
-#: ipalib/plugins/internal.py:50
+#: ipalib/plugins/internal.py:363
msgid "Select All"
msgstr ""
-#: ipalib/plugins/internal.py:51
+#: ipalib/plugins/internal.py:364
msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Do you really want to delete the selected entries?"
+#: ipalib/plugins/internal.py:365
+msgid "Are you sure you want to delete selected entries?"
msgstr ""
-#: ipalib/plugins/internal.py:55
-msgid "Identity Details"
+#: ipalib/plugins/internal.py:366
+msgid ""
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
msgstr ""
-#: ipalib/plugins/internal.py:56
-msgid "Account Details"
+#: ipalib/plugins/internal.py:370
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:57
-msgid "Contact Details"
+#: ipalib/plugins/internal.py:371
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:58
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:372
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:59
-msgid " Employee Information"
+#: ipalib/plugins/internal.py:373
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:60
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:377
+msgid "Policy"
msgstr ""
-#: ipalib/plugins/internal.py:61
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:378
+msgid "Audit"
msgstr ""
-#: ipalib/plugins/internal.py:66
-msgid "Name of object to export"
+#: ipalib/plugins/internal.py:379
+msgid "IPA Server"
msgstr ""
-#: ipalib/plugins/internal.py:71
-msgid "Dict of JSON encoded IPA Objects"
+#: ipalib/plugins/internal.py:380
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:381
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:382
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:383
+msgid "Automount"
msgstr ""
-#: ipalib/plugins/internal.py:72
+#: ipalib/plugins/internal.py:386
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:387
+msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:388
+msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:389
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:392
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:395
+msgid ""
+"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."
+msgstr ""
+
+#: ipalib/plugins/internal.py:399
msgid "Dict of I18N messages"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:59
+#: ipalib/plugins/kerberos.py:20
+msgid ""
+"\n"
+"Backend plugin for Kerberos.\n"
+"\n"
+"This wraps the python-kerberos and python-krbV bindings.\n"
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:35
+msgid ""
+"\n"
+" Kerberos backend plugin.\n"
+"\n"
+" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
+" bindings also). Importantly, this plugin does correct Unicode\n"
+" encoding/decoding of values going-to/coming-from the bindings.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:44
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:50
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:56
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:62
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:68
+msgid ""
+"\n"
+" Return the default ccache file name.\n"
+"\n"
+" This will return something like '/tmp/krb5cc_500'.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:79
+msgid ""
+"\n"
+" Return the principal name in default credential cache.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'. If no "
+"credential\n"
+" cache exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:91
+msgid ""
+"\n"
+" Return the realm from the default credential cache.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'. If no credential "
+"cache\n"
+" exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:103
+msgid ""
+"\n"
+" Return the principal from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:111
+msgid ""
+"\n"
+" Return the realm from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:19
+msgid ""
+"\n"
+"Kerberos ticket policy\n"
+"\n"
+"There is a single Kerberos ticket policy. This policy defines the\n"
+"maximum ticket lifetime and the maximum renewal age, the period during\n"
+"which the ticket is renewable.\n"
+"\n"
+"You can also create a per-user ticket policy by specifying the user login.\n"
+"\n"
+"For changes to the global policy to take effect, restarting the KDC service\n"
+"is required, which can be achieved using:\n"
+"\n"
+"service krb5kdc restart\n"
+"\n"
+"Changes to per-user policies take effect immediately for newly requested\n"
+"tickets (e.g. when the user next runs kinit).\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Display the current Kerberos ticket policy:\n"
+" ipa krbtpolicy-show\n"
+"\n"
+" Reset the policy to the default:\n"
+" ipa krbtpolicy-reset\n"
+"\n"
+" Modify the policy to 8 hours max life, 1-day max renewal:\n"
+" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n"
+"\n"
+" Display effective Kerberos ticket policy for user 'admin':\n"
+" ipa krbtpolicy-show admin\n"
+"\n"
+" Reset per-user policy for user 'admin':\n"
+" ipa krbtpolicy-reset admin\n"
+"\n"
+" Modify per-user policy for user 'admin':\n"
+" ipa krbtpolicy-mod admin --maxlife=3600\n"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:71
+msgid ""
+"\n"
+" Kerberos Ticket Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:79
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:64 ipalib/plugins/passwd.py:52
+#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
msgid "User name"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:65
+#: ipalib/plugins/krbtpolicy.py:85
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:70
+#: ipalib/plugins/krbtpolicy.py:90
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:75
+#: ipalib/plugins/krbtpolicy.py:96
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:76
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/migration.py:44
-#, python-format
+#: ipalib/plugins/krbtpolicy.py:111
+msgid ""
+"\n"
+" Modify Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:125
+msgid ""
+"\n"
+" Display the current Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:149
+msgid ""
+"\n"
+" Reset Kerberos ticket policy to the default values.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:19
+msgid ""
+"\n"
+"Migration to IPA\n"
+"\n"
+"Migrate users and groups from an LDAP server to IPA.\n"
+"\n"
+"This performs an LDAP query against the remote server searching for\n"
+"users and groups in a container. In order to migrate passwords you need\n"
+"to bind as a user that can read the userPassword attribute on the remote\n"
+"server. This is generally restricted to high-level admins such as\n"
+"cn=Directory Manager in 389-ds (this is the default bind user).\n"
+"\n"
+"The default user container is ou=People.\n"
+"\n"
+"The default group container is ou=Groups.\n"
+"\n"
+"Users and groups that already exist on the IPA server are skipped.\n"
+"\n"
+"Two LDAP schemas define how group members are stored: RFC2307 and\n"
+"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n"
+"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n"
+"\n"
+"Migrated users do not have Kerberos credentials, they have only their\n"
+"LDAP password. To complete the migration process, users need to go\n"
+"to http://ipa.example.com/ipa/migration and authenticate using their\n"
+"LDAP password in order to generate their Kerberos credentials.\n"
+"\n"
+"Migration is disabled by default. Use the command ipa config-mod to\n"
+"enable it:\n"
+"\n"
+" ipa config-mod --enable-migration=TRUE\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" The simplest migration, accepting all defaults:\n"
+" ipa migrate-ds ldap://ds.example.com:389\n"
+"\n"
+" Specify the user and group container. This can be used to migrate user and\n"
+" group data from an IPA v1 server:\n"
+" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-"
+"container='cn=groups,cn=accounts' ldap://ds.example.com:389\n"
+msgstr ""
+
+#: ipalib/plugins/migration.py:78
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:45
+#: ipalib/plugins/migration.py:79
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:169
+#: ipalib/plugins/migration.py:175
+msgid ""
+"\n"
+" Convert usernames in member attributes to work in IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:220
+msgid "Invalid LDAP URI."
+msgstr ""
+
+#: ipalib/plugins/migration.py:225
+msgid ""
+"\n"
+" Migrate users and groups from DS to IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:266
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:170
+#: ipalib/plugins/migration.py:267
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:174
+#: ipalib/plugins/migration.py:272
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:181
+#: ipalib/plugins/migration.py:279
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:187
+#: ipalib/plugins/migration.py:285
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:188
+#: ipalib/plugins/migration.py:286
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:194
+#: ipalib/plugins/migration.py:292
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:195
+#: ipalib/plugins/migration.py:293
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:200
-msgid "Continous operation mode. Errors are reported but the process continues"
+#: ipalib/plugins/migration.py:299
+msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:208
+#: ipalib/plugins/migration.py:300
+msgid ""
+"Comma-separated list of objectclasses used to search for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:306
+msgid "Group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:307
+msgid ""
+"Comma-separated list of objectclasses used to search for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:313
+msgid "LDAP schema"
+msgstr ""
+
+#: ipalib/plugins/migration.py:314
+msgid ""
+"The schema used on the LDAP server. Supported values are RFC2307 and "
+"RFC2307bis. The default is RFC2307bis"
+msgstr ""
+
+#: ipalib/plugins/migration.py:320
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues"
+msgstr ""
+
+#: ipalib/plugins/migration.py:328
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:212
+#: ipalib/plugins/migration.py:332
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:216
+#: ipalib/plugins/migration.py:336
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:220
-#, python-format
+#: ipalib/plugins/migration.py:340
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:222
+#: ipalib/plugins/migration.py:342
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
-"migration process might be uncomplete\n"
+"migration process might be incomplete\n"
msgstr ""
-#: ipalib/plugins/migration.py:227
+#: ipalib/plugins/migration.py:347
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:230
+#: ipalib/plugins/migration.py:350
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -1527,16 +4765,55 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:297
-#, python-format
+#: ipalib/plugins/migration.py:358
+msgid ""
+"\n"
+" Call get_options of the baseclass and add \"exclude\" options\n"
+" for each type of object being migrated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:375
+msgid ""
+"\n"
+" Convert all \"exclude\" option values to lower-case.\n"
+"\n"
+" Also, empty List parameters are converted to None, but the "
+"migration\n"
+" plugin doesn't like that - convert back to empty lists.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:399
+msgid ""
+"\n"
+" Migrate objects from DS to LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:425
msgid "Container for %(container)s not found"
msgstr ""
+#: ipalib/plugins/misc.py:20
+msgid ""
+"\n"
+"Misc plug-ins\n"
+msgstr ""
+
+#: ipalib/plugins/misc.py:36
+msgid "Show environment variables"
+msgstr ""
+
#: ipalib/plugins/misc.py:38
-#, python-format
msgid "%(count)d variables"
msgstr ""
+#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115
+msgid ""
+"retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
#: ipalib/plugins/misc.py:61
msgid "Total number of variables env (>= count)"
msgstr ""
@@ -1545,435 +4822,2391 @@ msgstr ""
msgid "Number of variables returned (<= total)"
msgstr ""
-#: ipalib/plugins/misc.py:109
-#, python-format
+#: ipalib/plugins/misc.py:106
+msgid "Show all loaded plugins"
+msgstr ""
+
+#: ipalib/plugins/misc.py:108
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/misc.py:116
+#: ipalib/plugins/misc.py:126
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:57
+#: ipalib/plugins/netgroup.py:20
+msgid ""
+"\n"
+"Netgroups\n"
+"\n"
+"A netgroup is a group used for permission checking. It can contain both\n"
+"user and host values.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new netgroup:\n"
+" ipa netgroup-add --desc=\"NFS admins\" admins\n"
+"\n"
+" Add members to the netgroup:\n"
+" ipa netgroup-add-member --users=tuser1,tuser2 admins\n"
+"\n"
+" Remove a member from the netgroup:\n"
+" ipa netgroup-remove-member --users=tuser2 admins\n"
+"\n"
+" Display information about a netgroup:\n"
+" ipa netgroup-show admins\n"
+"\n"
+" Delete a netgroup:\n"
+" ipa netgroup-del admins\n"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:59
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:63
-msgid "External host"
+#: ipalib/plugins/netgroup.py:67
+msgid ""
+"\n"
+" Netgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/netgroup.py:85
-msgid "Net Groups"
+#: ipalib/plugins/netgroup.py:98
+msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:90
+#: ipalib/plugins/netgroup.py:103
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:97
+#: ipalib/plugins/netgroup.py:110
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:101
+#: ipalib/plugins/netgroup.py:114
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:106
+#: ipalib/plugins/netgroup.py:119
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:84
-#, python-format
+#: ipalib/plugins/netgroup.py:140
+msgid ""
+"\n"
+" Add a new netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:144
+msgid "Added netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:153
+msgid ""
+"\n"
+" Delete a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:156
+msgid "Deleted netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:162
+msgid ""
+"\n"
+" Modify a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:166
+msgid "Modified netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:180
+msgid ""
+"\n"
+" Search for a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:185
+msgid "%(count)d netgroup matched"
+msgid_plural "%(count)d netgroups matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/netgroup.py:213
+msgid ""
+"\n"
+" Display information about a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:222
+msgid ""
+"\n"
+" Add members to a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:258
+msgid ""
+"\n"
+" Remove members from a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:19
+msgid ""
+"\n"
+"Set a user's password\n"
+"\n"
+"If someone other than a user changes that user's password (e.g., Helpdesk\n"
+"resets it) then the password will need to be changed the first time it\n"
+"is used. This is so the end-user is the only one who knows the password.\n"
+"\n"
+"The IPA password policy controls how often a password may be changed,\n"
+"what strength requirements exist, and the length of the password history.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" To reset your own password:\n"
+" ipa passwd\n"
+"\n"
+" To change another user's password:\n"
+" ipa passwd tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/passwd.py:46
+msgid ""
+"\n"
+" Set a user's password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:64
+msgid "Changed password for \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/passwd.py:67
+msgid ""
+"\n"
+" Execute the passwd operation.\n"
+"\n"
+" The dn should not be passed as a keyword argument as it is "
+"constructed\n"
+" by this method.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param principal: The login name or principal of the user\n"
+" :param password: the new password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:19
+msgid ""
+"\n"
+"Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of rights. A permission is\n"
+"a human-readable form of a 389-ds Access Control Rule, or instruction "
+"(ACI).\n"
+"A permission grants the right to perform a specific task such as adding a\n"
+"user, modifying a group, etc.\n"
+"\n"
+"A permission may not contain other permissions.\n"
+"\n"
+"* A permission grants access to read, write, add or delete.\n"
+"* A privilege combines similar permissions (for example all the permissions\n"
+" needed to add a user).\n"
+"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n"
+"\n"
+"A permission is made up of a number of different parts:\n"
+"\n"
+"1. The name of the permission.\n"
+"2. The target of the permission.\n"
+"3. The rights granted by the permission.\n"
+"\n"
+"Rights define what operations are allowed, and may be one or more\n"
+"of the following:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Read permission is granted for most attributes by default so the read\n"
+"permission is not expected to be used very often.\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"There are a number of allowed targets:\n"
+"1. type: a type of object (user, group, etc).\n"
+"2. memberof: a member of a group or hostgroup\n"
+"3. filter: an LDAP filter\n"
+"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n"
+" super-set of the \"type\" target.\n"
+"5. targetgroup: grant access to modify a specific group (such as granting\n"
+" the rights to manage group membership)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a permission that grants the creation of users:\n"
+" ipa permission-add --type=user --permissions=add \"Add Users\"\n"
+"\n"
+" Add a permission that grants the ability to manage group membership:\n"
+" ipa permission-add --attrs=member --permissions=write --type=group "
+"\"Manage Group Members\"\n"
+msgstr ""
+
+#: ipalib/plugins/permission.py:84
+msgid "Permission Type"
+msgstr ""
+
+#: ipalib/plugins/permission.py:89
+msgid ""
+"\n"
+" Permission object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:112
+msgid "Permission name"
+msgstr ""
+
+#: ipalib/plugins/permission.py:119
+msgid ""
+"Comma-separated list of permissions to grant (read, write, add, delete, all)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:132
+msgid ""
+"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:138
+msgid "Member of group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:139
+msgid "Target members of a group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:151
+msgid "Subtree to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:157
+msgid "User group to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:177
+msgid ""
+"\n"
+" Add a new permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:181
+msgid "Added permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:236
+msgid ""
+"\n"
+" Delete a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:240
+msgid "Deleted permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:256
+msgid ""
+"\n"
+" Modify a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:260
+msgid "Modified permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:352
+msgid ""
+"\n"
+" Search for permissions.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:356
+msgid "%(count)d permission matched"
+msgid_plural "%(count)d permissions matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/permission.py:405
+msgid ""
+"\n"
+" Display information about a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:428
+msgid ""
+"\n"
+" Add members to a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:437
+msgid ""
+"\n"
+" Remove members from a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:19
+msgid ""
+"\n"
+"Ping the remote IPA server\n"
+msgstr ""
+
+#: ipalib/plugins/ping.py:29
+msgid ""
+"\n"
+" ping a remote server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:37
+msgid ""
+"\n"
+" A possible enhancement would be to take an argument and echo it\n"
+" back but a fixed value works for now.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:19
+msgid ""
+"\n"
+"Kerberos pkinit options\n"
+"\n"
+"Enable or disable anonymous pkinit using the principal\n"
+"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n"
+"pkinit support.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Enable anonymous pkinit:\n"
+" ipa pkinit-anonymous enable\n"
+"\n"
+" Disable anonymous pkinit:\n"
+" ipa pkinit-anonymous disable\n"
+"\n"
+"For more information on anonymous pkinit see:\n"
+"\n"
+"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:46
+msgid ""
+"\n"
+" PKINIT Options\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:51
+msgid "PKINIT"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:56
+msgid ""
+"\n"
+" Accepts only Enable/Disable.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:67
+msgid ""
+"\n"
+" Enable or Disable Anonymous PKINIT\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:19
+msgid ""
+"\n"
+"Privileges\n"
+"\n"
+"A privilege combines permissions into a logical task. A permission provides\n"
+"the rights to do a single task. There are some IPA operations that require\n"
+"multiple permissions to succeed. A privilege is where permissions are\n"
+"combined in order to perform a specific task.\n"
+"\n"
+"For example, adding a user requires the following permissions:\n"
+" * Creating a new user entry\n"
+" * Resetting a user password\n"
+" * Adding the new user to the default IPA users group\n"
+"\n"
+"Combining these three low-level tasks into a higher level task in the\n"
+"form of a privilege named \"Add User\" makes it easier to manage Roles.\n"
+"\n"
+"A privilege may not contain other privileges.\n"
+"\n"
+"See role and permission for additional information.\n"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:45
+msgid ""
+"\n"
+" Privilege object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:65
+msgid "Privileges"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:70
+msgid "Privilege name"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:77
+msgid "Privilege description"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:85
+msgid ""
+"\n"
+" Add a new privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:89
+msgid "Added privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:95
+msgid ""
+"\n"
+" Delete a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:99
+msgid "Deleted privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:105
+msgid ""
+"\n"
+" Modify a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:109
+msgid "Modified privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:115
+msgid ""
+"\n"
+" Search for privileges.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:119
+msgid "%(count)d privilege matched"
+msgid_plural "%(count)d privileges matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/privilege.py:127
+msgid ""
+"\n"
+" Display information about a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:135
+msgid ""
+"\n"
+" Add members to a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:144
+msgid ""
+"\n"
+" Remove members from a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:153
+msgid ""
+"\n"
+" Add permissions to a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:169
+msgid "Number of permissions added"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:177
+msgid ""
+"\n"
+" Remove permissions from a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:195
+msgid "Number of permissions removed"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:20
+msgid ""
+"\n"
+"Password policy\n"
+"\n"
+"A password policy sets limitations on IPA passwords, including maximum\n"
+"lifetime, minimum lifetime, the number of passwords to save in\n"
+"history, the number of character classes required (for stronger passwords)\n"
+"and the minimum password length.\n"
+"\n"
+"By default there is a single, global policy for all users. You can also\n"
+"create a password policy to apply to a group. Each user is only subject\n"
+"to one password policy, either the group policy or the global policy. A\n"
+"group policy stands alone; it is not a super-set of the global policy plus\n"
+"custom settings.\n"
+"\n"
+"Each group password policy requires a unique priority setting. If a user\n"
+"is in multiple groups that have password policies, this priority determines\n"
+"which password policy is applied. A lower value indicates a higher priority\n"
+"policy.\n"
+"\n"
+"Group password policies are automatically removed when the groups they\n"
+"are associated with are removed.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Modify the global policy:\n"
+" ipa pwpolicy-mod --minlength=10\n"
+"\n"
+" Add a new group password policy:\n"
+" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --"
+"minlength=8 --priority=10 localadmins\n"
+"\n"
+" Display the global password policy:\n"
+" ipa pwpolicy-show\n"
+"\n"
+" Display a group password policy:\n"
+" ipa pwpolicy-show localadmins\n"
+"\n"
+" Display the policy that would be applied to a given user:\n"
+" ipa pwpolicy-show --user=tuser1\n"
+"\n"
+" Modify a group password policy:\n"
+" ipa pwpolicy-mod --minclasses=2 localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:72
+msgid ""
+"\n"
+" Class of Service object used for linking policies with groups\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:87
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:170
-msgid "Password Policy"
+#: ipalib/plugins/pwpolicy.py:172
+msgid ""
+"\n"
+" Password Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:201
+msgid "Max failures"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:202
+msgid "Consecutive failures before lockout"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:207
+msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:175
+#: ipalib/plugins/pwpolicy.py:208
+msgid "Period after which failure count will be reset (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:213
+msgid "Lockout duration"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:214
+msgid "Period for which lockout is enforced (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:224
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:176
+#: ipalib/plugins/pwpolicy.py:225
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:181
+#: ipalib/plugins/pwpolicy.py:230
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:182
+#: ipalib/plugins/pwpolicy.py:231
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:187
+#: ipalib/plugins/pwpolicy.py:236
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:188
+#: ipalib/plugins/pwpolicy.py:237
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:193
+#: ipalib/plugins/pwpolicy.py:242
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:194
+#: ipalib/plugins/pwpolicy.py:243
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:199
+#: ipalib/plugins/pwpolicy.py:248
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:200
+#: ipalib/plugins/pwpolicy.py:249
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:206
+#: ipalib/plugins/pwpolicy.py:255
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:256
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:212
+#: ipalib/plugins/pwpolicy.py:261
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:262
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:265
+#: ipalib/plugins/pwpolicy.py:294
+msgid ""
+"\n"
+" Ensure that the maximum lifetime is greater than the minimum.\n"
+" If there is no minimum lifetime set then don't return an error.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:314
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:330
+#: ipalib/plugins/pwpolicy.py:333
+msgid ""
+"\n"
+" Add a new group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:361
+msgid ""
+"\n"
+" Delete a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:380
+msgid ""
+"\n"
+" Modify a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:391
msgid "priority cannot be set on global policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:369
+#: ipalib/plugins/pwpolicy.py:423
+msgid ""
+"\n"
+" Display information about password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:428
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:370
+#: ipalib/plugins/pwpolicy.py:429
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/rolegroup.py:79
-msgid "Role Groups"
+#: ipalib/plugins/pwpolicy.py:452
+msgid ""
+"\n"
+" Search for group password policies.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:84
-msgid "Role-group name"
+#: ipalib/plugins/role.py:20
+msgid ""
+"\n"
+"Roles\n"
+"\n"
+"A role is used for fine-grained delegation. A permission grants the ability\n"
+"to perform given low-level tasks (add a user, modify a group, etc.). A\n"
+"privilege combines one or more permissions into a higher-level abstraction\n"
+"such as useradmin. A useradmin would be able to add, delete and modify "
+"users.\n"
+"\n"
+"Privileges are assigned to Roles.\n"
+"\n"
+"Users, groups, hosts and hostgroups may be members of a Role.\n"
+"\n"
+"Roles can not contain other roles.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new role:\n"
+" ipa role-add --desc=\"Junior-level admin\" junioradmin\n"
+"\n"
+" Add some privileges to this role:\n"
+" ipa role-add-privilege --privileges=addusers junioradmin\n"
+" ipa role-add-privilege --privileges=change_password junioradmin\n"
+" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n"
+"\n"
+" Add a group of users to this role:\n"
+" ipa group-add --desc=\"User admins\" useradmins\n"
+" ipa role-add-member --groups=useradmins junioradmin\n"
+"\n"
+" Display information about a role:\n"
+" ipa role-show junioradmin\n"
+"\n"
+" The result of this is that any users in the group 'useradmins' can\n"
+" add users, reset passwords or add a user to the default IPA user group.\n"
+msgstr ""
+
+#: ipalib/plugins/role.py:62
+msgid ""
+"\n"
+" Role object.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:91
+#: ipalib/plugins/role.py:81
+msgid "Role"
+msgstr ""
+
+#: ipalib/plugins/role.py:86
+msgid "Role name"
+msgstr ""
+
+#: ipalib/plugins/role.py:93
msgid "A description of this role-group"
msgstr ""
-#: ipalib/plugins/rolegroup.py:102
-msgid "Member of task-groups"
+#: ipalib/plugins/role.py:101
+msgid ""
+"\n"
+" Add a new role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:115
-#, python-format
-msgid "Added rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:105
+msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/rolegroup.py:125
-#, python-format
-msgid "Deleted rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:111
+msgid ""
+"\n"
+" Delete a role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:135
-#, python-format
-msgid "Modified rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:115
+msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/rolegroup.py:146
-#, python-format
-msgid "%(count)d rolegroup matched"
-msgid_plural "%(count)d rolegroups matched"
+#: ipalib/plugins/role.py:121
+msgid ""
+"\n"
+" Modify a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:125
+msgid "Modified role \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/role.py:131
+msgid ""
+"\n"
+" Search for roles.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:135
+msgid "%(count)d role matched"
+msgid_plural "%(count)d roles matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:198
+#: ipalib/plugins/role.py:143
+msgid ""
+"\n"
+" Display information about a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:151
+msgid ""
+"\n"
+" Add members to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:159
+msgid ""
+"\n"
+" Remove members from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:167
+msgid ""
+"\n"
+" Add privileges to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:183
+msgid "Number of privileges added"
+msgstr ""
+
+#: ipalib/plugins/role.py:191
+msgid ""
+"\n"
+" Remove privileges from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:207
+msgid "Number of privileges removed"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:19
+msgid ""
+"\n"
+"Self-service Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"A Self-service permission defines what an object can change in its own "
+"entry.\n"
+"\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a self-service rule to allow users to manage their address:\n"
+" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st "
+"\"Users manage their own address\"\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add telephoneNumber to the list:\n"
+" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber "
+"\"Users manage their own address\"\n"
+"\n"
+" Display our updated rule:\n"
+" ipa selfservice-show \"Users manage their own address\"\n"
+"\n"
+" Delete a rule:\n"
+" ipa selfservice-del \"Users manage their own address\"\n"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:56
+msgid ""
+"\n"
+" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a self-service ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:64
+msgid "Self-service permission '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:68
+msgid ""
+"\n"
+" Selfservice object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:75
+msgid "Self Service Permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
+msgid "Self-service name"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:114
+msgid ""
+"\n"
+" Add a new self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:118
+msgid "Added selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:137
+msgid ""
+"\n"
+" Delete a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:142
+msgid "Deleted selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:158
+msgid ""
+"\n"
+" Modify a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:162
+msgid "Modified selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:181
+msgid ""
+"\n"
+" Search for a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:185
+msgid "%(count)d selfservice matched"
+msgid_plural "%(count)d selfservices matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/selfservice.py:207
+msgid ""
+"\n"
+" Display information about a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:21
+msgid ""
+"\n"
+"Services\n"
+"\n"
+"A IPA service represents a service that runs on a host. The IPA service\n"
+"record can store a Kerberos principal, an SSL certificate, or both.\n"
+"\n"
+"An IPA service can be managed directly from a machine, provided that\n"
+"machine has been given the correct permission. This is true even for\n"
+"machines other than the one the service is associated with. For example,\n"
+"requesting an SSL certificate using the host service principal credentials\n"
+"of the host. To manage a service using host credentials you need to\n"
+"kinit as the host:\n"
+"\n"
+" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n"
+"\n"
+"Adding an IPA service allows the associated service to request an SSL\n"
+"certificate or keytab, but this is performed as a separate step; they\n"
+"are not produced as a result of adding the service.\n"
+"\n"
+"Only the public aspect of a certificate is stored in a service record;\n"
+"the private key is not stored.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new IPA service:\n"
+" ipa service-add HTTP/web.example.com\n"
+"\n"
+" Allow a host to manage an IPA service certificate:\n"
+" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n"
+" ipa role-add-member --hosts=web.example.com certadmin\n"
+"\n"
+" Delete an IPA service:\n"
+" ipa service-del HTTP/web.example.com\n"
+"\n"
+" Find all IPA services associated with a host:\n"
+" ipa service-find web.example.com\n"
+"\n"
+" Find all HTTP services:\n"
+" ipa service-find HTTP\n"
+"\n"
+" Disable the service Kerberos key and SSL certificate:\n"
+" ipa service-disable HTTP/web.example.com\n"
+"\n"
+" Request a certificate for an IPA service:\n"
+" ipa cert-request --principal=HTTP/web.example.com example.csr\n"
+"\n"
+" Generate and retrieve a keytab for an IPA service:\n"
+" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/"
+"httpd.keytab\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/service.py:162
+msgid ""
+"\n"
+" For now just verify that it is properly base64-encoded.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:175
+msgid ""
+"\n"
+" Set individual attributes from some values from a certificate.\n"
+"\n"
+" entry_attrs is a dict of an entry\n"
+"\n"
+" returns nothing\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:199
+msgid ""
+"\n"
+" Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:226
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:221
+#: ipalib/plugins/service.py:242
+msgid ""
+"\n"
+" Add a new IPA new service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:245
+msgid "Added service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/service.py:251
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:292
-#, python-format
+#: ipalib/plugins/service.py:284
+msgid ""
+"\n"
+" Delete an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:287
+msgid "Deleted service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/service.py:321
+msgid ""
+"\n"
+" Modify an existing IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:324
msgid "Modified service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:323
-#, python-format
+#: ipalib/plugins/service.py:356
+msgid ""
+"\n"
+" Search for IPA services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:359
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:409
-msgid "Service principal has no kerberos key"
+#: ipalib/plugins/service.py:394
+msgid ""
+"\n"
+" Display information about an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:432
+msgid ""
+"\n"
+" Add hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:442
+msgid ""
+"\n"
+" Remove hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:452
+msgid ""
+"\n"
+" Disable the Kerberos key and SSL certificate of a service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:456
+msgid "Disabled service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:19
+msgid ""
+"\n"
+"Sudo Commands\n"
+"\n"
+"Commands used as building blocks for sudo\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a new command\n"
+" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n"
+"\n"
+" Remove a command\n"
+" ipa sudocmd-del /usr/bin/less\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:46
+msgid ""
+"\n"
+" Sudo Command object.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmd.py:60
-msgid "SudoCmds"
+#: ipalib/plugins/sudocmd.py:64
+msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:65
+#: ipalib/plugins/sudocmd.py:69
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:72
+#: ipalib/plugins/sudocmd.py:75
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:99
-#, python-format
+#: ipalib/plugins/sudocmd.py:98
+msgid ""
+"\n"
+" Create new sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:102
msgid "Added sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:108
-#, python-format
+#: ipalib/plugins/sudocmd.py:107
+msgid ""
+"\n"
+" Delete sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:111
msgid "Deleted sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:117
-#, python-format
+#: ipalib/plugins/sudocmd.py:116
+msgid ""
+"\n"
+" Modify command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:120
msgid "Modified sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:127
-#, python-format
+#: ipalib/plugins/sudocmd.py:125
+msgid ""
+"\n"
+" Search for commands.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:129
msgid "%(count)d sudo command matched"
msgid_plural "%(count)d sudo command matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmdgroup.py:66 ipalib/plugins/sudocmdgroup.py:85
-#: ipalib/plugins/sudorule.py:81 ipalib/plugins/sudorule.py:85
-msgid "Sudo Command Groups"
+#: ipalib/plugins/sudocmd.py:136
+msgid ""
+"\n"
+" Display sudo command.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:71
+#: ipalib/plugins/sudocmdgroup.py:19
+msgid ""
+"\n"
+"Groups of Sudo commands\n"
+"\n"
+"Manage groups of Sudo commands.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new Sudo command group:\n"
+" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
+"\n"
+" Remove a Sudo command group:\n"
+" ipa sudocmdgroup-del admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim "
+"admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
+"\n"
+" Show a Sudo command group:\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:50
+msgid ""
+"\n"
+" Sudo Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:70
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:81
-msgid "Commands"
+#: ipalib/plugins/sudocmdgroup.py:93
+msgid ""
+"\n"
+" Create new sudo command group.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:98
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:97
msgid "Added sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:108
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:103
+msgid ""
+"\n"
+" Delete sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:107
msgid "Deleted sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:118
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:113
+msgid ""
+"\n"
+" Modify group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:117
msgid "Modified sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:129
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:123
+msgid ""
+"\n"
+" Search for sudo command groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:127
msgid "%(count)d sudo command group matched"
msgid_plural "%(count)d sudo command groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudorule.py:48
-msgid "SudoRule"
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid ""
+"\n"
+" Display sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:144
+msgid ""
+"\n"
+" Add members to sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:152
+msgid ""
+"\n"
+" Remove members from sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:19
+msgid ""
+"\n"
+"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
+"give certain users (or groups of users) the ability to run some (or all)\n"
+"commands as root or another user while providing an audit trail of the\n"
+"commands and their arguments.\n"
+"\n"
+"FreeIPA provides a designated binddn to use with Sudo located at:\n"
+"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
+"\n"
+"To enable the binddn run the following command to set the password:\n"
+"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -"
+"ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,"
+"dc=com\n"
+"\n"
+"For more information, see the FreeIPA Documentation to Sudo.\n"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:44
+msgid ""
+"\n"
+" Sudo Rule management\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:68
+msgid "Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:98
+msgid "Command category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:99
+msgid "Command category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:104
+msgid "Run As User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/sudorule.py:105
+msgid "Run As User category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:110
+msgid "Run As Group category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:111
+msgid "Run As Group category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:131
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:77
+#: ipalib/plugins/sudorule.py:135
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:109
-#, python-format
+#: ipalib/plugins/sudorule.py:147
+msgid "Run As User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:151
+msgid "Run As Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:156
+msgid "External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:157
+msgid "External User the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:161
+msgid "RunAs External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:162
+msgid "External User the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:166
+msgid "RunAs External Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:167
+msgid "External Group the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:175
+msgid ""
+"\n"
+" Create new Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "Added sudo rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/taskgroup.py:51
-msgid "Task Groups"
+#: ipalib/plugins/sudorule.py:189
+msgid ""
+"\n"
+" Delete Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:197
+msgid ""
+"\n"
+" Modify Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:56
-msgid "Task-group name"
+#: ipalib/plugins/sudorule.py:205
+msgid ""
+"\n"
+" Search for Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:63
-msgid "Task-group description"
+#: ipalib/plugins/sudorule.py:213
+msgid ""
+"\n"
+" Display Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:74
-msgid "Member role-groups"
+#: ipalib/plugins/sudorule.py:221
+msgid ""
+"\n"
+" Enable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:87
-#, python-format
-msgid "Added taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:247
+msgid ""
+"\n"
+" Disable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:97
-#, python-format
-msgid "Deleted taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
+msgid ""
+"\n"
+" Add commands and sudo command groups affected by Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:107
-#, python-format
-msgid "Modified taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
+msgid ""
+"\n"
+" Remove commands and sudo command groups affected by Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:118
-#, python-format
-msgid "%(count)d taskgroup matched"
-msgid_plural "%(count)d taskgroups matched"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/sudorule.py:313
+msgid ""
+"\n"
+" Add users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:349
+msgid ""
+"\n"
+" Remove users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:383
+msgid ""
+"\n"
+" Add hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:419
+msgid ""
+"\n"
+" Remove hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:453
+msgid ""
+"\n"
+" Add user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:489
+msgid ""
+"\n"
+" Remove user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:523
+msgid ""
+"\n"
+" Add group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:559
+msgid ""
+"\n"
+" Remove group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:593
+msgid ""
+"\n"
+" Add an option to the Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
+msgid "Sudo Option"
+msgstr ""
-#: ipalib/plugins/user.py:84
+#: ipalib/plugins/sudorule.py:635
+msgid ""
+"\n"
+" Remove an option from Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:20
+msgid ""
+"\n"
+"Users\n"
+"\n"
+"Manage user entries. All users are POSIX users.\n"
+"\n"
+"IPA supports a wide range of username formats, but you need to be aware of "
+"any\n"
+"restrictions that may apply to your particular environment. For example,\n"
+"usernames that start with a digit or usernames that exceed a certain length\n"
+"may cause problems for some UNIX systems.\n"
+"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n"
+"\n"
+"Disabling a user account prevents that user from obtaining new Kerberos\n"
+"credentials. It does not invalidate any credentials that have already\n"
+"been issued.\n"
+"\n"
+"Password management is not a part of this module. For more information\n"
+"about this topic please see: ipa help passwd\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1\n"
+"\n"
+" Find all users whose entries include the string \"Tim\":\n"
+" ipa user-find Tim\n"
+"\n"
+" Find all users with \"Tim\" as the first name:\n"
+" ipa user-find --first=Tim\n"
+"\n"
+" Disable a user account:\n"
+" ipa user-disable tuser1\n"
+"\n"
+" Enable a user account:\n"
+" ipa user-enable tuser1\n"
+"\n"
+" Delete a user:\n"
+" ipa user-del tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/user.py:79
+msgid ""
+"\n"
+" User object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:116
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:91
+#: ipalib/plugins/user.py:123
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:95
+#: ipalib/plugins/user.py:127
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:103
+#: ipalib/plugins/user.py:130
+msgid "Full name"
+msgstr ""
+
+#: ipalib/plugins/user.py:135
+msgid "Display name"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "Initials"
+msgstr ""
+
+#: ipalib/plugins/user.py:146
+msgid "Home directory"
+msgstr ""
+
+#: ipalib/plugins/user.py:150
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:109
+#: ipalib/plugins/user.py:156
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:114
+#: ipalib/plugins/user.py:161
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:120
+#: ipalib/plugins/user.py:168
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:124
-msgid "Password"
-msgstr ""
-
-#: ipalib/plugins/user.py:125
-msgid "Set the user password"
+#: ipalib/plugins/user.py:173
+msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:132
+#: ipalib/plugins/user.py:180
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:133
+#: ipalib/plugins/user.py:181
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:139
-msgid "Street address"
+#: ipalib/plugins/user.py:188
+msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:142
-msgid "Groups"
+#: ipalib/plugins/user.py:193
+msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:146
-msgid "Netgroups"
+#: ipalib/plugins/user.py:197
+msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:150
-msgid "Rolegroups"
+#: ipalib/plugins/user.py:201
+msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:154
-msgid "Taskgroups"
+#: ipalib/plugins/user.py:204
+msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:159
+#: ipalib/plugins/user.py:208
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:211
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:163
+#: ipalib/plugins/user.py:214
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:166
+#: ipalib/plugins/user.py:218
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:177
-#, python-format
+#: ipalib/plugins/user.py:222
+msgid "Org. Unit"
+msgstr ""
+
+#: ipalib/plugins/user.py:225
+msgid "Job Title"
+msgstr ""
+
+#: ipalib/plugins/user.py:228
+msgid "Manager"
+msgstr ""
+
+#: ipalib/plugins/user.py:231
+msgid "Car License"
+msgstr ""
+
+#: ipalib/plugins/user.py:234
+msgid "Account disabled"
+msgstr ""
+
+#: ipalib/plugins/user.py:258
+msgid ""
+"\n"
+" Given a userid verify the user's existence and return the dn.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:276
+msgid "manager %(manager)s not found"
+msgstr ""
+
+#: ipalib/plugins/user.py:281
+msgid ""
+"\n"
+" Convert a manager dn into a userid\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:295
+msgid ""
+"\n"
+" Add a new user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:298
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:226
-#, python-format
+#: ipalib/plugins/user.py:303
+msgid "Don't create user private group"
+msgstr ""
+
+#: ipalib/plugins/user.py:333
+msgid "can be at most %(len)d characters"
+msgstr ""
+
+#: ipalib/plugins/user.py:400
+msgid ""
+"\n"
+" Delete a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:404
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:240
-#, python-format
+#: ipalib/plugins/user.py:413
+msgid ""
+"\n"
+" Modify a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:417
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:252
+#: ipalib/plugins/user.py:437
+msgid ""
+"\n"
+" Search for users.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:444
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:253
+#: ipalib/plugins/user.py:445
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:263
-#, python-format
+#: ipalib/plugins/user.py:463
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:283
-#, python-format
+#: ipalib/plugins/user.py:471
+msgid ""
+"\n"
+" Display information about a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:484
+msgid ""
+"\n"
+" Disable a user account.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:489
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:309
-#, python-format
+#: ipalib/plugins/user.py:507
+msgid ""
+"\n"
+" Enable a user account.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:512
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipaserver/install/certs.py:599 ipaserver/plugins/dogtag.py:1313
-#: ipaserver/plugins/dogtag.py:1398 ipaserver/plugins/dogtag.py:1463
-#: ipaserver/plugins/dogtag.py:1543 ipaserver/plugins/dogtag.py:1602
+#: ipalib/plugins/user.py:529
+msgid ""
+"\n"
+" Unlock a user account\n"
+"\n"
+" An account may become locked if the password is entered incorrectly too\n"
+" many times within a specific time period as controlled by password\n"
+" policy. A locked account is a temporary condition and may be unlocked "
+"by\n"
+" an administrator.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:538
+msgid "Unlocked account \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/virtual.py:20
+msgid ""
+"\n"
+"Base classes for non-LDAP backend plugins.\n"
+msgstr ""
+
+#: ipalib/plugins/virtual.py:28
+msgid ""
+"\n"
+" A command that doesn't use the LDAP backend but wants to use the\n"
+" LDAP access control system to make authorization decisions.\n"
+"\n"
+" The class variable operation is the commonName attribute of the\n"
+" entry to be tested against.\n"
+"\n"
+" In advance, you need to create an entry of the form:\n"
+" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
+"\n"
+" Ex.\n"
+" cn=request certificate, cn=virtual operations,cn=etc, dc=example, "
+"dc=com\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/virtual.py:44
+msgid ""
+"\n"
+" Perform an LDAP query to determine authorization.\n"
+"\n"
+" This should be executed before any actual work is done.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/xmlclient.py:21
+msgid ""
+"\n"
+"XML-RPC client plugin.\n"
+msgstr ""
+
+#: ipalib/cli.py:581
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:590
+msgid "Cancelled."
+msgstr ""
+
+#: ipalib/cli.py:819
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1117
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:300
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:318
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:334
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:356
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:372
+#, python-format
+msgid "unknown command %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:389 ipalib/errors.py:414
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:405
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:423
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:439
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:465
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:482
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:498
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:514
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:530
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:546
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:562
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:578
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:597
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:641
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:661
+#, python-format
+msgid "command %(name)r takes at most %(count)d argument"
+msgid_plural "command %(name)r takes at most %(count)d arguments"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/errors.py:691
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:707
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:723 ipalib/errors.py:739
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:755
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:764
+msgid "Passwords do not match"
+msgstr ""
+
+#: ipalib/errors.py:773
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:782
+msgid "Client is not configured. Run ipa-client-install."
+msgstr ""
+
+#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
+#: ipalib/errors.py:1424 ipalib/errors.py:1441
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:826
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:842
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:858
+#, python-format
+msgid ""
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:874
+msgid ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr ""
+
+#: ipalib/errors.py:890
+msgid "This command requires root access"
+msgstr ""
+
+#: ipalib/errors.py:906
+msgid "This is already a posix group"
+msgstr ""
+
+#: ipalib/errors.py:922
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:938
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:954
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:970
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:986
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1002
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1018
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1034
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1066
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1082
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1098
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1113
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1128
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1160
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1176
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1192
+#, python-format
+msgid ""
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1216
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1240
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1256
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1272
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1288
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1303
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1318
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1334
+#, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr ""
+
+#: ipalib/errors.py:1350
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1366
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1391
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1407
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1458
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1474
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:398
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:850
+msgid ""
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:856
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:985
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:296
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:299
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:901
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1002
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1054
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1064
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1074
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1097
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1107
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1174
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1192
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1208
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1218
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1228
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1246
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1277
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1287
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1297
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1315
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1355
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/util.py:200
+#, python-format
+msgid "Permission denied: %(file)s"
+msgstr ""
+
+#: ipalib/x509.py:174
+#, python-format
+msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
+msgstr ""
+
+#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
+#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
+#: ipaserver/plugins/dogtag.py:1600
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -1994,27 +7227,27 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
-#: ipaserver/plugins/selfsign.py:98
+#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
"Request subject \"%(request_subject)s\" does not match the form "
"\"%(subject_base)s\""
msgstr ""
-#: ipaserver/plugins/selfsign.py:103
+#: ipaserver/plugins/selfsign.py:104
#, python-format
msgid "unable to decode csr: %s"
msgstr ""
-#: ipaserver/plugins/selfsign.py:124 ipaserver/plugins/selfsign.py:139
+#: ipaserver/plugins/selfsign.py:125 ipaserver/plugins/selfsign.py:140
msgid "file operation"
msgstr ""
-#: ipaserver/plugins/selfsign.py:153
+#: ipaserver/plugins/selfsign.py:154
msgid "cannot obtain next serial number"
msgstr ""
-#: ipaserver/plugins/selfsign.py:188
+#: ipaserver/plugins/selfsign.py:189
msgid "certutil failure"
msgstr ""
@@ -2028,543 +7261,573 @@ msgstr ""
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:75
+#: ipa-client/config.c:68
+#, c-format
+msgid "out of memory\n"
+msgstr ""
+
+#: ipa-client/config.c:79
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:138 ipa-client/ipa-getkeytab.c:838
+#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
+#: ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:146
+#: ipa-client/ipa-getkeytab.c:155
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:164 ipa-client/ipa-getkeytab.c:179
+#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:194
+#: ipa-client/ipa-getkeytab.c:203
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:209
+#: ipa-client/ipa-getkeytab.c:218
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:235
+#: ipa-client/ipa-getkeytab.c:245
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:297
+#: ipa-client/ipa-getkeytab.c:307
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:310 ipa-client/ipa-getkeytab.c:327
-#: ipa-client/ipa-getkeytab.c:335 ipa-client/ipa-getkeytab.c:372
+#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
+#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:317 ipa-client/ipa-getkeytab.c:350
+#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
+#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
+#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
+#: ipa-client/ipa-join.c:819
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:361
+#: ipa-client/ipa-getkeytab.c:371
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:481
+#: ipa-client/ipa-getkeytab.c:492
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:496
+#: ipa-client/ipa-getkeytab.c:507
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:534
+#: ipa-client/ipa-getkeytab.c:545
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:541
+#: ipa-client/ipa-getkeytab.c:552
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:565
+#: ipa-client/ipa-getkeytab.c:576
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:572
+#: ipa-client/ipa-getkeytab.c:583
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:579
+#: ipa-client/ipa-getkeytab.c:596
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:589
+#: ipa-client/ipa-getkeytab.c:606
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:605 ipa-client/ipa-getkeytab.c:618
-#: ipa-client/ipa-getkeytab.c:625 ipa-client/ipa-getkeytab.c:632
+#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
+#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:638 ipa-client/ipa-getkeytab.c:648
+#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655
+#: ipa-client/ipa-getkeytab.c:672
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:674
+#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:715
+#: ipa-client/ipa-getkeytab.c:736
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:721
+#: ipa-client/ipa-getkeytab.c:742
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781
+#: ipa-client/ipa-getkeytab.c:778
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782
+#: ipa-client/ipa-getkeytab.c:779
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:189
+#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:787
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:788
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:790
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:794
+#: ipa-client/ipa-getkeytab.c:791
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:796
+#: ipa-client/ipa-getkeytab.c:793
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:825 ipa-client/ipa-rmkeytab.c:207
-#, c-format
-msgid "Kerberos context initialization failed\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:837
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:845
+#: ipa-client/ipa-getkeytab.c:841
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:864
+#: ipa-client/ipa-getkeytab.c:860
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:877
+#: ipa-client/ipa-getkeytab.c:873
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. -P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:889
+#: ipa-client/ipa-getkeytab.c:885
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:897
+#: ipa-client/ipa-getkeytab.c:893
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:905
+#: ipa-client/ipa-getkeytab.c:901
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:913
+#: ipa-client/ipa-getkeytab.c:909
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:920
+#: ipa-client/ipa-getkeytab.c:916
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:939
+#: ipa-client/ipa-getkeytab.c:935
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:948
+#: ipa-client/ipa-getkeytab.c:944
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:954
+#: ipa-client/ipa-getkeytab.c:950
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:67
+#: ipa-client/ipa-join.c:65
#, c-format
msgid "No permission to join this host to the IPA domain.\n"
msgstr ""
-#: ipa-client/ipa-join.c:104 ipa-client/ipa-join.c:116
+#: ipa-client/ipa-join.c:94 ipa-client/ipa-join.c:106
#, c-format
msgid "No write permissions on keytab file '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:121
+#: ipa-client/ipa-join.c:111
#, c-format
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:200
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#, c-format
+msgid "Out of memory!"
+msgstr ""
+
+#: ipa-client/ipa-join.c:204
+#, c-format
+msgid "Unable to initialize connection to ldap server: %s"
+msgstr ""
+
+#: ipa-client/ipa-join.c:210
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:206
+#: ipa-client/ipa-join.c:216
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:236
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:249
+#: ipa-client/ipa-join.c:269
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:259 ipa-client/ipa-join.c:311
+#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:302
+#: ipa-client/ipa-join.c:322
#, c-format
msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:368
+#: ipa-client/ipa-join.c:390
#, c-format
msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:377
+#: ipa-client/ipa-join.c:399
#, c-format
msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:385
+#: ipa-client/ipa-join.c:407
#, c-format
msgid "Unable to make an LDAP connection to %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:394
+#: ipa-client/ipa-join.c:432
#, c-format
msgid "Searching with %s in %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:400
+#: ipa-client/ipa-join.c:438
#, c-format
msgid "ldap_search_ext_s: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:408
+#: ipa-client/ipa-join.c:446
#, c-format
msgid "Unable to find host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:415
+#: ipa-client/ipa-join.c:453
#, c-format
msgid "Unable to get binddn for host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:428
+#: ipa-client/ipa-join.c:466
#, c-format
msgid "Host already has principal, trying bind anyway\n"
msgstr ""
-#: ipa-client/ipa-join.c:442 ipa-client/ipa-join.c:579
+#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:484
#, c-format
msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:457
+#: ipa-client/ipa-join.c:495
#, c-format
msgid "principal not found in host entry\n"
msgstr ""
-#: ipa-client/ipa-join.c:564
+#: ipa-client/ipa-join.c:618
#, c-format
msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:646 ipa-client/ipa-join.c:823
+#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:662 ipa-client/ipa-join.c:838
+#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:671 ipa-client/ipa-join.c:848
+#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:679
+#: ipa-client/ipa-join.c:732
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:689
+#: ipa-client/ipa-join.c:741
+#, c-format
+msgid "Error getting default Kerberos realm: %s.\n"
+msgstr ""
+
+#: ipa-client/ipa-join.c:759
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:707
+#: ipa-client/ipa-join.c:777
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:718
+#: ipa-client/ipa-join.c:788
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:726
+#: ipa-client/ipa-join.c:796
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:769
+#: ipa-client/ipa-join.c:846
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:772
+#: ipa-client/ipa-join.c:849
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:854
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:855
+#: ipa-client/ipa-join.c:932
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:863
+#: ipa-client/ipa-join.c:940
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not "
"provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:877
+#: ipa-client/ipa-join.c:954
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:906
+#: ipa-client/ipa-join.c:983
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:909
+#: ipa-client/ipa-join.c:986
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:912
+#: ipa-client/ipa-join.c:989
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:924
+#: ipa-client/ipa-join.c:1001
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:930
+#: ipa-client/ipa-join.c:1007
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "Print the raw XML-RPC output"
+#: ipa-client/ipa-join.c:1042
+msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "XML-RPC debugging Output"
+#: ipa-client/ipa-join.c:1044
+msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:967
-msgid "Unenroll this host"
-msgstr ""
-
-#: ipa-client/ipa-join.c:967
+#: ipa-client/ipa-join.c:1046
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Use this hostname instead of the node name"
+#: ipa-client/ipa-join.c:1048
+msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Host Name"
+#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:971
+#: ipa-client/ipa-join.c:1050
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:971
-msgid "IPA Server Name"
+#: ipa-client/ipa-join.c:1052
+msgid "Specifies where to store keytab information."
+msgstr ""
+
+#: ipa-client/ipa-join.c:1052
+msgid "filename"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1054
+msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:44
+#: ipa-client/ipa-join.c:1054
+msgid "password"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:46
+#: ipa-client/ipa-rmkeytab.c:45
#, c-format
msgid "krb5_parse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:56
+#: ipa-client/ipa-rmkeytab.c:55
#, c-format
msgid "Removing principal %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:69
+#: ipa-client/ipa-rmkeytab.c:68
#, c-format
msgid "Failed to open keytab\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:73
+#: ipa-client/ipa-rmkeytab.c:72
#, c-format
msgid "principal not found\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:75
+#: ipa-client/ipa-rmkeytab.c:74
#, c-format
msgid "krb5_kt_get_entry %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:83
+#: ipa-client/ipa-rmkeytab.c:82
#, c-format
msgid "Unable to remove entry\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:85
+#: ipa-client/ipa-rmkeytab.c:84
#, c-format
msgid "kvno %d\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:86
+#: ipa-client/ipa-rmkeytab.c:85
#, c-format
msgid "krb5_kt_remove_entry %d: %s\n"
msgstr ""
@@ -2579,33 +7842,38 @@ msgstr ""
msgid "krb5_unparse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:143
+#, c-format
+msgid "realm not found\n"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Print debugging information"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Debugging output"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Remove all principals in this realm"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Realm name"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:241
+#: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237
#, c-format
-msgid "Failed to open keytab '%s'\n"
+msgid "Failed to open keytab '%s': %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:255
+#: ipa-client/ipa-rmkeytab.c:253
#, c-format
msgid "Closing keytab failed\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:257
+#: ipa-client/ipa-rmkeytab.c:255
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
diff --git a/install/po/ja.po b/install/po/ja.po
index 7889ff32e..9abb8ef79 100644
--- a/install/po/ja.po
+++ b/install/po/ja.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: ipa\n"
"Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/"
"newticket\n"
-"POT-Creation-Date: 2010-10-13 14:22-0400\n"
+"POT-Creation-Date: 2011-06-06 13:27-0400\n"
"PO-Revision-Date: 2010-09-27 10:25-0400\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -18,1502 +18,4737 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: ipalib/cli.py:507
-#, python-format
-msgid "Enter %(label)s again to verify: "
+#: ipalib/plugins/__init__.py:20
+msgid ""
+"\n"
+"Sub-package containing all core plugins.\n"
msgstr ""
-#: ipalib/cli.py:511 ipa-client/ipa-getkeytab.c:730
-#, c-format
-msgid "Passwords do not match!"
+#: ipalib/plugins/aci.py:20
+msgid ""
+"\n"
+"Directory Server Access Control Instructions (ACIs)\n"
+"\n"
+"ACIs are used to allow or deny access to information. This module is\n"
+"currently designed to allow, not deny, access.\n"
+"\n"
+"The aci commands are designed to grant permissions that allow updating\n"
+"existing entries or adding or deleting new ones. The goal of the ACIs\n"
+"that ship with IPA is to provide a set of low-level permissions that\n"
+"grant access to special groups called taskgroups. These low-level\n"
+"permissions can be combined into roles that grant broader access. These\n"
+"roles are another type of group, roles.\n"
+"\n"
+"For example, if you have taskgroups that allow adding and modifying users "
+"you\n"
+"could create a role, useradmin. You would assign users to the useradmin\n"
+"role to allow them to do the operations defined by the taskgroups.\n"
+"\n"
+"You can create ACIs that delegate permission so users in group A can write\n"
+"attributes on group B.\n"
+"\n"
+"The type option is a map that applies to all entries in the users, groups "
+"or\n"
+"host location. It is primarily designed to be used when granting add\n"
+"permissions (to write new entries).\n"
+"\n"
+"An ACI consists of three parts:\n"
+"1. target\n"
+"2. permissions\n"
+"3. bind rules\n"
+"\n"
+"The target is a set of rules that define which LDAP objects are being\n"
+"targeted. This can include a list of attributes, an area of that LDAP\n"
+"tree or an LDAP filter.\n"
+"\n"
+"The targets include:\n"
+"- attrs: list of attributes affected\n"
+"- type: an object type (user, group, host, service, etc)\n"
+"- memberof: members of a group\n"
+"- targetgroup: grant access to modify a specific group. This is primarily\n"
+" designed to enable users to add or remove members of a specific group.\n"
+"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
+"- subtree: Used to apply a rule across an entire set of objects. For "
+"example,\n"
+" to allow adding users you need to grant \"add\" permission to the subtree\n"
+" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
+" is a fail-safe for objects that may not be covered by the type option.\n"
+"\n"
+"The permissions define what the the ACI is allowed to do, and are one or\n"
+"more of:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
+"allows this to be any valid LDAP entry but we encourage the use of\n"
+"taskgroups so that the rights can be easily shared through roles.\n"
+"\n"
+"For a more thorough description of access controls see\n"
+"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control."
+"html\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
+"demonstrate how the various options work but this is done via the "
+"permission\n"
+"command-line now (see last example).\n"
+"\n"
+" Add an ACI so that the group \"secretaries\" can update the address on any "
+"user:\n"
+" ipa group-add --desc=\"Office secretaries\" secretaries\n"
+" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries "
+"--permissions=write --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Show the new ACI:\n"
+" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Add an ACI that allows members of the \"addusers\" permission to add new "
+"users:\n"
+" ipa aci-add --type=user --permission=addusers --permissions=add --"
+"prefix=none \"Add new users\"\n"
+"\n"
+" Add an ACI that allows members of the editors manage members of the admins "
+"group:\n"
+" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --"
+"group=editors --prefix=none \"Editors manage admins\"\n"
+"\n"
+" Add an ACI that allows members of the admin group to manage the street and "
+"zip code of those in the editors group:\n"
+" ipa aci-add --permissions=write --memberof=editors --group=admins --"
+"attrs=street,postalcode --prefix=none \"admins edit the address of editors"
+"\"\n"
+"\n"
+" Add an ACI that allows the admins group manage the street and zipcode of "
+"those who work for the boss:\n"
+" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode "
+"--filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --"
+"prefix=none \"Edit the address of those who work for the boss\"\n"
+"\n"
+" Add an entirely new kind of record to IPA that isn't covered by any of the "
+"--type options, creating a permission:\n"
+" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,"
+"cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
+"\n"
+"\n"
+"The show command shows the raw 389-ds ACI.\n"
+"\n"
+"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
+"must include all existing attributes as well. When doing an aci-mod the\n"
+"targetattr REPLACES the current attributes, it does not add to them.\n"
+"\n"
msgstr ""
-#: ipalib/cli.py:516
-msgid "Cancelled."
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
-#: ipalib/errors.py:297
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+#: ipalib/plugins/aci.py:172
+msgid ""
+"\n"
+" Given a name and a prefix construct an ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:315
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
+#: ipalib/plugins/aci.py:181
+msgid ""
+"\n"
+" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
+" and the actual ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:331
-msgid "an internal error has occurred"
+#: ipalib/plugins/aci.py:193
+msgid ""
+"\n"
+" Pull the group name out of a memberOf filter\n"
+" "
msgstr ""
-#: ipalib/errors.py:353
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
+#: ipalib/plugins/aci.py:204
+msgid ""
+"\n"
+" Given a name and a set of keywords construct an ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:369
-#, python-format
-msgid "unknown command %(name)r"
+#: ipalib/plugins/aci.py:215
+msgid "type, filter, subtree and targetgroup are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:386 ipalib/errors.py:411
-#, python-format
-msgid "error on server %(server)r: %(error)s"
+#: ipalib/plugins/aci.py:218
+msgid "ACI prefix is required"
msgstr ""
-#: ipalib/errors.py:402
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+#: ipalib/plugins/aci.py:221
+msgid ""
+"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
+"required"
msgstr ""
-#: ipalib/errors.py:420
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
+#: ipalib/plugins/aci.py:224
+msgid "filter and memberof are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:448
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
+#: ipalib/plugins/aci.py:230
+msgid "group, permission and self are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:465
-msgid "did not receive Kerberos credentials"
+#: ipalib/plugins/aci.py:232
+msgid "One of group, permission or self is required"
msgstr ""
-#: ipalib/errors.py:481
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
+#: ipalib/plugins/aci.py:251
+msgid "Group '%s' does not exist"
msgstr ""
-#: ipalib/errors.py:497
-msgid "No credentials cache found"
+#: ipalib/plugins/aci.py:273
+msgid "empty filter"
msgstr ""
-#: ipalib/errors.py:513
-msgid "Ticket expired"
+#: ipalib/plugins/aci.py:294
+msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/errors.py:529
-msgid "Credentials cache permissions incorrect"
+#: ipalib/plugins/aci.py:299
+msgid ""
+"Convert an ACI into its equivalent keywords.\n"
+"\n"
+" This is used for the modify operation so we can merge the\n"
+" incoming kw and existing ACI and pass the result to\n"
+" _make_aci().\n"
+" "
msgstr ""
-#: ipalib/errors.py:545
-msgid "Bad format in credentials cache"
+#: ipalib/plugins/aci.py:379
+msgid "ACI with name \"%s\" not found"
msgstr ""
-#: ipalib/errors.py:561
-msgid "Cannot resolve KDC for requested realm"
+#: ipalib/plugins/aci.py:400
+msgid "ACI prefix"
msgstr ""
-#: ipalib/errors.py:580
-#, python-format
-msgid "Insufficient access: %(info)s"
+#: ipalib/plugins/aci.py:401
+msgid ""
+"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
+"none)"
msgstr ""
-#: ipalib/errors.py:624
-#, python-format
-msgid "command %(name)r takes no arguments"
+#: ipalib/plugins/aci.py:407
+msgid ""
+"\n"
+" ACI object.\n"
+" "
msgstr ""
-#: ipalib/errors.py:644
-#, python-format
-msgid "command %(name)r takes at most %(count)d argument"
-msgid_plural "command %(name)r takes at most %(count)d arguments"
-msgstr[0] ""
+#: ipalib/plugins/aci.py:412
+msgid "ACIs"
+msgstr ""
-#: ipalib/errors.py:674
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
+#: ipalib/plugins/aci.py:417
+msgid "ACI name"
msgstr ""
-#: ipalib/errors.py:690
-#, python-format
-msgid "%(name)r is required"
+#: ipalib/plugins/aci.py:422
+msgid "Permission"
msgstr ""
-#: ipalib/errors.py:706 ipalib/errors.py:722
-#, python-format
-msgid "invalid %(name)r: %(error)s"
+#: ipalib/plugins/aci.py:423
+msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/errors.py:738
-#, python-format
-msgid "api has no such namespace: %(name)r"
+#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+msgid "User group"
msgstr ""
-#: ipalib/errors.py:747
-msgid "Passwords do not match"
+#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/errors.py:755
-msgid "Command not implemented"
+#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
+#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
+#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+msgid "Permissions"
msgstr ""
-#: ipalib/errors.py:783 ipalib/errors.py:1023 ipalib/errors.py:1254
-#, python-format
-msgid "%(reason)s"
+#: ipalib/plugins/aci.py:433
+msgid ""
+"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/errors.py:799
-msgid "This entry already exists"
+#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
+#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+msgid "Attributes"
msgstr ""
-#: ipalib/errors.py:815
-msgid "You must enroll a host in order to create a host service"
+#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
+#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/errors.py:831
-#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
+#: ipalib/plugins/permission.py:131
+msgid "Type"
msgstr ""
-#: ipalib/errors.py:847
-msgid ""
-"The realm for the principal does not match the realm for this IPA server"
+#: ipalib/plugins/aci.py:445
+msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/errors.py:863
-msgid "This command requires root access"
+#: ipalib/plugins/aci.py:450
+msgid "Member of"
msgstr ""
-#: ipalib/errors.py:879
-msgid "This is already a posix group"
+#: ipalib/plugins/aci.py:451
+msgid "Member of a group"
msgstr ""
-#: ipalib/errors.py:895
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
+#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
+#: ipalib/plugins/permission.py:144
+msgid "Filter"
msgstr ""
-#: ipalib/errors.py:911
-msgid "This entry is already unlocked"
+#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/errors.py:927
-msgid "This entry is already locked"
+#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+msgid "Subtree"
msgstr ""
-#: ipalib/errors.py:943
-msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
+#: ipalib/plugins/aci.py:461
+msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/errors.py:959
-msgid "This entry is not a member of the group"
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+msgid "Target group"
msgstr ""
-#: ipalib/errors.py:975
-msgid "A group may not be a member of itself"
+#: ipalib/plugins/aci.py:466
+msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/errors.py:991
-msgid "This entry is already a member of the group"
+#: ipalib/plugins/aci.py:470
+msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/errors.py:1007
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
+#: ipalib/plugins/aci.py:471
+msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/errors.py:1039
-msgid "A group may not be added as a member of itself"
+#: ipalib/plugins/aci.py:478
+msgid ""
+"\n"
+" Create new ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1055
-msgid "The default users group cannot be removed"
+#: ipalib/plugins/aci.py:482
+msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1071
-msgid "Host does not have corresponding DNS A record"
+#: ipalib/plugins/aci.py:487
+msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/errors.py:1086
-msgid "Deleting a managed group is not allowed. It must be detached first."
+#: ipalib/plugins/aci.py:493
+msgid ""
+"\n"
+" Execute the aci-create operation.\n"
+"\n"
+" Returns the entry as it will be created in LDAP.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: Keyword arguments for the other LDAP attributes.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1109
-#, python-format
-msgid "no command nor help topic %(topic)r"
+#: ipalib/plugins/aci.py:533
+msgid ""
+"\n"
+" Delete ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1133
-msgid "change collided with another change"
+#: ipalib/plugins/aci.py:538
+msgid "Deleted ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1149
-msgid "no modifications to be performed"
+#: ipalib/plugins/aci.py:543
+msgid ""
+"\n"
+" Execute the aci-delete operation.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/errors.py:1165
-#, python-format
-msgid "%(desc)s:%(info)s"
+#: ipalib/plugins/aci.py:576
+msgid ""
+"\n"
+" Modify ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1181
-msgid "limits exceeded for this query"
+#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
+#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
+#: ipalib/plugins/selfservice.py:212
+msgid "ACI"
msgstr ""
-#: ipalib/errors.py:1196
-#, python-format
-msgid "%(info)s"
+#: ipalib/plugins/aci.py:588
+msgid "Modified ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1221
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
+#: ipalib/plugins/aci.py:633
+msgid ""
+"\n"
+" Search for ACIs.\n"
+"\n"
+" Returns a list of ACIs\n"
+"\n"
+" EXAMPLES:\n"
+"\n"
+" To find all ACIs that apply directly to members of the group ipausers:\n"
+" ipa aci-find --memberof=ipausers\n"
+"\n"
+" To find all ACIs that grant add access:\n"
+" ipa aci-find --permissions=add\n"
+"\n"
+" Note that the find command only looks for the given text in the set of\n"
+" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
+" For example, searching on memberof=ipausers will find all ACIs that\n"
+" have ipausers as a memberof. There may be other ACIs that apply to\n"
+" members of that group indirectly.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:653
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+
+#: ipalib/plugins/aci.py:823
+msgid ""
+"\n"
+" Display a single ACI given an ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1237
-#, python-format
-msgid "Certificate format error: %(error)s"
+#: ipalib/plugins/aci.py:837
+msgid ""
+"\n"
+" Execute the aci-show operation.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param uid: The login name of the user to retrieve.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/frontend.py:380
-msgid "Results are truncated, try a more specific search"
+#: ipalib/plugins/aci.py:865
+msgid ""
+"\n"
+" Rename an ACI.\n"
+" "
msgstr ""
-#: ipalib/frontend.py:797 ipalib/plugins/misc.py:47
-msgid "retrieve all attributes"
+#: ipalib/plugins/aci.py:878
+msgid "New ACI name"
msgstr ""
-#: ipalib/frontend.py:803
-msgid "print entries as stored on the server"
+#: ipalib/plugins/aci.py:882
+msgid "Renamed ACI to \"%(value)s\""
msgstr ""
-#: ipalib/frontend.py:940
-msgid "Forward to server instead of running locally"
+#: ipalib/plugins/automount.py:20
+msgid ""
+"\n"
+"Automount\n"
+"\n"
+"Stores automount(8) configuration for autofs(8) in IPA.\n"
+"\n"
+"The base of an automount configuration is the configuration file auto."
+"master.\n"
+"This is also the base location in IPA. Multiple auto.master configurations\n"
+"can be stored in separate locations. A location is implementation-specific\n"
+"with the default being a location named 'default'. For example, you can "
+"have\n"
+"locations by geographic region, by floor, by type, etc.\n"
+"\n"
+"Automount has three basic object types: locations, maps and keys.\n"
+"\n"
+"A location defines a set of maps anchored in auto.master. This allows you\n"
+"to store multiple automount configurations. A location in itself isn't\n"
+"very interesting, it is just a point to start a new automount map.\n"
+"\n"
+"A map is roughly equivalent to a discrete automount file and provides\n"
+"storage for keys.\n"
+"\n"
+"A key is a mount point associated with a map.\n"
+"\n"
+"When a new location is created, two maps are automatically created for\n"
+"it: auto.master and auto.direct. auto.master is the root map for all\n"
+"automount maps for the location. auto.direct is the default map for\n"
+"direct mounts and is mounted on /-.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"Locations:\n"
+"\n"
+" Create a named location, \"Baltimore\":\n"
+" ipa automountlocation-add baltimore\n"
+"\n"
+" Display the new location:\n"
+" ipa automountlocation-show baltimore\n"
+"\n"
+" Find available locations:\n"
+" ipa automountlocation-find\n"
+"\n"
+" Remove a named automount location:\n"
+" ipa automountlocation-del baltimore\n"
+"\n"
+" Show what the automount maps would look like if they were in the "
+"filesystem:\n"
+" ipa automountlocation-tofiles baltimore\n"
+"\n"
+" Import an existing configuration into a location:\n"
+" ipa automountlocation-import baltimore /etc/auto.master\n"
+"\n"
+" The import will fail if any duplicate entries are found. For\n"
+" continuous operation where errors are ignored, use the --continue\n"
+" option.\n"
+"\n"
+"Maps:\n"
+"\n"
+" Create a new map, \"auto.share\":\n"
+" ipa automountmap-add baltimore auto.share\n"
+"\n"
+" Display the new map:\n"
+" ipa automountmap-show baltimore auto.share\n"
+"\n"
+" Find maps in the location baltimore:\n"
+" ipa automountmap-find baltimore\n"
+"\n"
+" Remove the auto.share map:\n"
+" ipa automountmap-del baltimore auto.share\n"
+"\n"
+"Keys:\n"
+"\n"
+" Create a new key for the auto.share map in location baltimore. This ties\n"
+" the map we previously created to auto.master:\n"
+" ipa automountkey-add baltimore auto.master --key=/share --info=auto."
+"share\n"
+"\n"
+" Create a new key for our auto.share map, an NFS mount for man pages:\n"
+" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,"
+"rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n"
+"\n"
+" Find all keys for the auto.share map:\n"
+" ipa automountkey-find baltimore auto.share\n"
+"\n"
+" Find all direct automount keys:\n"
+" ipa automountkey-find baltimore --key=/-\n"
+"\n"
+" Remove the man key from the auto.share map:\n"
+" ipa automountkey-del baltimore auto.share --key=man\n"
+msgstr ""
+
+#: ipalib/plugins/automount.py:182
+msgid ""
+"\n"
+" Location container for automount maps.\n"
+" "
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
+#: ipalib/plugins/automount.py:190
+msgid "Automount Locations"
msgstr ""
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
+#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+msgid "Location"
msgstr ""
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
+#: ipalib/plugins/automount.py:197
+msgid "Automount location name."
msgstr ""
-#: ipalib/parameters.py:295
-msgid "incorrect type"
+#: ipalib/plugins/automount.py:206
+msgid ""
+"\n"
+" Create a new automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:298
-msgid "Only one value is allowed"
+#: ipalib/plugins/automount.py:221
+msgid ""
+"\n"
+" Delete an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:877
-msgid "must be True or False"
+#: ipalib/plugins/automount.py:229
+msgid ""
+"\n"
+" Display an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:978
-msgid "must be an integer"
+#: ipalib/plugins/automount.py:237
+msgid ""
+"\n"
+" Search for an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1029
-#, python-format
-msgid "must be at least %(minvalue)d"
+#: ipalib/plugins/automount.py:245
+msgid ""
+"\n"
+" Generate automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1039
-#, python-format
-msgid "can be at most %(maxvalue)d"
+#: ipalib/plugins/automount.py:308
+msgid ""
+"\n"
+" Import automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1049
-msgid "must be a decimal number"
+#: ipalib/plugins/automount.py:314
+msgid "Master file"
msgstr ""
-#: ipalib/parameters.py:1071
-#, python-format
-msgid "must be at least %(minvalue)f"
+#: ipalib/plugins/automount.py:315
+msgid "Automount master file."
msgstr ""
-#: ipalib/parameters.py:1081
-#, python-format
-msgid "can be at most %(maxvalue)f"
+#: ipalib/plugins/automount.py:322
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/parameters.py:1145
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
+#: ipalib/plugins/automount.py:334
+msgid "File %(file)s not found"
msgstr ""
-#: ipalib/parameters.py:1163
-msgid "must be binary data"
+#: ipalib/plugins/automount.py:341
+msgid ""
+"\n"
+" The basic idea is to read the master file and create all the maps\n"
+" we need, then read each map file and add all the keys for the map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1179
-#, python-format
-msgid "must be at least %(minlength)d bytes"
+#: ipalib/plugins/automount.py:492
+msgid ""
+"\n"
+" Automount map object.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1189
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
+#: ipalib/plugins/automount.py:505
+msgid "Map"
msgstr ""
-#: ipalib/parameters.py:1199
-#, python-format
-msgid "must be exactly %(length)d bytes"
+#: ipalib/plugins/automount.py:506
+msgid "Automount map name."
msgstr ""
-#: ipalib/parameters.py:1217
-msgid "must be Unicode text"
+#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
+#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
+#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
+#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
+#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
+#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
+#: ipalib/plugins/sudorule.py:78
+msgid "Description"
msgstr ""
-#: ipalib/parameters.py:1248
-#, python-format
-msgid "must be at least %(minlength)d characters"
+#: ipalib/plugins/automount.py:515
+msgid "Automount Maps"
msgstr ""
-#: ipalib/parameters.py:1258
-#, python-format
-msgid "can be at most %(maxlength)d characters"
+#: ipalib/plugins/automount.py:521
+msgid ""
+"\n"
+" Create a new automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1268
-#, python-format
-msgid "must be exactly %(length)d characters"
+#: ipalib/plugins/automount.py:529
+msgid ""
+"\n"
+" Delete an automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1307
-#, python-format
-msgid "must be one of %(values)r"
+#: ipalib/plugins/automount.py:548
+msgid ""
+"\n"
+" Modify an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:111
-msgid "A list of ACI values"
+#: ipalib/plugins/automount.py:556
+msgid ""
+"\n"
+" Search for an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:142
-msgid "type, filter, subtree and targetgroup are mutually exclusive"
+#: ipalib/plugins/automount.py:564
+msgid ""
+"\n"
+" Display an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:145
+#: ipalib/plugins/automount.py:572
msgid ""
-"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
-"required"
+"\n"
+" Automount key object.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:151
-msgid "group, taskgroup and self are mutually exclusive"
+#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
+#: ipalib/plugins/automount.py:850
+msgid "Key"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "One of group, taskgroup or self is required"
+#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
+#: ipalib/plugins/automount.py:851
+msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/aci.py:172
-#, python-format
-msgid "Group '%s' does not exist"
+#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
+#: ipalib/plugins/automount.py:855
+msgid "Mount information"
msgstr ""
-#: ipalib/plugins/aci.py:269
-#, python-format
-msgid "ACI with name \"%s\" not found"
+#: ipalib/plugins/automount.py:597
+msgid "description"
msgstr ""
-#: ipalib/plugins/aci.py:286
-msgid "ACIs"
+#: ipalib/plugins/automount.py:606
+msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/aci.py:291
-msgid "ACI name"
+#: ipalib/plugins/automount.py:607
+msgid ""
+"The key,info pair must be unique. A key named %(key)s with info %(info)s "
+"already exists"
msgstr ""
-#: ipalib/plugins/aci.py:296
-msgid "Taskgroup"
+#: ipalib/plugins/automount.py:608
+msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/aci.py:297
-msgid "Taskgroup ACI grants access to"
+#: ipalib/plugins/automount.py:609
+msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/aci.py:301
-msgid "User group"
+#: ipalib/plugins/automount.py:659
+msgid ""
+"More than one entry with key %(key)s found, use --info to select specific "
+"entry."
msgstr ""
-#: ipalib/plugins/aci.py:302
-msgid "User group ACI grants access to"
+#: ipalib/plugins/automount.py:717
+msgid ""
+"\n"
+" Create a new automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:306
-msgid "Permissions"
+#: ipalib/plugins/automount.py:742
+msgid ""
+"\n"
+" Create a new indirect mount point.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:748
+msgid "Mount point"
msgstr ""
-#: ipalib/plugins/aci.py:307
+#: ipalib/plugins/automount.py:752
+msgid "Parent map"
+msgstr ""
+
+#: ipalib/plugins/automount.py:753
+msgid "Name of parent automount map (default: auto.master)."
+msgstr ""
+
+#: ipalib/plugins/automount.py:772
msgid ""
-"comma-separated list of permissions to grant(read, write, add, delete, all)"
+"\n"
+" Delete an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:313
-msgid "Attributes"
+#: ipalib/plugins/automount.py:803
+msgid ""
+"\n"
+" Modify an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:314
-msgid "Comma-separated list of attributes"
+#: ipalib/plugins/automount.py:809
+msgid "New mount information"
msgstr ""
-#: ipalib/plugins/aci.py:318
-msgid "Type"
+#: ipalib/plugins/automount.py:836
+msgid ""
+"\n"
+" Search for an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:319
-msgid "type of IPA object (user, group, host)"
+#: ipalib/plugins/automount.py:844
+msgid ""
+"\n"
+" Display an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:324
-msgid "Member of"
+#: ipalib/plugins/baseldap.py:19
+msgid ""
+"\n"
+"Base classes for LDAP plugins.\n"
msgstr ""
-#: ipalib/plugins/aci.py:325
-msgid "Member of a group"
+#: ipalib/plugins/baseldap.py:39
+msgid "Failed members"
msgstr ""
-#: ipalib/plugins/aci.py:329
-msgid "Filter"
+#: ipalib/plugins/baseldap.py:42
+msgid "Member users"
msgstr ""
-#: ipalib/plugins/aci.py:330
-msgid "Legal LDAP filter (e.g. ou=Engineering)"
+#: ipalib/plugins/baseldap.py:45
+msgid "Member groups"
msgstr ""
-#: ipalib/plugins/aci.py:334
-msgid "Subtree"
+#: ipalib/plugins/baseldap.py:48
+msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/aci.py:335
-msgid "Subtree to apply ACI to"
+#: ipalib/plugins/baseldap.py:51
+msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/aci.py:339
-msgid "Target group"
+#: ipalib/plugins/baseldap.py:54
+msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:340
-msgid "Group to apply ACI to"
+#: ipalib/plugins/baseldap.py:57
+msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:344
-msgid "Target your own entry (self)"
+#: ipalib/plugins/baseldap.py:66
+msgid "Roles"
msgstr ""
-#: ipalib/plugins/aci.py:345
-msgid "Apply ACI to your own entry (self)"
+#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
+#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
+#: ipalib/plugins/sudorule.py:143
+msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/aci.py:357
-#, python-format
-msgid "Created ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:75
+msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/aci.py:407
-#, python-format
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:78
+msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:447
-#, python-format
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:81
+msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:519
-#, python-format
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
-msgstr[0] ""
+#: ipalib/plugins/baseldap.py:84
+msgid "Member services"
+msgstr ""
-#: ipalib/plugins/automount.py:103
-msgid "Automount"
+#: ipalib/plugins/baseldap.py:87
+msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/automount.py:109 ipalib/plugins/host.py:134
-msgid "Location"
+#: ipalib/plugins/baseldap.py:93
+msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/automount.py:110
-msgid "Automount location name"
+#: ipalib/plugins/baseldap.py:102
+msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/automount.py:226
-msgid "Map"
+#: ipalib/plugins/baseldap.py:105
+msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/automount.py:227
-msgid "Automount map name"
+#: ipalib/plugins/baseldap.py:108
+msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/automount.py:232 ipalib/plugins/group.py:108
-#: ipalib/plugins/hbac.py:151 ipalib/plugins/hbacsvc.py:72
-#: ipalib/plugins/hbacsvcgroup.py:77 ipalib/plugins/host.py:124
-#: ipalib/plugins/hostgroup.py:81 ipalib/plugins/netgroup.py:96
-#: ipalib/plugins/rolegroup.py:90 ipalib/plugins/sudocmd.py:71
-#: ipalib/plugins/sudocmdgroup.py:77 ipalib/plugins/sudorule.py:58
-#: ipalib/plugins/taskgroup.py:62
-msgid "Description"
+#: ipalib/plugins/baseldap.py:111
+msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/automount.py:236
-msgid "Automount Maps"
+#: ipalib/plugins/baseldap.py:114
+msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid "Key"
+#: ipalib/plugins/baseldap.py:117
+msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/automount.py:309
-msgid "Automount key name"
+#: ipalib/plugins/baseldap.py:120
+msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/automount.py:314
-msgid "Mount information"
+#: ipalib/plugins/baseldap.py:123
+msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/automount.py:318
-msgid "description"
+#: ipalib/plugins/baseldap.py:126
+msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/automount.py:322
-msgid "Automount Keys"
+#: ipalib/plugins/baseldap.py:141
+msgid "External host"
msgstr ""
-#: ipalib/plugins/automount.py:342
-msgid "Mount point"
+#: ipalib/plugins/baseldap.py:144
+msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/automount.py:346
-msgid "Parent map"
+#: ipalib/plugins/baseldap.py:147
+msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/automount.py:347
-msgid "Name of parent automount map (default: auto.master)"
+#: ipalib/plugins/baseldap.py:150
+msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:79
-#, python-format
+#: ipalib/plugins/baseldap.py:153
+msgid "Failed to remove"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:171
+msgid ""
+"\n"
+" Given a list of values in the form name=value, return a list of name.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:197
+msgid ""
+"\n"
+" When adding or removing reverse members we are faking an update to\n"
+" object A by updating the member attribute in object B. The memberof\n"
+" plugin makes this work by adding or removing the memberof attribute\n"
+" to/from object A, it just takes a little bit of time.\n"
+"\n"
+" This will loop for 6+ seconds, retrieving object A so we can see\n"
+" if all the memberof attributes have been updated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:241
+msgid ""
+"\n"
+" Object representing a LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:281
+msgid "Entry"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:283
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:80
-#, python-format
+#: ipalib/plugins/baseldap.py:284
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
-#, python-format
+#: ipalib/plugins/baseldap.py:285
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
-msgid "Add an attribute/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:286
+msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:155
-msgid "Set an attribute to an name/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:415
+msgid ""
+"Add an attribute/value pair. Format is attr=value. The attribute must be "
+"part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:359
+#: ipalib/plugins/baseldap.py:420
+msgid ""
+"Set an attribute to a name/value pair. Format is attr=value.\n"
+"For multi-valued attributes, the command replaces the values already present."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:444
+msgid ""
+"\n"
+" If the set of objectclasses is limited enforce that only those\n"
+" are updated in entry_attrs (plus dn)\n"
+"\n"
+" allow_only tells us what mode to check in:\n"
+"\n"
+" If True then we enforce that the attributes must be in the list of\n"
+" allowed.\n"
+"\n"
+" If False then those attributes are not allowed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:474
+msgid ""
+"\n"
+" Callback registration interface\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:561
+msgid ""
+"\n"
+" Create a new entry in LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:703
+msgid ""
+"\n"
+" Base class for commands that need to retrieve an existing entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:727
+msgid ""
+"\n"
+" Base class for commands that need to retrieve one or more existing "
+"entries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:733
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:517
+#: ipalib/plugins/baseldap.py:750
+msgid ""
+"\n"
+" Retrieve an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
+#: ipalib/plugins/internal.py:232
+msgid "Rights"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+msgid ""
+"Display the access rights of this entry (requires --all). See ipa man page "
+"for details."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:821
+msgid ""
+"\n"
+" Update an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:837
+msgid "Rename"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:838
+msgid "Rename the %(ldap_obj_name)s object"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:957
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:674
+#: ipalib/plugins/baseldap.py:988
+msgid ""
+"\n"
+" Delete an LDAP entry and all of its direct subentries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1078
+msgid ""
+"\n"
+" Base class for member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1120
+msgid ""
+"\n"
+" Add other LDAP entries to members.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
+#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
+#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
msgid "Members that could not be added"
msgstr ""
-#: ipalib/plugins/baseldap.py:678
+#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:684 ipalib/plugins/baseldap.py:789
-msgid "Failed members"
+#: ipalib/plugins/baseldap.py:1226
+msgid ""
+"\n"
+" Remove LDAP entries from members.\n"
+" "
msgstr ""
-#: ipalib/plugins/baseldap.py:779
+#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:783
+#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:880
+#: ipalib/plugins/baseldap.py:1335
+msgid ""
+"\n"
+" Retrieve all LDAP entries matching the given criteria.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1344
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:881
+#: ipalib/plugins/baseldap.py:1345
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:887
+#: ipalib/plugins/baseldap.py:1351
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:888
+#: ipalib/plugins/baseldap.py:1352
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/cert.py:93
+#: ipalib/plugins/baseldap.py:1552
+msgid ""
+"\n"
+" Base class for reverse member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1574
+msgid ""
+"\n"
+" Add other LDAP entries to members in reverse.\n"
+"\n"
+" The call looks like \"add A to B\" but in fact executes\n"
+" add B to A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1654
+msgid "added"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1687
+msgid ""
+"\n"
+" Remove other LDAP entries from members in reverse.\n"
+"\n"
+" The call looks like \"remove A from B\" but in fact executes\n"
+" remove B from A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1767
+msgid "removed"
+msgstr ""
+
+#: ipalib/plugins/batch.py:21
+msgid ""
+"\n"
+"Plugin to make multiple ipa calls via one remote procedure call\n"
+"\n"
+"To run this code in the lite-server\n"
+"\n"
+"curl -H \"Content-Type:application/json\" -H \"Accept:application/"
+"json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /"
+"etc/ipa/ca.crt -d @batch_request.json -X POST http://"
+"localhost:8888/ipa/json\n"
+"\n"
+"where the contents of the file batch_request.json follow the below example\n"
+"\n"
+"{\"method\":\"batch\",\"params\":[[\n"
+" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
+" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all"
+"\":\"true\"}]},\n"
+" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
+" ],{}],\"id\":1}\n"
+"\n"
+"The format of the response is nested the same way. At the top you will see\n"
+" \"error\": null,\n"
+" \"id\": 1,\n"
+" \"result\": {\n"
+" \"count\": 3,\n"
+" \"results\": [\n"
+"\n"
+"\n"
+"And then a nested response for each IPA command method sent in the request\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/batch.py:61
+msgid "Nested Methods to execute"
+msgstr ""
+
+#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/plugins/cert.py:22
+msgid ""
+"\n"
+"IPA certificate operations\n"
+"\n"
+"Implements a set of commands for managing server SSL certificates.\n"
+"\n"
+"Certificate requests exist in the form of a Certificate Signing Request "
+"(CSR)\n"
+"in PEM format.\n"
+"\n"
+"If using the selfsign back end then the subject in the CSR needs to match\n"
+"the subject configured in the server. The dogtag CA uses just the CN\n"
+"value of the CSR and forces the rest of the subject.\n"
+"\n"
+"A certificate is stored with a service principal and a service principal\n"
+"needs a host.\n"
+"\n"
+"In order to request a certificate:\n"
+"\n"
+"* The host must exist\n"
+"* The service must exist (or you use the --add option to automatically add "
+"it)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Request a new certificate and add the principal:\n"
+" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n"
+"\n"
+" Retrieve an existing certificate:\n"
+" ipa cert-show 1032\n"
+"\n"
+" Revoke a certificate (see RFC 5280 for reason details):\n"
+" ipa cert-revoke --revocation-reason=6 1032\n"
+"\n"
+" Remove a certificate from revocation hold status:\n"
+" ipa cert-remove-hold 1032\n"
+"\n"
+" Check the status of a signing request:\n"
+" ipa cert-status 10\n"
+"\n"
+"IPA currently immediately issues (or declines) all certificate requests so\n"
+"the status of a request is not normally useful. This is for future use\n"
+"or the case where a CA does not immediately issue a certificate.\n"
+"\n"
+"The following revocation reasons are supported:\n"
+"\n"
+" * 0 - unspecified\n"
+" * 1 - keyCompromise\n"
+" * 2 - cACompromise\n"
+" * 3 - affiliationChanged\n"
+" * 4 - superseded\n"
+" * 5 - cessationOfOperation\n"
+" * 6 - certificateHold\n"
+" * 8 - removeFromCRL\n"
+" * 9 - privilegeWithdrawn\n"
+" * 10 - aACompromise\n"
+"\n"
+"Note that reason code 7 is not used. See RFC 5280 for more details:\n"
+"\n"
+"http://www.ietf.org/rfc/rfc5280.txt\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/cert.py:104
+msgid ""
+"\n"
+" Return the value of CN in the subject of the request or None\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:106 ipalib/plugins/cert.py:118
+#: ipalib/plugins/cert.py:115
+msgid ""
+"\n"
+" Return the first value of the subject alt name, if any\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:120
-#, python-format
+#: ipalib/plugins/cert.py:128
+msgid ""
+"\n"
+" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
+" parser.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:139
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:171 ipalib/plugins/service.py:197
+#: ipalib/plugins/cert.py:142
+msgid ""
+"\n"
+" Strip any leading and trailing cruft around the BEGIN/END block\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:162
+msgid ""
+"\n"
+" Convert a SN given in decimal or hexadecimal.\n"
+" Returns the number or None if conversion fails.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:188
+msgid ""
+"\n"
+" Given a principal with or without a realm return the\n"
+" host portion.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:202
+msgid ""
+"\n"
+" Submit a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:172
+#: ipalib/plugins/cert.py:217
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:179
+#: ipalib/plugins/cert.py:224
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:187 ipalib/plugins/cert.py:392
-#: ipalib/plugins/host.py:154 ipalib/plugins/service.py:204
+#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
+#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
+#: ipalib/plugins/service.py:232
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:191 ipalib/plugins/cert.py:395
+#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:195 ipalib/plugins/cert.py:398
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:199 ipalib/plugins/cert.py:401
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:203 ipalib/plugins/cert.py:404
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:207 ipalib/plugins/cert.py:407
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:211 ipalib/plugins/cert.py:410
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:215 ipalib/plugins/cert.py:379
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:223 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:357
+#: ipalib/plugins/cert.py:396
+msgid ""
+"\n"
+" Check the status of a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:402
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:363
+#: ipalib/plugins/cert.py:408
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:380
+#: ipalib/plugins/cert.py:426
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:413
+#: ipalib/plugins/cert.py:431
+msgid ""
+"\n"
+" Retrieve an existing certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
+#: ipalib/plugins/service.py:114
msgid "Revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:458
+#: ipalib/plugins/cert.py:466
+msgid "Output filename"
+msgstr ""
+
+#: ipalib/plugins/cert.py:467
+msgid "File to store the certificate in."
+msgstr ""
+
+#: ipalib/plugins/cert.py:518
+msgid ""
+"\n"
+" Revoke a certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:526
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:466
+#: ipalib/plugins/cert.py:534
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:467
+#: ipalib/plugins/cert.py:535
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:502
+#: ipalib/plugins/cert.py:562
+msgid ""
+"\n"
+" Take a revoked certificate off hold.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:570
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:505
+#: ipalib/plugins/cert.py:573
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:73
+#: ipalib/plugins/config.py:20
+msgid ""
+"\n"
+"Manage the IPA configuration\n"
+"\n"
+"Manage the default values that IPA uses and some of its tuning parameters.\n"
+"\n"
+" To show the current configuration:\n"
+" ipa config-show\n"
+"\n"
+" To modify the configuration:\n"
+" ipa config-mod --maxusername=99\n"
+"\n"
+"The available options are:\n"
+"\n"
+"User management options:\n"
+"\n"
+" --maxusername=INT Max. username length when creating/modifying a user\n"
+" --homedirectory=STR Default location of home directories (default /"
+"home)\n"
+" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
+" --defaultgroup=STR Default group for new users (default ipausers). The\n"
+" group must exist, or adding new users will fail.\n"
+" --emaildomain=STR Default e-mail domain for new users\n"
+"\n"
+"Search tuning options. These impact how much data is searched through and\n"
+"how many records may be returned on a given search.\n"
+"\n"
+" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 "
+"for\n"
+" unlimited)\n"
+" --searchrecordslimit=INT Max. number of records to search (-1 is "
+"unlimited)\n"
+"\n"
+"Server Configuration.\n"
+"\n"
+" --enable-migration=BOOL Enable migration mode\n"
+" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+"\n"
+"The password notification value is stored here so it will be replicated.\n"
+"It is not currently used to notify users in advance of an expiring\n"
+"password.\n"
+"\n"
+"Some attributes are read-only, provided only for information purposes. "
+"These\n"
+"include:\n"
+"\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
+msgstr ""
+
+#: ipalib/plugins/config.py:76
+msgid "searchtimelimit must be -1 or > 1."
+msgstr ""
+
+#: ipalib/plugins/config.py:80
+msgid ""
+"\n"
+" IPA configuration object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:78
-msgid "Max username length"
+#: ipalib/plugins/config.py:96
+msgid "Max. username length"
msgstr ""
-#: ipalib/plugins/config.py:83
+#: ipalib/plugins/config.py:101
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:84
-msgid "Default location of home directories"
+#: ipalib/plugins/config.py:102
+msgid "Default location of home directories."
msgstr ""
-#: ipalib/plugins/config.py:88
+#: ipalib/plugins/config.py:106
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:89
-msgid "Default shell for new users"
+#: ipalib/plugins/config.py:107
+msgid "Default shell for new users."
msgstr ""
-#: ipalib/plugins/config.py:93
+#: ipalib/plugins/config.py:111
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:94
-msgid "Default group for new users"
+#: ipalib/plugins/config.py:112
+msgid "Default group for new users."
msgstr ""
-#: ipalib/plugins/config.py:98
-msgid "Default e-mail domain"
+#: ipalib/plugins/config.py:116
+msgid "Default e-mail domain for new users"
msgstr ""
-#: ipalib/plugins/config.py:99
-msgid "Default e-mail domain new users"
+#: ipalib/plugins/config.py:117
+msgid "Default e-mail domain new users."
msgstr ""
-#: ipalib/plugins/config.py:103
+#: ipalib/plugins/config.py:121
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:104
-msgid "Max. amount of time (sec.) for a search (-1 is unlimited)"
+#: ipalib/plugins/config.py:122
+msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:109
+#: ipalib/plugins/config.py:127
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:110
-msgid "Max. number of records to search (-1 is unlimited)"
+#: ipalib/plugins/config.py:128
+msgid "Max. number of records to search (-1 is unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:115
+#: ipalib/plugins/config.py:133
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:116
-msgid "A comma-separated list of fields to search when searching for users"
+#: ipalib/plugins/config.py:134
+msgid "A comma-separated list of fields to search when searching for users."
msgstr ""
-#: ipalib/plugins/config.py:121
-msgid "A comma-separated list of fields to search when searching for groups"
+#: ipalib/plugins/config.py:139
+msgid "A comma-separated list of fields to search when searching for groups."
msgstr ""
-#: ipalib/plugins/config.py:125
+#: ipalib/plugins/config.py:143
msgid "Migration mode"
msgstr ""
-#: ipalib/plugins/config.py:126
-msgid "Enable migration mode"
+#: ipalib/plugins/config.py:144
+msgid "Enable migration mode."
msgstr ""
-#: ipalib/plugins/config.py:130
+#: ipalib/plugins/config.py:148
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:131
-msgid "Base for certificate subjects (OU=Test,O=Example)"
+#: ipalib/plugins/config.py:149
+msgid "Base for certificate subjects (OU=Test,O=Example)."
+msgstr ""
+
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:155
+msgid "Default group objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:159
+msgid "Default user objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:160
+msgid "Default user objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:164
+msgid "Password Expiration Notification"
+msgstr ""
+
+#: ipalib/plugins/config.py:165
+msgid "Number of days's notice of impending password expiration."
+msgstr ""
+
+#: ipalib/plugins/config.py:170
+msgid "Password plugin features"
+msgstr ""
+
+#: ipalib/plugins/config.py:171
+msgid "Extra hashes to generate in password plug-in."
+msgstr ""
+
+#: ipalib/plugins/config.py:183
+msgid ""
+"\n"
+" Modify configuration options.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:220
+msgid ""
+"\n"
+" Show the current configuration.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:19
+msgid ""
+"\n"
+"Group to Group Delegation\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"Group to Group Delegations grants the members of one group to update a set\n"
+"of attributes of members of another group.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a delegation rule to allow editors to edit admin's addresses:\n"
+" ipa delegation-add --attrs=street --membergroup=admins --group=editors "
+"'editors edit admins street'\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add postalCode to the list:\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --"
+"group=editors 'editors edit admins street'\n"
+"\n"
+" Display our updated rule:\n"
+" ipa delegation-show 'editors edit admins street'\n"
+"\n"
+" Delete a rule:\n"
+" ipa delegation-del 'editors edit admins street'\n"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:56
+msgid ""
+"\n"
+" memberOf is in filter but we want to pull out the group for easier\n"
+" displaying.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:131
+#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+msgid "Delegation '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:70
+msgid "Error retrieving member group %(group)s: %(error)s"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:79
+msgid ""
+"\n"
+" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a delegation ACI, adding a new attribute\n"
+" membergroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:95
+msgid ""
+"\n"
+" Delegation object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:102
+msgid "Delegation"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+msgid "Delegation name"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+msgid ""
+"Comma-separated list of permissions to grant (read, write). Default is write."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:125
+msgid "Member user group"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:126
+msgid "User group to apply delegation to"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:152
+msgid ""
+"\n"
+" Add a new delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:156
+msgid "Added delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:176
+msgid ""
+"\n"
+" Delete a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:181
+msgid "Deleted delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:197
+msgid ""
+"\n"
+" Modify a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:201
+msgid "Modified delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:219
+msgid ""
+"\n"
+" Search for delegations.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:223
+msgid "%(count)d delegation matched"
+msgid_plural "%(count)d delegations matched"
+msgstr[0] ""
+
+#: ipalib/plugins/delegation.py:250
+msgid ""
+"\n"
+" Display information about a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:20
+msgid ""
+"\n"
+"Domain Name System (DNS)\n"
+"\n"
+"Manage DNS zone and resource records.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add new zone:\n"
+" ipa dnszone-add example.com --name-server nameserver.example.com\n"
+" --admin-email admin@example.com\n"
+"\n"
+" Add second nameserver for example.com:\n"
+" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add a mail server for example.com:\n"
+" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n"
+"\n"
+" Delete previously added nameserver from example.com:\n"
+" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add new A record for www.example.com: (random IP)\n"
+" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n"
+"\n"
+" Add new PTR record for www.example.com\n"
+" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n"
+"\n"
+" Add new SRV records for LDAP servers. Three quarters of the requests\n"
+" should go to fast.example.com, one quarter to slow.example.com. If neither\n"
+" is available, switch to backup.example.com.\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup."
+"example.com\"\n"
+"\n"
+" When dnsrecord-add command is executed with no option to add a specific "
+"record\n"
+" an interactive mode is started. The mode interactively prompts for the "
+"most\n"
+" typical record types for the respective zone:\n"
+" ipa dnsrecord-add example.com www\n"
+" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random "
+"IPs)\n"
+" [AAAA record]: (no AAAA address entered)\n"
+" Record name: www\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" The interactive mode can also be used for deleting the DNS records:\n"
+" ipa dnsrecord-del example.com www\n"
+" No option to delete specific record provided.\n"
+" Delete all? Yes/No (default No): (do not delete all records)\n"
+" Current DNS record contents:\n"
+"\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
+" Record name: www\n"
+" A record: 1.2.3.4 (A record 11.22.33.44 has been "
+"deleted)\n"
+"\n"
+" Show zone example.com:\n"
+" ipa dnszone-show example.com\n"
+"\n"
+" Find zone with \"example\" in its domain name:\n"
+" ipa dnszone-find example\n"
+"\n"
+" Find records for resources with \"www\" in their name in zone example.com:\n"
+" ipa dnsrecord-find example.com www\n"
+"\n"
+" Find A records with value 10.10.0.1 in zone example.com\n"
+" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n"
+"\n"
+" Show records for resource www in zone example.com\n"
+" ipa dnsrecord-show example.com www\n"
+"\n"
+" Delete zone example.com with all resource records:\n"
+" ipa dnszone-del example.com\n"
+"\n"
+" Resolve a host name to see if it exists (will add default IPA domain\n"
+" if one is not included):\n"
+" ipa dns-resolve www.example.com\n"
+" ipa dns-resolve www\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:140
+msgid "Generate serial number for zones."
+msgstr ""
+
+#: ipalib/plugins/dns.py:189
+msgid "see RFC 2915 "
+msgstr ""
+
+#: ipalib/plugins/dns.py:249
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:272
+msgid ""
+"\n"
+" DNS Zone, container for resource records.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:284
msgid "DNS"
msgstr ""
-#: ipalib/plugins/dns.py:136
-msgid "Zone"
+#: ipalib/plugins/dns.py:289
+msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:137
+#: ipalib/plugins/dns.py:290
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:143
-msgid "Authoritative name server"
+#: ipalib/plugins/dns.py:296
+msgid "Authoritative nameserver"
+msgstr ""
+
+#: ipalib/plugins/dns.py:297
+msgid "Authoritative nameserver."
msgstr ""
-#: ipalib/plugins/dns.py:147
-msgid "administrator e-mail address"
+#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:153
+#: ipalib/plugins/dns.py:308
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:157
+#: ipalib/plugins/dns.py:309
+msgid "SOA record serial number"
+msgstr ""
+
+#: ipalib/plugins/dns.py:316
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:161
+#: ipalib/plugins/dns.py:317
+msgid "SOA record refresh time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:324
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:165
+#: ipalib/plugins/dns.py:325
+msgid "SOA record retry time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:169
+#: ipalib/plugins/dns.py:333
+msgid "SOA record expire time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:173
+#: ipalib/plugins/dns.py:341
+msgid "How long should negative responses be cached"
+msgstr ""
+
+#: ipalib/plugins/dns.py:349
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:177
+#: ipalib/plugins/dns.py:350
+msgid "SOA record time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:354
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:182
-msgid "allow dynamic update?"
+#: ipalib/plugins/dns.py:355
+msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:186
+#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:426 ipalib/plugins/dns.py:460
-#: ipalib/plugins/dns.py:495 ipalib/plugins/dns.py:610
-#: ipalib/plugins/dns.py:695 ipalib/plugins/dns.py:819
-msgid "Zone name"
+#: ipalib/plugins/dns.py:365
+msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:500
-msgid "resource name"
+#: ipalib/plugins/dns.py:366
+msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:505 ipalib/plugins/dns.py:620
-#: ipalib/plugins/dns.py:711
-msgid "Record type"
+#: ipalib/plugins/dns.py:372
+msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:509 ipalib/plugins/dns.py:624
-msgid "Data"
+#: ipalib/plugins/dns.py:373
+msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:510 ipalib/plugins/dns.py:625
-msgid "Type-specific data"
+#: ipalib/plugins/dns.py:382
+msgid ""
+"\n"
+" Create new DNS zone (SOA record).\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:517
-msgid "Time to live"
+#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
+#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+msgid "Force"
+msgstr ""
+
+#: ipalib/plugins/dns.py:388
+msgid "Force DNS zone creation even if nameserver not in DNS."
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+msgid "Add the nameserver to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:397
+msgid "DNS is not configured"
+msgstr ""
+
+#: ipalib/plugins/dns.py:431
+msgid ""
+"\n"
+" Delete DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"\n"
+" Modify DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:452
+msgid ""
+"\n"
+" Search for DNS zones (SOA records).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:460
+msgid ""
+"\n"
+" Display information about a DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+msgid ""
+"\n"
+" Disable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:472
+msgid "Disabled DNS zone \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:490
+msgid ""
+"\n"
+" Enable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:494
+msgid "Enabled DNS zone \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:512
+msgid ""
+"\n"
+" DNS record.\n"
+" "
msgstr ""
#: ipalib/plugins/dns.py:522
+msgid "DNS resource record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
+msgid "Record name"
+msgstr ""
+
+#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
+msgid "Time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:538
msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:615 ipalib/plugins/dns.py:707
-#: ipalib/plugins/dns.py:824
-msgid "Resource name"
+#: ipalib/plugins/dns.py:539
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:700
-msgid "Search criteria"
+#: ipalib/plugins/dns.py:566
+msgid ""
+"\n"
+" Base class for DNS record commands with record options.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:715
-msgid "type-specific data"
+#: ipalib/plugins/dns.py:610
+msgid ""
+"\n"
+" Base class for adding/removing records from DNS resource entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:865
-#, python-format
+#: ipalib/plugins/dns.py:674
+msgid ""
+"\n"
+" Add records to DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:690
+msgid ""
+"\n"
+" Add new DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:699
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:735
+msgid ""
+"Reverse zone for PTR record should be a sub-zone of one the following fully "
+"qualified domains: %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:740
+msgid "Reverse zone %s requires exactly %d IP address components, %d given"
+msgstr ""
+
+#: ipalib/plugins/dns.py:746
+msgid "PTR record '%s' is not fully qualified (check traling '.')"
+msgstr ""
+
+#: ipalib/plugins/dns.py:789
+msgid ""
+"\n"
+" Delete DNS record entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:792
+msgid "Deleted record \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:799
+msgid ""
+"\n"
+" Delete DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:802
+msgid ""
+"Neither --del-all nor options to delete a specific record provided.\n"
+"Command help may be consulted for all supported record types."
+msgstr ""
+
+#: ipalib/plugins/dns.py:807
+msgid "Delete all associated records"
+msgstr ""
+
+#: ipalib/plugins/dns.py:834
+msgid "No option to delete specific record provided."
+msgstr ""
+
+#: ipalib/plugins/dns.py:835
+msgid "Delete all?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:845
+msgid "Current DNS record contents:\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:875
+msgid "%s record with value %s not found"
+msgstr ""
+
+#: ipalib/plugins/dns.py:889
+msgid ""
+"\n"
+" Display DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:905
+msgid ""
+"\n"
+" Search for DNS resources.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:932
+msgid ""
+"\n"
+" Resolve a host name in DNS\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:936
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:869
+#: ipalib/plugins/dns.py:940
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:882
-#, python-format
+#: ipalib/plugins/dns.py:962
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/group.py:94
+#: ipalib/plugins/dns.py:970
+msgid ""
+"\n"
+" Checks if any of the servers has the DNS service enabled.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:19
+msgid ""
+"\n"
+"Entitlements\n"
+"\n"
+"Manage entitlements for client machines\n"
+"\n"
+"Entitlements can be managed either by registering with an entitlement\n"
+"server with a username and password or by manually importing entitlement\n"
+"certificates. An entitlement certificate contains embedded information\n"
+"such as the product being entitled, the quantity and the validity dates.\n"
+"\n"
+"An entitlement server manages the number of client entitlements available.\n"
+"To mark these entitlements as used by the IPA server you provide a quantity\n"
+"and they are marked as consumed on the entitlement server.\n"
+"\n"
+" Register with an entitlement server:\n"
+" ipa entitle-register consumer\n"
+"\n"
+" Import an entitlement certificate:\n"
+" ipa entitle-import /home/user/ipaclient.pem\n"
+"\n"
+" Display current entitlements:\n"
+" ipa entitle-status\n"
+"\n"
+" Retrieve details on entitlement certificates:\n"
+" ipa entitle-get\n"
+"\n"
+" Consume some entitlements from the entitlement server:\n"
+" ipa entitle-consume 50\n"
+"\n"
+"The registration ID is a Unique Identifier (UUID). This ID will be\n"
+"IMPORTED if you have used entitle-import.\n"
+"\n"
+"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:106
+msgid ""
+"\n"
+" Get our entitlement pool. Assume there is only one pool.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:129
+msgid ""
+"\n"
+" Retrieve our UUID, certificate and key from LDAP.\n"
+"\n"
+" Except on error the caller is responsible for removing temporary files\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:178
+msgid ""
+"\n"
+" Entitlement object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:189
+msgid "Entitlements"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:206
+msgid ""
+"\n"
+" Display current entitlements\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+msgid "UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
+#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
+#: ipalib/plugins/entitle.py:690
+msgid "Product"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
+#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
+#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+msgid "Quantity"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
+#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+msgid "Consumed"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:276
+msgid ""
+"\n"
+" Consume an entitlement\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:282
+msgid "Consumed %(value)s entitlement(s)."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:314
+msgid ""
+"\n"
+" Override this so we can set value to the number of entitlements\n"
+" consumed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
+msgid ""
+"\n"
+" Returning the certificates isn't very interesting. Return the\n"
+" status of entitlements instead.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:380
+msgid ""
+"\n"
+" Retrieve the entitlement certs\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:394
+msgid "Start"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:397
+msgid "End"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
+#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+msgid "Serial Number"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
+#: ipalib/plugins/entitle.py:628
+msgid "Not an entitlement certificate"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:460
+msgid ""
+"\n"
+" Search for entitlement accounts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:473
+msgid ""
+"\n"
+" Register to the entitlement system\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:479
+msgid "Registered to entitlement server."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:483
+msgid "Username"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
+msgid "Enrollment UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
+#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
+msgid "Password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:495
+msgid "Registration password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:569
+msgid ""
+"\n"
+" Import an entitlement certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:646
+msgid ""
+"\n"
+" If we are adding the first entry there are no updates so "
+"EmptyModlist\n"
+" will get thrown. Ignore it.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:667
+msgid ""
+"\n"
+" Re-sync the local entitlement cache with the entitlement server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:673
+msgid "Entitlement(s) synchronized."
+msgstr ""
+
+#: ipalib/plugins/group.py:20
+msgid ""
+"\n"
+"Groups of users\n"
+"\n"
+"Manage groups of users. By default, new groups are POSIX groups. You\n"
+"can add the --nonposix option to the group-add command to mark a new group\n"
+"as non-POSIX, and you can use the same argument to the group-mod command\n"
+"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"converted to non-POSIX groups.\n"
+"\n"
+"Every group must have a description.\n"
+"\n"
+"POSIX groups must have a Group ID (GID) number. Changing a GID is\n"
+"supported but can have an impact on your file permissions. It is not "
+"necessary\n"
+"to supply a GID when creating a group. IPA will generate one automatically\n"
+"if it is not provided.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new group:\n"
+" ipa group-add --desc='local administrators' localadmins\n"
+"\n"
+" Add a new non-POSIX group:\n"
+" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n"
+"\n"
+" Convert a non-POSIX group to posix:\n"
+" ipa group-mod --posix remoteadmins\n"
+"\n"
+" Add a new POSIX group with a specific Group ID number:\n"
+" ipa group-add --gid=500 --desc='unix admins' unixadmins\n"
+"\n"
+" Add a new POSIX group and let IPA assign a Group ID number:\n"
+" ipa group-add --desc='printer admins' printeradmins\n"
+"\n"
+" Remove a group:\n"
+" ipa group-del unixadmins\n"
+"\n"
+" To add the \"remoteadmins\" group to the \"localadmins\" group:\n"
+" ipa group-add-member --groups=remoteadmins localadmins\n"
+"\n"
+" Add a list of users to the \"localadmins\" group:\n"
+" ipa group-add-member --users=test1,test2 localadmins\n"
+"\n"
+" Remove a user from the \"localadmins\" group:\n"
+" ipa group-remove-member --users=test2 localadmins\n"
+"\n"
+" Display information about a named group.\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/group.py:76
+msgid ""
+"\n"
+" Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:100
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:102
+#: ipalib/plugins/group.py:108
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:109 ipalib/plugins/sudocmdgroup.py:78
+#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:113
+#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:114
+#: ipalib/plugins/group.py:120
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:117 ipalib/plugins/rolegroup.py:94
-#: ipalib/plugins/taskgroup.py:66
-msgid "Member groups"
+#: ipalib/plugins/group.py:128
+msgid ""
+"\n"
+" Create a new group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:121 ipalib/plugins/rolegroup.py:98
-#: ipalib/plugins/taskgroup.py:70
-msgid "Member users"
+#: ipalib/plugins/group.py:132
+msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:134
-#, python-format
-msgid "Added group \"%(value)s\""
+#: ipalib/plugins/group.py:137
+msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:139
-msgid "Create as a non-POSIX group?"
+#: ipalib/plugins/group.py:154
+msgid ""
+"\n"
+" Delete group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:160
-#, python-format
+#: ipalib/plugins/group.py:158
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:191
-#, python-format
+#: ipalib/plugins/group.py:186
+msgid ""
+"\n"
+" Modify a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:189
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:196
+#: ipalib/plugins/group.py:194
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:222 ipalib/plugins/hbacsvcgroup.py:129
-#, python-format
+#: ipalib/plugins/group.py:215
+msgid ""
+"\n"
+" Search for groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:220
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
+#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+msgid "search for private groups"
+msgstr ""
+
#: ipalib/plugins/group.py:257
-#, python-format
-msgid "Detached group \"%(value)s\" from user \"%(value)s\""
+msgid ""
+"\n"
+" Display information about a named group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:265
+msgid ""
+"\n"
+" Add members to a group.\n"
+" "
msgstr ""
#: ipalib/plugins/group.py:273
+msgid ""
+"\n"
+" Remove members from a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:281
+msgid ""
+"\n"
+" Detach a managed group from a user\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:285
+msgid "Detached group \"%(value)s\" from user \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/group.py:288
+msgid ""
+"\n"
+" This requires updating both the user and the group. We first need "
+"to\n"
+" verify that both the user and group can be updated, then we go\n"
+" about our work. We don't want a situation where only the user or\n"
+" group can be modified and we're left in a bad state.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:306
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:277
+#: ipalib/plugins/group.py:312
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:284 ipalib/plugins/group.py:295
+#: ipalib/plugins/group.py:331
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbac.py:106
-msgid "HBAC"
+#: ipalib/plugins/hbacrule.py:19
+msgid ""
+"\n"
+"Host-based access control\n"
+"\n"
+"Control who can access what services on what hosts and from where. You\n"
+"can use HBAC to control which users or groups on a source host can\n"
+"access a service, or group of services, on a target host.\n"
+"\n"
+"You can also specify a category of users, target hosts, and source\n"
+"hosts. This is currently limited to \"all\", but might be expanded in the\n"
+"future.\n"
+"\n"
+"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n"
+"\n"
+"The available services and groups of services are controlled by the\n"
+"hbacsvc and hbacsvcgroup plug-ins respectively.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a rule, \"test1\", that grants all users access to the host \"server"
+"\" from\n"
+" anywhere:\n"
+" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add-host --hosts=server.example.com test1\n"
+"\n"
+" Display the properties of a named HBAC rule:\n"
+" ipa hbacrule-show test1\n"
+"\n"
+" Create a rule for a specific service. This lets the user john access\n"
+" the sshd service on any machine from any machine:\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add-user --users=john john_sshd\n"
+" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
+"\n"
+" Create a rule for a new service group. This lets the user john access\n"
+" the FTP service on any machine from any machine:\n"
+" ipa hbacsvcgroup-add ftpers\n"
+" ipa hbacsvc-add sftp\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add-user --users=john john_ftp\n"
+" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
+"\n"
+" Disable a named HBAC rule:\n"
+" ipa hbacrule-disable test1\n"
+"\n"
+" Remove a named HBAC rule:\n"
+" ipa hbacrule-del allow_server\n"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:91
+msgid ""
+"\n"
+" See if options[attribute] is lower-case 'all' in a safe way.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:103
+msgid ""
+"\n"
+" HBAC object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:126
+msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbac.py:111 ipalib/plugins/sudorule.py:53
+#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbac.py:116
+#: ipalib/plugins/hbacrule.py:136
msgid "Rule type (allow or deny)"
msgstr ""
-#: ipalib/plugins/hbac.py:117
+#: ipalib/plugins/hbacrule.py:137
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbac.py:123
+#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
+#: ipalib/plugins/sudorule.py:86
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbac.py:124
+#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
+#: ipalib/plugins/sudorule.py:87
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:129
+#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
+#: ipalib/plugins/sudorule.py:92
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbac.py:130
+#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
+#: ipalib/plugins/sudorule.py:93
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:135
+#: ipalib/plugins/hbacrule.py:155
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbac.py:136
+#: ipalib/plugins/hbacrule.py:156
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:141
+#: ipalib/plugins/hbacrule.py:161
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbac.py:142
+#: ipalib/plugins/hbacrule.py:162
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:147 ipalib/plugins/hbac.py:325
-#: ipalib/plugins/hbac.py:363
-msgid "Access time"
-msgstr ""
-
-#: ipalib/plugins/hbac.py:154
+#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbac.py:158 ipalib/plugins/sudorule.py:61
-#: ipalib/plugins/user.py:76
+#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
+#: ipalib/plugins/user.py:108
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbac.py:162 ipalib/plugins/host.py:113
-#: ipalib/plugins/sudorule.py:65
+#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
+#: ipalib/plugins/sudorule.py:119
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
+#: ipalib/plugins/sudorule.py:123
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:166 ipalib/plugins/hostgroup.py:69
-#: ipalib/plugins/sudorule.py:69
+#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
+#: ipalib/plugins/sudorule.py:127
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbac.py:170
+#: ipalib/plugins/hbacrule.py:194
msgid "Source hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:174 ipalib/plugins/hbacsvc.py:60
-#: ipalib/plugins/service.py:192
+#: ipalib/plugins/hbacrule.py:198
+msgid "Source host groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
+#: ipalib/plugins/service.py:220
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbac.py:178
+#: ipalib/plugins/hbacrule.py:206
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:65
-msgid "Service name"
+#: ipalib/plugins/hbacrule.py:215
+msgid ""
+"\n"
+" Create a new HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:219
+msgid "Added HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:230
+msgid ""
+"\n"
+" Delete an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:234
+msgid "Deleted HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:240
+msgid ""
+"\n"
+" Modify an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:244
+msgid "Modified HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:266
+msgid ""
+"\n"
+" Search for HBAC rules.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:270
+msgid "%(count)d HBAC rule matched"
+msgid_plural "%(count)d HBAC rules matched"
+msgstr[0] ""
+
+#: ipalib/plugins/hbacrule.py:278
+msgid ""
+"\n"
+" Display the properties of an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:286
+msgid ""
+"\n"
+" Enable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:290
+msgid "Enabled HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:315
+msgid ""
+"\n"
+" Disable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:319
+msgid "Disabled HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:344
+msgid ""
+"\n"
+" Add an access time to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+msgid "Access time"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:385
+msgid ""
+"\n"
+" Remove access time to HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:425
+msgid ""
+"\n"
+" Add users and groups to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:442
+msgid ""
+"\n"
+" Remove users and groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:452
+msgid ""
+"\n"
+" Add target hosts and hostgroups to an HBAC rule\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:469
+msgid ""
+"\n"
+" Remove target hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:479
+msgid ""
+"\n"
+" Add source hosts and hostgroups from a HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:496
+msgid ""
+"\n"
+" Remove source hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:506
+msgid ""
+"\n"
+" Add services to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:523
+msgid ""
+"\n"
+" Remove service and service groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:19
+msgid ""
+"\n"
+"HBAC Services\n"
+"\n"
+"The PAM services that HBAC can control access to. The name used here\n"
+"must match the service name that PAM is evaluating.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service:\n"
+" ipa hbacsvc-add tftp\n"
+"\n"
+" Modify an existing HBAC service:\n"
+" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n"
+"\n"
+" Search for HBAC services. This example will return two results, the FTP\n"
+" service and the newly-added tftp service:\n"
+" ipa hbacsvc-find ftp\n"
+"\n"
+" Delete an HBAC service:\n"
+" ipa hbacsvc-del tftp\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:51
+msgid ""
+"\n"
+" HBAC Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:61
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "HBAC Service"
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:73
-msgid "Description of service"
+#: ipalib/plugins/hbacsvc.py:67
+msgid "HBAC service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:84 ipalib/plugins/service.py:216
-#, python-format
-msgid "Added service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:74
+msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:93 ipalib/plugins/service.py:255
-#, python-format
-msgid "Deleted service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:82
+msgid ""
+"\n"
+" Add a new HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:85
+msgid "Added HBAC service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:91
+msgid ""
+"\n"
+" Delete an existing HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:94
+msgid "Deleted HBAC service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:100
+msgid ""
+"\n"
+" Modify an HBAC service.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:66
-msgid "HBAC Service Groups"
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:71
+#: ipalib/plugins/hbacsvc.py:110
+msgid ""
+"\n"
+" Search for HBAC services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:114
+msgid "%(count)d HBAC service matched"
+msgid_plural "%(count)d HBAC services matched"
+msgstr[0] ""
+
+#: ipalib/plugins/hbacsvc.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:19
+msgid ""
+"\n"
+"HBAC Service Groups\n"
+"\n"
+"HBAC service groups can contain any number of individual services,\n"
+"or \"members\". Every group must have a description.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service group:\n"
+" ipa hbacsvcgroup-add --desc=\"login services\" login\n"
+"\n"
+" Add members to an HBAC service group:\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n"
+"\n"
+" Display information about a named group:\n"
+" ipa hbacsvcgroup-show login\n"
+"\n"
+" Add a new group to the \"login\" group:\n"
+" ipa hbacsvcgroup-add --desc=\"switch users\" login\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n"
+"\n"
+" Delete an HBAC service group:\n"
+" ipa hbacsvcgroup-del login\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:51
+msgid ""
+"\n"
+" HBAC service group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:64
+msgid "HBAC service Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:69
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:78
+#: ipalib/plugins/hbacsvcgroup.py:76
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:81
-msgid "Member services"
+#: ipalib/plugins/hbacsvcgroup.py:84
+msgid ""
+"\n"
+" Add a new HBAC service group.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:85
-msgid "Member service groups"
+#: ipalib/plugins/hbacsvcgroup.py:87
+msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:101
-#, python-format
-msgid "Added HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:93
+msgid ""
+"\n"
+" Delete an HBAC service group.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:110
-#, python-format
-msgid "Deleted HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:96
+msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:119
-#, python-format
-msgid "Modified HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:102
+msgid ""
+"\n"
+" Modify an HBAC service group.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:86
+#: ipalib/plugins/hbacsvcgroup.py:105
+msgid "Modified HBAC service group \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:111
+msgid ""
+"\n"
+" Search for an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:114
+msgid "%(count)d HBAC service group matched"
+msgid_plural "%(count)d HBAC service groups matched"
+msgstr[0] ""
+
+#: ipalib/plugins/hbacsvcgroup.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:130
+msgid ""
+"\n"
+" Add members to an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:138
+msgid ""
+"\n"
+" Remove members from an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:20
+msgid ""
+"\n"
+"Hosts/Machines\n"
+"\n"
+"A host represents a machine. It can be used in a number of contexts:\n"
+"- service entries are associated with a host\n"
+"- a host stores the host/ service principal\n"
+"- a host can be used in Host-based Access Control (HBAC) rules\n"
+"- every enrolled client generates a host entry\n"
+"\n"
+"ENROLLMENT:\n"
+"\n"
+"There are three enrollment scenarios when enrolling a new client:\n"
+"\n"
+"1. You are enrolling as a full administrator. The host entry may exist\n"
+" or not. A full administrator is a member of the hostadmin role\n"
+" or the admins group.\n"
+"2. You are enrolling as a limited administrator. The host must already\n"
+" exist. A limited administrator is a member a role with the\n"
+" Host Enrollment privilege.\n"
+"3. The host has been created with a one-time password.\n"
+"\n"
+"A host can only be enrolled once. If a client has enrolled and needs to\n"
+"be re-enrolled, the host entry must be removed and re-created. Note that\n"
+"re-creating the host entry will result in all services for the host being\n"
+"removed, and all SSL certificates associated with those services being\n"
+"revoked.\n"
+"\n"
+"A host can optionally store information such as where it is located,\n"
+"the OS that it runs, etc.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host:\n"
+" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example."
+"com\n"
+"\n"
+" Delete a host:\n"
+" ipa host-del test.example.com\n"
+"\n"
+" Add a new host with a one-time password:\n"
+" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n"
+"\n"
+" Add a new host with a random one-time password:\n"
+" ipa host-add --os='Fedora 12' --random test.example.com\n"
+"\n"
+" Modify information about a host:\n"
+" ipa host-mod --os='Fedora 12' test.example.com\n"
+"\n"
+" Disable the host Kerberos key, SSL certificate and all of its services:\n"
+" ipa host-disable test.example.com\n"
+"\n"
+" Add a host that can manage this host's keytab and certificate:\n"
+" ipa host-add-managedby --hosts=test2 test\n"
+msgstr ""
+
+#: ipalib/plugins/host.py:97
+msgid ""
+"\n"
+" Require at least one dot in the hostname (to support localhost."
+"localdomain)\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:118
+#: ipalib/plugins/host.py:129
+msgid "DNS reverse zone for IP address %(addr)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+msgid "Keytab"
+msgstr ""
+
+#: ipalib/plugins/host.py:185
+msgid ""
+"\n"
+" Verify that we have either an IPv4 or IPv6 address.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:189
+msgid "invalid IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:194
+msgid ""
+"\n"
+" Host object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:231
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:125
+#: ipalib/plugins/host.py:238
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:242
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:130
+#: ipalib/plugins/host.py:243
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:135
+#: ipalib/plugins/host.py:248
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:139
+#: ipalib/plugins/host.py:252
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:140
+#: ipalib/plugins/host.py:253
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:144
+#: ipalib/plugins/host.py:257
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:145
+#: ipalib/plugins/host.py:258
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:149
+#: ipalib/plugins/host.py:262
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:150
+#: ipalib/plugins/host.py:263
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:155 ipalib/plugins/service.py:205
-msgid "Base-64 encoded server certificate"
+#: ipalib/plugins/host.py:266
+msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:158 ipalib/plugins/host.py:274
-msgid "Principal name"
+#: ipalib/plugins/host.py:271
+msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:162 ipalib/plugins/hostgroup.py:93
-msgid "Member of host-groups"
+#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:166
-msgid "Member of net-groups"
+#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:170
-msgid "Member of role-groups"
+#: ipalib/plugins/host.py:306
+msgid ""
+"\n"
+" Add a new host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:199
-#, python-format
+#: ipalib/plugins/host.py:311
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:202
+#: ipalib/plugins/host.py:316
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:235
-#, python-format
+#: ipalib/plugins/host.py:319
+msgid "skip reverse DNS detection"
+msgstr ""
+
+#: ipalib/plugins/host.py:322
+msgid "Add the host to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+msgid "DNS zone %(zone)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:413
+msgid "The host was added but the DNS update failed with: %(exc)s"
+msgstr ""
+
+#: ipalib/plugins/host.py:422
+msgid ""
+"\n"
+" Delete a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:426
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:269
-#, python-format
+#: ipalib/plugins/host.py:431
+msgid "Remove entries from DNS"
+msgstr ""
+
+#: ipalib/plugins/host.py:537
+msgid ""
+"\n"
+" Modify information about a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:542
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:275
+#: ipalib/plugins/host.py:549
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:319
-#, python-format
+#: ipalib/plugins/host.py:618
+msgid ""
+"\n"
+" Search for hosts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:623
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
-#: ipalib/plugins/host.py:337 ipalib/plugins/service.py:84
-msgid "Keytab"
+#: ipalib/plugins/host.py:643
+msgid ""
+"\n"
+" Display information about a host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:359 ipalib/plugins/service.py:399
-#, python-format
-msgid "Removed kerberos key from \"%(value)s\""
+#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+msgid "file to store certificate in"
+msgstr ""
+
+#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+msgid "Certificate stored in file '%(file)s'"
+msgstr ""
+
+#: ipalib/plugins/host.py:684
+msgid ""
+"\n"
+" Disable the Kerberos key, SSL certificate and all services of a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:688
+msgid "Disabled host \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/host.py:770
+msgid ""
+"\n"
+" Add hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:781
+msgid ""
+"\n"
+" Remove hosts that can manage this host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:368
-msgid "Host principal has no kerberos key"
+#: ipalib/plugins/hostgroup.py:20
+msgid ""
+"\n"
+"Groups of hosts.\n"
+"\n"
+"Manage groups of hosts. This is useful for applying access control to a\n"
+"number of hosts by using Host-based Access Control.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host group:\n"
+" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n"
+"\n"
+" Add another new host group:\n"
+" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n"
+"\n"
+" Add members to the hostgroup:\n"
+" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n"
+"\n"
+" Add a hostgroup as a member of another hostgroup:\n"
+" ipa hostgroup-add-member --hostgroups=baltimore maryland\n"
+"\n"
+" Remove a host from the hostgroup:\n"
+" ipa hostgroup-remove-member --hosts=box2 baltimore\n"
+"\n"
+" Display a host group:\n"
+" ipa hostgroup-show baltimore\n"
+"\n"
+" Delete a hostgroup:\n"
+" ipa hostgroup-del baltimore\n"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:55
+msgid ""
+"\n"
+" Hostgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/hostgroup.py:78
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:75
+#: ipalib/plugins/hostgroup.py:79
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:82
+#: ipalib/plugins/hostgroup.py:86
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:85
-msgid "Member hosts"
+#: ipalib/plugins/hostgroup.py:94
+msgid ""
+"\n"
+" Add a new hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:89
-msgid "Member host-groups"
+#: ipalib/plugins/hostgroup.py:98
+msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:106
-#, python-format
-msgid "Added hostgroup \"%(value)s\""
+#: ipalib/plugins/hostgroup.py:104
+msgid ""
+"\n"
+" Delete a hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:116
-#, python-format
+#: ipalib/plugins/hostgroup.py:108
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:126
-#, python-format
+#: ipalib/plugins/hostgroup.py:114
+msgid ""
+"\n"
+" Modify a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:118
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:137
-#, python-format
+#: ipalib/plugins/hostgroup.py:124
+msgid ""
+"\n"
+" Search for hostgroups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:128
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
-#: ipalib/plugins/internal.py:39
+#: ipalib/plugins/hostgroup.py:136
+msgid ""
+"\n"
+" Display information about a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:144
+msgid ""
+"\n"
+" Add members to a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:152
+msgid ""
+"\n"
+" Remove members from a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:22
+msgid ""
+"\n"
+"Plugins not accessible directly through the CLI, commands used internally\n"
+msgstr ""
+
+#: ipalib/plugins/internal.py:36
+msgid ""
+"\n"
+" Export plugin meta-data for the webUI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:44
+msgid "Name of object to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:47
+msgid "Name of method to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:52
+msgid "Dict of JSON encoded IPA Objects"
+msgstr ""
+
+#: ipalib/plugins/internal.py:53
+msgid "Dict of JSON encoded IPA Methods"
+msgstr ""
+
+#: ipalib/plugins/internal.py:96
msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:41
+#: ipalib/plugins/internal.py:99
+msgid "Attribute"
+msgstr ""
+
+#: ipalib/plugins/internal.py:102
+msgid "Add Automount Location"
+msgstr ""
+
+#: ipalib/plugins/internal.py:103
+msgid "Automount Location Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:106
+msgid "Add Automount Map"
+msgstr ""
+
+#: ipalib/plugins/internal.py:109
+msgid "Add Automount Key"
+msgstr ""
+
+#: ipalib/plugins/internal.py:112
+msgid "Unspecified"
+msgstr ""
+
+#: ipalib/plugins/internal.py:113
+msgid "Key Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:114
+msgid "CA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:115
+msgid "Affiliation Changed"
+msgstr ""
+
+#: ipalib/plugins/internal.py:116
+msgid "Superseded"
+msgstr ""
+
+#: ipalib/plugins/internal.py:117
+msgid "Cessation of Operation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:118
+msgid "Certificate Hold"
+msgstr ""
+
+#: ipalib/plugins/internal.py:119
+msgid "Remove from CRL"
+msgstr ""
+
+#: ipalib/plugins/internal.py:120
+msgid "Privilege Withdrawn"
+msgstr ""
+
+#: ipalib/plugins/internal.py:121
+msgid "AA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:122
+msgid ""
+"To confirm your intention to revoke this certificate, select a reason from "
+"the pull-down list, and click the \"Revoke\" button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:124
+msgid "Note"
+msgstr ""
+
+#: ipalib/plugins/internal.py:125
+msgid "Reason for Revocation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:126
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\" "
+"button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:128
+msgid "Issued To"
+msgstr ""
+
+#: ipalib/plugins/internal.py:129
+msgid "Common Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:130
+msgid "Organization"
+msgstr ""
+
+#: ipalib/plugins/internal.py:131
+msgid "Organizational Unit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:133
+msgid "Issued By"
+msgstr ""
+
+#: ipalib/plugins/internal.py:134
+msgid "Validity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:135
+msgid "Issued On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:136
+msgid "Expires On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:137
+msgid "Fingerprints"
+msgstr ""
+
+#: ipalib/plugins/internal.py:138
+msgid "SHA1 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:139
+msgid "MD5 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:140
+msgid "Enter the Base64-encoded CSR below"
+msgstr ""
+
+#: ipalib/plugins/internal.py:141
+msgid "Valid Certificate Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:142
+msgid "New Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:143
+msgid "Certificate Revoked"
+msgstr ""
+
+#: ipalib/plugins/internal.py:144
+msgid "No Valid Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:145
+msgid "Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:146
+msgid "Issue New Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:147
+msgid "Revoke Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:148
+msgid "Restore Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:152
+msgid "Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:155
+msgid "Add Delegation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:158
+msgid "Add DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:159
+msgid "DNS Zone Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:162
+msgid "Add DNS Resource Record"
+msgstr ""
+
+#: ipalib/plugins/internal.py:163
+msgid "Resource"
+msgstr ""
+
+#: ipalib/plugins/internal.py:165
+msgid "Data"
+msgstr ""
+
+#: ipalib/plugins/internal.py:166
+msgid "Records for DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:169
+msgid "Add Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:170
+msgid "Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
+msgid "Is this a POSIX group?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:174
+msgid "Add HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:306
+msgid "Active"
+msgstr ""
+
+#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:308
+msgid "Inactive"
+msgstr ""
+
+#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
+msgid "Rule status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
+msgid "Who"
+msgstr ""
+
+#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
+msgid "Anyone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
+msgid "Specified Users and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:183
+msgid "Accessing"
+msgstr ""
+
+#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
+msgid "Any Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
+msgid "Specified Hosts and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:186
+msgid "Via Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:187
+msgid "Any Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:188
+msgid "Specified Services and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:189
+msgid "From"
+msgstr ""
+
+#: ipalib/plugins/internal.py:192
+msgid "Add HBAC Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:195
+msgid "Add HBAC Service Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:199
+msgid "Add Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:200
+msgid "Host Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:202
+msgid "Host Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:203
+msgid "Enrolled?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:204
+msgid "Enrollment"
+msgstr ""
+
+#: ipalib/plugins/internal.py:205
+msgid "Fully Qualified Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
+msgid "Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:208
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
+msgid "Delete Key, Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:211
+msgid "Enroll via One-Time-Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:212
+msgid "Set OTP"
+msgstr ""
+
+#: ipalib/plugins/internal.py:213
+msgid "One-Time-Password has been set."
+msgstr ""
+
+#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
+msgid "Unprovisioning ${entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:215
+msgid "Are you sure you want to unprovision this host?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
+msgid "Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:219
+msgid "Add Host Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:220
+msgid "Host Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:223
+msgid "Kerberos ticket policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:226
+msgid "Add Netgroup"
+msgstr ""
+
+#: ipalib/plugins/internal.py:227
+msgid "Netgroup Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:230
+msgid "Add Permission"
+msgstr ""
+
+#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
+msgid "Identity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:233
+msgid "Target"
+msgstr ""
+
+#: ipalib/plugins/internal.py:235
+msgid "By Subtree"
+msgstr ""
+
+#: ipalib/plugins/internal.py:236
+msgid "Target Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:237
+msgid "Object By Type"
+msgstr ""
+
+#: ipalib/plugins/internal.py:238
+msgid "Permission with invalid target specification"
+msgstr ""
+
+#: ipalib/plugins/internal.py:241
+msgid "Add Privilege"
+msgstr ""
+
+#: ipalib/plugins/internal.py:242
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:245
+msgid "Add Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:249
+msgid "Add Role"
+msgstr ""
+
+#: ipalib/plugins/internal.py:250
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:253
+msgid "Add Self Service Definition"
+msgstr ""
+
+#: ipalib/plugins/internal.py:256
+msgid "Add Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:257
+msgid "Service Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:258
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:260
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:261
+msgid "Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:263
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:267
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:271
+msgid "Add Sudo Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:275
+msgid "Add Sudo Command Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:279
+msgid "Add Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:287
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:290
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:291
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:292
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:293
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:294
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:295
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:297
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:300
+msgid "Add User"
+msgstr ""
+
+#: ipalib/plugins/internal.py:301
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:302
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:303
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:304
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:305
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:307
+msgid "Click to Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:309
+msgid "Click to Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:310
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:311
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:312
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:313
+msgid "Repeat Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:314
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:315
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:319
msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:42
+#: ipalib/plugins/internal.py:320
+msgid "Add and Add Another"
+msgstr ""
+
+#: ipalib/plugins/internal.py:321
+msgid "Add and Edit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:322
+msgid "Add and Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:323
+msgid "Add Many"
+msgstr ""
+
+#: ipalib/plugins/internal.py:324
+msgid "Back to List"
+msgstr ""
+
+#: ipalib/plugins/internal.py:325
+msgid "Cancel"
+msgstr ""
+
+#: ipalib/plugins/internal.py:326
+msgid "Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:327
+msgid "Enroll"
+msgstr ""
+
+#: ipalib/plugins/internal.py:328
msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:43
+#: ipalib/plugins/internal.py:329
+msgid "Get"
+msgstr ""
+
+#: ipalib/plugins/internal.py:330
+msgid "Issue"
+msgstr ""
+
+#: ipalib/plugins/internal.py:331
+msgid "OK"
+msgstr ""
+
+#: ipalib/plugins/internal.py:332
msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:333
+msgid "Delete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:334
+msgid "Restore"
+msgstr ""
+
+#: ipalib/plugins/internal.py:335
+msgid "Retry"
+msgstr ""
+
+#: ipalib/plugins/internal.py:336
+msgid "Revoke"
+msgstr ""
+
+#: ipalib/plugins/internal.py:337
msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:45
-msgid "Enroll"
+#: ipalib/plugins/internal.py:338
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:46
-msgid "Delete"
+#: ipalib/plugins/internal.py:341
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:49
+#: ipalib/plugins/internal.py:342
+msgid "This page has unsaved changes. Please save or revert."
+msgstr ""
+
+#: ipalib/plugins/internal.py:343
+msgid "Dirty"
+msgstr ""
+
+#: ipalib/plugins/internal.py:344
+msgid "Hide already enrolled."
+msgstr ""
+
+#: ipalib/plugins/internal.py:345
+msgid "Select ${entity} to be removed."
+msgstr ""
+
+#: ipalib/plugins/internal.py:346
+msgid "Remove ${entity}."
+msgstr ""
+
+#: ipalib/plugins/internal.py:347
+msgid "Prospective"
+msgstr ""
+
+#: ipalib/plugins/internal.py:350
+msgid "Managed by"
+msgstr ""
+
+#: ipalib/plugins/internal.py:351
+msgid "Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:352
+msgid "Indirect Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:353
+msgid "Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:354
+msgid "Indirect Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
+msgid "Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:358
+msgid "Search"
+msgstr ""
+
+#: ipalib/plugins/internal.py:362
msgid "Quick Links"
msgstr ""
-#: ipalib/plugins/internal.py:50
+#: ipalib/plugins/internal.py:363
msgid "Select All"
msgstr ""
-#: ipalib/plugins/internal.py:51
+#: ipalib/plugins/internal.py:364
msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Do you really want to delete the selected entries?"
+#: ipalib/plugins/internal.py:365
+msgid "Are you sure you want to delete selected entries?"
msgstr ""
-#: ipalib/plugins/internal.py:55
-msgid "Identity Details"
+#: ipalib/plugins/internal.py:366
+msgid ""
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
msgstr ""
-#: ipalib/plugins/internal.py:56
-msgid "Account Details"
+#: ipalib/plugins/internal.py:370
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:57
-msgid "Contact Details"
+#: ipalib/plugins/internal.py:371
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:58
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:372
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:59
-msgid " Employee Information"
+#: ipalib/plugins/internal.py:373
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:60
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:377
+msgid "Policy"
msgstr ""
-#: ipalib/plugins/internal.py:61
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:378
+msgid "Audit"
msgstr ""
-#: ipalib/plugins/internal.py:66
-msgid "Name of object to export"
+#: ipalib/plugins/internal.py:379
+msgid "IPA Server"
msgstr ""
-#: ipalib/plugins/internal.py:71
-msgid "Dict of JSON encoded IPA Objects"
+#: ipalib/plugins/internal.py:380
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:381
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:382
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:383
+msgid "Automount"
msgstr ""
-#: ipalib/plugins/internal.py:72
+#: ipalib/plugins/internal.py:386
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:387
+msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:388
+msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:389
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:392
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:395
+msgid ""
+"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."
+msgstr ""
+
+#: ipalib/plugins/internal.py:399
msgid "Dict of I18N messages"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:59
+#: ipalib/plugins/kerberos.py:20
+msgid ""
+"\n"
+"Backend plugin for Kerberos.\n"
+"\n"
+"This wraps the python-kerberos and python-krbV bindings.\n"
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:35
+msgid ""
+"\n"
+" Kerberos backend plugin.\n"
+"\n"
+" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
+" bindings also). Importantly, this plugin does correct Unicode\n"
+" encoding/decoding of values going-to/coming-from the bindings.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:44
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:50
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:56
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:62
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:68
+msgid ""
+"\n"
+" Return the default ccache file name.\n"
+"\n"
+" This will return something like '/tmp/krb5cc_500'.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:79
+msgid ""
+"\n"
+" Return the principal name in default credential cache.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'. If no "
+"credential\n"
+" cache exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:91
+msgid ""
+"\n"
+" Return the realm from the default credential cache.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'. If no credential "
+"cache\n"
+" exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:103
+msgid ""
+"\n"
+" Return the principal from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:111
+msgid ""
+"\n"
+" Return the realm from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:19
+msgid ""
+"\n"
+"Kerberos ticket policy\n"
+"\n"
+"There is a single Kerberos ticket policy. This policy defines the\n"
+"maximum ticket lifetime and the maximum renewal age, the period during\n"
+"which the ticket is renewable.\n"
+"\n"
+"You can also create a per-user ticket policy by specifying the user login.\n"
+"\n"
+"For changes to the global policy to take effect, restarting the KDC service\n"
+"is required, which can be achieved using:\n"
+"\n"
+"service krb5kdc restart\n"
+"\n"
+"Changes to per-user policies take effect immediately for newly requested\n"
+"tickets (e.g. when the user next runs kinit).\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Display the current Kerberos ticket policy:\n"
+" ipa krbtpolicy-show\n"
+"\n"
+" Reset the policy to the default:\n"
+" ipa krbtpolicy-reset\n"
+"\n"
+" Modify the policy to 8 hours max life, 1-day max renewal:\n"
+" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n"
+"\n"
+" Display effective Kerberos ticket policy for user 'admin':\n"
+" ipa krbtpolicy-show admin\n"
+"\n"
+" Reset per-user policy for user 'admin':\n"
+" ipa krbtpolicy-reset admin\n"
+"\n"
+" Modify per-user policy for user 'admin':\n"
+" ipa krbtpolicy-mod admin --maxlife=3600\n"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:71
+msgid ""
+"\n"
+" Kerberos Ticket Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:79
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:64 ipalib/plugins/passwd.py:52
+#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
msgid "User name"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:65
+#: ipalib/plugins/krbtpolicy.py:85
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:70
+#: ipalib/plugins/krbtpolicy.py:90
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:75
+#: ipalib/plugins/krbtpolicy.py:96
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:76
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/migration.py:44
-#, python-format
+#: ipalib/plugins/krbtpolicy.py:111
+msgid ""
+"\n"
+" Modify Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:125
+msgid ""
+"\n"
+" Display the current Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:149
+msgid ""
+"\n"
+" Reset Kerberos ticket policy to the default values.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:19
+msgid ""
+"\n"
+"Migration to IPA\n"
+"\n"
+"Migrate users and groups from an LDAP server to IPA.\n"
+"\n"
+"This performs an LDAP query against the remote server searching for\n"
+"users and groups in a container. In order to migrate passwords you need\n"
+"to bind as a user that can read the userPassword attribute on the remote\n"
+"server. This is generally restricted to high-level admins such as\n"
+"cn=Directory Manager in 389-ds (this is the default bind user).\n"
+"\n"
+"The default user container is ou=People.\n"
+"\n"
+"The default group container is ou=Groups.\n"
+"\n"
+"Users and groups that already exist on the IPA server are skipped.\n"
+"\n"
+"Two LDAP schemas define how group members are stored: RFC2307 and\n"
+"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n"
+"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n"
+"\n"
+"Migrated users do not have Kerberos credentials, they have only their\n"
+"LDAP password. To complete the migration process, users need to go\n"
+"to http://ipa.example.com/ipa/migration and authenticate using their\n"
+"LDAP password in order to generate their Kerberos credentials.\n"
+"\n"
+"Migration is disabled by default. Use the command ipa config-mod to\n"
+"enable it:\n"
+"\n"
+" ipa config-mod --enable-migration=TRUE\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" The simplest migration, accepting all defaults:\n"
+" ipa migrate-ds ldap://ds.example.com:389\n"
+"\n"
+" Specify the user and group container. This can be used to migrate user and\n"
+" group data from an IPA v1 server:\n"
+" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-"
+"container='cn=groups,cn=accounts' ldap://ds.example.com:389\n"
+msgstr ""
+
+#: ipalib/plugins/migration.py:78
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:45
+#: ipalib/plugins/migration.py:79
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:169
+#: ipalib/plugins/migration.py:175
+msgid ""
+"\n"
+" Convert usernames in member attributes to work in IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:220
+msgid "Invalid LDAP URI."
+msgstr ""
+
+#: ipalib/plugins/migration.py:225
+msgid ""
+"\n"
+" Migrate users and groups from DS to IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:266
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:170
+#: ipalib/plugins/migration.py:267
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:174
+#: ipalib/plugins/migration.py:272
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:181
+#: ipalib/plugins/migration.py:279
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:187
+#: ipalib/plugins/migration.py:285
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:188
+#: ipalib/plugins/migration.py:286
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:194
+#: ipalib/plugins/migration.py:292
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:195
+#: ipalib/plugins/migration.py:293
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:200
-msgid "Continous operation mode. Errors are reported but the process continues"
+#: ipalib/plugins/migration.py:299
+msgid "User object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:300
+msgid ""
+"Comma-separated list of objectclasses used to search for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:306
+msgid "Group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:307
+msgid ""
+"Comma-separated list of objectclasses used to search for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:313
+msgid "LDAP schema"
+msgstr ""
+
+#: ipalib/plugins/migration.py:314
+msgid ""
+"The schema used on the LDAP server. Supported values are RFC2307 and "
+"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:208
+#: ipalib/plugins/migration.py:320
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues"
+msgstr ""
+
+#: ipalib/plugins/migration.py:328
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:212
+#: ipalib/plugins/migration.py:332
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:216
+#: ipalib/plugins/migration.py:336
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:220
-#, python-format
+#: ipalib/plugins/migration.py:340
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:222
+#: ipalib/plugins/migration.py:342
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
-"migration process might be uncomplete\n"
+"migration process might be incomplete\n"
msgstr ""
-#: ipalib/plugins/migration.py:227
+#: ipalib/plugins/migration.py:347
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:230
+#: ipalib/plugins/migration.py:350
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -1522,16 +4757,55 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:297
-#, python-format
+#: ipalib/plugins/migration.py:358
+msgid ""
+"\n"
+" Call get_options of the baseclass and add \"exclude\" options\n"
+" for each type of object being migrated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:375
+msgid ""
+"\n"
+" Convert all \"exclude\" option values to lower-case.\n"
+"\n"
+" Also, empty List parameters are converted to None, but the "
+"migration\n"
+" plugin doesn't like that - convert back to empty lists.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:399
+msgid ""
+"\n"
+" Migrate objects from DS to LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:425
msgid "Container for %(container)s not found"
msgstr ""
+#: ipalib/plugins/misc.py:20
+msgid ""
+"\n"
+"Misc plug-ins\n"
+msgstr ""
+
+#: ipalib/plugins/misc.py:36
+msgid "Show environment variables"
+msgstr ""
+
#: ipalib/plugins/misc.py:38
-#, python-format
msgid "%(count)d variables"
msgstr ""
+#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115
+msgid ""
+"retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
#: ipalib/plugins/misc.py:61
msgid "Total number of variables env (>= count)"
msgstr ""
@@ -1540,428 +4814,2380 @@ msgstr ""
msgid "Number of variables returned (<= total)"
msgstr ""
-#: ipalib/plugins/misc.py:109
-#, python-format
+#: ipalib/plugins/misc.py:106
+msgid "Show all loaded plugins"
+msgstr ""
+
+#: ipalib/plugins/misc.py:108
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
-#: ipalib/plugins/misc.py:116
+#: ipalib/plugins/misc.py:126
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:57
+#: ipalib/plugins/netgroup.py:20
+msgid ""
+"\n"
+"Netgroups\n"
+"\n"
+"A netgroup is a group used for permission checking. It can contain both\n"
+"user and host values.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new netgroup:\n"
+" ipa netgroup-add --desc=\"NFS admins\" admins\n"
+"\n"
+" Add members to the netgroup:\n"
+" ipa netgroup-add-member --users=tuser1,tuser2 admins\n"
+"\n"
+" Remove a member from the netgroup:\n"
+" ipa netgroup-remove-member --users=tuser2 admins\n"
+"\n"
+" Display information about a netgroup:\n"
+" ipa netgroup-show admins\n"
+"\n"
+" Delete a netgroup:\n"
+" ipa netgroup-del admins\n"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:59
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:63
-msgid "External host"
+#: ipalib/plugins/netgroup.py:67
+msgid ""
+"\n"
+" Netgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/netgroup.py:85
-msgid "Net Groups"
+#: ipalib/plugins/netgroup.py:98
+msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:90
+#: ipalib/plugins/netgroup.py:103
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:97
+#: ipalib/plugins/netgroup.py:110
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:101
+#: ipalib/plugins/netgroup.py:114
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:106
+#: ipalib/plugins/netgroup.py:119
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:84
-#, python-format
+#: ipalib/plugins/netgroup.py:140
+msgid ""
+"\n"
+" Add a new netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:144
+msgid "Added netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:153
+msgid ""
+"\n"
+" Delete a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:156
+msgid "Deleted netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:162
+msgid ""
+"\n"
+" Modify a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:166
+msgid "Modified netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:180
+msgid ""
+"\n"
+" Search for a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:185
+msgid "%(count)d netgroup matched"
+msgid_plural "%(count)d netgroups matched"
+msgstr[0] ""
+
+#: ipalib/plugins/netgroup.py:213
+msgid ""
+"\n"
+" Display information about a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:222
+msgid ""
+"\n"
+" Add members to a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:258
+msgid ""
+"\n"
+" Remove members from a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:19
+msgid ""
+"\n"
+"Set a user's password\n"
+"\n"
+"If someone other than a user changes that user's password (e.g., Helpdesk\n"
+"resets it) then the password will need to be changed the first time it\n"
+"is used. This is so the end-user is the only one who knows the password.\n"
+"\n"
+"The IPA password policy controls how often a password may be changed,\n"
+"what strength requirements exist, and the length of the password history.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" To reset your own password:\n"
+" ipa passwd\n"
+"\n"
+" To change another user's password:\n"
+" ipa passwd tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/passwd.py:46
+msgid ""
+"\n"
+" Set a user's password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:64
+msgid "Changed password for \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/passwd.py:67
+msgid ""
+"\n"
+" Execute the passwd operation.\n"
+"\n"
+" The dn should not be passed as a keyword argument as it is "
+"constructed\n"
+" by this method.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param principal: The login name or principal of the user\n"
+" :param password: the new password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:19
+msgid ""
+"\n"
+"Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of rights. A permission is\n"
+"a human-readable form of a 389-ds Access Control Rule, or instruction "
+"(ACI).\n"
+"A permission grants the right to perform a specific task such as adding a\n"
+"user, modifying a group, etc.\n"
+"\n"
+"A permission may not contain other permissions.\n"
+"\n"
+"* A permission grants access to read, write, add or delete.\n"
+"* A privilege combines similar permissions (for example all the permissions\n"
+" needed to add a user).\n"
+"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n"
+"\n"
+"A permission is made up of a number of different parts:\n"
+"\n"
+"1. The name of the permission.\n"
+"2. The target of the permission.\n"
+"3. The rights granted by the permission.\n"
+"\n"
+"Rights define what operations are allowed, and may be one or more\n"
+"of the following:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Read permission is granted for most attributes by default so the read\n"
+"permission is not expected to be used very often.\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"There are a number of allowed targets:\n"
+"1. type: a type of object (user, group, etc).\n"
+"2. memberof: a member of a group or hostgroup\n"
+"3. filter: an LDAP filter\n"
+"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n"
+" super-set of the \"type\" target.\n"
+"5. targetgroup: grant access to modify a specific group (such as granting\n"
+" the rights to manage group membership)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a permission that grants the creation of users:\n"
+" ipa permission-add --type=user --permissions=add \"Add Users\"\n"
+"\n"
+" Add a permission that grants the ability to manage group membership:\n"
+" ipa permission-add --attrs=member --permissions=write --type=group "
+"\"Manage Group Members\"\n"
+msgstr ""
+
+#: ipalib/plugins/permission.py:84
+msgid "Permission Type"
+msgstr ""
+
+#: ipalib/plugins/permission.py:89
+msgid ""
+"\n"
+" Permission object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:112
+msgid "Permission name"
+msgstr ""
+
+#: ipalib/plugins/permission.py:119
+msgid ""
+"Comma-separated list of permissions to grant (read, write, add, delete, all)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:132
+msgid ""
+"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:138
+msgid "Member of group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:139
+msgid "Target members of a group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:151
+msgid "Subtree to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:157
+msgid "User group to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:177
+msgid ""
+"\n"
+" Add a new permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:181
+msgid "Added permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:236
+msgid ""
+"\n"
+" Delete a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:240
+msgid "Deleted permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:256
+msgid ""
+"\n"
+" Modify a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:260
+msgid "Modified permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:352
+msgid ""
+"\n"
+" Search for permissions.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:356
+msgid "%(count)d permission matched"
+msgid_plural "%(count)d permissions matched"
+msgstr[0] ""
+
+#: ipalib/plugins/permission.py:405
+msgid ""
+"\n"
+" Display information about a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:428
+msgid ""
+"\n"
+" Add members to a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:437
+msgid ""
+"\n"
+" Remove members from a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:19
+msgid ""
+"\n"
+"Ping the remote IPA server\n"
+msgstr ""
+
+#: ipalib/plugins/ping.py:29
+msgid ""
+"\n"
+" ping a remote server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:37
+msgid ""
+"\n"
+" A possible enhancement would be to take an argument and echo it\n"
+" back but a fixed value works for now.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:19
+msgid ""
+"\n"
+"Kerberos pkinit options\n"
+"\n"
+"Enable or disable anonymous pkinit using the principal\n"
+"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n"
+"pkinit support.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Enable anonymous pkinit:\n"
+" ipa pkinit-anonymous enable\n"
+"\n"
+" Disable anonymous pkinit:\n"
+" ipa pkinit-anonymous disable\n"
+"\n"
+"For more information on anonymous pkinit see:\n"
+"\n"
+"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:46
+msgid ""
+"\n"
+" PKINIT Options\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:51
+msgid "PKINIT"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:56
+msgid ""
+"\n"
+" Accepts only Enable/Disable.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:67
+msgid ""
+"\n"
+" Enable or Disable Anonymous PKINIT\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:19
+msgid ""
+"\n"
+"Privileges\n"
+"\n"
+"A privilege combines permissions into a logical task. A permission provides\n"
+"the rights to do a single task. There are some IPA operations that require\n"
+"multiple permissions to succeed. A privilege is where permissions are\n"
+"combined in order to perform a specific task.\n"
+"\n"
+"For example, adding a user requires the following permissions:\n"
+" * Creating a new user entry\n"
+" * Resetting a user password\n"
+" * Adding the new user to the default IPA users group\n"
+"\n"
+"Combining these three low-level tasks into a higher level task in the\n"
+"form of a privilege named \"Add User\" makes it easier to manage Roles.\n"
+"\n"
+"A privilege may not contain other privileges.\n"
+"\n"
+"See role and permission for additional information.\n"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:45
+msgid ""
+"\n"
+" Privilege object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:65
+msgid "Privileges"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:70
+msgid "Privilege name"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:77
+msgid "Privilege description"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:85
+msgid ""
+"\n"
+" Add a new privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:89
+msgid "Added privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:95
+msgid ""
+"\n"
+" Delete a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:99
+msgid "Deleted privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:105
+msgid ""
+"\n"
+" Modify a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:109
+msgid "Modified privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:115
+msgid ""
+"\n"
+" Search for privileges.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:119
+msgid "%(count)d privilege matched"
+msgid_plural "%(count)d privileges matched"
+msgstr[0] ""
+
+#: ipalib/plugins/privilege.py:127
+msgid ""
+"\n"
+" Display information about a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:135
+msgid ""
+"\n"
+" Add members to a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:144
+msgid ""
+"\n"
+" Remove members from a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:153
+msgid ""
+"\n"
+" Add permissions to a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:169
+msgid "Number of permissions added"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:177
+msgid ""
+"\n"
+" Remove permissions from a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:195
+msgid "Number of permissions removed"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:20
+msgid ""
+"\n"
+"Password policy\n"
+"\n"
+"A password policy sets limitations on IPA passwords, including maximum\n"
+"lifetime, minimum lifetime, the number of passwords to save in\n"
+"history, the number of character classes required (for stronger passwords)\n"
+"and the minimum password length.\n"
+"\n"
+"By default there is a single, global policy for all users. You can also\n"
+"create a password policy to apply to a group. Each user is only subject\n"
+"to one password policy, either the group policy or the global policy. A\n"
+"group policy stands alone; it is not a super-set of the global policy plus\n"
+"custom settings.\n"
+"\n"
+"Each group password policy requires a unique priority setting. If a user\n"
+"is in multiple groups that have password policies, this priority determines\n"
+"which password policy is applied. A lower value indicates a higher priority\n"
+"policy.\n"
+"\n"
+"Group password policies are automatically removed when the groups they\n"
+"are associated with are removed.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Modify the global policy:\n"
+" ipa pwpolicy-mod --minlength=10\n"
+"\n"
+" Add a new group password policy:\n"
+" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --"
+"minlength=8 --priority=10 localadmins\n"
+"\n"
+" Display the global password policy:\n"
+" ipa pwpolicy-show\n"
+"\n"
+" Display a group password policy:\n"
+" ipa pwpolicy-show localadmins\n"
+"\n"
+" Display the policy that would be applied to a given user:\n"
+" ipa pwpolicy-show --user=tuser1\n"
+"\n"
+" Modify a group password policy:\n"
+" ipa pwpolicy-mod --minclasses=2 localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:72
+msgid ""
+"\n"
+" Class of Service object used for linking policies with groups\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:87
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:170
-msgid "Password Policy"
+#: ipalib/plugins/pwpolicy.py:172
+msgid ""
+"\n"
+" Password Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:201
+msgid "Max failures"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:202
+msgid "Consecutive failures before lockout"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:207
+msgid "Failure reset interval"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:208
+msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:175
+#: ipalib/plugins/pwpolicy.py:213
+msgid "Lockout duration"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:214
+msgid "Period for which lockout is enforced (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:224
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:176
+#: ipalib/plugins/pwpolicy.py:225
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:181
+#: ipalib/plugins/pwpolicy.py:230
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:182
+#: ipalib/plugins/pwpolicy.py:231
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:187
+#: ipalib/plugins/pwpolicy.py:236
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:188
+#: ipalib/plugins/pwpolicy.py:237
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:193
+#: ipalib/plugins/pwpolicy.py:242
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:194
+#: ipalib/plugins/pwpolicy.py:243
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:199
+#: ipalib/plugins/pwpolicy.py:248
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:200
+#: ipalib/plugins/pwpolicy.py:249
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:206
+#: ipalib/plugins/pwpolicy.py:255
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:256
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:212
+#: ipalib/plugins/pwpolicy.py:261
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:262
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:265
+#: ipalib/plugins/pwpolicy.py:294
+msgid ""
+"\n"
+" Ensure that the maximum lifetime is greater than the minimum.\n"
+" If there is no minimum lifetime set then don't return an error.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:314
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:330
+#: ipalib/plugins/pwpolicy.py:333
+msgid ""
+"\n"
+" Add a new group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:361
+msgid ""
+"\n"
+" Delete a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:380
+msgid ""
+"\n"
+" Modify a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:391
msgid "priority cannot be set on global policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:369
+#: ipalib/plugins/pwpolicy.py:423
+msgid ""
+"\n"
+" Display information about password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:428
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:370
+#: ipalib/plugins/pwpolicy.py:429
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/rolegroup.py:79
-msgid "Role Groups"
+#: ipalib/plugins/pwpolicy.py:452
+msgid ""
+"\n"
+" Search for group password policies.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:20
+msgid ""
+"\n"
+"Roles\n"
+"\n"
+"A role is used for fine-grained delegation. A permission grants the ability\n"
+"to perform given low-level tasks (add a user, modify a group, etc.). A\n"
+"privilege combines one or more permissions into a higher-level abstraction\n"
+"such as useradmin. A useradmin would be able to add, delete and modify "
+"users.\n"
+"\n"
+"Privileges are assigned to Roles.\n"
+"\n"
+"Users, groups, hosts and hostgroups may be members of a Role.\n"
+"\n"
+"Roles can not contain other roles.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new role:\n"
+" ipa role-add --desc=\"Junior-level admin\" junioradmin\n"
+"\n"
+" Add some privileges to this role:\n"
+" ipa role-add-privilege --privileges=addusers junioradmin\n"
+" ipa role-add-privilege --privileges=change_password junioradmin\n"
+" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n"
+"\n"
+" Add a group of users to this role:\n"
+" ipa group-add --desc=\"User admins\" useradmins\n"
+" ipa role-add-member --groups=useradmins junioradmin\n"
+"\n"
+" Display information about a role:\n"
+" ipa role-show junioradmin\n"
+"\n"
+" The result of this is that any users in the group 'useradmins' can\n"
+" add users, reset passwords or add a user to the default IPA user group.\n"
+msgstr ""
+
+#: ipalib/plugins/role.py:62
+msgid ""
+"\n"
+" Role object.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:84
-msgid "Role-group name"
+#: ipalib/plugins/role.py:81
+msgid "Role"
msgstr ""
-#: ipalib/plugins/rolegroup.py:91
+#: ipalib/plugins/role.py:86
+msgid "Role name"
+msgstr ""
+
+#: ipalib/plugins/role.py:93
msgid "A description of this role-group"
msgstr ""
-#: ipalib/plugins/rolegroup.py:102
-msgid "Member of task-groups"
+#: ipalib/plugins/role.py:101
+msgid ""
+"\n"
+" Add a new role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:115
-#, python-format
-msgid "Added rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:105
+msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/rolegroup.py:125
-#, python-format
-msgid "Deleted rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:111
+msgid ""
+"\n"
+" Delete a role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:135
-#, python-format
-msgid "Modified rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:115
+msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/rolegroup.py:146
-#, python-format
-msgid "%(count)d rolegroup matched"
-msgid_plural "%(count)d rolegroups matched"
+#: ipalib/plugins/role.py:121
+msgid ""
+"\n"
+" Modify a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:125
+msgid "Modified role \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/role.py:131
+msgid ""
+"\n"
+" Search for roles.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:135
+msgid "%(count)d role matched"
+msgid_plural "%(count)d roles matched"
+msgstr[0] ""
+
+#: ipalib/plugins/role.py:143
+msgid ""
+"\n"
+" Display information about a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:151
+msgid ""
+"\n"
+" Add members to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:159
+msgid ""
+"\n"
+" Remove members from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:167
+msgid ""
+"\n"
+" Add privileges to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:183
+msgid "Number of privileges added"
+msgstr ""
+
+#: ipalib/plugins/role.py:191
+msgid ""
+"\n"
+" Remove privileges from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:207
+msgid "Number of privileges removed"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:19
+msgid ""
+"\n"
+"Self-service Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"A Self-service permission defines what an object can change in its own "
+"entry.\n"
+"\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a self-service rule to allow users to manage their address:\n"
+" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st "
+"\"Users manage their own address\"\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add telephoneNumber to the list:\n"
+" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber "
+"\"Users manage their own address\"\n"
+"\n"
+" Display our updated rule:\n"
+" ipa selfservice-show \"Users manage their own address\"\n"
+"\n"
+" Delete a rule:\n"
+" ipa selfservice-del \"Users manage their own address\"\n"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:56
+msgid ""
+"\n"
+" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a self-service ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:64
+msgid "Self-service permission '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:68
+msgid ""
+"\n"
+" Selfservice object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:75
+msgid "Self Service Permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
+msgid "Self-service name"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:114
+msgid ""
+"\n"
+" Add a new self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:118
+msgid "Added selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:137
+msgid ""
+"\n"
+" Delete a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:142
+msgid "Deleted selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:158
+msgid ""
+"\n"
+" Modify a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:162
+msgid "Modified selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:181
+msgid ""
+"\n"
+" Search for a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:185
+msgid "%(count)d selfservice matched"
+msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
-#: ipalib/plugins/service.py:198
+#: ipalib/plugins/selfservice.py:207
+msgid ""
+"\n"
+" Display information about a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:21
+msgid ""
+"\n"
+"Services\n"
+"\n"
+"A IPA service represents a service that runs on a host. The IPA service\n"
+"record can store a Kerberos principal, an SSL certificate, or both.\n"
+"\n"
+"An IPA service can be managed directly from a machine, provided that\n"
+"machine has been given the correct permission. This is true even for\n"
+"machines other than the one the service is associated with. For example,\n"
+"requesting an SSL certificate using the host service principal credentials\n"
+"of the host. To manage a service using host credentials you need to\n"
+"kinit as the host:\n"
+"\n"
+" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n"
+"\n"
+"Adding an IPA service allows the associated service to request an SSL\n"
+"certificate or keytab, but this is performed as a separate step; they\n"
+"are not produced as a result of adding the service.\n"
+"\n"
+"Only the public aspect of a certificate is stored in a service record;\n"
+"the private key is not stored.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new IPA service:\n"
+" ipa service-add HTTP/web.example.com\n"
+"\n"
+" Allow a host to manage an IPA service certificate:\n"
+" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n"
+" ipa role-add-member --hosts=web.example.com certadmin\n"
+"\n"
+" Delete an IPA service:\n"
+" ipa service-del HTTP/web.example.com\n"
+"\n"
+" Find all IPA services associated with a host:\n"
+" ipa service-find web.example.com\n"
+"\n"
+" Find all HTTP services:\n"
+" ipa service-find HTTP\n"
+"\n"
+" Disable the service Kerberos key and SSL certificate:\n"
+" ipa service-disable HTTP/web.example.com\n"
+"\n"
+" Request a certificate for an IPA service:\n"
+" ipa cert-request --principal=HTTP/web.example.com example.csr\n"
+"\n"
+" Generate and retrieve a keytab for an IPA service:\n"
+" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/"
+"httpd.keytab\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/service.py:162
+msgid ""
+"\n"
+" For now just verify that it is properly base64-encoded.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:175
+msgid ""
+"\n"
+" Set individual attributes from some values from a certificate.\n"
+"\n"
+" entry_attrs is a dict of an entry\n"
+"\n"
+" returns nothing\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:199
+msgid ""
+"\n"
+" Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:226
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:221
+#: ipalib/plugins/service.py:242
+msgid ""
+"\n"
+" Add a new IPA new service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:245
+msgid "Added service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/service.py:251
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:292
-#, python-format
+#: ipalib/plugins/service.py:284
+msgid ""
+"\n"
+" Delete an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:287
+msgid "Deleted service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/service.py:321
+msgid ""
+"\n"
+" Modify an existing IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:324
msgid "Modified service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:323
-#, python-format
+#: ipalib/plugins/service.py:356
+msgid ""
+"\n"
+" Search for IPA services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:359
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
-#: ipalib/plugins/service.py:409
-msgid "Service principal has no kerberos key"
+#: ipalib/plugins/service.py:394
+msgid ""
+"\n"
+" Display information about an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:432
+msgid ""
+"\n"
+" Add hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:442
+msgid ""
+"\n"
+" Remove hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:452
+msgid ""
+"\n"
+" Disable the Kerberos key and SSL certificate of a service.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmd.py:60
-msgid "SudoCmds"
+#: ipalib/plugins/service.py:456
+msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:65
+#: ipalib/plugins/sudocmd.py:19
+msgid ""
+"\n"
+"Sudo Commands\n"
+"\n"
+"Commands used as building blocks for sudo\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a new command\n"
+" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n"
+"\n"
+" Remove a command\n"
+" ipa sudocmd-del /usr/bin/less\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:46
+msgid ""
+"\n"
+" Sudo Command object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:64
+msgid "Sudo Commands"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:69
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:72
+#: ipalib/plugins/sudocmd.py:75
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:99
-#, python-format
+#: ipalib/plugins/sudocmd.py:98
+msgid ""
+"\n"
+" Create new sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:102
msgid "Added sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:108
-#, python-format
+#: ipalib/plugins/sudocmd.py:107
+msgid ""
+"\n"
+" Delete sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:111
msgid "Deleted sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:117
-#, python-format
+#: ipalib/plugins/sudocmd.py:116
+msgid ""
+"\n"
+" Modify command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:120
msgid "Modified sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:127
-#, python-format
+#: ipalib/plugins/sudocmd.py:125
+msgid ""
+"\n"
+" Search for commands.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:129
msgid "%(count)d sudo command matched"
msgid_plural "%(count)d sudo command matched"
msgstr[0] ""
-#: ipalib/plugins/sudocmdgroup.py:66 ipalib/plugins/sudocmdgroup.py:85
-#: ipalib/plugins/sudorule.py:81 ipalib/plugins/sudorule.py:85
-msgid "Sudo Command Groups"
+#: ipalib/plugins/sudocmd.py:136
+msgid ""
+"\n"
+" Display sudo command.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:71
+#: ipalib/plugins/sudocmdgroup.py:19
+msgid ""
+"\n"
+"Groups of Sudo commands\n"
+"\n"
+"Manage groups of Sudo commands.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new Sudo command group:\n"
+" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
+"\n"
+" Remove a Sudo command group:\n"
+" ipa sudocmdgroup-del admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim "
+"admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
+"\n"
+" Show a Sudo command group:\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:50
+msgid ""
+"\n"
+" Sudo Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:70
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:81
-msgid "Commands"
+#: ipalib/plugins/sudocmdgroup.py:93
+msgid ""
+"\n"
+" Create new sudo command group.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:98
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:97
msgid "Added sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:108
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:103
+msgid ""
+"\n"
+" Delete sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:107
msgid "Deleted sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:118
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:113
+msgid ""
+"\n"
+" Modify group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:117
msgid "Modified sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:129
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:123
+msgid ""
+"\n"
+" Search for sudo command groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:127
msgid "%(count)d sudo command group matched"
msgid_plural "%(count)d sudo command groups matched"
msgstr[0] ""
-#: ipalib/plugins/sudorule.py:48
-msgid "SudoRule"
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid ""
+"\n"
+" Display sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:144
+msgid ""
+"\n"
+" Add members to sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:152
+msgid ""
+"\n"
+" Remove members from sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:19
+msgid ""
+"\n"
+"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
+"give certain users (or groups of users) the ability to run some (or all)\n"
+"commands as root or another user while providing an audit trail of the\n"
+"commands and their arguments.\n"
+"\n"
+"FreeIPA provides a designated binddn to use with Sudo located at:\n"
+"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
+"\n"
+"To enable the binddn run the following command to set the password:\n"
+"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -"
+"ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,"
+"dc=com\n"
+"\n"
+"For more information, see the FreeIPA Documentation to Sudo.\n"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:44
+msgid ""
+"\n"
+" Sudo Rule management\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:68
+msgid "Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:98
+msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/sudorule.py:99
+msgid "Command category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:104
+msgid "Run As User category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:105
+msgid "Run As User category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:110
+msgid "Run As Group category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:111
+msgid "Run As Group category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:131
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:77
+#: ipalib/plugins/sudorule.py:135
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:109
-#, python-format
+#: ipalib/plugins/sudorule.py:147
+msgid "Run As User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:151
+msgid "Run As Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:156
+msgid "External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:157
+msgid "External User the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:161
+msgid "RunAs External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:162
+msgid "External User the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:166
+msgid "RunAs External Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:167
+msgid "External Group the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:175
+msgid ""
+"\n"
+" Create new Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "Added sudo rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/taskgroup.py:51
-msgid "Task Groups"
+#: ipalib/plugins/sudorule.py:189
+msgid ""
+"\n"
+" Delete Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:56
-msgid "Task-group name"
+#: ipalib/plugins/sudorule.py:197
+msgid ""
+"\n"
+" Modify Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:63
-msgid "Task-group description"
+#: ipalib/plugins/sudorule.py:205
+msgid ""
+"\n"
+" Search for Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:74
-msgid "Member role-groups"
+#: ipalib/plugins/sudorule.py:213
+msgid ""
+"\n"
+" Display Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:87
-#, python-format
-msgid "Added taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:221
+msgid ""
+"\n"
+" Enable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:97
-#, python-format
-msgid "Deleted taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:247
+msgid ""
+"\n"
+" Disable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:107
-#, python-format
-msgid "Modified taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
+msgid ""
+"\n"
+" Add commands and sudo command groups affected by Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:118
-#, python-format
-msgid "%(count)d taskgroup matched"
-msgid_plural "%(count)d taskgroups matched"
-msgstr[0] ""
+#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
+msgid ""
+"\n"
+" Remove commands and sudo command groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:313
+msgid ""
+"\n"
+" Add users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/user.py:84
+#: ipalib/plugins/sudorule.py:349
+msgid ""
+"\n"
+" Remove users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:383
+msgid ""
+"\n"
+" Add hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:419
+msgid ""
+"\n"
+" Remove hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:453
+msgid ""
+"\n"
+" Add user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:489
+msgid ""
+"\n"
+" Remove user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:523
+msgid ""
+"\n"
+" Add group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:559
+msgid ""
+"\n"
+" Remove group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:593
+msgid ""
+"\n"
+" Add an option to the Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
+msgid "Sudo Option"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:635
+msgid ""
+"\n"
+" Remove an option from Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:20
+msgid ""
+"\n"
+"Users\n"
+"\n"
+"Manage user entries. All users are POSIX users.\n"
+"\n"
+"IPA supports a wide range of username formats, but you need to be aware of "
+"any\n"
+"restrictions that may apply to your particular environment. For example,\n"
+"usernames that start with a digit or usernames that exceed a certain length\n"
+"may cause problems for some UNIX systems.\n"
+"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n"
+"\n"
+"Disabling a user account prevents that user from obtaining new Kerberos\n"
+"credentials. It does not invalidate any credentials that have already\n"
+"been issued.\n"
+"\n"
+"Password management is not a part of this module. For more information\n"
+"about this topic please see: ipa help passwd\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1\n"
+"\n"
+" Find all users whose entries include the string \"Tim\":\n"
+" ipa user-find Tim\n"
+"\n"
+" Find all users with \"Tim\" as the first name:\n"
+" ipa user-find --first=Tim\n"
+"\n"
+" Disable a user account:\n"
+" ipa user-disable tuser1\n"
+"\n"
+" Enable a user account:\n"
+" ipa user-enable tuser1\n"
+"\n"
+" Delete a user:\n"
+" ipa user-del tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/user.py:79
+msgid ""
+"\n"
+" User object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:116
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:91
+#: ipalib/plugins/user.py:123
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:95
+#: ipalib/plugins/user.py:127
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:103
+#: ipalib/plugins/user.py:130
+msgid "Full name"
+msgstr ""
+
+#: ipalib/plugins/user.py:135
+msgid "Display name"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "Initials"
+msgstr ""
+
+#: ipalib/plugins/user.py:146
+msgid "Home directory"
+msgstr ""
+
+#: ipalib/plugins/user.py:150
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:109
+#: ipalib/plugins/user.py:156
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:114
+#: ipalib/plugins/user.py:161
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:120
+#: ipalib/plugins/user.py:168
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:124
-msgid "Password"
+#: ipalib/plugins/user.py:173
+msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:125
-msgid "Set the user password"
-msgstr ""
-
-#: ipalib/plugins/user.py:132
+#: ipalib/plugins/user.py:180
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:133
+#: ipalib/plugins/user.py:181
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:139
-msgid "Street address"
+#: ipalib/plugins/user.py:188
+msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:142
-msgid "Groups"
+#: ipalib/plugins/user.py:193
+msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:146
-msgid "Netgroups"
+#: ipalib/plugins/user.py:197
+msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:150
-msgid "Rolegroups"
+#: ipalib/plugins/user.py:201
+msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:154
-msgid "Taskgroups"
+#: ipalib/plugins/user.py:204
+msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:159
+#: ipalib/plugins/user.py:208
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:211
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:163
+#: ipalib/plugins/user.py:214
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:166
+#: ipalib/plugins/user.py:218
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:177
-#, python-format
+#: ipalib/plugins/user.py:222
+msgid "Org. Unit"
+msgstr ""
+
+#: ipalib/plugins/user.py:225
+msgid "Job Title"
+msgstr ""
+
+#: ipalib/plugins/user.py:228
+msgid "Manager"
+msgstr ""
+
+#: ipalib/plugins/user.py:231
+msgid "Car License"
+msgstr ""
+
+#: ipalib/plugins/user.py:234
+msgid "Account disabled"
+msgstr ""
+
+#: ipalib/plugins/user.py:258
+msgid ""
+"\n"
+" Given a userid verify the user's existence and return the dn.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:276
+msgid "manager %(manager)s not found"
+msgstr ""
+
+#: ipalib/plugins/user.py:281
+msgid ""
+"\n"
+" Convert a manager dn into a userid\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:295
+msgid ""
+"\n"
+" Add a new user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:298
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:226
-#, python-format
+#: ipalib/plugins/user.py:303
+msgid "Don't create user private group"
+msgstr ""
+
+#: ipalib/plugins/user.py:333
+msgid "can be at most %(len)d characters"
+msgstr ""
+
+#: ipalib/plugins/user.py:400
+msgid ""
+"\n"
+" Delete a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:404
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:240
-#, python-format
+#: ipalib/plugins/user.py:413
+msgid ""
+"\n"
+" Modify a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:417
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:252
+#: ipalib/plugins/user.py:437
+msgid ""
+"\n"
+" Search for users.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:444
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:253
+#: ipalib/plugins/user.py:445
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:263
-#, python-format
+#: ipalib/plugins/user.py:463
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
-#: ipalib/plugins/user.py:283
-#, python-format
+#: ipalib/plugins/user.py:471
+msgid ""
+"\n"
+" Display information about a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:484
+msgid ""
+"\n"
+" Disable a user account.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:489
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:309
-#, python-format
+#: ipalib/plugins/user.py:507
+msgid ""
+"\n"
+" Enable a user account.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:512
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipaserver/install/certs.py:599 ipaserver/plugins/dogtag.py:1313
-#: ipaserver/plugins/dogtag.py:1398 ipaserver/plugins/dogtag.py:1463
-#: ipaserver/plugins/dogtag.py:1543 ipaserver/plugins/dogtag.py:1602
+#: ipalib/plugins/user.py:529
+msgid ""
+"\n"
+" Unlock a user account\n"
+"\n"
+" An account may become locked if the password is entered incorrectly too\n"
+" many times within a specific time period as controlled by password\n"
+" policy. A locked account is a temporary condition and may be unlocked "
+"by\n"
+" an administrator.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:538
+msgid "Unlocked account \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/virtual.py:20
+msgid ""
+"\n"
+"Base classes for non-LDAP backend plugins.\n"
+msgstr ""
+
+#: ipalib/plugins/virtual.py:28
+msgid ""
+"\n"
+" A command that doesn't use the LDAP backend but wants to use the\n"
+" LDAP access control system to make authorization decisions.\n"
+"\n"
+" The class variable operation is the commonName attribute of the\n"
+" entry to be tested against.\n"
+"\n"
+" In advance, you need to create an entry of the form:\n"
+" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
+"\n"
+" Ex.\n"
+" cn=request certificate, cn=virtual operations,cn=etc, dc=example, "
+"dc=com\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/virtual.py:44
+msgid ""
+"\n"
+" Perform an LDAP query to determine authorization.\n"
+"\n"
+" This should be executed before any actual work is done.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/xmlclient.py:21
+msgid ""
+"\n"
+"XML-RPC client plugin.\n"
+msgstr ""
+
+#: ipalib/cli.py:581
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:590
+msgid "Cancelled."
+msgstr ""
+
+#: ipalib/cli.py:819
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1117
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:300
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:318
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:334
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:356
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:372
+#, python-format
+msgid "unknown command %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:389 ipalib/errors.py:414
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:405
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:423
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:439
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:465
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:482
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:498
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:514
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:530
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:546
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:562
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:578
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:597
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:641
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:661
+#, python-format
+msgid "command %(name)r takes at most %(count)d argument"
+msgid_plural "command %(name)r takes at most %(count)d arguments"
+msgstr[0] ""
+
+#: ipalib/errors.py:691
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:707
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:723 ipalib/errors.py:739
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:755
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:764
+msgid "Passwords do not match"
+msgstr ""
+
+#: ipalib/errors.py:773
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:782
+msgid "Client is not configured. Run ipa-client-install."
+msgstr ""
+
+#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
+#: ipalib/errors.py:1424 ipalib/errors.py:1441
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:826
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:842
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:858
+#, python-format
+msgid ""
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:874
+msgid ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr ""
+
+#: ipalib/errors.py:890
+msgid "This command requires root access"
+msgstr ""
+
+#: ipalib/errors.py:906
+msgid "This is already a posix group"
+msgstr ""
+
+#: ipalib/errors.py:922
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:938
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:954
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:970
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:986
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1002
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1018
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1034
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1066
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1082
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1098
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1113
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1128
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1160
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1176
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1192
+#, python-format
+msgid ""
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1216
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1240
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1256
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1272
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1288
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1303
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1318
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1334
+#, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr ""
+
+#: ipalib/errors.py:1350
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1366
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1391
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1407
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1458
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1474
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:398
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:850
+msgid ""
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:856
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:985
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:296
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:299
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:901
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1002
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1054
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1064
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1074
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1097
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1107
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1174
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1192
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1208
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1218
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1228
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1246
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1277
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1287
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1297
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1315
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1355
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/util.py:200
+#, python-format
+msgid "Permission denied: %(file)s"
+msgstr ""
+
+#: ipalib/x509.py:174
+#, python-format
+msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
+msgstr ""
+
+#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
+#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
+#: ipaserver/plugins/dogtag.py:1600
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -1982,27 +7208,27 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
-#: ipaserver/plugins/selfsign.py:98
+#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
"Request subject \"%(request_subject)s\" does not match the form "
"\"%(subject_base)s\""
msgstr ""
-#: ipaserver/plugins/selfsign.py:103
+#: ipaserver/plugins/selfsign.py:104
#, python-format
msgid "unable to decode csr: %s"
msgstr ""
-#: ipaserver/plugins/selfsign.py:124 ipaserver/plugins/selfsign.py:139
+#: ipaserver/plugins/selfsign.py:125 ipaserver/plugins/selfsign.py:140
msgid "file operation"
msgstr ""
-#: ipaserver/plugins/selfsign.py:153
+#: ipaserver/plugins/selfsign.py:154
msgid "cannot obtain next serial number"
msgstr ""
-#: ipaserver/plugins/selfsign.py:188
+#: ipaserver/plugins/selfsign.py:189
msgid "certutil failure"
msgstr ""
@@ -2016,543 +7242,573 @@ msgstr ""
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:75
+#: ipa-client/config.c:68
+#, c-format
+msgid "out of memory\n"
+msgstr ""
+
+#: ipa-client/config.c:79
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:138 ipa-client/ipa-getkeytab.c:838
+#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
+#: ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:146
+#: ipa-client/ipa-getkeytab.c:155
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:164 ipa-client/ipa-getkeytab.c:179
+#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:194
+#: ipa-client/ipa-getkeytab.c:203
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:209
+#: ipa-client/ipa-getkeytab.c:218
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:235
+#: ipa-client/ipa-getkeytab.c:245
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:297
+#: ipa-client/ipa-getkeytab.c:307
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:310 ipa-client/ipa-getkeytab.c:327
-#: ipa-client/ipa-getkeytab.c:335 ipa-client/ipa-getkeytab.c:372
+#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
+#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:317 ipa-client/ipa-getkeytab.c:350
+#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
+#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
+#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
+#: ipa-client/ipa-join.c:819
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:361
+#: ipa-client/ipa-getkeytab.c:371
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:481
+#: ipa-client/ipa-getkeytab.c:492
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:496
+#: ipa-client/ipa-getkeytab.c:507
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:534
+#: ipa-client/ipa-getkeytab.c:545
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:541
+#: ipa-client/ipa-getkeytab.c:552
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:565
+#: ipa-client/ipa-getkeytab.c:576
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:572
+#: ipa-client/ipa-getkeytab.c:583
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:579
+#: ipa-client/ipa-getkeytab.c:596
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:589
+#: ipa-client/ipa-getkeytab.c:606
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:605 ipa-client/ipa-getkeytab.c:618
-#: ipa-client/ipa-getkeytab.c:625 ipa-client/ipa-getkeytab.c:632
+#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
+#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:638 ipa-client/ipa-getkeytab.c:648
+#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655
+#: ipa-client/ipa-getkeytab.c:672
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:674
+#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:715
+#: ipa-client/ipa-getkeytab.c:736
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:721
+#: ipa-client/ipa-getkeytab.c:742
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781
+#: ipa-client/ipa-getkeytab.c:778
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782
+#: ipa-client/ipa-getkeytab.c:779
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:189
+#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:787
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:788
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:790
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:794
+#: ipa-client/ipa-getkeytab.c:791
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:796
+#: ipa-client/ipa-getkeytab.c:793
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:825 ipa-client/ipa-rmkeytab.c:207
-#, c-format
-msgid "Kerberos context initialization failed\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:837
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:845
+#: ipa-client/ipa-getkeytab.c:841
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:864
+#: ipa-client/ipa-getkeytab.c:860
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:877
+#: ipa-client/ipa-getkeytab.c:873
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. -P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:889
+#: ipa-client/ipa-getkeytab.c:885
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:897
+#: ipa-client/ipa-getkeytab.c:893
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:905
+#: ipa-client/ipa-getkeytab.c:901
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:913
+#: ipa-client/ipa-getkeytab.c:909
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:920
+#: ipa-client/ipa-getkeytab.c:916
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:939
+#: ipa-client/ipa-getkeytab.c:935
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:948
+#: ipa-client/ipa-getkeytab.c:944
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:954
+#: ipa-client/ipa-getkeytab.c:950
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:67
+#: ipa-client/ipa-join.c:65
#, c-format
msgid "No permission to join this host to the IPA domain.\n"
msgstr ""
-#: ipa-client/ipa-join.c:104 ipa-client/ipa-join.c:116
+#: ipa-client/ipa-join.c:94 ipa-client/ipa-join.c:106
#, c-format
msgid "No write permissions on keytab file '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:121
+#: ipa-client/ipa-join.c:111
#, c-format
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:200
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#, c-format
+msgid "Out of memory!"
+msgstr ""
+
+#: ipa-client/ipa-join.c:204
+#, c-format
+msgid "Unable to initialize connection to ldap server: %s"
+msgstr ""
+
+#: ipa-client/ipa-join.c:210
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:206
+#: ipa-client/ipa-join.c:216
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:236
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:249
+#: ipa-client/ipa-join.c:269
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:259 ipa-client/ipa-join.c:311
+#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:302
+#: ipa-client/ipa-join.c:322
#, c-format
msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:368
+#: ipa-client/ipa-join.c:390
#, c-format
msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:377
+#: ipa-client/ipa-join.c:399
#, c-format
msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:385
+#: ipa-client/ipa-join.c:407
#, c-format
msgid "Unable to make an LDAP connection to %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:394
+#: ipa-client/ipa-join.c:432
#, c-format
msgid "Searching with %s in %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:400
+#: ipa-client/ipa-join.c:438
#, c-format
msgid "ldap_search_ext_s: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:408
+#: ipa-client/ipa-join.c:446
#, c-format
msgid "Unable to find host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:415
+#: ipa-client/ipa-join.c:453
#, c-format
msgid "Unable to get binddn for host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:428
+#: ipa-client/ipa-join.c:466
#, c-format
msgid "Host already has principal, trying bind anyway\n"
msgstr ""
-#: ipa-client/ipa-join.c:442 ipa-client/ipa-join.c:579
+#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:484
#, c-format
msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:457
+#: ipa-client/ipa-join.c:495
#, c-format
msgid "principal not found in host entry\n"
msgstr ""
-#: ipa-client/ipa-join.c:564
+#: ipa-client/ipa-join.c:618
#, c-format
msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:646 ipa-client/ipa-join.c:823
+#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:662 ipa-client/ipa-join.c:838
+#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:671 ipa-client/ipa-join.c:848
+#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:679
+#: ipa-client/ipa-join.c:732
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:689
+#: ipa-client/ipa-join.c:741
+#, c-format
+msgid "Error getting default Kerberos realm: %s.\n"
+msgstr ""
+
+#: ipa-client/ipa-join.c:759
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:707
+#: ipa-client/ipa-join.c:777
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:718
+#: ipa-client/ipa-join.c:788
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:726
+#: ipa-client/ipa-join.c:796
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:769
+#: ipa-client/ipa-join.c:846
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:772
+#: ipa-client/ipa-join.c:849
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:854
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:855
+#: ipa-client/ipa-join.c:932
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:863
+#: ipa-client/ipa-join.c:940
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not "
"provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:877
+#: ipa-client/ipa-join.c:954
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:906
+#: ipa-client/ipa-join.c:983
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:909
+#: ipa-client/ipa-join.c:986
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:912
+#: ipa-client/ipa-join.c:989
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:924
+#: ipa-client/ipa-join.c:1001
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:930
+#: ipa-client/ipa-join.c:1007
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "Print the raw XML-RPC output"
+#: ipa-client/ipa-join.c:1042
+msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "XML-RPC debugging Output"
+#: ipa-client/ipa-join.c:1044
+msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:967
-msgid "Unenroll this host"
-msgstr ""
-
-#: ipa-client/ipa-join.c:967
+#: ipa-client/ipa-join.c:1046
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Use this hostname instead of the node name"
+#: ipa-client/ipa-join.c:1048
+msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Host Name"
+#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:971
+#: ipa-client/ipa-join.c:1050
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:971
-msgid "IPA Server Name"
+#: ipa-client/ipa-join.c:1052
+msgid "Specifies where to store keytab information."
+msgstr ""
+
+#: ipa-client/ipa-join.c:1052
+msgid "filename"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1054
+msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:44
+#: ipa-client/ipa-join.c:1054
+msgid "password"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:46
+#: ipa-client/ipa-rmkeytab.c:45
#, c-format
msgid "krb5_parse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:56
+#: ipa-client/ipa-rmkeytab.c:55
#, c-format
msgid "Removing principal %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:69
+#: ipa-client/ipa-rmkeytab.c:68
#, c-format
msgid "Failed to open keytab\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:73
+#: ipa-client/ipa-rmkeytab.c:72
#, c-format
msgid "principal not found\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:75
+#: ipa-client/ipa-rmkeytab.c:74
#, c-format
msgid "krb5_kt_get_entry %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:83
+#: ipa-client/ipa-rmkeytab.c:82
#, c-format
msgid "Unable to remove entry\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:85
+#: ipa-client/ipa-rmkeytab.c:84
#, c-format
msgid "kvno %d\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:86
+#: ipa-client/ipa-rmkeytab.c:85
#, c-format
msgid "krb5_kt_remove_entry %d: %s\n"
msgstr ""
@@ -2567,33 +7823,38 @@ msgstr ""
msgid "krb5_unparse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:143
+#, c-format
+msgid "realm not found\n"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Print debugging information"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Debugging output"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Remove all principals in this realm"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Realm name"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:241
+#: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237
#, c-format
-msgid "Failed to open keytab '%s'\n"
+msgid "Failed to open keytab '%s': %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:255
+#: ipa-client/ipa-rmkeytab.c:253
#, c-format
msgid "Closing keytab failed\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:257
+#: ipa-client/ipa-rmkeytab.c:255
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
diff --git a/install/po/kn.po b/install/po/kn.po
index 94f23a191..ba271e6ab 100644
--- a/install/po/kn.po
+++ b/install/po/kn.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: ipa\n"
"Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/"
"newticket\n"
-"POT-Creation-Date: 2010-10-13 14:22-0400\n"
+"POT-Creation-Date: 2011-06-06 13:27-0400\n"
"PO-Revision-Date: 2010-05-11 20:03+0530\n"
"Last-Translator: gundachandru <gundachandru@gmail.com>\n"
"Language-Team: Kannada\n"
@@ -18,443 +18,276 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ipalib/cli.py:507
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr "ಮತ್ತೊಮ್ಮೆ ಪರಿಶೀಲಿಸಲು %(label)s ಎಂಟರ್ ಮಾಡಿ:"
-
-#: ipalib/cli.py:511 ipa-client/ipa-getkeytab.c:730
-#, c-format
-msgid "Passwords do not match!"
-msgstr "ಗುಪ್ತಪದಗಳು ಹೊಂದಾಣಿಕೆಯಾಗುತ್ತಿಲ್ಲ!"
-
-#: ipalib/cli.py:516
-msgid "Cancelled."
-msgstr "ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ."
-
-#: ipalib/errors.py:297
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr "%(server)r ನಲ್ಲಿ ಕ್ಲೈಂಟ್ %(cver)s ಸರ್ವರ್‌ %(sver)s ನೊಂದಿಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತಿಲ್ಲ"
-
-#: ipalib/errors.py:315
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr "%(server)s ಸರ್ವರ್‌ನಿಂದ ಅಜ್ಞಾತ ದೋಷ %(code)d: %(error)s"
-
-#: ipalib/errors.py:331
-msgid "an internal error has occurred"
-msgstr "ಆಂತರಿಕ ದೋಷ ಉಂಟಾಗಿದೆ"
-
-#: ipalib/errors.py:353
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr "%(server)r ನಲ್ಲಿ ಸರ್ವರ್‌ನಲ್ಲಿ ಆಂತರಿಕ ದೋಷ ಉಂಟಾಗಿದೆ"
-
-#: ipalib/errors.py:369
-#, python-format
-msgid "unknown command %(name)r"
-msgstr "ಅಜ್ಞಾತ ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್) %(name)r "
-
-#: ipalib/errors.py:386 ipalib/errors.py:411
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr "%(server)r ಸರ್ವರ್‌ನಲ್ಲಿ ದೋಷ: %(error)s"
-
-#: ipalib/errors.py:402
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
-msgstr "%(uri)r ಗೆ ಸಂಪರ್ಕಿಸಲು ಆಗುತ್ತಿಲ್ಲ: %(error)s"
-
-#: ipalib/errors.py:420
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr "ಅಸಿಂಧುವಾದ JSON-RPC ಬೇಡಿಕೆ: %(error)s"
-
-#: ipalib/errors.py:448
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr "Kerberos ದೋಷ: %(major)s/%(minor)s"
-
-#: ipalib/errors.py:465
-msgid "did not receive Kerberos credentials"
-msgstr "Kerberos ಯೋಗ್ಯತಾಪತ್ರಗಳನ್ನು ಪಡೆದಿಲ್ಲ"
-
-#: ipalib/errors.py:481
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr "Kerberos ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿ %(service)r ಸೇವೆ(ಸರ್ವಿಸ್) ಸಿಗುತ್ತಿಲ್ಲ"
-
-#: ipalib/errors.py:497
-msgid "No credentials cache found"
-msgstr "ಕ್ಯಾಶ್‌ನಲ್ಲಿ ಯೋಗ್ಯತಾಪತ್ರಗಳು ಸಿಗುತ್ತಿಲ್ಲ"
-
-#: ipalib/errors.py:513
-msgid "Ticket expired"
-msgstr "ಟಿಕೆಟ್‌ನ ಅವಧಿ ಮುಗಿದಿದೆ"
-
-#: ipalib/errors.py:529
-msgid "Credentials cache permissions incorrect"
-msgstr "ಯೋಗ್ಯತಾಪತ್ರಗಳ ಕ್ಯಾಶ್‌ನ ಅನುಮತಿಗಳು ಸರಿಯಿಲ್ಲ"
-
-#: ipalib/errors.py:545
-msgid "Bad format in credentials cache"
-msgstr "ಯೋಗ್ಯತಾಪತ್ರಗಳ ಕ್ಯಾಶ್‌ನಲ್ಲಿ ಜೋಡಣೆ ಸರಿಯಿಲ್ಲ"
-
-#: ipalib/errors.py:561
-msgid "Cannot resolve KDC for requested realm"
-msgstr "ಕೋರಿದ ಕ್ಷೇತ್ರ(ರೆಲ್ಮ್)ಕ್ಕಾಗಿ KDC ಯನ್ನು ಬಗೆಹರಿಸಲು ಆಗುತ್ತಿಲ್ಲ"
-
-#: ipalib/errors.py:580
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr "ನಿಲುಕಣೆ(ಆಕ್ಸೆಸ್) ಸಾಲದಾಗಿದೆ: %(info)s"
-
-#: ipalib/errors.py:624
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr "%(name)r ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್) ಯಾವುದೇ ಆರ್ಗುಮೆಂಟ್‌ಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುವುದಿಲ್ಲ"
-
-#: ipalib/errors.py:644
-#, python-format
-msgid "command %(name)r takes at most %(count)d argument"
-msgid_plural "command %(name)r takes at most %(count)d arguments"
-msgstr[0] "%(name)r ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್) ಗರಿಷ್ಠ %(count)d ಆರ್ಗುಮೆಂಟ್‌ವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ"
-msgstr[1] ""
-"%(name)r ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್) ಗರಿಷ್ಠ %(count)d ಆರ್ಗುಮೆಂಟ್‌ಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ"
-
-#: ipalib/errors.py:674
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr "ಆರ್ಗುಮೆಂಟ್‌ಗಳನ್ನು ಮತ್ತು ಆಯ್ಕೆಗಳನ್ನು ಒಂದರಮೇಲೊಂದಾಗಿಸಲಾಗುತ್ತಿದೆ: %(names)r"
-
-#: ipalib/errors.py:690
-#, python-format
-msgid "%(name)r is required"
-msgstr "%(name)r ಅಗತ್ಯವಿದೆ"
-
-#: ipalib/errors.py:706 ipalib/errors.py:722
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr "ಅಸಿಂಧುವಾದ %(name)r: %(error)s"
-
-#: ipalib/errors.py:738
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr "apiನಲ್ಲಿ ಆ ತರಹದ ಯಾವುದೇ ನೇಮ್‌ಸ್ಪೇಸ್ ಇಲ್ಲ: %(name)r"
-
-#: ipalib/errors.py:747
-msgid "Passwords do not match"
-msgstr "ಗುಪ್ತಪದಗಳು ಹೊಂದಾಣಿಕೆಯಾಗುತ್ತಿಲ್ಲ"
-
-#: ipalib/errors.py:755
-msgid "Command not implemented"
-msgstr "ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್)ಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲಾಗಿಲ್ಲ"
-
-#: ipalib/errors.py:783 ipalib/errors.py:1023 ipalib/errors.py:1254
-#, python-format
-msgid "%(reason)s"
-msgstr "%(reason)s"
-
-#: ipalib/errors.py:799
-msgid "This entry already exists"
-msgstr "ಈ ನಮೂದು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ"
-
-#: ipalib/errors.py:815
-msgid "You must enroll a host in order to create a host service"
-msgstr ""
-"ಒಂದು ಹೋಸ್ಟ್ ಸೇವೆ(ಸರ್ವಿಸ್)ಯನ್ನು ರಚಿಸುವ ಸಲುವಾಗಿ ನೀವು ಒಂದು ಹೋಸ್ಟ್ ಅನ್ನು ಸೇರಿಸಲೇಬೇಕಾಗಿದೆ"
-
-#: ipalib/errors.py:831
-#, python-format
+#: ipalib/plugins/__init__.py:20
msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+"\n"
+"Sub-package containing all core plugins.\n"
msgstr ""
-"Service principalನ ಸ್ವರೂಪ ಹೀಗಿಲ್ಲ: service/fully-qualified host name: "
-"%(reason)s"
-#: ipalib/errors.py:847
+#: ipalib/plugins/aci.py:20
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr "principalನ ಕ್ಷೇತ್ರ(ರೆಲ್ಮ್)ವು ಈ IPA ಸರ್ವರ್‌ನ ಕ್ಷೇತ್ರ(ರೆಲ್ಮ್)ಕ್ಕೆ ತಾಳೆಯಾಗುತ್ತಿಲ್ಲ"
-
-#: ipalib/errors.py:863
-msgid "This command requires root access"
-msgstr "ಈ ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್) ರೂಟ್(root) ನಿಲುಕಣೆ(ಆಕ್ಸೆಸ್) ಕೋರುತ್ತದೆ"
-
-#: ipalib/errors.py:879
-msgid "This is already a posix group"
-msgstr "ಇದು ಈಗಾಗಲೇ posix ಗುಂಪು"
-
-#: ipalib/errors.py:895
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr "Principalನ ಸ್ವರೂಪ user@REALM ನಂತಲ್ಲ: %(principal)r"
-
-#: ipalib/errors.py:911
-msgid "This entry is already unlocked"
-msgstr "ಈ ನಮೂದು ಈಗಾಗಲೇ ಅನ್‌ಲಾಕ್ ಆಗಿದೆ"
-
-#: ipalib/errors.py:927
-msgid "This entry is already locked"
-msgstr "ಈ ನಮೂದು ಈಗಾಗಲೇ ಲಾಕ್ ಆಗಿದೆ"
-
-#: ipalib/errors.py:943
-msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
-msgstr "ಈ ನಮೂದಿಗೆ nsAccountLock ಸೆಟ್ ಆಗಿದೆ, ಇದನ್ನು ಲಾಕ್ ಅಥವಾ ಅನ್‌ಲಾಕ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ"
-
-#: ipalib/errors.py:959
-msgid "This entry is not a member of the group"
-msgstr "ಈ ನಮೂದು ಗುಂಪಿನ ಒಂದು ಸದಸ್ಯ ಆಗಿಲ್ಲ"
-
-#: ipalib/errors.py:975
-msgid "A group may not be a member of itself"
-msgstr "ಒಂದು ಗುಂಪು ಅದರ ಒಂದು ಸದಸ್ಯ ಆಗದಿರಬಹುದು"
-
-#: ipalib/errors.py:991
-msgid "This entry is already a member of the group"
-msgstr "ಈ ನಮೂದು ಈಗಾಗಲೇ ಗುಂಪಿನ ಒಂದು ಸದಸ್ಯ ಆಗಿದೆ"
-
-#: ipalib/errors.py:1007
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr "Base64 ಡೆಕೋಡಿಂಗ್ ವಿಫಲಗೊಂಡಿದೆ: %(reason)s"
-
-#: ipalib/errors.py:1039
-msgid "A group may not be added as a member of itself"
-msgstr "ಒಂದು ಗುಂಪು ಅದರ ಒಂದು ಸದಸ್ಯನಂತೆ ಸೇರಿಸಲು ಆಗದಿರಬಹುದು"
-
-#: ipalib/errors.py:1055
-msgid "The default users group cannot be removed"
-msgstr "ಡಿಫಾಲ್ಟ್ ಬಳಕೆದಾರರ ಗುಂಪನ್ನು ತೆಗೆದುಹಾಕಲು ಆಗುವುದಿಲ್ಲ"
-
-#: ipalib/errors.py:1071
-msgid "Host does not have corresponding DNS A record"
-msgstr ""
-
-#: ipalib/errors.py:1086
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr ""
-
-#: ipalib/errors.py:1109
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr "ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್) ಇಲ್ಲ ಸಹಾಯದ ಟಾಪಿಕ್ %(topic)r ಕೂಡ ಇಲ್ಲ"
-
-#: ipalib/errors.py:1133
-msgid "change collided with another change"
-msgstr "ಬದಲಾವಣೆ ಮತ್ತೊಂದು ಬದಲಾವಣೆಯೊಂದಿಗೆ ಡಿಕ್ಕಿಹೊಡೆದಿದೆ"
-
-#: ipalib/errors.py:1149
-msgid "no modifications to be performed"
-msgstr "ಯಾವುದೇ ಬದಲಾವಣೆಗಳು ನಡೆಯಬಾರದು"
-
-#: ipalib/errors.py:1165
-#, python-format
-msgid "%(desc)s:%(info)s"
-msgstr "%(desc)s:%(info)s"
-
-#: ipalib/errors.py:1181
-msgid "limits exceeded for this query"
-msgstr "ಈ ಕ್ವೇರಿಗೆ ಮಿತಿಗಳು ಮೀರಿವೆ"
-
-#: ipalib/errors.py:1196
-#, python-format
-msgid "%(info)s"
-msgstr "%(info)s"
-
-#: ipalib/errors.py:1221
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr "ಪ್ರಮಾಣಪತ್ರದ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಆಗುತ್ತಿಲ್ಲ: %(error)s"
-
-#: ipalib/errors.py:1237
-#, fuzzy, python-format
-msgid "Certificate format error: %(error)s"
-msgstr "ಪ್ರಮಾಣಪತ್ರದ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಆಗುತ್ತಿಲ್ಲ: %(error)s"
-
-#: ipalib/frontend.py:380
-msgid "Results are truncated, try a more specific search"
-msgstr "ಫಲಿತಾಂಶಗಳು ಕತ್ತರಿಸಲ್ಪಟ್ಟಿವೆ, ಹೆಚ್ಚ್ಹು ನಿರ್ದಿಷ್ಟವಾದ ಶೋಧನೆ ಪ್ರಯತ್ನಿಸಿ"
-
-#: ipalib/frontend.py:797 ipalib/plugins/misc.py:47
-msgid "retrieve all attributes"
+"\n"
+"Directory Server Access Control Instructions (ACIs)\n"
+"\n"
+"ACIs are used to allow or deny access to information. This module is\n"
+"currently designed to allow, not deny, access.\n"
+"\n"
+"The aci commands are designed to grant permissions that allow updating\n"
+"existing entries or adding or deleting new ones. The goal of the ACIs\n"
+"that ship with IPA is to provide a set of low-level permissions that\n"
+"grant access to special groups called taskgroups. These low-level\n"
+"permissions can be combined into roles that grant broader access. These\n"
+"roles are another type of group, roles.\n"
+"\n"
+"For example, if you have taskgroups that allow adding and modifying users "
+"you\n"
+"could create a role, useradmin. You would assign users to the useradmin\n"
+"role to allow them to do the operations defined by the taskgroups.\n"
+"\n"
+"You can create ACIs that delegate permission so users in group A can write\n"
+"attributes on group B.\n"
+"\n"
+"The type option is a map that applies to all entries in the users, groups "
+"or\n"
+"host location. It is primarily designed to be used when granting add\n"
+"permissions (to write new entries).\n"
+"\n"
+"An ACI consists of three parts:\n"
+"1. target\n"
+"2. permissions\n"
+"3. bind rules\n"
+"\n"
+"The target is a set of rules that define which LDAP objects are being\n"
+"targeted. This can include a list of attributes, an area of that LDAP\n"
+"tree or an LDAP filter.\n"
+"\n"
+"The targets include:\n"
+"- attrs: list of attributes affected\n"
+"- type: an object type (user, group, host, service, etc)\n"
+"- memberof: members of a group\n"
+"- targetgroup: grant access to modify a specific group. This is primarily\n"
+" designed to enable users to add or remove members of a specific group.\n"
+"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
+"- subtree: Used to apply a rule across an entire set of objects. For "
+"example,\n"
+" to allow adding users you need to grant \"add\" permission to the subtree\n"
+" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
+" is a fail-safe for objects that may not be covered by the type option.\n"
+"\n"
+"The permissions define what the the ACI is allowed to do, and are one or\n"
+"more of:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
+"allows this to be any valid LDAP entry but we encourage the use of\n"
+"taskgroups so that the rights can be easily shared through roles.\n"
+"\n"
+"For a more thorough description of access controls see\n"
+"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control."
+"html\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
+"demonstrate how the various options work but this is done via the "
+"permission\n"
+"command-line now (see last example).\n"
+"\n"
+" Add an ACI so that the group \"secretaries\" can update the address on any "
+"user:\n"
+" ipa group-add --desc=\"Office secretaries\" secretaries\n"
+" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries "
+"--permissions=write --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Show the new ACI:\n"
+" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Add an ACI that allows members of the \"addusers\" permission to add new "
+"users:\n"
+" ipa aci-add --type=user --permission=addusers --permissions=add --"
+"prefix=none \"Add new users\"\n"
+"\n"
+" Add an ACI that allows members of the editors manage members of the admins "
+"group:\n"
+" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --"
+"group=editors --prefix=none \"Editors manage admins\"\n"
+"\n"
+" Add an ACI that allows members of the admin group to manage the street and "
+"zip code of those in the editors group:\n"
+" ipa aci-add --permissions=write --memberof=editors --group=admins --"
+"attrs=street,postalcode --prefix=none \"admins edit the address of editors"
+"\"\n"
+"\n"
+" Add an ACI that allows the admins group manage the street and zipcode of "
+"those who work for the boss:\n"
+" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode "
+"--filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --"
+"prefix=none \"Edit the address of those who work for the boss\"\n"
+"\n"
+" Add an entirely new kind of record to IPA that isn't covered by any of the "
+"--type options, creating a permission:\n"
+" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,"
+"cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
+"\n"
+"\n"
+"The show command shows the raw 389-ds ACI.\n"
+"\n"
+"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
+"must include all existing attributes as well. When doing an aci-mod the\n"
+"targetattr REPLACES the current attributes, it does not add to them.\n"
+"\n"
msgstr ""
-#: ipalib/frontend.py:803
-msgid "print entries as stored on the server"
-msgstr ""
+#: ipalib/plugins/aci.py:153
+#, fuzzy
+msgid "A list of ACI values"
+msgstr "\"%(value)s\" ACIವನ್ನು ಅಳಿಸಲಾಗಿದೆ"
-#: ipalib/frontend.py:940
-msgid "Forward to server instead of running locally"
+#: ipalib/plugins/aci.py:172
+msgid ""
+"\n"
+" Given a name and a prefix construct an ACI name.\n"
+" "
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
+#: ipalib/plugins/aci.py:181
+msgid ""
+"\n"
+" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
+" and the actual ACI name.\n"
+" "
msgstr ""
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
+#: ipalib/plugins/aci.py:193
+msgid ""
+"\n"
+" Pull the group name out of a memberOf filter\n"
+" "
msgstr ""
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
+#: ipalib/plugins/aci.py:204
+msgid ""
+"\n"
+" Given a name and a set of keywords construct an ACI.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:295
-msgid "incorrect type"
-msgstr "ಸರಿಯಲ್ಲದ ಬಗೆ"
-
-#: ipalib/parameters.py:298
-msgid "Only one value is allowed"
-msgstr "ಕೇವಲ ಒಂದು ಬೆಲೆ ಮಾತ್ರ ಅನುಮೋದಿಸಲಾಗಿದೆ"
-
-#: ipalib/parameters.py:877
-msgid "must be True or False"
-msgstr "ನಿಜ (True) ಅಥವಾ ಸುಳ್ಳು (False) ಆಗಿರಲೇಬೇಕು"
-
-#: ipalib/parameters.py:978
-msgid "must be an integer"
-msgstr "ಇನ್ಟೀಜರ್ ಆಗಿರಲೇಬೇಕು"
-
-#: ipalib/parameters.py:1029
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr "ಕನಿಷ್ಠವಾಗಿ %(minvalue)d ಆಗಿರಲೇಬೇಕು"
-
-#: ipalib/parameters.py:1039
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxvalue)d ಆಗಿರಬಹುದು"
-
-#: ipalib/parameters.py:1049
-msgid "must be a decimal number"
-msgstr "ದಶಾಂಶ ಸಂಖ್ಯೆ ಆಗಿರಲೇಬೇಕು"
-
-#: ipalib/parameters.py:1071
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr "ಕನಿಷ್ಠವಾಗಿ %(minvalue)f ಆಗಿರಲೇಬೇಕು"
-
-#: ipalib/parameters.py:1081
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxvalue)f ಆಗಿರಬಹುದು"
-
-#: ipalib/parameters.py:1145
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr "ನಮೂನೆ \"%(pattern)s\" ಹೊಂದಾಣಿಕೆಯಾಗಲೇಬೇಕು"
-
-#: ipalib/parameters.py:1163
-msgid "must be binary data"
-msgstr "ಬೈನರಿ ಡಾಟಾ ಆಗಿರಲೇಬೇಕು"
-
-#: ipalib/parameters.py:1179
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr "ಕನಿಷ್ಠವಾಗಿ %(minlength)d ಬೈಟ್ಸ್ ಆಗಿರಲೇಬೇಕು"
-
-#: ipalib/parameters.py:1189
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxlength)d ಬೈಟ್ಸ್ ಆಗಿರಬಹುದು"
-
-#: ipalib/parameters.py:1199
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr "ನಿಖರವಾಗಿ %(length)d ಬೈಟ್ಸ್ ಆಗಿರಲೇಬೇಕು"
-
-#: ipalib/parameters.py:1217
-msgid "must be Unicode text"
-msgstr "ಯುನಿಕೋಡ್ ಪಠ್ಯ ಆಗಿರಲೇಬೇಕು"
-
-#: ipalib/parameters.py:1248
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr "ಕನಿಷ್ಠವಾಗಿ %(minlength)d ಅಕ್ಷರಗಳು ಇರಲೇಬೇಕು"
-
-#: ipalib/parameters.py:1258
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxlength)d ಅಕ್ಷರಗಳು ಇರಬಹುದು"
-
-#: ipalib/parameters.py:1268
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr "ನಿಖರವಾಗಿ %(length)d ಅಕ್ಷರಗಳು ಇರಲೇಬೇಕು"
-
-#: ipalib/parameters.py:1307
-#, python-format
-msgid "must be one of %(values)r"
-msgstr "%(values)r ನಲ್ಲಿ ಒಂದು ಆಗಿರಲೇಬೇಕು"
-
-#: ipalib/plugins/aci.py:111
-#, fuzzy
-msgid "A list of ACI values"
-msgstr "\"%(value)s\" ACIವನ್ನು ಅಳಿಸಲಾಗಿದೆ"
-
-#: ipalib/plugins/aci.py:142
+#: ipalib/plugins/aci.py:215
msgid "type, filter, subtree and targetgroup are mutually exclusive"
msgstr " ಬಗೆ, ಫಿಲ್ಟರ್, ಸಬ್‌ಟ್ರೀ ಮತ್ತು ಟಾರ್ಗೆಟ್‌ಗ್ರೂಪ್ ಗಳು ಪರಸ್ಪರ ಪ್ರತ್ಯೇಕ"
-#: ipalib/plugins/aci.py:145
+#: ipalib/plugins/aci.py:218
+#, fuzzy
+msgid "ACI prefix is required"
+msgstr "%(name)r ಅಗತ್ಯವಿದೆ"
+
+#: ipalib/plugins/aci.py:221
msgid ""
"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
"required"
msgstr ""
"ಕನಿಷ್ಟ ಒಂದು : ಬಗೆ, ಫಿಲ್ಟರ್, ಸಬ್‌ಟ್ರೀ, ಟಾರ್ಗೆಟ್‌ಗ್ರೂಪ್, attrs ಅಥವಾ memberof ಗಳ ಅಗತ್ಯವಿದೆ"
-#: ipalib/plugins/aci.py:151
+#: ipalib/plugins/aci.py:224
#, fuzzy
-msgid "group, taskgroup and self are mutually exclusive"
+msgid "filter and memberof are mutually exclusive"
+msgstr " ಬಗೆ, ಫಿಲ್ಟರ್, ಸಬ್‌ಟ್ರೀ ಮತ್ತು ಟಾರ್ಗೆಟ್‌ಗ್ರೂಪ್ ಗಳು ಪರಸ್ಪರ ಪ್ರತ್ಯೇಕ"
+
+#: ipalib/plugins/aci.py:230
+#, fuzzy
+msgid "group, permission and self are mutually exclusive"
msgstr "ಗುಂಪು ಮತ್ತು ಟಾಸ್ಕ್‌ಗ್ರೂಪ್ ಪರಸ್ಪರ ಪ್ರತ್ಯೇಕ"
-#: ipalib/plugins/aci.py:153
+#: ipalib/plugins/aci.py:232
#, fuzzy
-msgid "One of group, taskgroup or self is required"
+msgid "One of group, permission or self is required"
msgstr "ಒಂದು ಗುಂಪು ಅಥವಾ ಟಾಸ್ಕ್‌ಗ್ರೂಪ್ ಅಗತ್ಯವಿದೆ"
-#: ipalib/plugins/aci.py:172
-#, python-format
+#: ipalib/plugins/aci.py:251
msgid "Group '%s' does not exist"
msgstr " '%s' ಗುಂಪು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ"
-#: ipalib/plugins/aci.py:269
-#, python-format
+#: ipalib/plugins/aci.py:273
+msgid "empty filter"
+msgstr ""
+
+#: ipalib/plugins/aci.py:294
+#, fuzzy
+msgid "Syntax Error: %(error)s"
+msgstr "ಪ್ರಮಾಣಪತ್ರದ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಆಗುತ್ತಿಲ್ಲ: %(error)s"
+
+#: ipalib/plugins/aci.py:299
+msgid ""
+"Convert an ACI into its equivalent keywords.\n"
+"\n"
+" This is used for the modify operation so we can merge the\n"
+" incoming kw and existing ACI and pass the result to\n"
+" _make_aci().\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:379
msgid "ACI with name \"%s\" not found"
msgstr "\"%s\" ಹೆಸರು ಹೊಂದಿರುವ ACI ಪತ್ತೆಯಾಗಿಲ್ಲ"
-#: ipalib/plugins/aci.py:286
+#: ipalib/plugins/aci.py:400
+msgid "ACI prefix"
+msgstr ""
+
+#: ipalib/plugins/aci.py:401
+msgid ""
+"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
+"none)"
+msgstr ""
+
+#: ipalib/plugins/aci.py:407
+msgid ""
+"\n"
+" ACI object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr "ACIs"
-#: ipalib/plugins/aci.py:291
+#: ipalib/plugins/aci.py:417
msgid "ACI name"
msgstr "ACI ಹೆಸರು"
-#: ipalib/plugins/aci.py:296
-msgid "Taskgroup"
-msgstr "ಟಾಸ್ಕ್‌ಗ್ರೂಪ್"
+#: ipalib/plugins/aci.py:422
+#, fuzzy
+msgid "Permission"
+msgstr "ಅನುಮತಿಗಳು"
-#: ipalib/plugins/aci.py:297
-msgid "Taskgroup ACI grants access to"
-msgstr "Taskgroup ACI grants access to"
+#: ipalib/plugins/aci.py:423
+#, fuzzy
+msgid "Permission ACI grants access to"
+msgstr "User group ACI grants access to"
-#: ipalib/plugins/aci.py:301
+#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
msgid "User group"
msgstr "ಬಳಕೆದಾರ ಗುಂಪು"
-#: ipalib/plugins/aci.py:302
+#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
msgid "User group ACI grants access to"
msgstr "User group ACI grants access to"
-#: ipalib/plugins/aci.py:306
+#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
+#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
+#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
msgid "Permissions"
msgstr "ಅನುಮತಿಗಳು"
-#: ipalib/plugins/aci.py:307
+#: ipalib/plugins/aci.py:433
#, fuzzy
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
@@ -462,1104 +295,4692 @@ msgstr ""
"comma-separated list of permissions to grant(read, write, add, delete, "
"selfwrite, all)"
-#: ipalib/plugins/aci.py:313
+#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
+#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
msgid "Attributes"
msgstr "ವೈಶಿಷ್ಟ್ಯಗಳು"
-#: ipalib/plugins/aci.py:314
+#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
+#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
msgid "Comma-separated list of attributes"
msgstr "Comma-separated ವೈಶಿಷ್ಟ್ಯಗಳ ಪಟ್ಟಿ"
-#: ipalib/plugins/aci.py:318
+#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
+#: ipalib/plugins/permission.py:131
msgid "Type"
msgstr "ಬಗೆ"
-#: ipalib/plugins/aci.py:319
-msgid "type of IPA object (user, group, host)"
+#: ipalib/plugins/aci.py:445
+#, fuzzy
+msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr "IPA ಆಬ್ಜೆಕ್ಟ್ ಬಗೆ (ಬಳಕೆದಾರ, ಗುಂಪು, ಹೋಸ್ಟ್)"
-#: ipalib/plugins/aci.py:324
+#: ipalib/plugins/aci.py:450
msgid "Member of"
msgstr "ಸದಸ್ಯ"
-#: ipalib/plugins/aci.py:325
+#: ipalib/plugins/aci.py:451
msgid "Member of a group"
msgstr "ಒಂದು ಗುಂಪಿನ ಸದಸ್ಯ"
-#: ipalib/plugins/aci.py:329
+#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
+#: ipalib/plugins/permission.py:144
msgid "Filter"
msgstr "ಶೋಧಕ (ಫಿಲ್ಟರ್)"
-#: ipalib/plugins/aci.py:330
+#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr "Legal LDAP filter (e.g. ou=Engineering)"
-#: ipalib/plugins/aci.py:334
+#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
msgid "Subtree"
msgstr "ಉಪವೃಕ್ಷ"
-#: ipalib/plugins/aci.py:335
+#: ipalib/plugins/aci.py:461
msgid "Subtree to apply ACI to"
msgstr "Subtree to apply ACI to"
-#: ipalib/plugins/aci.py:339
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
msgid "Target group"
msgstr "Target ಗುಂಪು"
-#: ipalib/plugins/aci.py:340
+#: ipalib/plugins/aci.py:466
msgid "Group to apply ACI to"
msgstr "Group to apply ACI to"
-#: ipalib/plugins/aci.py:344
+#: ipalib/plugins/aci.py:470
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:345
+#: ipalib/plugins/aci.py:471
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:357
-#, python-format
+#: ipalib/plugins/aci.py:478
+msgid ""
+"\n"
+" Create new ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:482
msgid "Created ACI \"%(value)s\""
msgstr "\"%(value)s\" ACIವನ್ನು ರಚಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/aci.py:407
-#, python-format
+#: ipalib/plugins/aci.py:487
+msgid "Test the ACI syntax but don't write anything"
+msgstr ""
+
+#: ipalib/plugins/aci.py:493
+msgid ""
+"\n"
+" Execute the aci-create operation.\n"
+"\n"
+" Returns the entry as it will be created in LDAP.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: Keyword arguments for the other LDAP attributes.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:533
+msgid ""
+"\n"
+" Delete ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:538
msgid "Deleted ACI \"%(value)s\""
msgstr "\"%(value)s\" ACIವನ್ನು ಅಳಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/aci.py:447
-#, python-format
+#: ipalib/plugins/aci.py:543
+msgid ""
+"\n"
+" Execute the aci-delete operation.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: unused\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:576
+msgid ""
+"\n"
+" Modify ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
+#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
+#: ipalib/plugins/selfservice.py:212
+#, fuzzy
+msgid "ACI"
+msgstr "ACIs"
+
+#: ipalib/plugins/aci.py:588
msgid "Modified ACI \"%(value)s\""
msgstr "\"%(value)s\" ACIವನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/aci.py:519
-#, python-format
+#: ipalib/plugins/aci.py:633
+msgid ""
+"\n"
+" Search for ACIs.\n"
+"\n"
+" Returns a list of ACIs\n"
+"\n"
+" EXAMPLES:\n"
+"\n"
+" To find all ACIs that apply directly to members of the group ipausers:\n"
+" ipa aci-find --memberof=ipausers\n"
+"\n"
+" To find all ACIs that grant add access:\n"
+" ipa aci-find --permissions=add\n"
+"\n"
+" Note that the find command only looks for the given text in the set of\n"
+" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
+" For example, searching on memberof=ipausers will find all ACIs that\n"
+" have ipausers as a memberof. There may be other ACIs that apply to\n"
+" members of that group indirectly.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:653
msgid "%(count)d ACI matched"
msgid_plural "%(count)d ACIs matched"
msgstr[0] "%(count)d ACI ತಾಳೆಯಾಗುತ್ತಿದೆ"
msgstr[1] "%(count)d ACIಗಳು ತಾಳೆಯಾಗುತ್ತಿವೆ"
-#: ipalib/plugins/automount.py:103
+#: ipalib/plugins/aci.py:823
+msgid ""
+"\n"
+" Display a single ACI given an ACI name.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:837
+msgid ""
+"\n"
+" Execute the aci-show operation.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param uid: The login name of the user to retrieve.\n"
+" :param kw: unused\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:865
+msgid ""
+"\n"
+" Rename an ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:878
#, fuzzy
-msgid "Automount"
-msgstr "ಮ್ಯಾಪ್‌ಗಳ ಆಟೋಮೌಂಟ್"
+msgid "New ACI name"
+msgstr "ACI ಹೆಸರು"
+
+#: ipalib/plugins/aci.py:882
+#, fuzzy
+msgid "Renamed ACI to \"%(value)s\""
+msgstr "\"%(value)s\" ACIವನ್ನು ರಚಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/automount.py:109 ipalib/plugins/host.py:134
+#: ipalib/plugins/automount.py:20
+msgid ""
+"\n"
+"Automount\n"
+"\n"
+"Stores automount(8) configuration for autofs(8) in IPA.\n"
+"\n"
+"The base of an automount configuration is the configuration file auto."
+"master.\n"
+"This is also the base location in IPA. Multiple auto.master configurations\n"
+"can be stored in separate locations. A location is implementation-specific\n"
+"with the default being a location named 'default'. For example, you can "
+"have\n"
+"locations by geographic region, by floor, by type, etc.\n"
+"\n"
+"Automount has three basic object types: locations, maps and keys.\n"
+"\n"
+"A location defines a set of maps anchored in auto.master. This allows you\n"
+"to store multiple automount configurations. A location in itself isn't\n"
+"very interesting, it is just a point to start a new automount map.\n"
+"\n"
+"A map is roughly equivalent to a discrete automount file and provides\n"
+"storage for keys.\n"
+"\n"
+"A key is a mount point associated with a map.\n"
+"\n"
+"When a new location is created, two maps are automatically created for\n"
+"it: auto.master and auto.direct. auto.master is the root map for all\n"
+"automount maps for the location. auto.direct is the default map for\n"
+"direct mounts and is mounted on /-.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"Locations:\n"
+"\n"
+" Create a named location, \"Baltimore\":\n"
+" ipa automountlocation-add baltimore\n"
+"\n"
+" Display the new location:\n"
+" ipa automountlocation-show baltimore\n"
+"\n"
+" Find available locations:\n"
+" ipa automountlocation-find\n"
+"\n"
+" Remove a named automount location:\n"
+" ipa automountlocation-del baltimore\n"
+"\n"
+" Show what the automount maps would look like if they were in the "
+"filesystem:\n"
+" ipa automountlocation-tofiles baltimore\n"
+"\n"
+" Import an existing configuration into a location:\n"
+" ipa automountlocation-import baltimore /etc/auto.master\n"
+"\n"
+" The import will fail if any duplicate entries are found. For\n"
+" continuous operation where errors are ignored, use the --continue\n"
+" option.\n"
+"\n"
+"Maps:\n"
+"\n"
+" Create a new map, \"auto.share\":\n"
+" ipa automountmap-add baltimore auto.share\n"
+"\n"
+" Display the new map:\n"
+" ipa automountmap-show baltimore auto.share\n"
+"\n"
+" Find maps in the location baltimore:\n"
+" ipa automountmap-find baltimore\n"
+"\n"
+" Remove the auto.share map:\n"
+" ipa automountmap-del baltimore auto.share\n"
+"\n"
+"Keys:\n"
+"\n"
+" Create a new key for the auto.share map in location baltimore. This ties\n"
+" the map we previously created to auto.master:\n"
+" ipa automountkey-add baltimore auto.master --key=/share --info=auto."
+"share\n"
+"\n"
+" Create a new key for our auto.share map, an NFS mount for man pages:\n"
+" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,"
+"rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n"
+"\n"
+" Find all keys for the auto.share map:\n"
+" ipa automountkey-find baltimore auto.share\n"
+"\n"
+" Find all direct automount keys:\n"
+" ipa automountkey-find baltimore --key=/-\n"
+"\n"
+" Remove the man key from the auto.share map:\n"
+" ipa automountkey-del baltimore auto.share --key=man\n"
+msgstr ""
+
+#: ipalib/plugins/automount.py:182
+msgid ""
+"\n"
+" Location container for automount maps.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:190
+#, fuzzy
+msgid "Automount Locations"
+msgstr "ಆಟೊಮೌಂಟ್ ತಾಣದ ಹೆಸರು"
+
+#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
msgid "Location"
msgstr "ಸ್ಥಳ"
-#: ipalib/plugins/automount.py:110
-msgid "Automount location name"
+#: ipalib/plugins/automount.py:197
+#, fuzzy
+msgid "Automount location name."
msgstr "ಆಟೊಮೌಂಟ್ ತಾಣದ ಹೆಸರು"
-#: ipalib/plugins/automount.py:226
+#: ipalib/plugins/automount.py:206
+msgid ""
+"\n"
+" Create a new automount location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:221
+msgid ""
+"\n"
+" Delete an automount location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:229
+msgid ""
+"\n"
+" Display an automount location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:237
+msgid ""
+"\n"
+" Search for an automount location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:245
+msgid ""
+"\n"
+" Generate automount files for a specific location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:308
+msgid ""
+"\n"
+" Import automount files for a specific location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:314
+msgid "Master file"
+msgstr ""
+
+#: ipalib/plugins/automount.py:315
+#, fuzzy
+msgid "Automount master file."
+msgstr "ಆಟೊಮೌಂಟ್ ಮ್ಯಾಪ್‌ನ ಹೆಸರು"
+
+#: ipalib/plugins/automount.py:322
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues."
+msgstr ""
+
+#: ipalib/plugins/automount.py:334
+msgid "File %(file)s not found"
+msgstr ""
+
+#: ipalib/plugins/automount.py:341
+msgid ""
+"\n"
+" The basic idea is to read the master file and create all the maps\n"
+" we need, then read each map file and add all the keys for the map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:492
+#, fuzzy
+msgid ""
+"\n"
+" Automount map object.\n"
+" "
+msgstr "ಆಟೊಮೌಂಟ್ ಮ್ಯಾಪ್‌ನ ಹೆಸರು"
+
+#: ipalib/plugins/automount.py:505
msgid "Map"
msgstr "ನಕ್ಷೆ"
-#: ipalib/plugins/automount.py:227
-msgid "Automount map name"
+#: ipalib/plugins/automount.py:506
+#, fuzzy
+msgid "Automount map name."
msgstr "ಆಟೊಮೌಂಟ್ ಮ್ಯಾಪ್‌ನ ಹೆಸರು"
-#: ipalib/plugins/automount.py:232 ipalib/plugins/group.py:108
-#: ipalib/plugins/hbac.py:151 ipalib/plugins/hbacsvc.py:72
-#: ipalib/plugins/hbacsvcgroup.py:77 ipalib/plugins/host.py:124
-#: ipalib/plugins/hostgroup.py:81 ipalib/plugins/netgroup.py:96
-#: ipalib/plugins/rolegroup.py:90 ipalib/plugins/sudocmd.py:71
-#: ipalib/plugins/sudocmdgroup.py:77 ipalib/plugins/sudorule.py:58
-#: ipalib/plugins/taskgroup.py:62
+#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
+#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
+#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
+#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
+#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
+#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
+#: ipalib/plugins/sudorule.py:78
msgid "Description"
msgstr "ವಿವರಣೆ"
-#: ipalib/plugins/automount.py:236
+#: ipalib/plugins/automount.py:515
msgid "Automount Maps"
msgstr "ಮ್ಯಾಪ್‌ಗಳ ಆಟೋಮೌಂಟ್"
-#: ipalib/plugins/automount.py:308
+#: ipalib/plugins/automount.py:521
+msgid ""
+"\n"
+" Create a new automount map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:529
+msgid ""
+"\n"
+" Delete an automount map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:548
+msgid ""
+"\n"
+" Modify an automount map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:556
+msgid ""
+"\n"
+" Search for an automount map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:564
+msgid ""
+"\n"
+" Display an automount map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:572
+#, fuzzy
+msgid ""
+"\n"
+" Automount key object.\n"
+" "
+msgstr "ಆಟೊಮೌಂಟ್ ಕೀ ಹೆಸರು"
+
+#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
+#: ipalib/plugins/automount.py:850
msgid "Key"
msgstr "ಕೀ"
-#: ipalib/plugins/automount.py:309
-msgid "Automount key name"
+#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
+#: ipalib/plugins/automount.py:851
+#, fuzzy
+msgid "Automount key name."
msgstr "ಆಟೊಮೌಂಟ್ ಕೀ ಹೆಸರು"
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
+#: ipalib/plugins/automount.py:855
msgid "Mount information"
msgstr "ಮೌಂಟ್ ಮಾಹಿತಿ"
-#: ipalib/plugins/automount.py:318
+#: ipalib/plugins/automount.py:597
msgid "description"
msgstr "ವಿವರಣೆ"
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:606
msgid "Automount Keys"
msgstr "ಕೀಗಳ ಆಟೋಮೌಂಟ್"
-#: ipalib/plugins/automount.py:342
+#: ipalib/plugins/automount.py:607
+msgid ""
+"The key,info pair must be unique. A key named %(key)s with info %(info)s "
+"already exists"
+msgstr ""
+
+#: ipalib/plugins/automount.py:608
+#, fuzzy
+msgid "key named %(key)s already exists"
+msgstr "ಈ ನಮೂದು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ"
+
+#: ipalib/plugins/automount.py:609
+msgid "The automount key %(key)s with info %(info)s does not exist"
+msgstr ""
+
+#: ipalib/plugins/automount.py:659
+msgid ""
+"More than one entry with key %(key)s found, use --info to select specific "
+"entry."
+msgstr ""
+
+#: ipalib/plugins/automount.py:717
+msgid ""
+"\n"
+" Create a new automount key.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:742
+msgid ""
+"\n"
+" Create a new indirect mount point.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:748
msgid "Mount point"
msgstr "ಮೌಂಟ್ ಪಾಯಂಟ್"
-#: ipalib/plugins/automount.py:346
+#: ipalib/plugins/automount.py:752
msgid "Parent map"
msgstr "Parent map"
-#: ipalib/plugins/automount.py:347
-msgid "Name of parent automount map (default: auto.master)"
+#: ipalib/plugins/automount.py:753
+#, fuzzy
+msgid "Name of parent automount map (default: auto.master)."
msgstr "Name of parent automount map (default: auto.master)"
-#: ipalib/plugins/baseldap.py:79
-#, python-format
+#: ipalib/plugins/automount.py:772
+msgid ""
+"\n"
+" Delete an automount key.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:803
+msgid ""
+"\n"
+" Modify an automount key.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:809
+#, fuzzy
+msgid "New mount information"
+msgstr "ಮೌಂಟ್ ಮಾಹಿತಿ"
+
+#: ipalib/plugins/automount.py:836
+msgid ""
+"\n"
+" Search for an automount key.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:844
+msgid ""
+"\n"
+" Display an automount key.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:19
+msgid ""
+"\n"
+"Base classes for LDAP plugins.\n"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:39
+msgid "Failed members"
+msgstr "ವಿಫಲಗೊಂಡ ಸದಸ್ಯರು"
+
+#: ipalib/plugins/baseldap.py:42
+msgid "Member users"
+msgstr "ಸದಸ್ಯ ಬಳಕೆದಾರರು"
+
+#: ipalib/plugins/baseldap.py:45
+msgid "Member groups"
+msgstr "ಸದಸ್ಯ ಗುಂಪುಗಳು"
+
+#: ipalib/plugins/baseldap.py:48
+#, fuzzy
+msgid "Member of groups"
+msgstr "ಒಂದು ಗುಂಪಿನ ಸದಸ್ಯ"
+
+#: ipalib/plugins/baseldap.py:51
+msgid "Member hosts"
+msgstr "ಸದಸ್ಯ ಹೋಸ್ಟ್‌ಗಳು"
+
+#: ipalib/plugins/baseldap.py:54
+msgid "Member host-groups"
+msgstr "ಸದಸ್ಯ ಹೋಸ್ಟ್-ಗ್ರೂಪ್‌ಗಳು"
+
+#: ipalib/plugins/baseldap.py:57
+msgid "Member of host-groups"
+msgstr "ಹೋಸ್ಟ್-ಗುಂಪಿನ ಸದಸ್ಯ"
+
+#: ipalib/plugins/baseldap.py:66
+#, fuzzy
+msgid "Roles"
+msgstr "ರೋಲ್‌ಗ್ರೂಪ್‌ಗಳು"
+
+#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
+#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
+#: ipalib/plugins/sudorule.py:143
+msgid "Sudo Command Groups"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:75
+msgid "Granting privilege to roles"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:78
+#, fuzzy
+msgid "Member netgroups"
+msgstr "ಸದಸ್ಯ ಗುಂಪುಗಳು"
+
+#: ipalib/plugins/baseldap.py:81
+#, fuzzy
+msgid "Member of netgroups"
+msgstr "ನೆಟ್-ಗುಂಪುಗಳ ಸದಸ್ಯ"
+
+#: ipalib/plugins/baseldap.py:84
+#, fuzzy
+msgid "Member services"
+msgstr "ಸದಸ್ಯ ಬಳಕೆದಾರರು"
+
+#: ipalib/plugins/baseldap.py:87
+#, fuzzy
+msgid "Member service groups"
+msgstr "ಸದಸ್ಯ ರೋಲ್-ಗ್ರೂಪ್‌ಗಳು"
+
+#: ipalib/plugins/baseldap.py:93
+#, fuzzy
+msgid "Member HBAC service groups"
+msgstr "ಸದಸ್ಯ ರೋಲ್-ಗ್ರೂಪ್‌ಗಳು"
+
+#: ipalib/plugins/baseldap.py:102
+#, fuzzy
+msgid "Indirect Member users"
+msgstr "ಸದಸ್ಯ ಬಳಕೆದಾರರು"
+
+#: ipalib/plugins/baseldap.py:105
+#, fuzzy
+msgid "Indirect Member groups"
+msgstr "ಸದಸ್ಯ ಗುಂಪುಗಳು"
+
+#: ipalib/plugins/baseldap.py:108
+#, fuzzy
+msgid "Indirect Member hosts"
+msgstr "ಸದಸ್ಯ ಹೋಸ್ಟ್‌ಗಳು"
+
+#: ipalib/plugins/baseldap.py:111
+#, fuzzy
+msgid "Indirect Member host-groups"
+msgstr "ಸದಸ್ಯ ಹೋಸ್ಟ್-ಗ್ರೂಪ್‌ಗಳು"
+
+#: ipalib/plugins/baseldap.py:114
+#, fuzzy
+msgid "Indirect Member of roles"
+msgstr "ರೋಲ್-ಗುಂಪುಗಳ ಸದಸ್ಯ"
+
+#: ipalib/plugins/baseldap.py:117
+msgid "Indirect Member permissions"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:120
+#, fuzzy
+msgid "Indirect Member HBAC service"
+msgstr "ಸದಸ್ಯ ಬಳಕೆದಾರರು"
+
+#: ipalib/plugins/baseldap.py:123
+#, fuzzy
+msgid "Indirect Member HBAC service group"
+msgstr "ಸದಸ್ಯ ರೋಲ್-ಗ್ರೂಪ್‌ಗಳು"
+
+#: ipalib/plugins/baseldap.py:126
+#, fuzzy
+msgid "Indirect Member netgroups"
+msgstr "ನೆಟ್-ಗುಂಪುಗಳ ಸದಸ್ಯ"
+
+#: ipalib/plugins/baseldap.py:141
+msgid "External host"
+msgstr "ಹೊರಗಿನ ಹೋಸ್ಟ್"
+
+#: ipalib/plugins/baseldap.py:144
+#, fuzzy
+msgid "Failed hosts/hostgroups"
+msgstr "ಹೋಸ್ಟ್-ಗುಂಪಿನ ಹೆಸರು"
+
+#: ipalib/plugins/baseldap.py:147
+#, fuzzy
+msgid "Failed users/groups"
+msgstr "ಡಿಫಾಲ್ಟ್ ಬಳಕೆದಾರರ ಗುಂಪು"
+
+#: ipalib/plugins/baseldap.py:150
+#, fuzzy
+msgid "Failed managedby"
+msgstr "ವಿಫಲಗೊಂಡ ಸದಸ್ಯರು"
+
+#: ipalib/plugins/baseldap.py:153
+#, fuzzy
+msgid "Failed to remove"
+msgstr "ನಮೂದಿನಲ್ಲಿರುವ ಪ್ರಮಾಣಪತ್ರದ ಡಿಕೋಡಿಂಗ್ ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ"
+
+#: ipalib/plugins/baseldap.py:171
+msgid ""
+"\n"
+" Given a list of values in the form name=value, return a list of name.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:197
+msgid ""
+"\n"
+" When adding or removing reverse members we are faking an update to\n"
+" object A by updating the member attribute in object B. The memberof\n"
+" plugin makes this work by adding or removing the memberof attribute\n"
+" to/from object A, it just takes a little bit of time.\n"
+"\n"
+" This will loop for 6+ seconds, retrieving object A so we can see\n"
+" if all the memberof attributes have been updated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:241
+msgid ""
+"\n"
+" Object representing a LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:281
+msgid "Entry"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:283
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:80
-#, python-format
+#: ipalib/plugins/baseldap.py:284
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
-#, python-format
+#: ipalib/plugins/baseldap.py:285
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
-msgid "Add an attribute/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:286
+msgid "%(oname)s with name \"%(pkey)s\" already exists"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:415
+#, fuzzy
+msgid ""
+"Add an attribute/value pair. Format is attr=value. The attribute must be "
+"part of the schema."
msgstr "Add an attribute/value pair. Format is attr=value"
-#: ipalib/plugins/baseldap.py:155
-msgid "Set an attribute to an name/value pair. Format is attr=value"
-msgstr "Set an attribute to an name/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:420
+msgid ""
+"Set an attribute to a name/value pair. Format is attr=value.\n"
+"For multi-valued attributes, the command replaces the values already present."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:444
+msgid ""
+"\n"
+" If the set of objectclasses is limited enforce that only those\n"
+" are updated in entry_attrs (plus dn)\n"
+"\n"
+" allow_only tells us what mode to check in:\n"
+"\n"
+" If True then we enforce that the attributes must be in the list of\n"
+" allowed.\n"
+"\n"
+" If False then those attributes are not allowed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:474
+msgid ""
+"\n"
+" Callback registration interface\n"
+" "
+msgstr ""
-#: ipalib/plugins/baseldap.py:359
+#: ipalib/plugins/baseldap.py:561
+msgid ""
+"\n"
+" Create a new entry in LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:703
+msgid ""
+"\n"
+" Base class for commands that need to retrieve an existing entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:727
+msgid ""
+"\n"
+" Base class for commands that need to retrieve one or more existing "
+"entries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:733
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:517
+#: ipalib/plugins/baseldap.py:750
+msgid ""
+"\n"
+" Retrieve an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
+#: ipalib/plugins/internal.py:232
+msgid "Rights"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+msgid ""
+"Display the access rights of this entry (requires --all). See ipa man page "
+"for details."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:821
+msgid ""
+"\n"
+" Update an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:837
+#, fuzzy
+msgid "Rename"
+msgstr "ನಿಯಮದ ಹೆಸರು"
+
+#: ipalib/plugins/baseldap.py:838
+msgid "Rename the %(ldap_obj_name)s object"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:957
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:674
+#: ipalib/plugins/baseldap.py:988
+msgid ""
+"\n"
+" Delete an LDAP entry and all of its direct subentries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1078
+msgid ""
+"\n"
+" Base class for member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1120
+msgid ""
+"\n"
+" Add other LDAP entries to members.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
+#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
+#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
msgid "Members that could not be added"
msgstr ""
-#: ipalib/plugins/baseldap.py:678
+#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:684 ipalib/plugins/baseldap.py:789
-msgid "Failed members"
-msgstr "ವಿಫಲಗೊಂಡ ಸದಸ್ಯರು"
+#: ipalib/plugins/baseldap.py:1226
+msgid ""
+"\n"
+" Remove LDAP entries from members.\n"
+" "
+msgstr ""
-#: ipalib/plugins/baseldap.py:779
+#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:783
+#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:880
+#: ipalib/plugins/baseldap.py:1335
+msgid ""
+"\n"
+" Retrieve all LDAP entries matching the given criteria.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1344
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:881
+#: ipalib/plugins/baseldap.py:1345
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:887
+#: ipalib/plugins/baseldap.py:1351
#, fuzzy
msgid "Size Limit"
msgstr "ಹುಡುಕು ಗಾತ್ರ ಮಿತಿ"
-#: ipalib/plugins/baseldap.py:888
+#: ipalib/plugins/baseldap.py:1352
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/cert.py:93
+#: ipalib/plugins/baseldap.py:1552
+msgid ""
+"\n"
+" Base class for reverse member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1574
+msgid ""
+"\n"
+" Add other LDAP entries to members in reverse.\n"
+"\n"
+" The call looks like \"add A to B\" but in fact executes\n"
+" add B to A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1654
+msgid "added"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1687
+msgid ""
+"\n"
+" Remove other LDAP entries from members in reverse.\n"
+"\n"
+" The call looks like \"remove A from B\" but in fact executes\n"
+" remove B from A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1767
+msgid "removed"
+msgstr ""
+
+#: ipalib/plugins/batch.py:21
+msgid ""
+"\n"
+"Plugin to make multiple ipa calls via one remote procedure call\n"
+"\n"
+"To run this code in the lite-server\n"
+"\n"
+"curl -H \"Content-Type:application/json\" -H \"Accept:application/"
+"json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /"
+"etc/ipa/ca.crt -d @batch_request.json -X POST http://"
+"localhost:8888/ipa/json\n"
+"\n"
+"where the contents of the file batch_request.json follow the below example\n"
+"\n"
+"{\"method\":\"batch\",\"params\":[[\n"
+" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
+" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all"
+"\":\"true\"}]},\n"
+" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
+" ],{}],\"id\":1}\n"
+"\n"
+"The format of the response is nested the same way. At the top you will see\n"
+" \"error\": null,\n"
+" \"id\": 1,\n"
+" \"result\": {\n"
+" \"count\": 3,\n"
+" \"results\": [\n"
+"\n"
+"\n"
+"And then a nested response for each IPA command method sent in the request\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/batch.py:61
+msgid "Nested Methods to execute"
+msgstr ""
+
+#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/plugins/cert.py:22
+msgid ""
+"\n"
+"IPA certificate operations\n"
+"\n"
+"Implements a set of commands for managing server SSL certificates.\n"
+"\n"
+"Certificate requests exist in the form of a Certificate Signing Request "
+"(CSR)\n"
+"in PEM format.\n"
+"\n"
+"If using the selfsign back end then the subject in the CSR needs to match\n"
+"the subject configured in the server. The dogtag CA uses just the CN\n"
+"value of the CSR and forces the rest of the subject.\n"
+"\n"
+"A certificate is stored with a service principal and a service principal\n"
+"needs a host.\n"
+"\n"
+"In order to request a certificate:\n"
+"\n"
+"* The host must exist\n"
+"* The service must exist (or you use the --add option to automatically add "
+"it)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Request a new certificate and add the principal:\n"
+" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n"
+"\n"
+" Retrieve an existing certificate:\n"
+" ipa cert-show 1032\n"
+"\n"
+" Revoke a certificate (see RFC 5280 for reason details):\n"
+" ipa cert-revoke --revocation-reason=6 1032\n"
+"\n"
+" Remove a certificate from revocation hold status:\n"
+" ipa cert-remove-hold 1032\n"
+"\n"
+" Check the status of a signing request:\n"
+" ipa cert-status 10\n"
+"\n"
+"IPA currently immediately issues (or declines) all certificate requests so\n"
+"the status of a request is not normally useful. This is for future use\n"
+"or the case where a CA does not immediately issue a certificate.\n"
+"\n"
+"The following revocation reasons are supported:\n"
+"\n"
+" * 0 - unspecified\n"
+" * 1 - keyCompromise\n"
+" * 2 - cACompromise\n"
+" * 3 - affiliationChanged\n"
+" * 4 - superseded\n"
+" * 5 - cessationOfOperation\n"
+" * 6 - certificateHold\n"
+" * 8 - removeFromCRL\n"
+" * 9 - privilegeWithdrawn\n"
+" * 10 - aACompromise\n"
+"\n"
+"Note that reason code 7 is not used. See RFC 5280 for more details:\n"
+"\n"
+"http://www.ietf.org/rfc/rfc5280.txt\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/cert.py:104
+msgid ""
+"\n"
+" Return the value of CN in the subject of the request or None\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:112
#, fuzzy
msgid "Failure decoding Certificate Signing Request:"
msgstr "ಪ್ರಮಾಣಪತ್ರದ ಸಹಿಯ ಕೋರಿಕೆಯ ಡಿಕೋಡಿಂಗ್‌ನ ವಿಫಲತೆ"
-#: ipalib/plugins/cert.py:106 ipalib/plugins/cert.py:118
+#: ipalib/plugins/cert.py:115
+msgid ""
+"\n"
+" Return the first value of the subject alt name, if any\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
msgid "Failure decoding Certificate Signing Request"
msgstr "ಪ್ರಮಾಣಪತ್ರದ ಸಹಿಯ ಕೋರಿಕೆಯ ಡಿಕೋಡಿಂಗ್‌ನ ವಿಫಲತೆ"
-#: ipalib/plugins/cert.py:120
-#, python-format
+#: ipalib/plugins/cert.py:128
+msgid ""
+"\n"
+" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
+" parser.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:139
msgid "Failure decoding Certificate Signing Request: %s"
msgstr "ಪ್ರಮಾಣಪತ್ರದ ಸಹಿಯ ಕೋರಿಕೆಯ ಡಿಕೋಡಿಂಗ್‌ನ ವಿಫಲತೆ: %s"
-#: ipalib/plugins/cert.py:171 ipalib/plugins/service.py:197
+#: ipalib/plugins/cert.py:142
+msgid ""
+"\n"
+" Strip any leading and trailing cruft around the BEGIN/END block\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:162
+msgid ""
+"\n"
+" Convert a SN given in decimal or hexadecimal.\n"
+" Returns the number or None if conversion fails.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:188
+msgid ""
+"\n"
+" Given a principal with or without a realm return the\n"
+" host portion.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:202
+msgid ""
+"\n"
+" Submit a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
msgid "Principal"
msgstr "Principal"
-#: ipalib/plugins/cert.py:172
+#: ipalib/plugins/cert.py:217
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr "ಈ ಪ್ರಮಾಣಪತ್ರಕ್ಕಾಗಿ Service principal (e.g. HTTP/test.example.com)"
-#: ipalib/plugins/cert.py:179
+#: ipalib/plugins/cert.py:224
msgid "automatically add the principal if it doesn't exist"
msgstr "ಸ್ವಯಂಚಾಲಿತವಾಗಿ principal ಸೇರಿಸಿ ಅದು ಅಸ್ತಿತ್ವದಲ್ಲಿ ಇಲ್ಲದಿದ್ದಲ್ಲಿ"
-#: ipalib/plugins/cert.py:187 ipalib/plugins/cert.py:392
-#: ipalib/plugins/host.py:154 ipalib/plugins/service.py:204
+#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
+#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
+#: ipalib/plugins/service.py:232
msgid "Certificate"
msgstr "ಪ್ರಮಾಣಪತ್ರ"
-#: ipalib/plugins/cert.py:191 ipalib/plugins/cert.py:395
+#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
msgid "Subject"
msgstr "ವಿಷಯ"
-#: ipalib/plugins/cert.py:195 ipalib/plugins/cert.py:398
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:199 ipalib/plugins/cert.py:401
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:203 ipalib/plugins/cert.py:404
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:207 ipalib/plugins/cert.py:407
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:211 ipalib/plugins/cert.py:410
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:215 ipalib/plugins/cert.py:379
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
msgid "Serial number"
msgstr "ಅನುಕ್ರಮ ಸಂಖ್ಯೆ"
-#: ipalib/plugins/cert.py:223 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:357
+#: ipalib/plugins/cert.py:396
+msgid ""
+"\n"
+" Check the status of a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:402
msgid "Request id"
msgstr "ಬೇಡಿಕೆ ID"
-#: ipalib/plugins/cert.py:363
+#: ipalib/plugins/cert.py:408
msgid "Request status"
msgstr "ಬೇಡಿಕೆ ಸ್ಥಿತಿ"
-#: ipalib/plugins/cert.py:380
+#: ipalib/plugins/cert.py:426
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr "ಕ್ರಮ ಸಂಖ್ಯೆ ಡೆಸಿಮಲ್‌ನಲ್ಲಿ ಅಥವಾ 0x ಮೊದಲು ಸೇರಿಸಿದ್ದಲ್ಲಿ ಹೆಕ್ಸಾಡೆಸಿಮಲ್‌ನಲ್ಲಿ"
-#: ipalib/plugins/cert.py:413
+#: ipalib/plugins/cert.py:431
+msgid ""
+"\n"
+" Retrieve an existing certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
+#: ipalib/plugins/service.py:114
msgid "Revocation reason"
msgstr "ರದ್ದು ಮಾಡುವುದಕ್ಕೆ ಕಾರಣ"
-#: ipalib/plugins/cert.py:458
+#: ipalib/plugins/cert.py:466
+#, fuzzy
+msgid "Output filename"
+msgstr "ಆಟೊಮೌಂಟ್ ಕೀ ಹೆಸರು"
+
+#: ipalib/plugins/cert.py:467
+#, fuzzy
+msgid "File to store the certificate in."
+msgstr "ಪ್ರಮಾಣಪತ್ರವನ್ನು (0-10) ರದ್ದು ಮಾಡಲು ಕಾರಣ"
+
+#: ipalib/plugins/cert.py:518
+msgid ""
+"\n"
+" Revoke a certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:526
msgid "Revoked"
msgstr "ರದ್ದು ಮಾಡಲಾಗಿದೆ"
-#: ipalib/plugins/cert.py:466
+#: ipalib/plugins/cert.py:534
msgid "Reason"
msgstr "ಕಾರಣ"
-#: ipalib/plugins/cert.py:467
+#: ipalib/plugins/cert.py:535
msgid "Reason for revoking the certificate (0-10)"
msgstr "ಪ್ರಮಾಣಪತ್ರವನ್ನು (0-10) ರದ್ದು ಮಾಡಲು ಕಾರಣ"
-#: ipalib/plugins/cert.py:502
+#: ipalib/plugins/cert.py:562
+msgid ""
+"\n"
+" Take a revoked certificate off hold.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:570
msgid "Unrevoked"
msgstr "ರದ್ದು ಮಾಡಲಾಗಿಲ್ಲ"
-#: ipalib/plugins/cert.py:505
+#: ipalib/plugins/cert.py:573
msgid "Error"
msgstr "ದೋಷ"
-#: ipalib/plugins/config.py:73
+#: ipalib/plugins/config.py:20
+msgid ""
+"\n"
+"Manage the IPA configuration\n"
+"\n"
+"Manage the default values that IPA uses and some of its tuning parameters.\n"
+"\n"
+" To show the current configuration:\n"
+" ipa config-show\n"
+"\n"
+" To modify the configuration:\n"
+" ipa config-mod --maxusername=99\n"
+"\n"
+"The available options are:\n"
+"\n"
+"User management options:\n"
+"\n"
+" --maxusername=INT Max. username length when creating/modifying a user\n"
+" --homedirectory=STR Default location of home directories (default /"
+"home)\n"
+" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
+" --defaultgroup=STR Default group for new users (default ipausers). The\n"
+" group must exist, or adding new users will fail.\n"
+" --emaildomain=STR Default e-mail domain for new users\n"
+"\n"
+"Search tuning options. These impact how much data is searched through and\n"
+"how many records may be returned on a given search.\n"
+"\n"
+" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 "
+"for\n"
+" unlimited)\n"
+" --searchrecordslimit=INT Max. number of records to search (-1 is "
+"unlimited)\n"
+"\n"
+"Server Configuration.\n"
+"\n"
+" --enable-migration=BOOL Enable migration mode\n"
+" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+"\n"
+"The password notification value is stored here so it will be replicated.\n"
+"It is not currently used to notify users in advance of an expiring\n"
+"password.\n"
+"\n"
+"Some attributes are read-only, provided only for information purposes. "
+"These\n"
+"include:\n"
+"\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
+msgstr ""
+
+#: ipalib/plugins/config.py:76
+msgid "searchtimelimit must be -1 or > 1."
+msgstr ""
+
+#: ipalib/plugins/config.py:80
+msgid ""
+"\n"
+" IPA configuration object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
#, fuzzy
msgid "Configuration"
msgstr "ಮೌಂಟ್ ಮಾಹಿತಿ"
-#: ipalib/plugins/config.py:78
-msgid "Max username length"
+#: ipalib/plugins/config.py:96
+#, fuzzy
+msgid "Max. username length"
msgstr "ಬಳಕೆದಾರಹೆಸರಿನ ಗರಿಷ್ಟ ಉದ್ದ"
-#: ipalib/plugins/config.py:83
+#: ipalib/plugins/config.py:101
msgid "Home directory base"
msgstr "ಹೋಮ್ ಡೈರೆಕ್ಟರೀ ಮೂಲ"
-#: ipalib/plugins/config.py:84
-msgid "Default location of home directories"
+#: ipalib/plugins/config.py:102
+#, fuzzy
+msgid "Default location of home directories."
msgstr "ಹೋಮ್ ಡೈರೆಕ್ಟರೀಗಳ ಡಿಫಾಲ್ಟ್ ತಾಣ"
-#: ipalib/plugins/config.py:88
+#: ipalib/plugins/config.py:106
msgid "Default shell"
msgstr "ಡೀಫಾಲ್ಟ್ ಶೆಲ್"
-#: ipalib/plugins/config.py:89
-msgid "Default shell for new users"
+#: ipalib/plugins/config.py:107
+#, fuzzy
+msgid "Default shell for new users."
msgstr "ಹೊಸ ಬಳಕೆದಾರರಿಗಾಗಿ ಡಿಫಾಲ್ಟ್ ಶೆಲ್"
-#: ipalib/plugins/config.py:93
+#: ipalib/plugins/config.py:111
msgid "Default users group"
msgstr "ಡಿಫಾಲ್ಟ್ ಬಳಕೆದಾರರ ಗುಂಪು"
-#: ipalib/plugins/config.py:94
-msgid "Default group for new users"
+#: ipalib/plugins/config.py:112
+#, fuzzy
+msgid "Default group for new users."
msgstr "ಹೊಸ ಬಳಕೆದಾರರಿಗಾಗಿ ಡಿಫಾಲ್ಟ್ ಗುಂಪು"
-#: ipalib/plugins/config.py:98
-msgid "Default e-mail domain"
-msgstr "ಡಿಫಾಲ್ಟ್ ಈ-ಅಂಚೆ ಡೊಮೇನ್"
+#: ipalib/plugins/config.py:116
+#, fuzzy
+msgid "Default e-mail domain for new users"
+msgstr "ಡಿಫಾಲ್ಟ್ ಈ-ಅಂಚೆ ಡೊಮೇನ್ ಹೊಸ ಬಳಕೆದಾರರು"
-#: ipalib/plugins/config.py:99
-msgid "Default e-mail domain new users"
+#: ipalib/plugins/config.py:117
+#, fuzzy
+msgid "Default e-mail domain new users."
msgstr "ಡಿಫಾಲ್ಟ್ ಈ-ಅಂಚೆ ಡೊಮೇನ್ ಹೊಸ ಬಳಕೆದಾರರು"
-#: ipalib/plugins/config.py:103
+#: ipalib/plugins/config.py:121
msgid "Search time limit"
msgstr "ಹುಡುಕು ಸಮಯ ಮಿತಿ"
-#: ipalib/plugins/config.py:104
-msgid "Max. amount of time (sec.) for a search (-1 is unlimited)"
+#: ipalib/plugins/config.py:122
+#, fuzzy
+msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
msgstr "ಒಂದು ಹುಡುಕುವಿಕೆಗಾಗಿ (-1 ಅಪರಿಮಿತ) ಗರಿಷ್ಟ ಮೊತ್ತದ ಸಮಯ (sec.)"
-#: ipalib/plugins/config.py:109
+#: ipalib/plugins/config.py:127
msgid "Search size limit"
msgstr "ಹುಡುಕು ಗಾತ್ರ ಮಿತಿ"
-#: ipalib/plugins/config.py:110
-msgid "Max. number of records to search (-1 is unlimited)"
+#: ipalib/plugins/config.py:128
+#, fuzzy
+msgid "Max. number of records to search (-1 is unlimited)."
msgstr "ಗರಿಷ್ಟ ಸಂಖ್ಯೆಯ ರೆಕಾರ್ಡ್‌ಗಳನ್ನು ಹುಡುಕುವುದಕ್ಕಾಗಿ (-1 ಅಪರಿಮಿತ)"
-#: ipalib/plugins/config.py:115
+#: ipalib/plugins/config.py:133
msgid "User search fields"
msgstr "ಬಳಕೆದಾರನ ಶೋಧ ಫೀಲ್ಡ್‌ಗಳು"
-#: ipalib/plugins/config.py:116
-msgid "A comma-separated list of fields to search when searching for users"
+#: ipalib/plugins/config.py:134
+#, fuzzy
+msgid "A comma-separated list of fields to search when searching for users."
msgstr "A comma-separated list of fields to search when searching for users"
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:139
#, fuzzy
-msgid "A comma-separated list of fields to search when searching for groups"
+msgid "A comma-separated list of fields to search when searching for groups."
msgstr "A comma-separated list of fields to search when searching for users"
-#: ipalib/plugins/config.py:125
+#: ipalib/plugins/config.py:143
msgid "Migration mode"
msgstr "ಮೈಗ್ರೇಶನ್ ಕ್ರಮ"
-#: ipalib/plugins/config.py:126
+#: ipalib/plugins/config.py:144
#, fuzzy
-msgid "Enable migration mode"
+msgid "Enable migration mode."
msgstr "ಮೈಗ್ರೇಶನ್ ಬಗೆಯನ್ನು ಶಕ್ತಗೊಳಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/config.py:130
+#: ipalib/plugins/config.py:148
msgid "Certificate Subject base"
msgstr "ಪ್ರಮಾಣಪತ್ರದ ವಿಷಯ ಮೂಲ"
-#: ipalib/plugins/config.py:131
+#: ipalib/plugins/config.py:149
#, fuzzy
-msgid "Base for certificate subjects (OU=Test,O=Example)"
+msgid "Base for certificate subjects (OU=Test,O=Example)."
msgstr "base for certificate subjects (OU=Test,O=Example)"
-#: ipalib/plugins/dns.py:131
+#: ipalib/plugins/config.py:154
+#, fuzzy
+msgid "Default group objectclasses"
+msgstr "ಹೊಸ ಬಳಕೆದಾರರಿಗಾಗಿ ಡಿಫಾಲ್ಟ್ ಗುಂಪು"
+
+#: ipalib/plugins/config.py:155
+msgid "Default group objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:159
+#, fuzzy
+msgid "Default user objectclasses"
+msgstr "ಡಿಫಾಲ್ಟ್ ಬಳಕೆದಾರರ ಗುಂಪು"
+
+#: ipalib/plugins/config.py:160
+msgid "Default user objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:164
+msgid "Password Expiration Notification"
+msgstr ""
+
+#: ipalib/plugins/config.py:165
+msgid "Number of days's notice of impending password expiration."
+msgstr ""
+
+#: ipalib/plugins/config.py:170
+msgid "Password plugin features"
+msgstr ""
+
+#: ipalib/plugins/config.py:171
+msgid "Extra hashes to generate in password plug-in."
+msgstr ""
+
+#: ipalib/plugins/config.py:183
+msgid ""
+"\n"
+" Modify configuration options.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:220
+msgid ""
+"\n"
+" Show the current configuration.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:19
+msgid ""
+"\n"
+"Group to Group Delegation\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"Group to Group Delegations grants the members of one group to update a set\n"
+"of attributes of members of another group.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a delegation rule to allow editors to edit admin's addresses:\n"
+" ipa delegation-add --attrs=street --membergroup=admins --group=editors "
+"'editors edit admins street'\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add postalCode to the list:\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --"
+"group=editors 'editors edit admins street'\n"
+"\n"
+" Display our updated rule:\n"
+" ipa delegation-show 'editors edit admins street'\n"
+"\n"
+" Delete a rule:\n"
+" ipa delegation-del 'editors edit admins street'\n"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:56
+msgid ""
+"\n"
+" memberOf is in filter but we want to pull out the group for easier\n"
+" displaying.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+msgid "Delegation '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:70
+msgid "Error retrieving member group %(group)s: %(error)s"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:79
+msgid ""
+"\n"
+" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a delegation ACI, adding a new attribute\n"
+" membergroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:95
+msgid ""
+"\n"
+" Delegation object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:102
+msgid "Delegation"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#, fuzzy
+msgid "Delegation name"
+msgstr "ಮೈಗ್ರೇಶನ್ ಕ್ರಮ"
+
+#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#, fuzzy
+msgid ""
+"Comma-separated list of permissions to grant (read, write). Default is write."
+msgstr ""
+"comma-separated list of permissions to grant(read, write, add, delete, "
+"selfwrite, all)"
+
+#: ipalib/plugins/delegation.py:125
+#, fuzzy
+msgid "Member user group"
+msgstr "ಸದಸ್ಯ ರೋಲ್-ಗ್ರೂಪ್‌ಗಳು"
+
+#: ipalib/plugins/delegation.py:126
+#, fuzzy
+msgid "User group to apply delegation to"
+msgstr "Group to apply ACI to"
+
+#: ipalib/plugins/delegation.py:152
+msgid ""
+"\n"
+" Add a new delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:156
+#, fuzzy
+msgid "Added delegation \"%(value)s\""
+msgstr "\"%(value)s\" ರೋಲ್‌ಗ್ರೂಪನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/delegation.py:176
+msgid ""
+"\n"
+" Delete a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:181
+#, fuzzy
+msgid "Deleted delegation \"%(value)s\""
+msgstr "\"%(value)s\" ರೋಲ್‌ಗ್ರೂಪನ್ನು ಅಳಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/delegation.py:197
+msgid ""
+"\n"
+" Modify a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:201
+#, fuzzy
+msgid "Modified delegation \"%(value)s\""
+msgstr "\"%(value)s\" ರೋಲ್‌ಗ್ರೂಪನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/delegation.py:219
+msgid ""
+"\n"
+" Search for delegations.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:223
+#, fuzzy
+msgid "%(count)d delegation matched"
+msgid_plural "%(count)d delegations matched"
+msgstr[0] "%(count)d ರೋಲ್‌ಗ್ರೂಪ್ ತಾಳೆಯಾಗುತ್ತಿದೆ"
+msgstr[1] "%(count)d ರೋಲ್‌ಗ್ರೂಪ್‌ಗಳು ತಾಳೆಯಾಗುತ್ತಿವೆ"
+
+#: ipalib/plugins/delegation.py:250
+msgid ""
+"\n"
+" Display information about a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:20
+msgid ""
+"\n"
+"Domain Name System (DNS)\n"
+"\n"
+"Manage DNS zone and resource records.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add new zone:\n"
+" ipa dnszone-add example.com --name-server nameserver.example.com\n"
+" --admin-email admin@example.com\n"
+"\n"
+" Add second nameserver for example.com:\n"
+" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add a mail server for example.com:\n"
+" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n"
+"\n"
+" Delete previously added nameserver from example.com:\n"
+" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add new A record for www.example.com: (random IP)\n"
+" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n"
+"\n"
+" Add new PTR record for www.example.com\n"
+" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n"
+"\n"
+" Add new SRV records for LDAP servers. Three quarters of the requests\n"
+" should go to fast.example.com, one quarter to slow.example.com. If neither\n"
+" is available, switch to backup.example.com.\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup."
+"example.com\"\n"
+"\n"
+" When dnsrecord-add command is executed with no option to add a specific "
+"record\n"
+" an interactive mode is started. The mode interactively prompts for the "
+"most\n"
+" typical record types for the respective zone:\n"
+" ipa dnsrecord-add example.com www\n"
+" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random "
+"IPs)\n"
+" [AAAA record]: (no AAAA address entered)\n"
+" Record name: www\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" The interactive mode can also be used for deleting the DNS records:\n"
+" ipa dnsrecord-del example.com www\n"
+" No option to delete specific record provided.\n"
+" Delete all? Yes/No (default No): (do not delete all records)\n"
+" Current DNS record contents:\n"
+"\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
+" Record name: www\n"
+" A record: 1.2.3.4 (A record 11.22.33.44 has been "
+"deleted)\n"
+"\n"
+" Show zone example.com:\n"
+" ipa dnszone-show example.com\n"
+"\n"
+" Find zone with \"example\" in its domain name:\n"
+" ipa dnszone-find example\n"
+"\n"
+" Find records for resources with \"www\" in their name in zone example.com:\n"
+" ipa dnsrecord-find example.com www\n"
+"\n"
+" Find A records with value 10.10.0.1 in zone example.com\n"
+" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n"
+"\n"
+" Show records for resource www in zone example.com\n"
+" ipa dnsrecord-show example.com www\n"
+"\n"
+" Delete zone example.com with all resource records:\n"
+" ipa dnszone-del example.com\n"
+"\n"
+" Resolve a host name to see if it exists (will add default IPA domain\n"
+" if one is not included):\n"
+" ipa dns-resolve www.example.com\n"
+" ipa dns-resolve www\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:140
+msgid "Generate serial number for zones."
+msgstr ""
+
+#: ipalib/plugins/dns.py:189
+msgid "see RFC 2915 "
+msgstr ""
+
+#: ipalib/plugins/dns.py:249
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:272
+#, fuzzy
+msgid ""
+"\n"
+" DNS Zone, container for resource records.\n"
+" "
+msgstr "DSನಲ್ಲಿರುವ ಬಳಕೆದಾರರಿಗಾಗಿ RDNನ ಕಂಟೇನರ್ "
+
+#: ipalib/plugins/dns.py:284
msgid "DNS"
msgstr "DNS"
-#: ipalib/plugins/dns.py:136
-msgid "Zone"
-msgstr "ವಲಯ"
+#: ipalib/plugins/dns.py:289
+msgid "Zone name"
+msgstr "ವಲಯದ ಹೆಸರು"
-#: ipalib/plugins/dns.py:137
+#: ipalib/plugins/dns.py:290
msgid "Zone name (FQDN)"
msgstr "ವಲಯದ ಹೆಸರು (FQDN)"
-#: ipalib/plugins/dns.py:143
-msgid "Authoritative name server"
+#: ipalib/plugins/dns.py:296
+#, fuzzy
+msgid "Authoritative nameserver"
msgstr "Authoritative name server"
-#: ipalib/plugins/dns.py:147
-msgid "administrator e-mail address"
+#: ipalib/plugins/dns.py:297
+#, fuzzy
+msgid "Authoritative nameserver."
+msgstr "Authoritative name server"
+
+#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#, fuzzy
+msgid "Administrator e-mail address"
msgstr "ಅಡ್ಮಿನಿಸ್ಟ್ರೇಟರ್ ಈ-ಅಂಚೆ ವಿಳಾಸ"
-#: ipalib/plugins/dns.py:153
+#: ipalib/plugins/dns.py:308
msgid "SOA serial"
msgstr "SOA serial"
-#: ipalib/plugins/dns.py:157
+#: ipalib/plugins/dns.py:309
+#, fuzzy
+msgid "SOA record serial number"
+msgstr "ಅನುಕ್ರಮ ಸಂಖ್ಯೆ"
+
+#: ipalib/plugins/dns.py:316
msgid "SOA refresh"
msgstr "SOA refresh"
-#: ipalib/plugins/dns.py:161
+#: ipalib/plugins/dns.py:317
+#, fuzzy
+msgid "SOA record refresh time"
+msgstr "SOA refresh"
+
+#: ipalib/plugins/dns.py:324
msgid "SOA retry"
msgstr "SOA retry"
-#: ipalib/plugins/dns.py:165
+#: ipalib/plugins/dns.py:325
+#, fuzzy
+msgid "SOA record retry time"
+msgstr "SOA retry"
+
+#: ipalib/plugins/dns.py:332
msgid "SOA expire"
msgstr "SOA expire"
-#: ipalib/plugins/dns.py:169
+#: ipalib/plugins/dns.py:333
+#, fuzzy
+msgid "SOA record expire time"
+msgstr "SOA expire"
+
+#: ipalib/plugins/dns.py:340
msgid "SOA minimum"
msgstr "SOA minimum"
-#: ipalib/plugins/dns.py:173
+#: ipalib/plugins/dns.py:341
+msgid "How long should negative responses be cached"
+msgstr ""
+
+#: ipalib/plugins/dns.py:349
msgid "SOA time to live"
msgstr "SOA time to live"
-#: ipalib/plugins/dns.py:177
+#: ipalib/plugins/dns.py:350
+#, fuzzy
+msgid "SOA record time to live"
+msgstr "SOA time to live"
+
+#: ipalib/plugins/dns.py:354
msgid "SOA class"
msgstr "SOA class"
-#: ipalib/plugins/dns.py:182
-msgid "allow dynamic update?"
-msgstr "ಡೈನಮಿಕ್ ಅಪ್‌ಡೇಟ್ ಅನುಮತಿಸಬೇಕೆ?"
+#: ipalib/plugins/dns.py:355
+#, fuzzy
+msgid "SOA record class"
+msgstr "SOA class"
-#: ipalib/plugins/dns.py:186
+#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
msgid "BIND update policy"
msgstr "BIND update policy"
-#: ipalib/plugins/dns.py:426 ipalib/plugins/dns.py:460
-#: ipalib/plugins/dns.py:495 ipalib/plugins/dns.py:610
-#: ipalib/plugins/dns.py:695 ipalib/plugins/dns.py:819
-msgid "Zone name"
-msgstr "ವಲಯದ ಹೆಸರು"
+#: ipalib/plugins/dns.py:365
+msgid "Active zone"
+msgstr ""
-#: ipalib/plugins/dns.py:500
-msgid "resource name"
-msgstr "ರೀಸೊರ್ಸ್ ಹೆಸರು"
+#: ipalib/plugins/dns.py:366
+msgid "Is zone active?"
+msgstr ""
-#: ipalib/plugins/dns.py:505 ipalib/plugins/dns.py:620
-#: ipalib/plugins/dns.py:711
-msgid "Record type"
-msgstr "ದಾಖಲೆಯ ಬಗೆ"
+#: ipalib/plugins/dns.py:372
+#, fuzzy
+msgid "Dynamic update"
+msgstr "ಡೈನಮಿಕ್ ಅಪ್‌ಡೇಟ್ ಅನುಮತಿಸಬೇಕೆ?"
-#: ipalib/plugins/dns.py:509 ipalib/plugins/dns.py:624
-msgid "Data"
-msgstr "ದತ್ತಾಂಶ"
+#: ipalib/plugins/dns.py:373
+#, fuzzy
+msgid "Allow dynamic updates."
+msgstr "ಡೈನಮಿಕ್ ಅಪ್‌ಡೇಟ್ ಅನುಮತಿಸಬೇಕೆ?"
-#: ipalib/plugins/dns.py:510 ipalib/plugins/dns.py:625
-msgid "Type-specific data"
-msgstr "ನಮೂನೆ-ನಿಗದಿತ ದತ್ತಾಂಶ"
+#: ipalib/plugins/dns.py:382
+msgid ""
+"\n"
+" Create new DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
+#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+msgid "Force"
+msgstr ""
+
+#: ipalib/plugins/dns.py:388
+#, fuzzy
+msgid "Force DNS zone creation even if nameserver not in DNS."
+msgstr "ಈ ಹೋಸ್ಟ್‌ಗೆ Kerberos principalನ ಹೆಸರು"
+
+#: ipalib/plugins/dns.py:391
+msgid "Add the nameserver to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:397
+msgid "DNS is not configured"
+msgstr ""
-#: ipalib/plugins/dns.py:517
+#: ipalib/plugins/dns.py:431
+msgid ""
+"\n"
+" Delete DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"\n"
+" Modify DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:452
+msgid ""
+"\n"
+" Search for DNS zones (SOA records).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:460
+msgid ""
+"\n"
+" Display information about a DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+msgid ""
+"\n"
+" Disable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:472
+#, fuzzy
+msgid "Disabled DNS zone \"%(value)s\""
+msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಅಳಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/dns.py:490
+msgid ""
+"\n"
+" Enable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:494
+#, fuzzy
+msgid "Enabled DNS zone \"%(value)s\""
+msgstr "ಅನ್‌ಲಾಕ್ ಆಗಿರುವ ಬಳಕೆದಾರ \"%(value)s\""
+
+#: ipalib/plugins/dns.py:512
+msgid ""
+"\n"
+" DNS record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:522
+#, fuzzy
+msgid "DNS resource record"
+msgstr "ರೀಸೊರ್ಸ್ ಹೆಸರು"
+
+#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
+#, fuzzy
+msgid "Record name"
+msgstr "ರೀಸೊರ್ಸ್ ಹೆಸರು"
+
+#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
msgid "Time to live"
msgstr "ಉಳಿದಿರಬೇಕಾದ ಸಮಯ"
-#: ipalib/plugins/dns.py:522
+#: ipalib/plugins/dns.py:538
msgid "Class"
msgstr "ವರ್ಗ"
-#: ipalib/plugins/dns.py:615 ipalib/plugins/dns.py:707
-#: ipalib/plugins/dns.py:824
-msgid "Resource name"
-msgstr "ರೀಸೊರ್ಸ್ ಹೆಸರು"
+#: ipalib/plugins/dns.py:539
+#, fuzzy
+msgid "DNS class"
+msgstr "SOA class"
-#: ipalib/plugins/dns.py:700
-msgid "Search criteria"
-msgstr "ಹುಡುಕು criteria"
+#: ipalib/plugins/dns.py:566
+msgid ""
+"\n"
+" Base class for DNS record commands with record options.\n"
+" "
+msgstr ""
-#: ipalib/plugins/dns.py:715
-msgid "type-specific data"
-msgstr "ನಮೂನೆ-ನಿಗದಿತ ದತ್ತಾಂಶ"
+#: ipalib/plugins/dns.py:610
+msgid ""
+"\n"
+" Base class for adding/removing records from DNS resource entries.\n"
+" "
+msgstr ""
-#: ipalib/plugins/dns.py:865
-#, fuzzy, python-format
+#: ipalib/plugins/dns.py:674
+msgid ""
+"\n"
+" Add records to DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:690
+msgid ""
+"\n"
+" Add new DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:699
+#, fuzzy
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr "ಈ ಹೋಸ್ಟ್‌ಗೆ Kerberos principalನ ಹೆಸರು"
+
+#: ipalib/plugins/dns.py:735
+msgid ""
+"Reverse zone for PTR record should be a sub-zone of one the following fully "
+"qualified domains: %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:740
+msgid "Reverse zone %s requires exactly %d IP address components, %d given"
+msgstr ""
+
+#: ipalib/plugins/dns.py:746
+msgid "PTR record '%s' is not fully qualified (check traling '.')"
+msgstr ""
+
+#: ipalib/plugins/dns.py:789
+msgid ""
+"\n"
+" Delete DNS record entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:792
+#, fuzzy
+msgid "Deleted record \"%(value)s\""
+msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಅಳಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/dns.py:799
+msgid ""
+"\n"
+" Delete DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:802
+msgid ""
+"Neither --del-all nor options to delete a specific record provided.\n"
+"Command help may be consulted for all supported record types."
+msgstr ""
+
+#: ipalib/plugins/dns.py:807
+msgid "Delete all associated records"
+msgstr ""
+
+#: ipalib/plugins/dns.py:834
+msgid "No option to delete specific record provided."
+msgstr ""
+
+#: ipalib/plugins/dns.py:835
+msgid "Delete all?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:845
+msgid "Current DNS record contents:\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:875
+#, fuzzy
+msgid "%s record with value %s not found"
+msgstr "\"%s\" ಹೆಸರು ಹೊಂದಿರುವ ACI ಪತ್ತೆಯಾಗಿಲ್ಲ"
+
+#: ipalib/plugins/dns.py:889
+msgid ""
+"\n"
+" Display DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:905
+msgid ""
+"\n"
+" Search for DNS resources.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:932
+msgid ""
+"\n"
+" Resolve a host name in DNS\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:936
+#, fuzzy
msgid "Found '%(value)s'"
msgstr "\"%(value)s\" ಗುಂಪನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/dns.py:869
+#: ipalib/plugins/dns.py:940
#, fuzzy
msgid "Hostname"
msgstr "ಹೋಸ್ಟ್ ಹೆಸರು"
-#: ipalib/plugins/dns.py:882
-#, python-format
+#: ipalib/plugins/dns.py:962
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/group.py:94
+#: ipalib/plugins/dns.py:970
+msgid ""
+"\n"
+" Checks if any of the servers has the DNS service enabled.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:19
+msgid ""
+"\n"
+"Entitlements\n"
+"\n"
+"Manage entitlements for client machines\n"
+"\n"
+"Entitlements can be managed either by registering with an entitlement\n"
+"server with a username and password or by manually importing entitlement\n"
+"certificates. An entitlement certificate contains embedded information\n"
+"such as the product being entitled, the quantity and the validity dates.\n"
+"\n"
+"An entitlement server manages the number of client entitlements available.\n"
+"To mark these entitlements as used by the IPA server you provide a quantity\n"
+"and they are marked as consumed on the entitlement server.\n"
+"\n"
+" Register with an entitlement server:\n"
+" ipa entitle-register consumer\n"
+"\n"
+" Import an entitlement certificate:\n"
+" ipa entitle-import /home/user/ipaclient.pem\n"
+"\n"
+" Display current entitlements:\n"
+" ipa entitle-status\n"
+"\n"
+" Retrieve details on entitlement certificates:\n"
+" ipa entitle-get\n"
+"\n"
+" Consume some entitlements from the entitlement server:\n"
+" ipa entitle-consume 50\n"
+"\n"
+"The registration ID is a Unique Identifier (UUID). This ID will be\n"
+"IMPORTED if you have used entitle-import.\n"
+"\n"
+"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:106
+msgid ""
+"\n"
+" Get our entitlement pool. Assume there is only one pool.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:129
+msgid ""
+"\n"
+" Retrieve our UUID, certificate and key from LDAP.\n"
+"\n"
+" Except on error the caller is responsible for removing temporary files\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:178
+msgid ""
+"\n"
+" Entitlement object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:189
+msgid "Entitlements"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:206
+msgid ""
+"\n"
+" Display current entitlements\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+msgid "UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
+#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
+#: ipalib/plugins/entitle.py:690
+msgid "Product"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
+#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
+#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+msgid "Quantity"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
+#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+msgid "Consumed"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:276
+msgid ""
+"\n"
+" Consume an entitlement\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:282
+msgid "Consumed %(value)s entitlement(s)."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:314
+msgid ""
+"\n"
+" Override this so we can set value to the number of entitlements\n"
+" consumed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
+msgid ""
+"\n"
+" Returning the certificates isn't very interesting. Return the\n"
+" status of entitlements instead.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:380
+msgid ""
+"\n"
+" Retrieve the entitlement certs\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:394
+msgid "Start"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:397
+msgid "End"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
+#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#, fuzzy
+msgid "Serial Number"
+msgstr "ಅನುಕ್ರಮ ಸಂಖ್ಯೆ"
+
+#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
+#: ipalib/plugins/entitle.py:628
+msgid "Not an entitlement certificate"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:460
+msgid ""
+"\n"
+" Search for entitlement accounts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:473
+msgid ""
+"\n"
+" Register to the entitlement system\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:479
+msgid "Registered to entitlement server."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:483
+#, fuzzy
+msgid "Username"
+msgstr "ಬಳಕೆದಾರನ ಹೆಸರು"
+
+#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
+msgid "Enrollment UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
+#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
+msgid "Password"
+msgstr "ಗುಪ್ತಪದ"
+
+#: ipalib/plugins/entitle.py:495
+#, fuzzy
+msgid "Registration password"
+msgstr "ಬಳಕೆದಾರನ ಗುಪ್ತಪದ"
+
+#: ipalib/plugins/entitle.py:569
+msgid ""
+"\n"
+" Import an entitlement certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:646
+msgid ""
+"\n"
+" If we are adding the first entry there are no updates so "
+"EmptyModlist\n"
+" will get thrown. Ignore it.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:667
+msgid ""
+"\n"
+" Re-sync the local entitlement cache with the entitlement server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:673
+msgid "Entitlement(s) synchronized."
+msgstr ""
+
+#: ipalib/plugins/group.py:20
+msgid ""
+"\n"
+"Groups of users\n"
+"\n"
+"Manage groups of users. By default, new groups are POSIX groups. You\n"
+"can add the --nonposix option to the group-add command to mark a new group\n"
+"as non-POSIX, and you can use the same argument to the group-mod command\n"
+"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"converted to non-POSIX groups.\n"
+"\n"
+"Every group must have a description.\n"
+"\n"
+"POSIX groups must have a Group ID (GID) number. Changing a GID is\n"
+"supported but can have an impact on your file permissions. It is not "
+"necessary\n"
+"to supply a GID when creating a group. IPA will generate one automatically\n"
+"if it is not provided.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new group:\n"
+" ipa group-add --desc='local administrators' localadmins\n"
+"\n"
+" Add a new non-POSIX group:\n"
+" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n"
+"\n"
+" Convert a non-POSIX group to posix:\n"
+" ipa group-mod --posix remoteadmins\n"
+"\n"
+" Add a new POSIX group with a specific Group ID number:\n"
+" ipa group-add --gid=500 --desc='unix admins' unixadmins\n"
+"\n"
+" Add a new POSIX group and let IPA assign a Group ID number:\n"
+" ipa group-add --desc='printer admins' printeradmins\n"
+"\n"
+" Remove a group:\n"
+" ipa group-del unixadmins\n"
+"\n"
+" To add the \"remoteadmins\" group to the \"localadmins\" group:\n"
+" ipa group-add-member --groups=remoteadmins localadmins\n"
+"\n"
+" Add a list of users to the \"localadmins\" group:\n"
+" ipa group-add-member --users=test1,test2 localadmins\n"
+"\n"
+" Remove a user from the \"localadmins\" group:\n"
+" ipa group-remove-member --users=test2 localadmins\n"
+"\n"
+" Display information about a named group.\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/group.py:76
+msgid ""
+"\n"
+" Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:100
msgid "User Groups"
msgstr "ಬಳಕೆದಾರರ ಗುಂಪುಗಳು"
-#: ipalib/plugins/group.py:102
+#: ipalib/plugins/group.py:108
msgid "Group name"
msgstr "ಗುಂಪಿನ ಹೆಸರು"
-#: ipalib/plugins/group.py:109 ipalib/plugins/sudocmdgroup.py:78
+#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
msgid "Group description"
msgstr "ಗುಂಪಿನ ವಿವರಣೆ"
-#: ipalib/plugins/group.py:113
+#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
msgid "GID"
msgstr "GID"
-#: ipalib/plugins/group.py:114
+#: ipalib/plugins/group.py:120
msgid "GID (use this option to set it manually)"
msgstr "GID (ಇದನ್ನು ಮ್ಯಾನ್ಯೂವಲ್ ಆಗಿ ಸೆಟ್ ಮಾಡಲು ಈ ಆಯ್ಕೆಯನ್ನು ಬಳಸಿ)"
-#: ipalib/plugins/group.py:117 ipalib/plugins/rolegroup.py:94
-#: ipalib/plugins/taskgroup.py:66
-msgid "Member groups"
-msgstr "ಸದಸ್ಯ ಗುಂಪುಗಳು"
-
-#: ipalib/plugins/group.py:121 ipalib/plugins/rolegroup.py:98
-#: ipalib/plugins/taskgroup.py:70
-msgid "Member users"
-msgstr "ಸದಸ್ಯ ಬಳಕೆದಾರರು"
+#: ipalib/plugins/group.py:128
+msgid ""
+"\n"
+" Create a new group.\n"
+" "
+msgstr ""
-#: ipalib/plugins/group.py:134
-#, python-format
+#: ipalib/plugins/group.py:132
msgid "Added group \"%(value)s\""
msgstr "\"%(value)s\" ಗುಂಪನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/group.py:139
+#: ipalib/plugins/group.py:137
#, fuzzy
-msgid "Create as a non-POSIX group?"
+msgid "Create as a non-POSIX group"
msgstr "posix ಗುಂಪಿನಂತೆ ರಚಿಸಬೇಕೆ?"
-#: ipalib/plugins/group.py:160
-#, python-format
+#: ipalib/plugins/group.py:154
+msgid ""
+"\n"
+" Delete group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:158
msgid "Deleted group \"%(value)s\""
msgstr "\"%(value)s\" ಗುಂಪನ್ನು ಅಳಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/group.py:191
-#, python-format
+#: ipalib/plugins/group.py:186
+msgid ""
+"\n"
+" Modify a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:189
msgid "Modified group \"%(value)s\""
msgstr "\"%(value)s\" ಗುಂಪನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/group.py:196
+#: ipalib/plugins/group.py:194
#, fuzzy
msgid "change to a POSIX group"
msgstr "posix ಗುಂಪಿನಂತೆ ರಚಿಸಬೇಕೆ?"
-#: ipalib/plugins/group.py:222 ipalib/plugins/hbacsvcgroup.py:129
-#, python-format
+#: ipalib/plugins/group.py:215
+msgid ""
+"\n"
+" Search for groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:220
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] "%(count)d ಗುಂಪು ತಾಳೆಯಾಗುತ್ತಿದೆ"
msgstr[1] "%(count)d ಗುಂಪುಗಳು ತಾಳೆಯಾಗುತ್ತಿವೆ "
+#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+msgid "search for private groups"
+msgstr ""
+
#: ipalib/plugins/group.py:257
-#, fuzzy, python-format
+msgid ""
+"\n"
+" Display information about a named group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:265
+#, fuzzy
+msgid ""
+"\n"
+" Add members to a group.\n"
+" "
+msgstr "ಒಂದು ಗುಂಪಿನ ಸದಸ್ಯ"
+
+#: ipalib/plugins/group.py:273
+msgid ""
+"\n"
+" Remove members from a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:281
+msgid ""
+"\n"
+" Detach a managed group from a user\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:285
+#, fuzzy
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr "\"%(value)s\" ರೋಲ್‌ಗ್ರೂಪನ್ನು ಅಳಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/group.py:273
+#: ipalib/plugins/group.py:288
+msgid ""
+"\n"
+" This requires updating both the user and the group. We first need "
+"to\n"
+" verify that both the user and group can be updated, then we go\n"
+" about our work. We don't want a situation where only the user or\n"
+" group can be modified and we're left in a bad state.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:306
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:277
+#: ipalib/plugins/group.py:312
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:284 ipalib/plugins/group.py:295
+#: ipalib/plugins/group.py:331
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbac.py:106
-msgid "HBAC"
+#: ipalib/plugins/hbacrule.py:19
+msgid ""
+"\n"
+"Host-based access control\n"
+"\n"
+"Control who can access what services on what hosts and from where. You\n"
+"can use HBAC to control which users or groups on a source host can\n"
+"access a service, or group of services, on a target host.\n"
+"\n"
+"You can also specify a category of users, target hosts, and source\n"
+"hosts. This is currently limited to \"all\", but might be expanded in the\n"
+"future.\n"
+"\n"
+"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n"
+"\n"
+"The available services and groups of services are controlled by the\n"
+"hbacsvc and hbacsvcgroup plug-ins respectively.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a rule, \"test1\", that grants all users access to the host \"server"
+"\" from\n"
+" anywhere:\n"
+" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add-host --hosts=server.example.com test1\n"
+"\n"
+" Display the properties of a named HBAC rule:\n"
+" ipa hbacrule-show test1\n"
+"\n"
+" Create a rule for a specific service. This lets the user john access\n"
+" the sshd service on any machine from any machine:\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add-user --users=john john_sshd\n"
+" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
+"\n"
+" Create a rule for a new service group. This lets the user john access\n"
+" the FTP service on any machine from any machine:\n"
+" ipa hbacsvcgroup-add ftpers\n"
+" ipa hbacsvc-add sftp\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add-user --users=john john_ftp\n"
+" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
+"\n"
+" Disable a named HBAC rule:\n"
+" ipa hbacrule-disable test1\n"
+"\n"
+" Remove a named HBAC rule:\n"
+" ipa hbacrule-del allow_server\n"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:91
+msgid ""
+"\n"
+" See if options[attribute] is lower-case 'all' in a safe way.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:103
+msgid ""
+"\n"
+" HBAC object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:126
+#, fuzzy
+msgid "HBAC Rule"
msgstr "HBAC"
-#: ipalib/plugins/hbac.py:111 ipalib/plugins/sudorule.py:53
+#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
msgid "Rule name"
msgstr "ನಿಯಮದ ಹೆಸರು"
-#: ipalib/plugins/hbac.py:116
+#: ipalib/plugins/hbacrule.py:136
msgid "Rule type (allow or deny)"
msgstr "ನಿಯಮದ ಬಗೆ(ಅನುಮತಿಸು ಅಥವಾ ನಿರಾಕರಿಸು)"
-#: ipalib/plugins/hbac.py:117
+#: ipalib/plugins/hbacrule.py:137
#, fuzzy
msgid "Rule type"
msgstr "ದಾಖಲೆಯ ಬಗೆ"
-#: ipalib/plugins/hbac.py:123
+#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
+#: ipalib/plugins/sudorule.py:86
msgid "User category"
msgstr "ಬಳಕೆದಾರನ ವರ್ಗ"
-#: ipalib/plugins/hbac.py:124
+#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
+#: ipalib/plugins/sudorule.py:87
msgid "User category the rule applies to"
msgstr "ನಿಯಮ ಅನ್ವಯಿಸುವಂತಹ ಬಳಕೆದಾರನ ವರ್ಗ"
-#: ipalib/plugins/hbac.py:129
+#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
+#: ipalib/plugins/sudorule.py:92
msgid "Host category"
msgstr "ಹೋಸ್ಟ್ ವರ್ಗ"
-#: ipalib/plugins/hbac.py:130
+#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
+#: ipalib/plugins/sudorule.py:93
msgid "Host category the rule applies to"
msgstr "ನಿಯಮ ಅನ್ವಯಿಸುವಂತಹ ಹೋಸ್ಟ್ ವರ್ಗ"
-#: ipalib/plugins/hbac.py:135
+#: ipalib/plugins/hbacrule.py:155
msgid "Source host category"
msgstr "ಮೂಲ ಹೋಸ್ಟ್ ವರ್ಗ"
-#: ipalib/plugins/hbac.py:136
+#: ipalib/plugins/hbacrule.py:156
msgid "Source host category the rule applies to"
msgstr "ನಿಯಮ ಅನ್ವಯಿಸುವಂತಹ ಮೂಲ ಹೋಸ್ಟ್ ವರ್ಗ"
-#: ipalib/plugins/hbac.py:141
+#: ipalib/plugins/hbacrule.py:161
#, fuzzy
msgid "Service category"
msgstr "ಬಳಕೆದಾರನ ವರ್ಗ"
-#: ipalib/plugins/hbac.py:142
+#: ipalib/plugins/hbacrule.py:162
#, fuzzy
msgid "Service category the rule applies to"
msgstr "ನಿಯಮ ಅನ್ವಯಿಸುವಂತಹ ಬಳಕೆದಾರನ ವರ್ಗ"
-#: ipalib/plugins/hbac.py:147 ipalib/plugins/hbac.py:325
-#: ipalib/plugins/hbac.py:363
-msgid "Access time"
-msgstr "ಪ್ರವೇಶದ ಸಮಯ"
-
-#: ipalib/plugins/hbac.py:154
+#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbac.py:158 ipalib/plugins/sudorule.py:61
-#: ipalib/plugins/user.py:76
+#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
+#: ipalib/plugins/user.py:108
msgid "Users"
msgstr "ಬಳಕೆದಾರರು"
-#: ipalib/plugins/hbac.py:162 ipalib/plugins/host.py:113
-#: ipalib/plugins/sudorule.py:65
+#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
+#: ipalib/plugins/sudorule.py:119
+msgid "Groups"
+msgstr "ಗುಂಪುಗಳು"
+
+#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
+#: ipalib/plugins/sudorule.py:123
msgid "Hosts"
msgstr "ಹೋಸ್ಟ್‌ಗಳು"
-#: ipalib/plugins/hbac.py:166 ipalib/plugins/hostgroup.py:69
-#: ipalib/plugins/sudorule.py:69
+#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
+#: ipalib/plugins/sudorule.py:127
msgid "Host Groups"
msgstr "ಹೋಸ್ಟ್ ಗುಂಪುಗಳು"
-#: ipalib/plugins/hbac.py:170
+#: ipalib/plugins/hbacrule.py:194
#, fuzzy
msgid "Source hosts"
msgstr "ಮೂಲ ಹೋಸ್ಟ್ ವರ್ಗ"
-#: ipalib/plugins/hbac.py:174 ipalib/plugins/hbacsvc.py:60
-#: ipalib/plugins/service.py:192
+#: ipalib/plugins/hbacrule.py:198
+#, fuzzy
+msgid "Source host groups"
+msgstr "ಮೂಲ ಹೋಸ್ಟ್ ವರ್ಗ"
+
+#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
+#: ipalib/plugins/service.py:220
msgid "Services"
msgstr "ಸೇವೆಗಳು(ಸರ್ವೀಸಸ್)"
-#: ipalib/plugins/hbac.py:178
+#: ipalib/plugins/hbacrule.py:206
#, fuzzy
msgid "Service Groups"
msgstr "ಸೇವೆಗಳು(ಸರ್ವೀಸಸ್)"
-#: ipalib/plugins/hbacsvc.py:65
+#: ipalib/plugins/hbacrule.py:215
+msgid ""
+"\n"
+" Create a new HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:219
+#, fuzzy
+msgid "Added HBAC rule \"%(value)s\""
+msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/hbacrule.py:230
+msgid ""
+"\n"
+" Delete an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:234
+#, fuzzy
+msgid "Deleted HBAC rule \"%(value)s\""
+msgstr "\"%(value)s\" ACIವನ್ನು ಅಳಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/hbacrule.py:240
+msgid ""
+"\n"
+" Modify an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:244
+#, fuzzy
+msgid "Modified HBAC rule \"%(value)s\""
+msgstr "\"%(value)s\" ACIವನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/hbacrule.py:266
+msgid ""
+"\n"
+" Search for HBAC rules.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:270
+#, fuzzy
+msgid "%(count)d HBAC rule matched"
+msgid_plural "%(count)d HBAC rules matched"
+msgstr[0] "%(count)d ACI ತಾಳೆಯಾಗುತ್ತಿದೆ"
+msgstr[1] "%(count)d ACIಗಳು ತಾಳೆಯಾಗುತ್ತಿವೆ"
+
+#: ipalib/plugins/hbacrule.py:278
+msgid ""
+"\n"
+" Display the properties of an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:286
+msgid ""
+"\n"
+" Enable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:290
+#, fuzzy
+msgid "Enabled HBAC rule \"%(value)s\""
+msgstr "ಅನ್‌ಲಾಕ್ ಆಗಿರುವ ಬಳಕೆದಾರ \"%(value)s\""
+
+#: ipalib/plugins/hbacrule.py:315
+msgid ""
+"\n"
+" Disable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:319
+#, fuzzy
+msgid "Disabled HBAC rule \"%(value)s\""
+msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಅಳಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/hbacrule.py:344
+msgid ""
+"\n"
+" Add an access time to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+msgid "Access time"
+msgstr "ಪ್ರವೇಶದ ಸಮಯ"
+
+#: ipalib/plugins/hbacrule.py:385
+msgid ""
+"\n"
+" Remove access time to HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:425
+msgid ""
+"\n"
+" Add users and groups to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:442
+msgid ""
+"\n"
+" Remove users and groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:452
+msgid ""
+"\n"
+" Add target hosts and hostgroups to an HBAC rule\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:469
+msgid ""
+"\n"
+" Remove target hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:479
+msgid ""
+"\n"
+" Add source hosts and hostgroups from a HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:496
+msgid ""
+"\n"
+" Remove source hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:506
+msgid ""
+"\n"
+" Add services to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:523
+msgid ""
+"\n"
+" Remove service and service groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:19
+msgid ""
+"\n"
+"HBAC Services\n"
+"\n"
+"The PAM services that HBAC can control access to. The name used here\n"
+"must match the service name that PAM is evaluating.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service:\n"
+" ipa hbacsvc-add tftp\n"
+"\n"
+" Modify an existing HBAC service:\n"
+" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n"
+"\n"
+" Search for HBAC services. This example will return two results, the FTP\n"
+" service and the newly-added tftp service:\n"
+" ipa hbacsvc-find ftp\n"
+"\n"
+" Delete an HBAC service:\n"
+" ipa hbacsvc-del tftp\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:51
+msgid ""
+"\n"
+" HBAC Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:61
+#, fuzzy
+msgid "HBAC Services"
+msgstr "ಸೇವೆಗಳು(ಸರ್ವೀಸಸ್)"
+
+#: ipalib/plugins/hbacsvc.py:66
msgid "Service name"
msgstr "ಸೇವೆಯ ಹೆಸರು"
-#: ipalib/plugins/hbacsvc.py:66
+#: ipalib/plugins/hbacsvc.py:67
#, fuzzy
-msgid "HBAC Service"
+msgid "HBAC service"
msgstr "ಸೇವೆಗಳು(ಸರ್ವೀಸಸ್)"
-#: ipalib/plugins/hbacsvc.py:73
+#: ipalib/plugins/hbacsvc.py:74
#, fuzzy
-msgid "Description of service"
-msgstr "ವಿವರಣೆ"
+msgid "HBAC service description"
+msgstr "ನೆಟ್‌ಗ್ರೂಪ್ ವಿವರಣೆ"
-#: ipalib/plugins/hbacsvc.py:84 ipalib/plugins/service.py:216
-#, python-format
-msgid "Added service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:82
+msgid ""
+"\n"
+" Add a new HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:85
+#, fuzzy
+msgid "Added HBAC service \"%(value)s\""
msgstr "\"%(value)s\" ಸೇವೆ(ಸರ್ವೀಸ್)ಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/hbacsvc.py:93 ipalib/plugins/service.py:255
-#, python-format
-msgid "Deleted service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:91
+msgid ""
+"\n"
+" Delete an existing HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:94
+#, fuzzy
+msgid "Deleted HBAC service \"%(value)s\""
msgstr "\"%(value)s\" ಸೇವೆ(ಸರ್ವೀಸ್)ಯನ್ನು ಅಳಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/hbacsvcgroup.py:66
+#: ipalib/plugins/hbacsvc.py:100
+msgid ""
+"\n"
+" Modify an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:104
+#, fuzzy
+msgid "Modified HBAC service \"%(value)s\""
+msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/hbacsvc.py:110
+msgid ""
+"\n"
+" Search for HBAC services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:114
+#, fuzzy
+msgid "%(count)d HBAC service matched"
+msgid_plural "%(count)d HBAC services matched"
+msgstr[0] "%(count)d ಬಳಕೆದಾರ ತಾಳೆಯಾಗುತ್ತಿದ್ದಾನೆ"
+msgstr[1] "%(count)d ಬಳಕೆದಾರರು ತಾಳೆಯಾಗುತ್ತಿದ್ದಾರೆ"
+
+#: ipalib/plugins/hbacsvc.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:19
+msgid ""
+"\n"
+"HBAC Service Groups\n"
+"\n"
+"HBAC service groups can contain any number of individual services,\n"
+"or \"members\". Every group must have a description.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service group:\n"
+" ipa hbacsvcgroup-add --desc=\"login services\" login\n"
+"\n"
+" Add members to an HBAC service group:\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n"
+"\n"
+" Display information about a named group:\n"
+" ipa hbacsvcgroup-show login\n"
+"\n"
+" Add a new group to the \"login\" group:\n"
+" ipa hbacsvcgroup-add --desc=\"switch users\" login\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n"
+"\n"
+" Delete an HBAC service group:\n"
+" ipa hbacsvcgroup-del login\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:51
+#, fuzzy
+msgid ""
+"\n"
+" HBAC service group object.\n"
+" "
+msgstr "ನೆಟ್‌ಗ್ರೂಪ್ ವಿವರಣೆ"
+
+#: ipalib/plugins/hbacsvcgroup.py:64
#, fuzzy
-msgid "HBAC Service Groups"
+msgid "HBAC service Groups"
msgstr "ಸೇವೆಗಳು(ಸರ್ವೀಸಸ್)"
-#: ipalib/plugins/hbacsvcgroup.py:71
+#: ipalib/plugins/hbacsvcgroup.py:69
#, fuzzy
msgid "Service group name"
msgstr "ಸೇವೆಯ ಹೆಸರು"
-#: ipalib/plugins/hbacsvcgroup.py:78
+#: ipalib/plugins/hbacsvcgroup.py:76
#, fuzzy
msgid "HBAC service group description"
msgstr "ನೆಟ್‌ಗ್ರೂಪ್ ವಿವರಣೆ"
-#: ipalib/plugins/hbacsvcgroup.py:81
+#: ipalib/plugins/hbacsvcgroup.py:84
#, fuzzy
-msgid "Member services"
-msgstr "ಸದಸ್ಯ ಬಳಕೆದಾರರು"
+msgid ""
+"\n"
+" Add a new HBAC service group.\n"
+" "
+msgstr "\"%(value)s\" ರೋಲ್‌ಗ್ರೂಪನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/hbacsvcgroup.py:85
+#: ipalib/plugins/hbacsvcgroup.py:87
#, fuzzy
-msgid "Member service groups"
-msgstr "ಸದಸ್ಯ ರೋಲ್-ಗ್ರೂಪ್‌ಗಳು"
-
-#: ipalib/plugins/hbacsvcgroup.py:101
-#, fuzzy, python-format
-msgid "Added HBAC Service group \"%(value)s\""
+msgid "Added HBAC service group \"%(value)s\""
msgstr "\"%(value)s\" ರೋಲ್‌ಗ್ರೂಪನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/hbacsvcgroup.py:110
-#, fuzzy, python-format
-msgid "Deleted HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:93
+#, fuzzy
+msgid ""
+"\n"
+" Delete an HBAC service group.\n"
+" "
msgstr "\"%(value)s\" ರೋಲ್‌ಗ್ರೂಪನ್ನು ಅಳಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/hbacsvcgroup.py:119
-#, fuzzy, python-format
-msgid "Modified HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:96
+#, fuzzy
+msgid "Deleted HBAC service group \"%(value)s\""
+msgstr "\"%(value)s\" ರೋಲ್‌ಗ್ರೂಪನ್ನು ಅಳಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/hbacsvcgroup.py:102
+#, fuzzy
+msgid ""
+"\n"
+" Modify an HBAC service group.\n"
+" "
msgstr "\"%(value)s\" ರೋಲ್‌ಗ್ರೂಪನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/host.py:86
+#: ipalib/plugins/hbacsvcgroup.py:105
+#, fuzzy
+msgid "Modified HBAC service group \"%(value)s\""
+msgstr "\"%(value)s\" ರೋಲ್‌ಗ್ರೂಪನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/hbacsvcgroup.py:111
+msgid ""
+"\n"
+" Search for an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:114
+#, fuzzy
+msgid "%(count)d HBAC service group matched"
+msgid_plural "%(count)d HBAC service groups matched"
+msgstr[0] "%(count)d ಬಳಕೆದಾರ ತಾಳೆಯಾಗುತ್ತಿದ್ದಾನೆ"
+msgstr[1] "%(count)d ಬಳಕೆದಾರರು ತಾಳೆಯಾಗುತ್ತಿದ್ದಾರೆ"
+
+#: ipalib/plugins/hbacsvcgroup.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:130
+msgid ""
+"\n"
+" Add members to an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:138
+msgid ""
+"\n"
+" Remove members from an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:20
+msgid ""
+"\n"
+"Hosts/Machines\n"
+"\n"
+"A host represents a machine. It can be used in a number of contexts:\n"
+"- service entries are associated with a host\n"
+"- a host stores the host/ service principal\n"
+"- a host can be used in Host-based Access Control (HBAC) rules\n"
+"- every enrolled client generates a host entry\n"
+"\n"
+"ENROLLMENT:\n"
+"\n"
+"There are three enrollment scenarios when enrolling a new client:\n"
+"\n"
+"1. You are enrolling as a full administrator. The host entry may exist\n"
+" or not. A full administrator is a member of the hostadmin role\n"
+" or the admins group.\n"
+"2. You are enrolling as a limited administrator. The host must already\n"
+" exist. A limited administrator is a member a role with the\n"
+" Host Enrollment privilege.\n"
+"3. The host has been created with a one-time password.\n"
+"\n"
+"A host can only be enrolled once. If a client has enrolled and needs to\n"
+"be re-enrolled, the host entry must be removed and re-created. Note that\n"
+"re-creating the host entry will result in all services for the host being\n"
+"removed, and all SSL certificates associated with those services being\n"
+"revoked.\n"
+"\n"
+"A host can optionally store information such as where it is located,\n"
+"the OS that it runs, etc.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host:\n"
+" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example."
+"com\n"
+"\n"
+" Delete a host:\n"
+" ipa host-del test.example.com\n"
+"\n"
+" Add a new host with a one-time password:\n"
+" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n"
+"\n"
+" Add a new host with a random one-time password:\n"
+" ipa host-add --os='Fedora 12' --random test.example.com\n"
+"\n"
+" Modify information about a host:\n"
+" ipa host-mod --os='Fedora 12' test.example.com\n"
+"\n"
+" Disable the host Kerberos key, SSL certificate and all of its services:\n"
+" ipa host-disable test.example.com\n"
+"\n"
+" Add a host that can manage this host's keytab and certificate:\n"
+" ipa host-add-managedby --hosts=test2 test\n"
+msgstr ""
+
+#: ipalib/plugins/host.py:97
+msgid ""
+"\n"
+" Require at least one dot in the hostname (to support localhost."
+"localdomain)\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:118
+#: ipalib/plugins/host.py:129
+msgid "DNS reverse zone for IP address %(addr)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+msgid "Keytab"
+msgstr ""
+
+#: ipalib/plugins/host.py:185
+msgid ""
+"\n"
+" Verify that we have either an IPv4 or IPv6 address.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:189
+#, fuzzy
+msgid "invalid IP address"
+msgstr "ಇಮೇಲ್ ವಿಳಾಸ"
+
+#: ipalib/plugins/host.py:194
+msgid ""
+"\n"
+" Host object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:231
msgid "Host name"
msgstr "ಹೋಸ್ಟ್ ಹೆಸರು"
-#: ipalib/plugins/host.py:125
+#: ipalib/plugins/host.py:238
msgid "A description of this host"
msgstr "ಈ ಹೋಸ್ಟ್‌ನ ವಿವರಣೆ"
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:242
msgid "Locality"
msgstr "ಪ್ರದೇಶ"
-#: ipalib/plugins/host.py:130
+#: ipalib/plugins/host.py:243
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr "ಹೋಸ್ಟ್ ತಾಣ (e.g. \"Baltimore, MD\")"
-#: ipalib/plugins/host.py:135
+#: ipalib/plugins/host.py:248
msgid "Host location (e.g. \"Lab 2\")"
msgstr "ಹೋಸ್ಟ್ ತಾಣ (e.g. \"Lab 2\")"
-#: ipalib/plugins/host.py:139
+#: ipalib/plugins/host.py:252
msgid "Platform"
msgstr "ಪ್ಲಾಟ್‌ಫಾರ್ಮ್"
-#: ipalib/plugins/host.py:140
+#: ipalib/plugins/host.py:253
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr "ಹೋಸ್ಟ್ ಹಾರ್ಡ್‌ವೇರ್ ಪ್ಲ್ಯಾಟ್‌ಫಾರ್ಮ್ (e.g. \"Lenovo T61\")"
-#: ipalib/plugins/host.py:144
+#: ipalib/plugins/host.py:257
msgid "Operating system"
msgstr "ಕಾರ್ಯಕಾರಿ ವ್ಯವಸ್ಥೆ"
-#: ipalib/plugins/host.py:145
+#: ipalib/plugins/host.py:258
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr "ಹೋಸ್ಟ್ ಕಾರ್ಯಕಾರಿ ವ್ಯವಸ್ಥೆ ಮತ್ತು ಆವೃತ್ತಿ (e.g. \"Fedora 9\")"
-#: ipalib/plugins/host.py:149
+#: ipalib/plugins/host.py:262
msgid "User password"
msgstr "ಬಳಕೆದಾರನ ಗುಪ್ತಪದ"
-#: ipalib/plugins/host.py:150
+#: ipalib/plugins/host.py:263
msgid "Password used in bulk enrollment"
msgstr "ದೊಡ್ಡ ಪ್ರಮಾಣದ ದಾಖಲಾತಿಯಲ್ಲಿ ಬಳಸಲಾದ ಗುಪ್ತಪದ"
-#: ipalib/plugins/host.py:155 ipalib/plugins/service.py:205
+#: ipalib/plugins/host.py:266
+#, fuzzy
+msgid "Generate a random password to be used in bulk enrollment"
+msgstr "ದೊಡ್ಡ ಪ್ರಮಾಣದ ದಾಖಲಾತಿಯಲ್ಲಿ ಬಳಸಲಾದ ಗುಪ್ತಪದ"
+
+#: ipalib/plugins/host.py:271
+#, fuzzy
+msgid "Random password"
+msgstr "ಬಳಕೆದಾರನ ಗುಪ್ತಪದ"
+
+#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
msgid "Base-64 encoded server certificate"
msgstr "Base-64 ಎನ್‌ಕೋಡೆಡ್ ಸರ್ವರ್ ಪ್ರಮಾಣಪತ್ರ"
-#: ipalib/plugins/host.py:158 ipalib/plugins/host.py:274
+#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
msgid "Principal name"
msgstr "Principal ಹೆಸರು"
-#: ipalib/plugins/host.py:162 ipalib/plugins/hostgroup.py:93
-msgid "Member of host-groups"
-msgstr "ಹೋಸ್ಟ್-ಗುಂಪಿನ ಸದಸ್ಯ"
-
-#: ipalib/plugins/host.py:166
-msgid "Member of net-groups"
-msgstr "ನೆಟ್-ಗುಂಪುಗಳ ಸದಸ್ಯ"
-
-#: ipalib/plugins/host.py:170
-msgid "Member of role-groups"
-msgstr "ರೋಲ್-ಗುಂಪುಗಳ ಸದಸ್ಯ"
+#: ipalib/plugins/host.py:306
+msgid ""
+"\n"
+" Add a new host.\n"
+" "
+msgstr ""
-#: ipalib/plugins/host.py:199
-#, python-format
+#: ipalib/plugins/host.py:311
msgid "Added host \"%(value)s\""
msgstr "\"%(value)s\" ಹೋಸ್ಟನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/host.py:202
+#: ipalib/plugins/host.py:316
#, fuzzy
msgid "force host name even if not in DNS"
msgstr "ಈ ಹೋಸ್ಟ್‌ಗೆ Kerberos principalನ ಹೆಸರು"
-#: ipalib/plugins/host.py:235
-#, python-format
+#: ipalib/plugins/host.py:319
+msgid "skip reverse DNS detection"
+msgstr ""
+
+#: ipalib/plugins/host.py:322
+msgid "Add the host to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+msgid "DNS zone %(zone)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:413
+msgid "The host was added but the DNS update failed with: %(exc)s"
+msgstr ""
+
+#: ipalib/plugins/host.py:422
+msgid ""
+"\n"
+" Delete a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:426
msgid "Deleted host \"%(value)s\""
msgstr "\"%(value)s\" ಹೋಸ್ಟನ್ನು ಅಳಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/host.py:269
-#, python-format
+#: ipalib/plugins/host.py:431
+msgid "Remove entries from DNS"
+msgstr ""
+
+#: ipalib/plugins/host.py:537
+msgid ""
+"\n"
+" Modify information about a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:542
msgid "Modified host \"%(value)s\""
msgstr "\"%(value)s\" ಹೋಸ್ಟನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/host.py:275
+#: ipalib/plugins/host.py:549
msgid "Kerberos principal name for this host"
msgstr "ಈ ಹೋಸ್ಟ್‌ಗೆ Kerberos principalನ ಹೆಸರು"
-#: ipalib/plugins/host.py:319
-#, python-format
+#: ipalib/plugins/host.py:618
+msgid ""
+"\n"
+" Search for hosts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:623
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] "%(count)d ಹೋಸ್ಟ್‌ ತಾಳೆಯಾಗುತ್ತಿದೆ"
msgstr[1] "%(count)d ಹೋಸ್ಟ್‌ಗಳು ತಾಳೆಯಾಗುತ್ತಿವೆ"
-#: ipalib/plugins/host.py:337 ipalib/plugins/service.py:84
-msgid "Keytab"
+#: ipalib/plugins/host.py:643
+msgid ""
+"\n"
+" Display information about a host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:359 ipalib/plugins/service.py:399
-#, fuzzy, python-format
-msgid "Removed kerberos key from \"%(value)s\""
-msgstr "\"%(value)s\" ರೋಲ್‌ಗ್ರೂಪನ್ನು ಅಳಿಸಲಾಗಿದೆ"
+#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#, fuzzy
+msgid "file to store certificate in"
+msgstr "Base-64 ಎನ್‌ಕೋಡೆಡ್ ಸರ್ವರ್ ಪ್ರಮಾಣಪತ್ರ"
+
+#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#, fuzzy
+msgid "Certificate stored in file '%(file)s'"
+msgstr "ಪ್ರಮಾಣಪತ್ರದ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಆಗುತ್ತಿಲ್ಲ: %(error)s"
+
+#: ipalib/plugins/host.py:684
+msgid ""
+"\n"
+" Disable the Kerberos key, SSL certificate and all services of a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:688
+#, fuzzy
+msgid "Disabled host \"%(value)s\""
+msgstr "\"%(value)s\" ಹೋಸ್ಟನ್ನು ಅಳಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/host.py:368
-msgid "Host principal has no kerberos key"
+#: ipalib/plugins/host.py:770
+msgid ""
+"\n"
+" Add hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:781
+msgid ""
+"\n"
+" Remove hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:20
+msgid ""
+"\n"
+"Groups of hosts.\n"
+"\n"
+"Manage groups of hosts. This is useful for applying access control to a\n"
+"number of hosts by using Host-based Access Control.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host group:\n"
+" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n"
+"\n"
+" Add another new host group:\n"
+" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n"
+"\n"
+" Add members to the hostgroup:\n"
+" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n"
+"\n"
+" Add a hostgroup as a member of another hostgroup:\n"
+" ipa hostgroup-add-member --hostgroups=baltimore maryland\n"
+"\n"
+" Remove a host from the hostgroup:\n"
+" ipa hostgroup-remove-member --hosts=box2 baltimore\n"
+"\n"
+" Display a host group:\n"
+" ipa hostgroup-show baltimore\n"
+"\n"
+" Delete a hostgroup:\n"
+" ipa hostgroup-del baltimore\n"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:55
+msgid ""
+"\n"
+" Hostgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/hostgroup.py:78
msgid "Host-group"
msgstr "ಹೋಸ್ಟ್-ಗುಂಪು"
-#: ipalib/plugins/hostgroup.py:75
+#: ipalib/plugins/hostgroup.py:79
msgid "Name of host-group"
msgstr "ಹೋಸ್ಟ್-ಗುಂಪಿನ ಹೆಸರು"
-#: ipalib/plugins/hostgroup.py:82
+#: ipalib/plugins/hostgroup.py:86
msgid "A description of this host-group"
msgstr "ಈ ಹೋಸ್ಟ್-ಗ್ರೂಪ್‌ನ ವಿವರಣೆ"
-#: ipalib/plugins/hostgroup.py:85
-msgid "Member hosts"
-msgstr "ಸದಸ್ಯ ಹೋಸ್ಟ್‌ಗಳು"
-
-#: ipalib/plugins/hostgroup.py:89
-msgid "Member host-groups"
-msgstr "ಸದಸ್ಯ ಹೋಸ್ಟ್-ಗ್ರೂಪ್‌ಗಳು"
+#: ipalib/plugins/hostgroup.py:94
+msgid ""
+"\n"
+" Add a new hostgroup.\n"
+" "
+msgstr ""
-#: ipalib/plugins/hostgroup.py:106
-#, python-format
+#: ipalib/plugins/hostgroup.py:98
msgid "Added hostgroup \"%(value)s\""
msgstr "\"%(value)s\" ಹೋಸ್ಟ್‌ಗ್ರೂಪನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/hostgroup.py:116
-#, python-format
+#: ipalib/plugins/hostgroup.py:104
+msgid ""
+"\n"
+" Delete a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:108
msgid "Deleted hostgroup \"%(value)s\""
msgstr "\"%(value)s\" ಹೋಸ್ಟ್‌ಗ್ರೂಪನ್ನು ಅಳಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/hostgroup.py:126
-#, python-format
+#: ipalib/plugins/hostgroup.py:114
+msgid ""
+"\n"
+" Modify a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:118
msgid "Modified hostgroup \"%(value)s\""
msgstr "\"%(value)s\" ಹೋಸ್ಟ್‌ಗ್ರೂಪನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/hostgroup.py:137
-#, python-format
+#: ipalib/plugins/hostgroup.py:124
+msgid ""
+"\n"
+" Search for hostgroups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:128
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] "%(count)d ಹೋಸ್ಟ್‌ಗ್ರೂಪ್‌ ತಾಳೆಯಾಗುತ್ತಿದೆ"
msgstr[1] "%(count)d ಹೋಸ್ಟ್‌ಗ್ರೂಪ್‌ಗಳು ತಾಳೆಯಾಗುತ್ತಿವೆ"
-#: ipalib/plugins/internal.py:39
+#: ipalib/plugins/hostgroup.py:136
+msgid ""
+"\n"
+" Display information about a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:144
+msgid ""
+"\n"
+" Add members to a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:152
+msgid ""
+"\n"
+" Remove members from a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:22
+msgid ""
+"\n"
+"Plugins not accessible directly through the CLI, commands used internally\n"
+msgstr ""
+
+#: ipalib/plugins/internal.py:36
+msgid ""
+"\n"
+" Export plugin meta-data for the webUI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:44
+msgid "Name of object to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:47
+#, fuzzy
+msgid "Name of method to export"
+msgstr "ಹೋಸ್ಟ್-ಗುಂಪಿನ ಹೆಸರು"
+
+#: ipalib/plugins/internal.py:52
+msgid "Dict of JSON encoded IPA Objects"
+msgstr ""
+
+#: ipalib/plugins/internal.py:53
+msgid "Dict of JSON encoded IPA Methods"
+msgstr ""
+
+#: ipalib/plugins/internal.py:96
msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:41
+#: ipalib/plugins/internal.py:99
+#, fuzzy
+msgid "Attribute"
+msgstr "ವೈಶಿಷ್ಟ್ಯಗಳು"
+
+#: ipalib/plugins/internal.py:102
+#, fuzzy
+msgid "Add Automount Location"
+msgstr "ಆಟೊಮೌಂಟ್ ತಾಣದ ಹೆಸರು"
+
+#: ipalib/plugins/internal.py:103
+#, fuzzy
+msgid "Automount Location Settings"
+msgstr "ಆಟೊಮೌಂಟ್ ತಾಣದ ಹೆಸರು"
+
+#: ipalib/plugins/internal.py:106
+#, fuzzy
+msgid "Add Automount Map"
+msgstr "ಮ್ಯಾಪ್‌ಗಳ ಆಟೋಮೌಂಟ್"
+
+#: ipalib/plugins/internal.py:109
+#, fuzzy
+msgid "Add Automount Key"
+msgstr "ಕೀಗಳ ಆಟೋಮೌಂಟ್"
+
+#: ipalib/plugins/internal.py:112
+msgid "Unspecified"
+msgstr ""
+
+#: ipalib/plugins/internal.py:113
+msgid "Key Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:114
+msgid "CA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:115
+msgid "Affiliation Changed"
+msgstr ""
+
+#: ipalib/plugins/internal.py:116
+msgid "Superseded"
+msgstr ""
+
+#: ipalib/plugins/internal.py:117
+#, fuzzy
+msgid "Cessation of Operation"
+msgstr "ಕಡತದ ಕಾರ್ಯಾಚರಣೆ"
+
+#: ipalib/plugins/internal.py:118
+#, fuzzy
+msgid "Certificate Hold"
+msgstr "ಪ್ರಮಾಣಪತ್ರ"
+
+#: ipalib/plugins/internal.py:119
+msgid "Remove from CRL"
+msgstr ""
+
+#: ipalib/plugins/internal.py:120
+msgid "Privilege Withdrawn"
+msgstr ""
+
+#: ipalib/plugins/internal.py:121
+msgid "AA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:122
+msgid ""
+"To confirm your intention to revoke this certificate, select a reason from "
+"the pull-down list, and click the \"Revoke\" button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:124
+msgid "Note"
+msgstr ""
+
+#: ipalib/plugins/internal.py:125
+msgid "Reason for Revocation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:126
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\" "
+"button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:128
+msgid "Issued To"
+msgstr ""
+
+#: ipalib/plugins/internal.py:129
+#, fuzzy
+msgid "Common Name"
+msgstr "ಹೋಸ್ಟ್ ಹೆಸರು"
+
+#: ipalib/plugins/internal.py:130
+msgid "Organization"
+msgstr ""
+
+#: ipalib/plugins/internal.py:131
+msgid "Organizational Unit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:133
+msgid "Issued By"
+msgstr ""
+
+#: ipalib/plugins/internal.py:134
+msgid "Validity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:135
+msgid "Issued On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:136
+msgid "Expires On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:137
+msgid "Fingerprints"
+msgstr ""
+
+#: ipalib/plugins/internal.py:138
+msgid "SHA1 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:139
+msgid "MD5 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:140
+msgid "Enter the Base64-encoded CSR below"
+msgstr ""
+
+#: ipalib/plugins/internal.py:141
+#, fuzzy
+msgid "Valid Certificate Present"
+msgstr "ಪ್ರಮಾಣಪತ್ರದ ವಿಷಯ ಮೂಲ"
+
+#: ipalib/plugins/internal.py:142
+#, fuzzy
+msgid "New Certificate"
+msgstr "ಪ್ರಮಾಣಪತ್ರ"
+
+#: ipalib/plugins/internal.py:143
+#, fuzzy
+msgid "Certificate Revoked"
+msgstr "ಪ್ರಮಾಣಪತ್ರ"
+
+#: ipalib/plugins/internal.py:144
+#, fuzzy
+msgid "No Valid Certificate"
+msgstr "ಪ್ರಮಾಣಪತ್ರ"
+
+#: ipalib/plugins/internal.py:145
+msgid "Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:146
+msgid "Issue New Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:147
+msgid "Revoke Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:148
+msgid "Restore Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:152
+#, fuzzy
+msgid "Name"
+msgstr "ಹೋಸ್ಟ್ ಹೆಸರು"
+
+#: ipalib/plugins/internal.py:155
+msgid "Add Delegation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:158
+msgid "Add DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:159
+msgid "DNS Zone Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:162
+msgid "Add DNS Resource Record"
+msgstr ""
+
+#: ipalib/plugins/internal.py:163
+#, fuzzy
+msgid "Resource"
+msgstr "ರೀಸೊರ್ಸ್ ಹೆಸರು"
+
+#: ipalib/plugins/internal.py:165
+msgid "Data"
+msgstr "ದತ್ತಾಂಶ"
+
+#: ipalib/plugins/internal.py:166
+msgid "Records for DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:169
+#, fuzzy
+msgid "Add Group"
+msgstr "ಗುಂಪು"
+
+#: ipalib/plugins/internal.py:170
+#, fuzzy
+msgid "Group Settings"
+msgstr "ಗುಂಪಿನ ವಿವರಣೆ"
+
+#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
+#, fuzzy
+msgid "Is this a POSIX group?"
+msgstr "posix ಗುಂಪಿನಂತೆ ರಚಿಸಬೇಕೆ?"
+
+#: ipalib/plugins/internal.py:174
+msgid "Add HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:306
+msgid "Active"
+msgstr ""
+
+#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:308
+msgid "Inactive"
+msgstr ""
+
+#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
+#, fuzzy
+msgid "Rule status"
+msgstr "ಬೇಡಿಕೆ ಸ್ಥಿತಿ"
+
+#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
+msgid "Who"
+msgstr ""
+
+#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
+msgid "Anyone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
+msgid "Specified Users and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:183
+#, fuzzy
+msgid "Accessing"
+msgstr "ಪ್ರವೇಶದ ಸಮಯ"
+
+#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
+#, fuzzy
+msgid "Any Host"
+msgstr "ಹೋಸ್ಟ್‌ಗಳು"
+
+#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
+msgid "Specified Hosts and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:186
+#, fuzzy
+msgid "Via Service"
+msgstr "ಸೇವೆಗಳು(ಸರ್ವೀಸಸ್)"
+
+#: ipalib/plugins/internal.py:187
+#, fuzzy
+msgid "Any Service"
+msgstr "ಸೇವೆಗಳು(ಸರ್ವೀಸಸ್)"
+
+#: ipalib/plugins/internal.py:188
+#, fuzzy
+msgid "Specified Services and Groups"
+msgstr "ಸೇವೆಗಳು(ಸರ್ವೀಸಸ್)"
+
+#: ipalib/plugins/internal.py:189
+msgid "From"
+msgstr ""
+
+#: ipalib/plugins/internal.py:192
+#, fuzzy
+msgid "Add HBAC Service"
+msgstr "ಸೇವೆಗಳು(ಸರ್ವೀಸಸ್)"
+
+#: ipalib/plugins/internal.py:195
+#, fuzzy
+msgid "Add HBAC Service Group"
+msgstr "ಸೇವೆಗಳು(ಸರ್ವೀಸಸ್)"
+
+#: ipalib/plugins/internal.py:199
+#, fuzzy
+msgid "Add Host"
+msgstr "ಹೋಸ್ಟ್‌ಗಳು"
+
+#: ipalib/plugins/internal.py:200
+#, fuzzy
+msgid "Host Certificate"
+msgstr "ಪ್ರಮಾಣಪತ್ರ"
+
+#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
+#, fuzzy
+msgid "Host Name"
+msgstr "ಹೋಸ್ಟ್ ಹೆಸರು"
+
+#: ipalib/plugins/internal.py:202
+msgid "Host Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:203
+msgid "Enrolled?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:204
+msgid "Enrollment"
+msgstr ""
+
+#: ipalib/plugins/internal.py:205
+msgid "Fully Qualified Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
+msgid "Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:208
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
+msgid "Delete Key, Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:211
+msgid "Enroll via One-Time-Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:212
+msgid "Set OTP"
+msgstr ""
+
+#: ipalib/plugins/internal.py:213
+msgid "One-Time-Password has been set."
+msgstr ""
+
+#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
+msgid "Unprovisioning ${entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:215
+msgid "Are you sure you want to unprovision this host?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
+msgid "Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:219
+#, fuzzy
+msgid "Add Host Group"
+msgstr "ಹೋಸ್ಟ್ ಗುಂಪುಗಳು"
+
+#: ipalib/plugins/internal.py:220
+#, fuzzy
+msgid "Host Group Settings"
+msgstr "ಹೋಸ್ಟ್ ಗುಂಪುಗಳು"
+
+#: ipalib/plugins/internal.py:223
+#, fuzzy
+msgid "Kerberos ticket policy"
+msgstr "Kerberos principal"
+
+#: ipalib/plugins/internal.py:226
+#, fuzzy
+msgid "Add Netgroup"
+msgstr "ನೆಟ್‌ಗ್ರೂಪ್‌ಗಳು"
+
+#: ipalib/plugins/internal.py:227
+#, fuzzy
+msgid "Netgroup Settings"
+msgstr "ನೆಟ್‌ಗ್ರೂಪ್ ವಿವರಣೆ"
+
+#: ipalib/plugins/internal.py:230
+#, fuzzy
+msgid "Add Permission"
+msgstr "ಅನುಮತಿಗಳು"
+
+#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
+msgid "Identity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:233
+#, fuzzy
+msgid "Target"
+msgstr "Target ಗುಂಪು"
+
+#: ipalib/plugins/internal.py:235
+#, fuzzy
+msgid "By Subtree"
+msgstr "ಉಪವೃಕ್ಷ"
+
+#: ipalib/plugins/internal.py:236
+#, fuzzy
+msgid "Target Group"
+msgstr "Target ಗುಂಪು"
+
+#: ipalib/plugins/internal.py:237
+msgid "Object By Type"
+msgstr ""
+
+#: ipalib/plugins/internal.py:238
+msgid "Permission with invalid target specification"
+msgstr ""
+
+#: ipalib/plugins/internal.py:241
+msgid "Add Privilege"
+msgstr ""
+
+#: ipalib/plugins/internal.py:242
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:245
+#, fuzzy
+msgid "Add Password Policy"
+msgstr "ಗುಪ್ತಪದ"
+
+#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
+#, fuzzy
+msgid "Password Policy"
+msgstr "ಗುಪ್ತಪದ"
+
+#: ipalib/plugins/internal.py:249
+msgid "Add Role"
+msgstr ""
+
+#: ipalib/plugins/internal.py:250
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:253
+msgid "Add Self Service Definition"
+msgstr ""
+
+#: ipalib/plugins/internal.py:256
+#, fuzzy
+msgid "Add Service"
+msgstr "ಸೇವೆಗಳು(ಸರ್ವೀಸಸ್)"
+
+#: ipalib/plugins/internal.py:257
+#, fuzzy
+msgid "Service Certificate"
+msgstr "ಪ್ರಮಾಣಪತ್ರ"
+
+#: ipalib/plugins/internal.py:258
+#, fuzzy
+msgid "Service Settings"
+msgstr "ಸೇವೆಗಳು(ಸರ್ವೀಸಸ್)"
+
+#: ipalib/plugins/internal.py:260
+#, fuzzy
+msgid "Provisioning"
+msgstr "ಅನುಮತಿಗಳು"
+
+#: ipalib/plugins/internal.py:261
+#, fuzzy
+msgid "Service"
+msgstr "ಸೇವೆಗಳು(ಸರ್ವೀಸಸ್)"
+
+#: ipalib/plugins/internal.py:263
+#, fuzzy
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr "Kerberos principal"
+
+#: ipalib/plugins/internal.py:267
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:271
+#, fuzzy
+msgid "Add Sudo Command"
+msgstr "ಗುಂಪಿನ ಹೆಸರು"
+
+#: ipalib/plugins/internal.py:275
+#, fuzzy
+msgid "Add Sudo Command Group"
+msgstr "ಗುಂಪಿನ ಹೆಸರು"
+
+#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:279
+msgid "Add Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:287
+#, fuzzy
+msgid "Access this host"
+msgstr "ಪ್ರವೇಶದ ಸಮಯ"
+
+#: ipalib/plugins/internal.py:290
+#, fuzzy
+msgid "Run Commands"
+msgstr "ಗುಂಪಿನ ಹೆಸರು"
+
+#: ipalib/plugins/internal.py:291
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:292
+#, fuzzy
+msgid "Specified Commands and Groups"
+msgstr "ಗುಂಪಿನ ಹೆಸರು"
+
+#: ipalib/plugins/internal.py:293
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:294
+#, fuzzy
+msgid "Any Group"
+msgstr "ಗುಂಪು"
+
+#: ipalib/plugins/internal.py:295
+#, fuzzy
+msgid "Specified Groups"
+msgstr "ಸೇವೆಗಳು(ಸರ್ವೀಸಸ್)"
+
+#: ipalib/plugins/internal.py:297
+#, fuzzy
+msgid "External"
+msgstr "ಹೊರಗಿನ ಹೋಸ್ಟ್"
+
+#: ipalib/plugins/internal.py:300
+#, fuzzy
+msgid "Add User"
+msgstr "ಬಳಕೆದಾರ"
+
+#: ipalib/plugins/internal.py:301
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:302
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:303
+#, fuzzy
+msgid "Mailing Address"
+msgstr "ಇಮೇಲ್ ವಿಳಾಸ"
+
+#: ipalib/plugins/internal.py:304
+#, fuzzy
+msgid "Employee Information"
+msgstr "ಮೌಂಟ್ ಮಾಹಿತಿ"
+
+#: ipalib/plugins/internal.py:305
+#, fuzzy
+msgid "Misc. Information"
+msgstr "ಮೌಂಟ್ ಮಾಹಿತಿ"
+
+#: ipalib/plugins/internal.py:307
+msgid "Click to Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:309
+msgid "Click to Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:310
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:311
+#, fuzzy
+msgid "Reset Password"
+msgstr "ಬಳಕೆದಾರನ ಗುಪ್ತಪದ"
+
+#: ipalib/plugins/internal.py:312
+#, fuzzy
+msgid "New Password"
+msgstr "ಗುಪ್ತಪದ"
+
+#: ipalib/plugins/internal.py:313
+#, fuzzy
+msgid "Repeat Password"
+msgstr "ಗುಪ್ತಪದ"
+
+#: ipalib/plugins/internal.py:314
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:315
+#, fuzzy
+msgid "Passwords must match"
+msgstr "ಗುಪ್ತಪದಗಳು ಹೊಂದಾಣಿಕೆಯಾಗುತ್ತಿಲ್ಲ"
+
+#: ipalib/plugins/internal.py:319
msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:42
+#: ipalib/plugins/internal.py:320
+msgid "Add and Add Another"
+msgstr ""
+
+#: ipalib/plugins/internal.py:321
+msgid "Add and Edit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:322
+msgid "Add and Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:323
+msgid "Add Many"
+msgstr ""
+
+#: ipalib/plugins/internal.py:324
+msgid "Back to List"
+msgstr ""
+
+#: ipalib/plugins/internal.py:325
+#, fuzzy
+msgid "Cancel"
+msgstr "ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ."
+
+#: ipalib/plugins/internal.py:326
+msgid "Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:327
+msgid "Enroll"
+msgstr ""
+
+#: ipalib/plugins/internal.py:328
msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:43
+#: ipalib/plugins/internal.py:329
+msgid "Get"
+msgstr ""
+
+#: ipalib/plugins/internal.py:330
+msgid "Issue"
+msgstr ""
+
+#: ipalib/plugins/internal.py:331
+msgid "OK"
+msgstr ""
+
+#: ipalib/plugins/internal.py:332
msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:333
+msgid "Delete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:334
+msgid "Restore"
+msgstr ""
+
+#: ipalib/plugins/internal.py:335
+msgid "Retry"
+msgstr ""
+
+#: ipalib/plugins/internal.py:336
+#, fuzzy
+msgid "Revoke"
+msgstr "ರದ್ದು ಮಾಡಲಾಗಿದೆ"
+
+#: ipalib/plugins/internal.py:337
msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:45
-msgid "Enroll"
+#: ipalib/plugins/internal.py:338
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:46
-msgid "Delete"
+#: ipalib/plugins/internal.py:341
+msgid "Available"
+msgstr ""
+
+#: ipalib/plugins/internal.py:342
+msgid "This page has unsaved changes. Please save or revert."
+msgstr ""
+
+#: ipalib/plugins/internal.py:343
+msgid "Dirty"
+msgstr ""
+
+#: ipalib/plugins/internal.py:344
+#, fuzzy
+msgid "Hide already enrolled."
+msgstr "ಈ ನಮೂದು ಈಗಾಗಲೇ ಲಾಕ್ ಆಗಿದೆ"
+
+#: ipalib/plugins/internal.py:345
+msgid "Select ${entity} to be removed."
+msgstr ""
+
+#: ipalib/plugins/internal.py:346
+msgid "Remove ${entity}."
+msgstr ""
+
+#: ipalib/plugins/internal.py:347
+msgid "Prospective"
+msgstr ""
+
+#: ipalib/plugins/internal.py:350
+msgid "Managed by"
+msgstr ""
+
+#: ipalib/plugins/internal.py:351
+#, fuzzy
+msgid "Member"
+msgstr "ಸದಸ್ಯ"
+
+#: ipalib/plugins/internal.py:352
+msgid "Indirect Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:353
+#, fuzzy
+msgid "Member Of"
+msgstr "ಸದಸ್ಯ"
+
+#: ipalib/plugins/internal.py:354
+msgid "Indirect Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
+msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:49
+#: ipalib/plugins/internal.py:358
+msgid "Search"
+msgstr ""
+
+#: ipalib/plugins/internal.py:362
msgid "Quick Links"
msgstr ""
-#: ipalib/plugins/internal.py:50
+#: ipalib/plugins/internal.py:363
msgid "Select All"
msgstr ""
-#: ipalib/plugins/internal.py:51
+#: ipalib/plugins/internal.py:364
msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Do you really want to delete the selected entries?"
+#: ipalib/plugins/internal.py:365
+msgid "Are you sure you want to delete selected entries?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:366
+msgid ""
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
msgstr ""
-#: ipalib/plugins/internal.py:55
-msgid "Identity Details"
+#: ipalib/plugins/internal.py:370
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:56
-msgid "Account Details"
+#: ipalib/plugins/internal.py:371
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:57
-msgid "Contact Details"
+#: ipalib/plugins/internal.py:372
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:58
+#: ipalib/plugins/internal.py:373
+msgid "Back to Top"
+msgstr ""
+
+#: ipalib/plugins/internal.py:377
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:378
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:379
#, fuzzy
-msgid "Mailing Address"
-msgstr "ಇಮೇಲ್ ವಿಳಾಸ"
+msgid "IPA Server"
+msgstr "ಸೇವೆಯ ಹೆಸರು"
+
+#: ipalib/plugins/internal.py:380
+msgid "Sudo"
+msgstr ""
-#: ipalib/plugins/internal.py:59
-msgid " Employee Information"
+#: ipalib/plugins/internal.py:381
+msgid "Host Based Access Control"
msgstr ""
-#: ipalib/plugins/internal.py:60
+#: ipalib/plugins/internal.py:382
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:383
#, fuzzy
-msgid "Misc. Information"
-msgstr "ಮೌಂಟ್ ಮಾಹಿತಿ"
+msgid "Automount"
+msgstr "ಮ್ಯಾಪ್‌ಗಳ ಆಟೋಮೌಂಟ್"
-#: ipalib/plugins/internal.py:61
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:386
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:66
-msgid "Name of object to export"
+#: ipalib/plugins/internal.py:387
+msgid "${other_entity} enrolled in ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:71
-msgid "Dict of JSON encoded IPA Objects"
+#: ipalib/plugins/internal.py:388
+msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:389
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:72
+#: ipalib/plugins/internal.py:392
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:395
+msgid ""
+"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."
+msgstr ""
+
+#: ipalib/plugins/internal.py:399
msgid "Dict of I18N messages"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:59
+#: ipalib/plugins/kerberos.py:20
+msgid ""
+"\n"
+"Backend plugin for Kerberos.\n"
+"\n"
+"This wraps the python-kerberos and python-krbV bindings.\n"
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:35
+msgid ""
+"\n"
+" Kerberos backend plugin.\n"
+"\n"
+" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
+" bindings also). Importantly, this plugin does correct Unicode\n"
+" encoding/decoding of values going-to/coming-from the bindings.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:44
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:50
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:56
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:62
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:68
+msgid ""
+"\n"
+" Return the default ccache file name.\n"
+"\n"
+" This will return something like '/tmp/krb5cc_500'.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:79
+msgid ""
+"\n"
+" Return the principal name in default credential cache.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'. If no "
+"credential\n"
+" cache exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:91
+msgid ""
+"\n"
+" Return the realm from the default credential cache.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'. If no credential "
+"cache\n"
+" exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:103
+msgid ""
+"\n"
+" Return the principal from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:111
+msgid ""
+"\n"
+" Return the realm from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:19
+msgid ""
+"\n"
+"Kerberos ticket policy\n"
+"\n"
+"There is a single Kerberos ticket policy. This policy defines the\n"
+"maximum ticket lifetime and the maximum renewal age, the period during\n"
+"which the ticket is renewable.\n"
+"\n"
+"You can also create a per-user ticket policy by specifying the user login.\n"
+"\n"
+"For changes to the global policy to take effect, restarting the KDC service\n"
+"is required, which can be achieved using:\n"
+"\n"
+"service krb5kdc restart\n"
+"\n"
+"Changes to per-user policies take effect immediately for newly requested\n"
+"tickets (e.g. when the user next runs kinit).\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Display the current Kerberos ticket policy:\n"
+" ipa krbtpolicy-show\n"
+"\n"
+" Reset the policy to the default:\n"
+" ipa krbtpolicy-reset\n"
+"\n"
+" Modify the policy to 8 hours max life, 1-day max renewal:\n"
+" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n"
+"\n"
+" Display effective Kerberos ticket policy for user 'admin':\n"
+" ipa krbtpolicy-show admin\n"
+"\n"
+" Reset per-user policy for user 'admin':\n"
+" ipa krbtpolicy-reset admin\n"
+"\n"
+" Modify per-user policy for user 'admin':\n"
+" ipa krbtpolicy-mod admin --maxlife=3600\n"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:71
+#, fuzzy
+msgid ""
+"\n"
+" Kerberos Ticket Policy object\n"
+" "
+msgstr "Kerberos principal"
+
+#: ipalib/plugins/krbtpolicy.py:79
#, fuzzy
msgid "Kerberos Ticket Policy"
msgstr "Kerberos principal"
-#: ipalib/plugins/krbtpolicy.py:64 ipalib/plugins/passwd.py:52
+#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
msgid "User name"
msgstr "ಬಳಕೆದಾರನ ಹೆಸರು"
-#: ipalib/plugins/krbtpolicy.py:65
+#: ipalib/plugins/krbtpolicy.py:85
msgid "Manage ticket policy for specific user"
msgstr "ನಿಗದಿತ ಬಳಕೆದಾರನಿಗೆ ಟಿಕೆಟ್ ಪಾಲಿಸಿಯನ್ನು ನಿರ್ವಹಿಸು"
-#: ipalib/plugins/krbtpolicy.py:70
+#: ipalib/plugins/krbtpolicy.py:90
msgid "Max life"
msgstr "ಗರಿಷ್ಟ ಜೀವಿತಾವಧಿ"
-#: ipalib/plugins/krbtpolicy.py:71
+#: ipalib/plugins/krbtpolicy.py:91
#, fuzzy
msgid "Maximum ticket life (seconds)"
msgstr "ಗರಿಷ್ಟ ಟಿಕೆಟ್ ಜೀವಿತಾವಧಿ"
-#: ipalib/plugins/krbtpolicy.py:75
+#: ipalib/plugins/krbtpolicy.py:96
msgid "Max renew"
msgstr "ಗರಿಷ್ಟ ನವೀಕರಣ"
-#: ipalib/plugins/krbtpolicy.py:76
+#: ipalib/plugins/krbtpolicy.py:97
#, fuzzy
msgid "Maximum renewable age (seconds)"
msgstr "ಗರಿಷ್ಟ ನವೀಕರಿಸಬಲ್ಲ ಆಯಸ್ಸು"
-#: ipalib/plugins/migration.py:44
-#, python-format
+#: ipalib/plugins/krbtpolicy.py:111
+#, fuzzy
+msgid ""
+"\n"
+" Modify Kerberos ticket policy.\n"
+" "
+msgstr "Kerberos principal"
+
+#: ipalib/plugins/krbtpolicy.py:125
+msgid ""
+"\n"
+" Display the current Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:149
+msgid ""
+"\n"
+" Reset Kerberos ticket policy to the default values.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:19
+msgid ""
+"\n"
+"Migration to IPA\n"
+"\n"
+"Migrate users and groups from an LDAP server to IPA.\n"
+"\n"
+"This performs an LDAP query against the remote server searching for\n"
+"users and groups in a container. In order to migrate passwords you need\n"
+"to bind as a user that can read the userPassword attribute on the remote\n"
+"server. This is generally restricted to high-level admins such as\n"
+"cn=Directory Manager in 389-ds (this is the default bind user).\n"
+"\n"
+"The default user container is ou=People.\n"
+"\n"
+"The default group container is ou=Groups.\n"
+"\n"
+"Users and groups that already exist on the IPA server are skipped.\n"
+"\n"
+"Two LDAP schemas define how group members are stored: RFC2307 and\n"
+"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n"
+"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n"
+"\n"
+"Migrated users do not have Kerberos credentials, they have only their\n"
+"LDAP password. To complete the migration process, users need to go\n"
+"to http://ipa.example.com/ipa/migration and authenticate using their\n"
+"LDAP password in order to generate their Kerberos credentials.\n"
+"\n"
+"Migration is disabled by default. Use the command ipa config-mod to\n"
+"enable it:\n"
+"\n"
+" ipa config-mod --enable-migration=TRUE\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" The simplest migration, accepting all defaults:\n"
+" ipa migrate-ds ldap://ds.example.com:389\n"
+"\n"
+" Specify the user and group container. This can be used to migrate user and\n"
+" group data from an IPA v1 server:\n"
+" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-"
+"container='cn=groups,cn=accounts' ldap://ds.example.com:389\n"
+msgstr ""
+
+#: ipalib/plugins/migration.py:78
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:45
+#: ipalib/plugins/migration.py:79
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:169
+#: ipalib/plugins/migration.py:175
+msgid ""
+"\n"
+" Convert usernames in member attributes to work in IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:220
+#, fuzzy
+msgid "Invalid LDAP URI."
+msgstr "LDAP URI"
+
+#: ipalib/plugins/migration.py:225
+msgid ""
+"\n"
+" Migrate users and groups from DS to IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:266
msgid "LDAP URI"
msgstr "LDAP URI"
-#: ipalib/plugins/migration.py:170
+#: ipalib/plugins/migration.py:267
msgid "LDAP URI of DS server to migrate from"
msgstr "LDAP URI of DS server to migrate from"
-#: ipalib/plugins/migration.py:174
+#: ipalib/plugins/migration.py:272
#, fuzzy
msgid "bind password"
msgstr "ಬಳಕೆದಾರನ ಗುಪ್ತಪದ"
-#: ipalib/plugins/migration.py:181
+#: ipalib/plugins/migration.py:279
msgid "Bind DN"
msgstr "ಬೈಂಡ್ DN"
-#: ipalib/plugins/migration.py:187
+#: ipalib/plugins/migration.py:285
msgid "User container"
msgstr "ಬಳಕೆದಾರನ ಕಂಟೇನರ್"
-#: ipalib/plugins/migration.py:188
+#: ipalib/plugins/migration.py:286
msgid "RDN of container for users in DS"
msgstr "DSನಲ್ಲಿರುವ ಬಳಕೆದಾರರಿಗಾಗಿ RDNನ ಕಂಟೇನರ್ "
-#: ipalib/plugins/migration.py:194
+#: ipalib/plugins/migration.py:292
msgid "Group container"
msgstr "ಗುಂಪಿನ ಕಂಟೇನರ್"
-#: ipalib/plugins/migration.py:195
+#: ipalib/plugins/migration.py:293
msgid "RDN of container for groups in DS"
msgstr "DSನಲ್ಲಿರುವ ಗುಂಪುಗಳಿಗಾಗಿ RDNನ ಕಂಟೇನರ್ "
-#: ipalib/plugins/migration.py:200
-msgid "Continous operation mode. Errors are reported but the process continues"
+#: ipalib/plugins/migration.py:299
+msgid "User object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:300
+#, fuzzy
+msgid ""
+"Comma-separated list of objectclasses used to search for user entries in DS"
+msgstr "A comma-separated list of fields to search when searching for users"
+
+#: ipalib/plugins/migration.py:306
+msgid "Group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:307
+#, fuzzy
+msgid ""
+"Comma-separated list of objectclasses used to search for group entries in DS"
+msgstr "A comma-separated list of fields to search when searching for users"
+
+#: ipalib/plugins/migration.py:313
+msgid "LDAP schema"
+msgstr ""
+
+#: ipalib/plugins/migration.py:314
+msgid ""
+"The schema used on the LDAP server. Supported values are RFC2307 and "
+"RFC2307bis. The default is RFC2307bis"
+msgstr ""
+
+#: ipalib/plugins/migration.py:320
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:208
+#: ipalib/plugins/migration.py:328
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:212
+#: ipalib/plugins/migration.py:332
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:216
+#: ipalib/plugins/migration.py:336
#, fuzzy
msgid "False if migration mode was disabled."
msgstr "ಮೈಗ್ರೇಶನ್ ಬಗೆಯನ್ನು ಶಕ್ತಗೊಳಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/migration.py:220
-#, fuzzy, python-format
+#: ipalib/plugins/migration.py:340
+#, fuzzy
msgid "comma-separated list of %s to exclude from migration"
msgstr "Comma-separated ವೈಶಿಷ್ಟ್ಯಗಳ ಪಟ್ಟಿ"
-#: ipalib/plugins/migration.py:222
+#: ipalib/plugins/migration.py:342
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
-"migration process might be uncomplete\n"
+"migration process might be incomplete\n"
msgstr ""
-#: ipalib/plugins/migration.py:227
+#: ipalib/plugins/migration.py:347
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:230
+#: ipalib/plugins/migration.py:350
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -1568,16 +4989,55 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:297
-#, python-format
+#: ipalib/plugins/migration.py:358
+msgid ""
+"\n"
+" Call get_options of the baseclass and add \"exclude\" options\n"
+" for each type of object being migrated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:375
+msgid ""
+"\n"
+" Convert all \"exclude\" option values to lower-case.\n"
+"\n"
+" Also, empty List parameters are converted to None, but the "
+"migration\n"
+" plugin doesn't like that - convert back to empty lists.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:399
+msgid ""
+"\n"
+" Migrate objects from DS to LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:425
msgid "Container for %(container)s not found"
msgstr ""
+#: ipalib/plugins/misc.py:20
+msgid ""
+"\n"
+"Misc plug-ins\n"
+msgstr ""
+
+#: ipalib/plugins/misc.py:36
+msgid "Show environment variables"
+msgstr ""
+
#: ipalib/plugins/misc.py:38
-#, python-format
msgid "%(count)d variables"
msgstr "%(count)d ವೇರಿಯೇಬಲ್‌ಗಳು"
+#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115
+msgid ""
+"retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
#: ipalib/plugins/misc.py:61
msgid "Total number of variables env (>= count)"
msgstr ""
@@ -1586,448 +5046,2495 @@ msgstr ""
msgid "Number of variables returned (<= total)"
msgstr ""
-#: ipalib/plugins/misc.py:109
-#, python-format
+#: ipalib/plugins/misc.py:106
+msgid "Show all loaded plugins"
+msgstr ""
+
+#: ipalib/plugins/misc.py:108
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] "%(count)d ಪ್ಲಗಿನ್ ಲೋಡ್ ಆಗಿದೆ"
msgstr[1] "%(count)d ಪ್ಲಗಿನ್‌ಗಳು ಲೋಡ್ ಆಗಿವೆ "
-#: ipalib/plugins/misc.py:116
+#: ipalib/plugins/misc.py:126
#, fuzzy
msgid "Number of plugins loaded"
msgstr "%(count)d ಪ್ಲಗಿನ್ ಲೋಡ್ ಆಗಿದೆ"
-#: ipalib/plugins/netgroup.py:57
+#: ipalib/plugins/netgroup.py:20
+msgid ""
+"\n"
+"Netgroups\n"
+"\n"
+"A netgroup is a group used for permission checking. It can contain both\n"
+"user and host values.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new netgroup:\n"
+" ipa netgroup-add --desc=\"NFS admins\" admins\n"
+"\n"
+" Add members to the netgroup:\n"
+" ipa netgroup-add-member --users=tuser1,tuser2 admins\n"
+"\n"
+" Remove a member from the netgroup:\n"
+" ipa netgroup-remove-member --users=tuser2 admins\n"
+"\n"
+" Display information about a netgroup:\n"
+" ipa netgroup-show admins\n"
+"\n"
+" Delete a netgroup:\n"
+" ipa netgroup-del admins\n"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:59
#, fuzzy
msgid "Member Host"
msgstr "ಸದಸ್ಯ ಹೋಸ್ಟ್"
-#: ipalib/plugins/netgroup.py:63
-msgid "External host"
-msgstr "ಹೊರಗಿನ ಹೋಸ್ಟ್"
+#: ipalib/plugins/netgroup.py:67
+msgid ""
+"\n"
+" Netgroup object.\n"
+" "
+msgstr ""
-#: ipalib/plugins/netgroup.py:85
-msgid "Net Groups"
-msgstr "ನೆಟ್ ಗುಂಪುಗಳು"
+#: ipalib/plugins/netgroup.py:98
+msgid "Netgroups"
+msgstr "ನೆಟ್‌ಗ್ರೂಪ್‌ಗಳು"
-#: ipalib/plugins/netgroup.py:90
+#: ipalib/plugins/netgroup.py:103
msgid "Netgroup name"
msgstr "ನೆಟ್‌ಗ್ರೂಪ್ ಹೆಸರು"
-#: ipalib/plugins/netgroup.py:97
+#: ipalib/plugins/netgroup.py:110
msgid "Netgroup description"
msgstr "ನೆಟ್‌ಗ್ರೂಪ್ ವಿವರಣೆ"
-#: ipalib/plugins/netgroup.py:101
+#: ipalib/plugins/netgroup.py:114
msgid "NIS domain name"
msgstr "NIS ಡೊಮೇನ್ ಹೆಸರು"
-#: ipalib/plugins/netgroup.py:106
+#: ipalib/plugins/netgroup.py:119
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:84
-#, python-format
+#: ipalib/plugins/netgroup.py:140
+msgid ""
+"\n"
+" Add a new netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:144
+#, fuzzy
+msgid "Added netgroup \"%(value)s\""
+msgstr "\"%(value)s\" ಗುಂಪನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/netgroup.py:153
+msgid ""
+"\n"
+" Delete a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:156
+#, fuzzy
+msgid "Deleted netgroup \"%(value)s\""
+msgstr "\"%(value)s\" ಗುಂಪನ್ನು ಅಳಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/netgroup.py:162
+msgid ""
+"\n"
+" Modify a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:166
+#, fuzzy
+msgid "Modified netgroup \"%(value)s\""
+msgstr "\"%(value)s\" ಗುಂಪನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/netgroup.py:180
+msgid ""
+"\n"
+" Search for a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:185
+#, fuzzy
+msgid "%(count)d netgroup matched"
+msgid_plural "%(count)d netgroups matched"
+msgstr[0] "%(count)d ಗುಂಪು ತಾಳೆಯಾಗುತ್ತಿದೆ"
+msgstr[1] "%(count)d ಗುಂಪುಗಳು ತಾಳೆಯಾಗುತ್ತಿವೆ "
+
+#: ipalib/plugins/netgroup.py:213
+msgid ""
+"\n"
+" Display information about a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:222
+msgid ""
+"\n"
+" Add members to a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:258
+msgid ""
+"\n"
+" Remove members from a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:19
+msgid ""
+"\n"
+"Set a user's password\n"
+"\n"
+"If someone other than a user changes that user's password (e.g., Helpdesk\n"
+"resets it) then the password will need to be changed the first time it\n"
+"is used. This is so the end-user is the only one who knows the password.\n"
+"\n"
+"The IPA password policy controls how often a password may be changed,\n"
+"what strength requirements exist, and the length of the password history.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" To reset your own password:\n"
+" ipa passwd\n"
+"\n"
+" To change another user's password:\n"
+" ipa passwd tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/passwd.py:46
+#, fuzzy
+msgid ""
+"\n"
+" Set a user's password\n"
+" "
+msgstr "ಬಳಕೆದಾರನ ಗುಪ್ತಪದ ಸೆಟ್ ಮಾಡು"
+
+#: ipalib/plugins/passwd.py:64
+#, fuzzy
+msgid "Changed password for \"%(value)s\""
+msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/passwd.py:67
+msgid ""
+"\n"
+" Execute the passwd operation.\n"
+"\n"
+" The dn should not be passed as a keyword argument as it is "
+"constructed\n"
+" by this method.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param principal: The login name or principal of the user\n"
+" :param password: the new password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:19
+msgid ""
+"\n"
+"Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of rights. A permission is\n"
+"a human-readable form of a 389-ds Access Control Rule, or instruction "
+"(ACI).\n"
+"A permission grants the right to perform a specific task such as adding a\n"
+"user, modifying a group, etc.\n"
+"\n"
+"A permission may not contain other permissions.\n"
+"\n"
+"* A permission grants access to read, write, add or delete.\n"
+"* A privilege combines similar permissions (for example all the permissions\n"
+" needed to add a user).\n"
+"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n"
+"\n"
+"A permission is made up of a number of different parts:\n"
+"\n"
+"1. The name of the permission.\n"
+"2. The target of the permission.\n"
+"3. The rights granted by the permission.\n"
+"\n"
+"Rights define what operations are allowed, and may be one or more\n"
+"of the following:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Read permission is granted for most attributes by default so the read\n"
+"permission is not expected to be used very often.\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"There are a number of allowed targets:\n"
+"1. type: a type of object (user, group, etc).\n"
+"2. memberof: a member of a group or hostgroup\n"
+"3. filter: an LDAP filter\n"
+"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n"
+" super-set of the \"type\" target.\n"
+"5. targetgroup: grant access to modify a specific group (such as granting\n"
+" the rights to manage group membership)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a permission that grants the creation of users:\n"
+" ipa permission-add --type=user --permissions=add \"Add Users\"\n"
+"\n"
+" Add a permission that grants the ability to manage group membership:\n"
+" ipa permission-add --attrs=member --permissions=write --type=group "
+"\"Manage Group Members\"\n"
+msgstr ""
+
+#: ipalib/plugins/permission.py:84
+#, fuzzy
+msgid "Permission Type"
+msgstr "ಅನುಮತಿಗಳು"
+
+#: ipalib/plugins/permission.py:89
+msgid ""
+"\n"
+" Permission object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:112
+#, fuzzy
+msgid "Permission name"
+msgstr "ಅನುಮತಿಗಳು"
+
+#: ipalib/plugins/permission.py:119
+#, fuzzy
+msgid ""
+"Comma-separated list of permissions to grant (read, write, add, delete, all)"
+msgstr ""
+"comma-separated list of permissions to grant(read, write, add, delete, "
+"selfwrite, all)"
+
+#: ipalib/plugins/permission.py:132
+#, fuzzy
+msgid ""
+"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
+msgstr "IPA ಆಬ್ಜೆಕ್ಟ್ ಬಗೆ (ಬಳಕೆದಾರ, ಗುಂಪು, ಹೋಸ್ಟ್)"
+
+#: ipalib/plugins/permission.py:138
+#, fuzzy
+msgid "Member of group"
+msgstr "ಒಂದು ಗುಂಪಿನ ಸದಸ್ಯ"
+
+#: ipalib/plugins/permission.py:139
+#, fuzzy
+msgid "Target members of a group"
+msgstr "ಒಂದು ಗುಂಪಿನ ಸದಸ್ಯ"
+
+#: ipalib/plugins/permission.py:151
+#, fuzzy
+msgid "Subtree to apply permissions to"
+msgstr "Subtree to apply ACI to"
+
+#: ipalib/plugins/permission.py:157
+#, fuzzy
+msgid "User group to apply permissions to"
+msgstr "Group to apply ACI to"
+
+#: ipalib/plugins/permission.py:177
+msgid ""
+"\n"
+" Add a new permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:181
+#, fuzzy
+msgid "Added permission \"%(value)s\""
+msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/permission.py:236
+msgid ""
+"\n"
+" Delete a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:240
+#, fuzzy
+msgid "Deleted permission \"%(value)s\""
+msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಅಳಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/permission.py:256
+msgid ""
+"\n"
+" Modify a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:260
+#, fuzzy
+msgid "Modified permission \"%(value)s\""
+msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/permission.py:352
+msgid ""
+"\n"
+" Search for permissions.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:356
+#, fuzzy
+msgid "%(count)d permission matched"
+msgid_plural "%(count)d permissions matched"
+msgstr[0] "%(count)d ಬಳಕೆದಾರ ತಾಳೆಯಾಗುತ್ತಿದ್ದಾನೆ"
+msgstr[1] "%(count)d ಬಳಕೆದಾರರು ತಾಳೆಯಾಗುತ್ತಿದ್ದಾರೆ"
+
+#: ipalib/plugins/permission.py:405
+msgid ""
+"\n"
+" Display information about a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:428
+msgid ""
+"\n"
+" Add members to a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:437
+msgid ""
+"\n"
+" Remove members from a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:19
+msgid ""
+"\n"
+"Ping the remote IPA server\n"
+msgstr ""
+
+#: ipalib/plugins/ping.py:29
+msgid ""
+"\n"
+" ping a remote server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:37
+msgid ""
+"\n"
+" A possible enhancement would be to take an argument and echo it\n"
+" back but a fixed value works for now.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:19
+msgid ""
+"\n"
+"Kerberos pkinit options\n"
+"\n"
+"Enable or disable anonymous pkinit using the principal\n"
+"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n"
+"pkinit support.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Enable anonymous pkinit:\n"
+" ipa pkinit-anonymous enable\n"
+"\n"
+" Disable anonymous pkinit:\n"
+" ipa pkinit-anonymous disable\n"
+"\n"
+"For more information on anonymous pkinit see:\n"
+"\n"
+"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:46
+msgid ""
+"\n"
+" PKINIT Options\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:51
+msgid "PKINIT"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:56
+msgid ""
+"\n"
+" Accepts only Enable/Disable.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:67
+msgid ""
+"\n"
+" Enable or Disable Anonymous PKINIT\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:19
+msgid ""
+"\n"
+"Privileges\n"
+"\n"
+"A privilege combines permissions into a logical task. A permission provides\n"
+"the rights to do a single task. There are some IPA operations that require\n"
+"multiple permissions to succeed. A privilege is where permissions are\n"
+"combined in order to perform a specific task.\n"
+"\n"
+"For example, adding a user requires the following permissions:\n"
+" * Creating a new user entry\n"
+" * Resetting a user password\n"
+" * Adding the new user to the default IPA users group\n"
+"\n"
+"Combining these three low-level tasks into a higher level task in the\n"
+"form of a privilege named \"Add User\" makes it easier to manage Roles.\n"
+"\n"
+"A privilege may not contain other privileges.\n"
+"\n"
+"See role and permission for additional information.\n"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:45
+msgid ""
+"\n"
+" Privilege object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:65
+msgid "Privileges"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:70
+#, fuzzy
+msgid "Privilege name"
+msgstr "Principal ಹೆಸರು"
+
+#: ipalib/plugins/privilege.py:77
+#, fuzzy
+msgid "Privilege description"
+msgstr "ವಿವರಣೆ"
+
+#: ipalib/plugins/privilege.py:85
+msgid ""
+"\n"
+" Add a new privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:89
+#, fuzzy
+msgid "Added privilege \"%(value)s\""
+msgstr "\"%(value)s\" ಸೇವೆ(ಸರ್ವೀಸ್)ಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/privilege.py:95
+msgid ""
+"\n"
+" Delete a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:99
+#, fuzzy
+msgid "Deleted privilege \"%(value)s\""
+msgstr "\"%(value)s\" ಸೇವೆ(ಸರ್ವೀಸ್)ಯನ್ನು ಅಳಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/privilege.py:105
+msgid ""
+"\n"
+" Modify a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:109
+#, fuzzy
+msgid "Modified privilege \"%(value)s\""
+msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/privilege.py:115
+msgid ""
+"\n"
+" Search for privileges.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:119
+#, fuzzy
+msgid "%(count)d privilege matched"
+msgid_plural "%(count)d privileges matched"
+msgstr[0] "%(count)d ಬಳಕೆದಾರ ತಾಳೆಯಾಗುತ್ತಿದ್ದಾನೆ"
+msgstr[1] "%(count)d ಬಳಕೆದಾರರು ತಾಳೆಯಾಗುತ್ತಿದ್ದಾರೆ"
+
+#: ipalib/plugins/privilege.py:127
+msgid ""
+"\n"
+" Display information about a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:135
+msgid ""
+"\n"
+" Add members to a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:144
+msgid ""
+"\n"
+" Remove members from a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:153
+msgid ""
+"\n"
+" Add permissions to a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:169
+#, fuzzy
+msgid "Number of permissions added"
+msgstr "%(count)d ಪ್ಲಗಿನ್ ಲೋಡ್ ಆಗಿದೆ"
+
+#: ipalib/plugins/privilege.py:177
+msgid ""
+"\n"
+" Remove permissions from a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:195
+#, fuzzy
+msgid "Number of permissions removed"
+msgstr "%(count)d ಪ್ಲಗಿನ್ ಲೋಡ್ ಆಗಿದೆ"
+
+#: ipalib/plugins/pwpolicy.py:20
+msgid ""
+"\n"
+"Password policy\n"
+"\n"
+"A password policy sets limitations on IPA passwords, including maximum\n"
+"lifetime, minimum lifetime, the number of passwords to save in\n"
+"history, the number of character classes required (for stronger passwords)\n"
+"and the minimum password length.\n"
+"\n"
+"By default there is a single, global policy for all users. You can also\n"
+"create a password policy to apply to a group. Each user is only subject\n"
+"to one password policy, either the group policy or the global policy. A\n"
+"group policy stands alone; it is not a super-set of the global policy plus\n"
+"custom settings.\n"
+"\n"
+"Each group password policy requires a unique priority setting. If a user\n"
+"is in multiple groups that have password policies, this priority determines\n"
+"which password policy is applied. A lower value indicates a higher priority\n"
+"policy.\n"
+"\n"
+"Group password policies are automatically removed when the groups they\n"
+"are associated with are removed.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Modify the global policy:\n"
+" ipa pwpolicy-mod --minlength=10\n"
+"\n"
+" Add a new group password policy:\n"
+" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --"
+"minlength=8 --priority=10 localadmins\n"
+"\n"
+" Display the global password policy:\n"
+" ipa pwpolicy-show\n"
+"\n"
+" Display a group password policy:\n"
+" ipa pwpolicy-show localadmins\n"
+"\n"
+" Display the policy that would be applied to a given user:\n"
+" ipa pwpolicy-show --user=tuser1\n"
+"\n"
+" Modify a group password policy:\n"
+" ipa pwpolicy-mod --minclasses=2 localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:72
+msgid ""
+"\n"
+" Class of Service object used for linking policies with groups\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:87
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:170
+#: ipalib/plugins/pwpolicy.py:172
#, fuzzy
-msgid "Password Policy"
+msgid ""
+"\n"
+" Password Policy object\n"
+" "
msgstr "ಗುಪ್ತಪದ"
-#: ipalib/plugins/pwpolicy.py:175
+#: ipalib/plugins/pwpolicy.py:201
+#, fuzzy
+msgid "Max failures"
+msgstr "ಗರಿಷ್ಟ ಜೀವಿತಾವಧಿ"
+
+#: ipalib/plugins/pwpolicy.py:202
+msgid "Consecutive failures before lockout"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:207
+msgid "Failure reset interval"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:208
+msgid "Period after which failure count will be reset (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:213
+#, fuzzy
+msgid "Lockout duration"
+msgstr "ಸ್ಥಳ"
+
+#: ipalib/plugins/pwpolicy.py:214
+msgid "Period for which lockout is enforced (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:224
msgid "Group"
msgstr "ಗುಂಪು"
-#: ipalib/plugins/pwpolicy.py:176
+#: ipalib/plugins/pwpolicy.py:225
#, fuzzy
msgid "Manage password policy for specific group"
msgstr "ನಿಗದಿತ ಬಳಕೆದಾರನಿಗೆ ಟಿಕೆಟ್ ಪಾಲಿಸಿಯನ್ನು ನಿರ್ವಹಿಸು"
-#: ipalib/plugins/pwpolicy.py:181
+#: ipalib/plugins/pwpolicy.py:230
msgid "Max lifetime (days)"
msgstr "ಗರಿಷ್ಟ ಜೀವಿತಾವಧಿ (ದಿನಗಳು)"
-#: ipalib/plugins/pwpolicy.py:182
+#: ipalib/plugins/pwpolicy.py:231
msgid "Maximum password lifetime (in days)"
msgstr "ಗುಪ್ತಪದದ ಗರಿಷ್ಟ ಜೀವಿತಾವಧಿ (ದಿನಗಳಲ್ಲಿ)"
-#: ipalib/plugins/pwpolicy.py:187
+#: ipalib/plugins/pwpolicy.py:236
msgid "Min lifetime (hours)"
msgstr "ಕನಿಷ್ಟ ಜೀವಿತಾವಧಿ (ಘಂಟೆಗಳು)"
-#: ipalib/plugins/pwpolicy.py:188
+#: ipalib/plugins/pwpolicy.py:237
msgid "Minimum password lifetime (in hours)"
msgstr "ಗುಪ್ತಪದದ ಕನಿಷ್ಟ ಜೀವಿತಾವಧಿ (ಘಂಟೆಗಳಲ್ಲಿ)"
-#: ipalib/plugins/pwpolicy.py:193
+#: ipalib/plugins/pwpolicy.py:242
msgid "History size"
msgstr "ಇತಿಹಾಸದ ಗಾತ್ರ"
-#: ipalib/plugins/pwpolicy.py:194
+#: ipalib/plugins/pwpolicy.py:243
msgid "Password history size"
msgstr "ಗುಪ್ತಪದ ಇತಿಹಾಸದ ಗಾತ್ರ"
-#: ipalib/plugins/pwpolicy.py:199
+#: ipalib/plugins/pwpolicy.py:248
msgid "Character classes"
msgstr "ಕ್ಯಾರೆಕ್ಟರ್ ಕ್ಲಾಸ್‌ಗಳು"
-#: ipalib/plugins/pwpolicy.py:200
+#: ipalib/plugins/pwpolicy.py:249
msgid "Minimum number of character classes"
msgstr "ಕನಿಷ್ಟ ಸಂಖ್ಯೆಯ ಕ್ಯಾರಕ್ಟರ್ ಕ್ಲಾಸ್‌ಗಳು"
-#: ipalib/plugins/pwpolicy.py:206
+#: ipalib/plugins/pwpolicy.py:255
msgid "Min length"
msgstr "ಕನಿಷ್ಟ ಉದ್ದ"
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:256
msgid "Minimum length of password"
msgstr "ಗುಪ್ತಪದದ ಕನಿಷ್ಟ ಉದ್ದ"
-#: ipalib/plugins/pwpolicy.py:212
+#: ipalib/plugins/pwpolicy.py:261
msgid "Priority"
msgstr "ಆದ್ಯತೆ"
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:262
#, fuzzy
msgid "Priority of the policy (higher number means lower priority"
msgstr "ಪಾಲಿಸಿಯ ಆದ್ಯತೆ (ಗರಿಷ್ಟ ಸಂಖ್ಯೆ ಕನಿಷ್ಟ ಆದ್ಯತೆಗೆ ಸಮನಾಗಿರುತ್ತದೆ)"
-#: ipalib/plugins/pwpolicy.py:265
+#: ipalib/plugins/pwpolicy.py:294
+msgid ""
+"\n"
+" Ensure that the maximum lifetime is greater than the minimum.\n"
+" If there is no minimum lifetime set then don't return an error.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:314
#, fuzzy
msgid "Maximum password life must be greater than minimum."
msgstr "ಗುಪ್ತಪದದ ಗರಿಷ್ಟ ಜೀವಿತಾವಧಿ (ದಿನಗಳಲ್ಲಿ)"
-#: ipalib/plugins/pwpolicy.py:330
+#: ipalib/plugins/pwpolicy.py:333
+msgid ""
+"\n"
+" Add a new group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:361
+msgid ""
+"\n"
+" Delete a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:380
+msgid ""
+"\n"
+" Modify a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:391
msgid "priority cannot be set on global policy"
msgstr "ಗ್ಲೋಬಲ್ ಪಾಲಿಸಿಯಲ್ಲಿ ಆದ್ಯತೆಯನ್ನು ಸೆಟ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ"
-#: ipalib/plugins/pwpolicy.py:369
+#: ipalib/plugins/pwpolicy.py:423
+msgid ""
+"\n"
+" Display information about password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:428
msgid "User"
msgstr "ಬಳಕೆದಾರ"
-#: ipalib/plugins/pwpolicy.py:370
+#: ipalib/plugins/pwpolicy.py:429
#, fuzzy
msgid "Display effective policy for a specific user"
msgstr "ನಿಗದಿತ ಬಳಕೆದಾರನಿಗೆ ಟಿಕೆಟ್ ಪಾಲಿಸಿಯನ್ನು ನಿರ್ವಹಿಸು"
-#: ipalib/plugins/rolegroup.py:79
-msgid "Role Groups"
-msgstr "ಕೆಲಸ(ರೋಲ್)ದ ಗುಂಪುಗಳು"
+#: ipalib/plugins/pwpolicy.py:452
+msgid ""
+"\n"
+" Search for group password policies.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:20
+msgid ""
+"\n"
+"Roles\n"
+"\n"
+"A role is used for fine-grained delegation. A permission grants the ability\n"
+"to perform given low-level tasks (add a user, modify a group, etc.). A\n"
+"privilege combines one or more permissions into a higher-level abstraction\n"
+"such as useradmin. A useradmin would be able to add, delete and modify "
+"users.\n"
+"\n"
+"Privileges are assigned to Roles.\n"
+"\n"
+"Users, groups, hosts and hostgroups may be members of a Role.\n"
+"\n"
+"Roles can not contain other roles.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new role:\n"
+" ipa role-add --desc=\"Junior-level admin\" junioradmin\n"
+"\n"
+" Add some privileges to this role:\n"
+" ipa role-add-privilege --privileges=addusers junioradmin\n"
+" ipa role-add-privilege --privileges=change_password junioradmin\n"
+" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n"
+"\n"
+" Add a group of users to this role:\n"
+" ipa group-add --desc=\"User admins\" useradmins\n"
+" ipa role-add-member --groups=useradmins junioradmin\n"
+"\n"
+" Display information about a role:\n"
+" ipa role-show junioradmin\n"
+"\n"
+" The result of this is that any users in the group 'useradmins' can\n"
+" add users, reset passwords or add a user to the default IPA user group.\n"
+msgstr ""
+
+#: ipalib/plugins/role.py:62
+msgid ""
+"\n"
+" Role object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:81
+msgid "Role"
+msgstr ""
-#: ipalib/plugins/rolegroup.py:84
-msgid "Role-group name"
-msgstr "ರೋಲ್-ಗುಂಪಿನ ಹೆಸರು"
+#: ipalib/plugins/role.py:86
+#, fuzzy
+msgid "Role name"
+msgstr "ನಿಯಮದ ಹೆಸರು"
-#: ipalib/plugins/rolegroup.py:91
+#: ipalib/plugins/role.py:93
msgid "A description of this role-group"
msgstr "ಈ ರೋಲ್-ಗ್ರೂಪ್‌ನ ವಿವರಣೆ"
-#: ipalib/plugins/rolegroup.py:102
-msgid "Member of task-groups"
-msgstr "ಟಾಸ್ಕ್-ಗುಂಪುಗಳ ಸದಸ್ಯ"
+#: ipalib/plugins/role.py:101
+msgid ""
+"\n"
+" Add a new role.\n"
+" "
+msgstr ""
-#: ipalib/plugins/rolegroup.py:115
-#, python-format
-msgid "Added rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:105
+#, fuzzy
+msgid "Added role \"%(value)s\""
msgstr "\"%(value)s\" ರೋಲ್‌ಗ್ರೂಪನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/rolegroup.py:125
-#, python-format
-msgid "Deleted rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:111
+msgid ""
+"\n"
+" Delete a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:115
+#, fuzzy
+msgid "Deleted role \"%(value)s\""
msgstr "\"%(value)s\" ರೋಲ್‌ಗ್ರೂಪನ್ನು ಅಳಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/rolegroup.py:135
-#, python-format
-msgid "Modified rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:121
+msgid ""
+"\n"
+" Modify a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:125
+#, fuzzy
+msgid "Modified role \"%(value)s\""
msgstr "\"%(value)s\" ರೋಲ್‌ಗ್ರೂಪನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/rolegroup.py:146
-#, python-format
-msgid "%(count)d rolegroup matched"
-msgid_plural "%(count)d rolegroups matched"
+#: ipalib/plugins/role.py:131
+msgid ""
+"\n"
+" Search for roles.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:135
+#, fuzzy
+msgid "%(count)d role matched"
+msgid_plural "%(count)d roles matched"
msgstr[0] "%(count)d ರೋಲ್‌ಗ್ರೂಪ್ ತಾಳೆಯಾಗುತ್ತಿದೆ"
msgstr[1] "%(count)d ರೋಲ್‌ಗ್ರೂಪ್‌ಗಳು ತಾಳೆಯಾಗುತ್ತಿವೆ"
-#: ipalib/plugins/service.py:198
+#: ipalib/plugins/role.py:143
+msgid ""
+"\n"
+" Display information about a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:151
+msgid ""
+"\n"
+" Add members to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:159
+msgid ""
+"\n"
+" Remove members from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:167
+msgid ""
+"\n"
+" Add privileges to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:183
+#, fuzzy
+msgid "Number of privileges added"
+msgstr "%(count)d ಪ್ಲಗಿನ್ ಲೋಡ್ ಆಗಿದೆ"
+
+#: ipalib/plugins/role.py:191
+msgid ""
+"\n"
+" Remove privileges from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:207
+#, fuzzy
+msgid "Number of privileges removed"
+msgstr "%(count)d ಪ್ಲಗಿನ್ ಲೋಡ್ ಆಗಿದೆ"
+
+#: ipalib/plugins/selfservice.py:19
+msgid ""
+"\n"
+"Self-service Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"A Self-service permission defines what an object can change in its own "
+"entry.\n"
+"\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a self-service rule to allow users to manage their address:\n"
+" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st "
+"\"Users manage their own address\"\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add telephoneNumber to the list:\n"
+" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber "
+"\"Users manage their own address\"\n"
+"\n"
+" Display our updated rule:\n"
+" ipa selfservice-show \"Users manage their own address\"\n"
+"\n"
+" Delete a rule:\n"
+" ipa selfservice-del \"Users manage their own address\"\n"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:56
+msgid ""
+"\n"
+" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a self-service ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:64
+msgid "Self-service permission '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:68
+msgid ""
+"\n"
+" Selfservice object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:75
+#, fuzzy
+msgid "Self Service Permissions"
+msgstr "ಅನುಮತಿಗಳು"
+
+#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
+#, fuzzy
+msgid "Self-service name"
+msgstr "ಸೇವೆಯ ಹೆಸರು"
+
+#: ipalib/plugins/selfservice.py:114
+msgid ""
+"\n"
+" Add a new self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:118
+#, fuzzy
+msgid "Added selfservice \"%(value)s\""
+msgstr "\"%(value)s\" ಸೇವೆ(ಸರ್ವೀಸ್)ಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/selfservice.py:137
+msgid ""
+"\n"
+" Delete a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:142
+#, fuzzy
+msgid "Deleted selfservice \"%(value)s\""
+msgstr "\"%(value)s\" ಸೇವೆ(ಸರ್ವೀಸ್)ಯನ್ನು ಅಳಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/selfservice.py:158
+msgid ""
+"\n"
+" Modify a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:162
+#, fuzzy
+msgid "Modified selfservice \"%(value)s\""
+msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/selfservice.py:181
+msgid ""
+"\n"
+" Search for a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:185
+#, fuzzy
+msgid "%(count)d selfservice matched"
+msgid_plural "%(count)d selfservices matched"
+msgstr[0] "%(count)d ಬಳಕೆದಾರ ತಾಳೆಯಾಗುತ್ತಿದ್ದಾನೆ"
+msgstr[1] "%(count)d ಬಳಕೆದಾರರು ತಾಳೆಯಾಗುತ್ತಿದ್ದಾರೆ"
+
+#: ipalib/plugins/selfservice.py:207
+msgid ""
+"\n"
+" Display information about a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:21
+msgid ""
+"\n"
+"Services\n"
+"\n"
+"A IPA service represents a service that runs on a host. The IPA service\n"
+"record can store a Kerberos principal, an SSL certificate, or both.\n"
+"\n"
+"An IPA service can be managed directly from a machine, provided that\n"
+"machine has been given the correct permission. This is true even for\n"
+"machines other than the one the service is associated with. For example,\n"
+"requesting an SSL certificate using the host service principal credentials\n"
+"of the host. To manage a service using host credentials you need to\n"
+"kinit as the host:\n"
+"\n"
+" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n"
+"\n"
+"Adding an IPA service allows the associated service to request an SSL\n"
+"certificate or keytab, but this is performed as a separate step; they\n"
+"are not produced as a result of adding the service.\n"
+"\n"
+"Only the public aspect of a certificate is stored in a service record;\n"
+"the private key is not stored.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new IPA service:\n"
+" ipa service-add HTTP/web.example.com\n"
+"\n"
+" Allow a host to manage an IPA service certificate:\n"
+" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n"
+" ipa role-add-member --hosts=web.example.com certadmin\n"
+"\n"
+" Delete an IPA service:\n"
+" ipa service-del HTTP/web.example.com\n"
+"\n"
+" Find all IPA services associated with a host:\n"
+" ipa service-find web.example.com\n"
+"\n"
+" Find all HTTP services:\n"
+" ipa service-find HTTP\n"
+"\n"
+" Disable the service Kerberos key and SSL certificate:\n"
+" ipa service-disable HTTP/web.example.com\n"
+"\n"
+" Request a certificate for an IPA service:\n"
+" ipa cert-request --principal=HTTP/web.example.com example.csr\n"
+"\n"
+" Generate and retrieve a keytab for an IPA service:\n"
+" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/"
+"httpd.keytab\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/service.py:162
+msgid ""
+"\n"
+" For now just verify that it is properly base64-encoded.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:175
+msgid ""
+"\n"
+" Set individual attributes from some values from a certificate.\n"
+"\n"
+" entry_attrs is a dict of an entry\n"
+"\n"
+" returns nothing\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:199
+msgid ""
+"\n"
+" Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:226
msgid "Service principal"
msgstr "Service principal"
-#: ipalib/plugins/service.py:221
+#: ipalib/plugins/service.py:242
+msgid ""
+"\n"
+" Add a new IPA new service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:245
+msgid "Added service \"%(value)s\""
+msgstr "\"%(value)s\" ಸೇವೆ(ಸರ್ವೀಸ್)ಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/service.py:251
#, fuzzy
msgid "force principal name even if not in DNS"
msgstr "ಈ ಹೋಸ್ಟ್‌ಗೆ Kerberos principalನ ಹೆಸರು"
-#: ipalib/plugins/service.py:292
-#, fuzzy, python-format
+#: ipalib/plugins/service.py:284
+msgid ""
+"\n"
+" Delete an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:287
+msgid "Deleted service \"%(value)s\""
+msgstr "\"%(value)s\" ಸೇವೆ(ಸರ್ವೀಸ್)ಯನ್ನು ಅಳಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/service.py:321
+msgid ""
+"\n"
+" Modify an existing IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:324
+#, fuzzy
msgid "Modified service \"%(value)s\""
msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/service.py:323
-#, fuzzy, python-format
+#: ipalib/plugins/service.py:356
+msgid ""
+"\n"
+" Search for IPA services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:359
+#, fuzzy
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] "%(count)d ಬಳಕೆದಾರ ತಾಳೆಯಾಗುತ್ತಿದ್ದಾನೆ"
msgstr[1] "%(count)d ಬಳಕೆದಾರರು ತಾಳೆಯಾಗುತ್ತಿದ್ದಾರೆ"
-#: ipalib/plugins/service.py:409
+#: ipalib/plugins/service.py:394
+msgid ""
+"\n"
+" Display information about an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:432
+msgid ""
+"\n"
+" Add hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:442
+msgid ""
+"\n"
+" Remove hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:452
+msgid ""
+"\n"
+" Disable the Kerberos key and SSL certificate of a service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:456
#, fuzzy
-msgid "Service principal has no kerberos key"
-msgstr "Service principal"
+msgid "Disabled service \"%(value)s\""
+msgstr "\"%(value)s\" ಸೇವೆ(ಸರ್ವೀಸ್)ಯನ್ನು ಅಳಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/sudocmd.py:60
-msgid "SudoCmds"
+#: ipalib/plugins/sudocmd.py:19
+msgid ""
+"\n"
+"Sudo Commands\n"
+"\n"
+"Commands used as building blocks for sudo\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a new command\n"
+" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n"
+"\n"
+" Remove a command\n"
+" ipa sudocmd-del /usr/bin/less\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:46
+msgid ""
+"\n"
+" Sudo Command object.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmd.py:65
+#: ipalib/plugins/sudocmd.py:64
+#, fuzzy
+msgid "Sudo Commands"
+msgstr "ಗುಂಪಿನ ಹೆಸರು"
+
+#: ipalib/plugins/sudocmd.py:69
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:72
+#: ipalib/plugins/sudocmd.py:75
#, fuzzy
msgid "A description of this command"
msgstr "ಈ ಹೋಸ್ಟ್‌ನ ವಿವರಣೆ"
-#: ipalib/plugins/sudocmd.py:99
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:98
+msgid ""
+"\n"
+" Create new sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:102
+#, fuzzy
msgid "Added sudo command \"%(value)s\""
msgstr "\"%(value)s\" ಹೋಸ್ಟನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/sudocmd.py:108
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:107
+#, fuzzy
+msgid ""
+"\n"
+" Delete sudo command.\n"
+" "
+msgstr "\"%(value)s\" ಹೋಸ್ಟನ್ನು ಅಳಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/sudocmd.py:111
+#, fuzzy
msgid "Deleted sudo command \"%(value)s\""
msgstr "\"%(value)s\" ಹೋಸ್ಟನ್ನು ಅಳಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/sudocmd.py:117
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:116
+msgid ""
+"\n"
+" Modify command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:120
+#, fuzzy
msgid "Modified sudo command \"%(value)s\""
msgstr "\"%(value)s\" ಹೋಸ್ಟನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/sudocmd.py:127
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:125
+msgid ""
+"\n"
+" Search for commands.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:129
+#, fuzzy
msgid "%(count)d sudo command matched"
msgid_plural "%(count)d sudo command matched"
msgstr[0] "%(count)d ಹೋಸ್ಟ್‌ ತಾಳೆಯಾಗುತ್ತಿದೆ"
msgstr[1] "%(count)d ಹೋಸ್ಟ್‌ಗಳು ತಾಳೆಯಾಗುತ್ತಿವೆ"
-#: ipalib/plugins/sudocmdgroup.py:66 ipalib/plugins/sudocmdgroup.py:85
-#: ipalib/plugins/sudorule.py:81 ipalib/plugins/sudorule.py:85
-msgid "Sudo Command Groups"
+#: ipalib/plugins/sudocmd.py:136
+msgid ""
+"\n"
+" Display sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:19
+msgid ""
+"\n"
+"Groups of Sudo commands\n"
+"\n"
+"Manage groups of Sudo commands.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new Sudo command group:\n"
+" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
+"\n"
+" Remove a Sudo command group:\n"
+" ipa sudocmdgroup-del admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim "
+"admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
+"\n"
+" Show a Sudo command group:\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:50
+msgid ""
+"\n"
+" Sudo Group object.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:71
+#: ipalib/plugins/sudocmdgroup.py:70
#, fuzzy
msgid "Sudo Command Group"
msgstr "ಗುಂಪಿನ ಹೆಸರು"
-#: ipalib/plugins/sudocmdgroup.py:81
-msgid "Commands"
+#: ipalib/plugins/sudocmdgroup.py:93
+msgid ""
+"\n"
+" Create new sudo command group.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:98
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:97
+#, fuzzy
msgid "Added sudo command group \"%(value)s\""
msgstr "\"%(value)s\" ಗುಂಪನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/sudocmdgroup.py:108
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:103
+#, fuzzy
+msgid ""
+"\n"
+" Delete sudo command group.\n"
+" "
+msgstr "\"%(value)s\" ಗುಂಪನ್ನು ಅಳಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/sudocmdgroup.py:107
+#, fuzzy
msgid "Deleted sudo command group \"%(value)s\""
msgstr "\"%(value)s\" ಗುಂಪನ್ನು ಅಳಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/sudocmdgroup.py:118
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:113
+msgid ""
+"\n"
+" Modify group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:117
+#, fuzzy
msgid "Modified sudo command group \"%(value)s\""
msgstr "\"%(value)s\" ಗುಂಪನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/sudocmdgroup.py:129
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:123
+msgid ""
+"\n"
+" Search for sudo command groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:127
+#, fuzzy
msgid "%(count)d sudo command group matched"
msgid_plural "%(count)d sudo command groups matched"
msgstr[0] "%(count)d ಗುಂಪು ತಾಳೆಯಾಗುತ್ತಿದೆ"
msgstr[1] "%(count)d ಗುಂಪುಗಳು ತಾಳೆಯಾಗುತ್ತಿವೆ "
-#: ipalib/plugins/sudorule.py:48
-msgid "SudoRule"
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid ""
+"\n"
+" Display sudo command group.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/sudocmdgroup.py:144
+#, fuzzy
+msgid ""
+"\n"
+" Add members to sudo command group.\n"
+" "
+msgstr "\"%(value)s\" ಗುಂಪನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/sudocmdgroup.py:152
+msgid ""
+"\n"
+" Remove members from sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:19
+msgid ""
+"\n"
+"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
+"give certain users (or groups of users) the ability to run some (or all)\n"
+"commands as root or another user while providing an audit trail of the\n"
+"commands and their arguments.\n"
+"\n"
+"FreeIPA provides a designated binddn to use with Sudo located at:\n"
+"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
+"\n"
+"To enable the binddn run the following command to set the password:\n"
+"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -"
+"ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,"
+"dc=com\n"
+"\n"
+"For more information, see the FreeIPA Documentation to Sudo.\n"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:44
+msgid ""
+"\n"
+" Sudo Rule management\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:68
+msgid "Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:98
+#, fuzzy
+msgid "Command category"
+msgstr "ಹೋಸ್ಟ್ ವರ್ಗ"
+
+#: ipalib/plugins/sudorule.py:99
+#, fuzzy
+msgid "Command category the rule applies to"
+msgstr "ನಿಯಮ ಅನ್ವಯಿಸುವಂತಹ ಹೋಸ್ಟ್ ವರ್ಗ"
+
+#: ipalib/plugins/sudorule.py:104
+#, fuzzy
+msgid "Run As User category"
+msgstr "ಬಳಕೆದಾರನ ವರ್ಗ"
+
+#: ipalib/plugins/sudorule.py:105
+#, fuzzy
+msgid "Run As User category the rule applies to"
+msgstr "ನಿಯಮ ಅನ್ವಯಿಸುವಂತಹ ಬಳಕೆದಾರನ ವರ್ಗ"
+
+#: ipalib/plugins/sudorule.py:110
+#, fuzzy
+msgid "Run As Group category"
+msgstr "ಬಳಕೆದಾರನ ವರ್ಗ"
+
+#: ipalib/plugins/sudorule.py:111
+#, fuzzy
+msgid "Run As Group category the rule applies to"
+msgstr "ನಿಯಮ ಅನ್ವಯಿಸುವಂತಹ ಬಳಕೆದಾರನ ವರ್ಗ"
+
+#: ipalib/plugins/sudorule.py:131
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:77
+#: ipalib/plugins/sudorule.py:135
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:109
-#, fuzzy, python-format
+#: ipalib/plugins/sudorule.py:147
+msgid "Run As User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:151
+#, fuzzy
+msgid "Run As Group"
+msgstr "ಬಳಕೆದಾರರ ಗುಂಪುಗಳು"
+
+#: ipalib/plugins/sudorule.py:156
+#, fuzzy
+msgid "External User"
+msgstr "ಹೊರಗಿನ ಹೋಸ್ಟ್"
+
+#: ipalib/plugins/sudorule.py:157
+#, fuzzy
+msgid "External User the rule applies to"
+msgstr "ನಿಯಮ ಅನ್ವಯಿಸುವಂತಹ ಬಳಕೆದಾರನ ವರ್ಗ"
+
+#: ipalib/plugins/sudorule.py:161
+#, fuzzy
+msgid "RunAs External User"
+msgstr "ಹೊರಗಿನ ಹೋಸ್ಟ್"
+
+#: ipalib/plugins/sudorule.py:162
+msgid "External User the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:166
+#, fuzzy
+msgid "RunAs External Group"
+msgstr "ಹೊರಗಿನ ಹೋಸ್ಟ್"
+
+#: ipalib/plugins/sudorule.py:167
+msgid "External Group the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:175
+msgid ""
+"\n"
+" Create new Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
+#, fuzzy
msgid "Added sudo rule \"%(value)s\""
msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/taskgroup.py:51
-msgid "Task Groups"
-msgstr "ಕೆಲಸ(ಟಾಸ್ಕ್)ದ ಗುಂಪುಗಳು"
+#: ipalib/plugins/sudorule.py:189
+msgid ""
+"\n"
+" Delete Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:197
+msgid ""
+"\n"
+" Modify Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:56
-msgid "Task-group name"
-msgstr "ಟಾಸ್ಕ್-ಗ್ರೂಪ್ ಹೆಸರು"
+#: ipalib/plugins/sudorule.py:205
+msgid ""
+"\n"
+" Search for Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:63
-msgid "Task-group description"
-msgstr "ಟಾಸ್ಕ್-ಗ್ರೂಪ್ ವಿವರಣೆ"
+#: ipalib/plugins/sudorule.py:213
+msgid ""
+"\n"
+" Display Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:74
-msgid "Member role-groups"
-msgstr "ಸದಸ್ಯ ರೋಲ್-ಗ್ರೂಪ್‌ಗಳು"
+#: ipalib/plugins/sudorule.py:221
+msgid ""
+"\n"
+" Enable a Sudo rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:87
-#, python-format
-msgid "Added taskgroup \"%(value)s\""
-msgstr "\"%(value)s\" ಟಾಸ್ಕ್‌ಗ್ರೂಪನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
+#: ipalib/plugins/sudorule.py:247
+msgid ""
+"\n"
+" Disable a Sudo rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:97
-#, python-format
-msgid "Deleted taskgroup \"%(value)s\""
-msgstr "\"%(value)s\" ಟಾಸ್ಕ್‌ಗ್ರೂಪನ್ನು ಅಳಿಸಲಾಗಿದೆ"
+#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
+msgid ""
+"\n"
+" Add commands and sudo command groups affected by Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:107
-#, python-format
-msgid "Modified taskgroup \"%(value)s\""
-msgstr "\"%(value)s\" ಟಾಸ್ಕ್‌ಗ್ರೂಪನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"
+#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
+msgid ""
+"\n"
+" Remove commands and sudo command groups affected by Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:118
-#, python-format
-msgid "%(count)d taskgroup matched"
-msgid_plural "%(count)d taskgroups matched"
-msgstr[0] "%(count)d ಟಾಸ್ಕ್‌ಗ್ರೂಪ್‌ ತಾಳೆಯಾಗುತ್ತಿದೆ"
-msgstr[1] "%(count)d ಟಾಸ್ಕ್‌ಗ್ರೂಪ್‌ಗಳು ತಾಳೆಯಾಗುತ್ತಿವೆ"
+#: ipalib/plugins/sudorule.py:313
+msgid ""
+"\n"
+" Add users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:349
+msgid ""
+"\n"
+" Remove users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:383
+msgid ""
+"\n"
+" Add hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:419
+msgid ""
+"\n"
+" Remove hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:453
+msgid ""
+"\n"
+" Add user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:489
+msgid ""
+"\n"
+" Remove user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:523
+msgid ""
+"\n"
+" Add group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:559
+msgid ""
+"\n"
+" Remove group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:593
+msgid ""
+"\n"
+" Add an option to the Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
+msgid "Sudo Option"
+msgstr ""
-#: ipalib/plugins/user.py:84
+#: ipalib/plugins/sudorule.py:635
+msgid ""
+"\n"
+" Remove an option from Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:20
+msgid ""
+"\n"
+"Users\n"
+"\n"
+"Manage user entries. All users are POSIX users.\n"
+"\n"
+"IPA supports a wide range of username formats, but you need to be aware of "
+"any\n"
+"restrictions that may apply to your particular environment. For example,\n"
+"usernames that start with a digit or usernames that exceed a certain length\n"
+"may cause problems for some UNIX systems.\n"
+"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n"
+"\n"
+"Disabling a user account prevents that user from obtaining new Kerberos\n"
+"credentials. It does not invalidate any credentials that have already\n"
+"been issued.\n"
+"\n"
+"Password management is not a part of this module. For more information\n"
+"about this topic please see: ipa help passwd\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1\n"
+"\n"
+" Find all users whose entries include the string \"Tim\":\n"
+" ipa user-find Tim\n"
+"\n"
+" Find all users with \"Tim\" as the first name:\n"
+" ipa user-find --first=Tim\n"
+"\n"
+" Disable a user account:\n"
+" ipa user-disable tuser1\n"
+"\n"
+" Enable a user account:\n"
+" ipa user-enable tuser1\n"
+"\n"
+" Delete a user:\n"
+" ipa user-del tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/user.py:79
+msgid ""
+"\n"
+" User object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:116
msgid "User login"
msgstr "ಬಳಕೆದಾರನ ಪ್ರವೇಶ"
-#: ipalib/plugins/user.py:91
+#: ipalib/plugins/user.py:123
msgid "First name"
msgstr "ಮೊದಲ ಹೆಸರು"
-#: ipalib/plugins/user.py:95
+#: ipalib/plugins/user.py:127
msgid "Last name"
msgstr "ಕೊನೆಯ ಹೆಸರು"
-#: ipalib/plugins/user.py:103
+#: ipalib/plugins/user.py:130
+#, fuzzy
+msgid "Full name"
+msgstr "ನಿಯಮದ ಹೆಸರು"
+
+#: ipalib/plugins/user.py:135
+#, fuzzy
+msgid "Display name"
+msgstr "ಮೊದಲ ಹೆಸರು"
+
+#: ipalib/plugins/user.py:140
+msgid "Initials"
+msgstr ""
+
+#: ipalib/plugins/user.py:146
+#, fuzzy
+msgid "Home directory"
+msgstr "ಹೋಮ್ ಡೈರೆಕ್ಟರೀ ಮೂಲ"
+
+#: ipalib/plugins/user.py:150
msgid "GECOS field"
msgstr "GECOS ಕ್ಷೇತ್ರ"
-#: ipalib/plugins/user.py:109
+#: ipalib/plugins/user.py:156
msgid "Login shell"
msgstr "ಪ್ರವೇಶ ಶೆಲ್"
-#: ipalib/plugins/user.py:114
+#: ipalib/plugins/user.py:161
msgid "Kerberos principal"
msgstr "Kerberos principal"
-#: ipalib/plugins/user.py:120
+#: ipalib/plugins/user.py:168
msgid "Email address"
msgstr "ಇಮೇಲ್ ವಿಳಾಸ"
-#: ipalib/plugins/user.py:124
-msgid "Password"
-msgstr "ಗುಪ್ತಪದ"
-
-#: ipalib/plugins/user.py:125
-msgid "Set the user password"
+#: ipalib/plugins/user.py:173
+#, fuzzy
+msgid "Prompt to set the user password"
msgstr "ಬಳಕೆದಾರನ ಗುಪ್ತಪದ ಸೆಟ್ ಮಾಡು"
-#: ipalib/plugins/user.py:132
+#: ipalib/plugins/user.py:180
msgid "UID"
msgstr "UID"
-#: ipalib/plugins/user.py:133
+#: ipalib/plugins/user.py:181
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:139
+#: ipalib/plugins/user.py:188
+#, fuzzy
+msgid "Group ID Number"
+msgstr "ಗುಂಪಿನ ಹೆಸರು"
+
+#: ipalib/plugins/user.py:193
msgid "Street address"
msgstr "ಕೇರಿ ವಿಳಾಸ"
-#: ipalib/plugins/user.py:142
-msgid "Groups"
-msgstr "ಗುಂಪುಗಳು"
-
-#: ipalib/plugins/user.py:146
-msgid "Netgroups"
-msgstr "ನೆಟ್‌ಗ್ರೂಪ್‌ಗಳು"
+#: ipalib/plugins/user.py:197
+msgid "City"
+msgstr ""
-#: ipalib/plugins/user.py:150
-msgid "Rolegroups"
-msgstr "ರೋಲ್‌ಗ್ರೂಪ್‌ಗಳು"
+#: ipalib/plugins/user.py:201
+msgid "State/Province"
+msgstr ""
-#: ipalib/plugins/user.py:154
-msgid "Taskgroups"
-msgstr "ಟಾಸ್ಕ್‌ಗ್ರೂಪ್‌ಗಳು"
+#: ipalib/plugins/user.py:204
+msgid "ZIP"
+msgstr ""
-#: ipalib/plugins/user.py:159
+#: ipalib/plugins/user.py:208
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:211
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:163
+#: ipalib/plugins/user.py:214
#, fuzzy
msgid "Pager Number"
msgstr "ಅನುಕ್ರಮ ಸಂಖ್ಯೆ"
-#: ipalib/plugins/user.py:166
+#: ipalib/plugins/user.py:218
#, fuzzy
msgid "Fax Number"
msgstr "ಅನುಕ್ರಮ ಸಂಖ್ಯೆ"
-#: ipalib/plugins/user.py:177
-#, python-format
+#: ipalib/plugins/user.py:222
+msgid "Org. Unit"
+msgstr ""
+
+#: ipalib/plugins/user.py:225
+msgid "Job Title"
+msgstr ""
+
+#: ipalib/plugins/user.py:228
+msgid "Manager"
+msgstr ""
+
+#: ipalib/plugins/user.py:231
+msgid "Car License"
+msgstr ""
+
+#: ipalib/plugins/user.py:234
+#, fuzzy
+msgid "Account disabled"
+msgstr "%(count)d ವೇರಿಯೇಬಲ್‌ಗಳು"
+
+#: ipalib/plugins/user.py:258
+msgid ""
+"\n"
+" Given a userid verify the user's existence and return the dn.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:276
+msgid "manager %(manager)s not found"
+msgstr ""
+
+#: ipalib/plugins/user.py:281
+msgid ""
+"\n"
+" Convert a manager dn into a userid\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:295
+msgid ""
+"\n"
+" Add a new user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:298
msgid "Added user \"%(value)s\""
msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/user.py:226
-#, python-format
+#: ipalib/plugins/user.py:303
+#, fuzzy
+msgid "Don't create user private group"
+msgstr "ಡಿಫಾಲ್ಟ್ ಬಳಕೆದಾರರ ಗುಂಪು"
+
+#: ipalib/plugins/user.py:333
+#, fuzzy
+msgid "can be at most %(len)d characters"
+msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxlength)d ಅಕ್ಷರಗಳು ಇರಬಹುದು"
+
+#: ipalib/plugins/user.py:400
+msgid ""
+"\n"
+" Delete a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:404
msgid "Deleted user \"%(value)s\""
msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಅಳಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/user.py:240
-#, python-format
+#: ipalib/plugins/user.py:413
+msgid ""
+"\n"
+" Modify a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:417
msgid "Modified user \"%(value)s\""
msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/user.py:252
+#: ipalib/plugins/user.py:437
+msgid ""
+"\n"
+" Search for users.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:444
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:253
+#: ipalib/plugins/user.py:445
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:263
-#, python-format
+#: ipalib/plugins/user.py:463
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] "%(count)d ಬಳಕೆದಾರ ತಾಳೆಯಾಗುತ್ತಿದ್ದಾನೆ"
msgstr[1] "%(count)d ಬಳಕೆದಾರರು ತಾಳೆಯಾಗುತ್ತಿದ್ದಾರೆ"
-#: ipalib/plugins/user.py:283
-#, fuzzy, python-format
+#: ipalib/plugins/user.py:471
+msgid ""
+"\n"
+" Display information about a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:484
+#, fuzzy
+msgid ""
+"\n"
+" Disable a user account.\n"
+" "
+msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಅಳಿಸಲಾಗಿದೆ"
+
+#: ipalib/plugins/user.py:489
+#, fuzzy
msgid "Disabled user account \"%(value)s\""
msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಅಳಿಸಲಾಗಿದೆ"
-#: ipalib/plugins/user.py:309
-#, fuzzy, python-format
+#: ipalib/plugins/user.py:507
+#, fuzzy
+msgid ""
+"\n"
+" Enable a user account.\n"
+" "
+msgstr "ಅನ್‌ಲಾಕ್ ಆಗಿರುವ ಬಳಕೆದಾರ \"%(value)s\""
+
+#: ipalib/plugins/user.py:512
+#, fuzzy
msgid "Enabled user account \"%(value)s\""
msgstr "ಅನ್‌ಲಾಕ್ ಆಗಿರುವ ಬಳಕೆದಾರ \"%(value)s\""
-#: ipaserver/install/certs.py:599 ipaserver/plugins/dogtag.py:1313
-#: ipaserver/plugins/dogtag.py:1398 ipaserver/plugins/dogtag.py:1463
-#: ipaserver/plugins/dogtag.py:1543 ipaserver/plugins/dogtag.py:1602
+#: ipalib/plugins/user.py:529
+msgid ""
+"\n"
+" Unlock a user account\n"
+"\n"
+" An account may become locked if the password is entered incorrectly too\n"
+" many times within a specific time period as controlled by password\n"
+" policy. A locked account is a temporary condition and may be unlocked "
+"by\n"
+" an administrator.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:538
+#, fuzzy
+msgid "Unlocked account \"%(value)s\""
+msgstr "ಅನ್‌ಲಾಕ್ ಆಗಿರುವ ಬಳಕೆದಾರ \"%(value)s\""
+
+#: ipalib/plugins/virtual.py:20
+msgid ""
+"\n"
+"Base classes for non-LDAP backend plugins.\n"
+msgstr ""
+
+#: ipalib/plugins/virtual.py:28
+msgid ""
+"\n"
+" A command that doesn't use the LDAP backend but wants to use the\n"
+" LDAP access control system to make authorization decisions.\n"
+"\n"
+" The class variable operation is the commonName attribute of the\n"
+" entry to be tested against.\n"
+"\n"
+" In advance, you need to create an entry of the form:\n"
+" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
+"\n"
+" Ex.\n"
+" cn=request certificate, cn=virtual operations,cn=etc, dc=example, "
+"dc=com\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/virtual.py:44
+msgid ""
+"\n"
+" Perform an LDAP query to determine authorization.\n"
+"\n"
+" This should be executed before any actual work is done.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/xmlclient.py:21
+msgid ""
+"\n"
+"XML-RPC client plugin.\n"
+msgstr ""
+
+#: ipalib/cli.py:581
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr "ಮತ್ತೊಮ್ಮೆ ಪರಿಶೀಲಿಸಲು %(label)s ಎಂಟರ್ ಮಾಡಿ:"
+
+#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
+#, c-format
+msgid "Passwords do not match!"
+msgstr "ಗುಪ್ತಪದಗಳು ಹೊಂದಾಣಿಕೆಯಾಗುತ್ತಿಲ್ಲ!"
+
+#: ipalib/cli.py:590
+msgid "Cancelled."
+msgstr "ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ."
+
+#: ipalib/cli.py:819
+#, fuzzy
+msgid "Command name"
+msgstr "ವಲಯದ ಹೆಸರು"
+
+#: ipalib/cli.py:1117
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:300
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr "%(server)r ನಲ್ಲಿ ಕ್ಲೈಂಟ್ %(cver)s ಸರ್ವರ್‌ %(sver)s ನೊಂದಿಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತಿಲ್ಲ"
+
+#: ipalib/errors.py:318
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr "%(server)s ಸರ್ವರ್‌ನಿಂದ ಅಜ್ಞಾತ ದೋಷ %(code)d: %(error)s"
+
+#: ipalib/errors.py:334
+msgid "an internal error has occurred"
+msgstr "ಆಂತರಿಕ ದೋಷ ಉಂಟಾಗಿದೆ"
+
+#: ipalib/errors.py:356
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr "%(server)r ನಲ್ಲಿ ಸರ್ವರ್‌ನಲ್ಲಿ ಆಂತರಿಕ ದೋಷ ಉಂಟಾಗಿದೆ"
+
+#: ipalib/errors.py:372
+#, python-format
+msgid "unknown command %(name)r"
+msgstr "ಅಜ್ಞಾತ ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್) %(name)r "
+
+#: ipalib/errors.py:389 ipalib/errors.py:414
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr "%(server)r ಸರ್ವರ್‌ನಲ್ಲಿ ದೋಷ: %(error)s"
+
+#: ipalib/errors.py:405
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr "%(uri)r ಗೆ ಸಂಪರ್ಕಿಸಲು ಆಗುತ್ತಿಲ್ಲ: %(error)s"
+
+#: ipalib/errors.py:423
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr "ಅಸಿಂಧುವಾದ JSON-RPC ಬೇಡಿಕೆ: %(error)s"
+
+#: ipalib/errors.py:439
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:465
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr "Kerberos ದೋಷ: %(major)s/%(minor)s"
+
+#: ipalib/errors.py:482
+msgid "did not receive Kerberos credentials"
+msgstr "Kerberos ಯೋಗ್ಯತಾಪತ್ರಗಳನ್ನು ಪಡೆದಿಲ್ಲ"
+
+#: ipalib/errors.py:498
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr "Kerberos ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿ %(service)r ಸೇವೆ(ಸರ್ವಿಸ್) ಸಿಗುತ್ತಿಲ್ಲ"
+
+#: ipalib/errors.py:514
+msgid "No credentials cache found"
+msgstr "ಕ್ಯಾಶ್‌ನಲ್ಲಿ ಯೋಗ್ಯತಾಪತ್ರಗಳು ಸಿಗುತ್ತಿಲ್ಲ"
+
+#: ipalib/errors.py:530
+msgid "Ticket expired"
+msgstr "ಟಿಕೆಟ್‌ನ ಅವಧಿ ಮುಗಿದಿದೆ"
+
+#: ipalib/errors.py:546
+msgid "Credentials cache permissions incorrect"
+msgstr "ಯೋಗ್ಯತಾಪತ್ರಗಳ ಕ್ಯಾಶ್‌ನ ಅನುಮತಿಗಳು ಸರಿಯಿಲ್ಲ"
+
+#: ipalib/errors.py:562
+msgid "Bad format in credentials cache"
+msgstr "ಯೋಗ್ಯತಾಪತ್ರಗಳ ಕ್ಯಾಶ್‌ನಲ್ಲಿ ಜೋಡಣೆ ಸರಿಯಿಲ್ಲ"
+
+#: ipalib/errors.py:578
+msgid "Cannot resolve KDC for requested realm"
+msgstr "ಕೋರಿದ ಕ್ಷೇತ್ರ(ರೆಲ್ಮ್)ಕ್ಕಾಗಿ KDC ಯನ್ನು ಬಗೆಹರಿಸಲು ಆಗುತ್ತಿಲ್ಲ"
+
+#: ipalib/errors.py:597
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr "ನಿಲುಕಣೆ(ಆಕ್ಸೆಸ್) ಸಾಲದಾಗಿದೆ: %(info)s"
+
+#: ipalib/errors.py:641
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr "%(name)r ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್) ಯಾವುದೇ ಆರ್ಗುಮೆಂಟ್‌ಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುವುದಿಲ್ಲ"
+
+#: ipalib/errors.py:661
+#, python-format
+msgid "command %(name)r takes at most %(count)d argument"
+msgid_plural "command %(name)r takes at most %(count)d arguments"
+msgstr[0] "%(name)r ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್) ಗರಿಷ್ಠ %(count)d ಆರ್ಗುಮೆಂಟ್‌ವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ"
+msgstr[1] ""
+"%(name)r ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್) ಗರಿಷ್ಠ %(count)d ಆರ್ಗುಮೆಂಟ್‌ಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ"
+
+#: ipalib/errors.py:691
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr "ಆರ್ಗುಮೆಂಟ್‌ಗಳನ್ನು ಮತ್ತು ಆಯ್ಕೆಗಳನ್ನು ಒಂದರಮೇಲೊಂದಾಗಿಸಲಾಗುತ್ತಿದೆ: %(names)r"
+
+#: ipalib/errors.py:707
+#, python-format
+msgid "%(name)r is required"
+msgstr "%(name)r ಅಗತ್ಯವಿದೆ"
+
+#: ipalib/errors.py:723 ipalib/errors.py:739
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr "ಅಸಿಂಧುವಾದ %(name)r: %(error)s"
+
+#: ipalib/errors.py:755
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr "apiನಲ್ಲಿ ಆ ತರಹದ ಯಾವುದೇ ನೇಮ್‌ಸ್ಪೇಸ್ ಇಲ್ಲ: %(name)r"
+
+#: ipalib/errors.py:764
+msgid "Passwords do not match"
+msgstr "ಗುಪ್ತಪದಗಳು ಹೊಂದಾಣಿಕೆಯಾಗುತ್ತಿಲ್ಲ"
+
+#: ipalib/errors.py:773
+msgid "Command not implemented"
+msgstr "ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್)ಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲಾಗಿಲ್ಲ"
+
+#: ipalib/errors.py:782
+msgid "Client is not configured. Run ipa-client-install."
+msgstr ""
+
+#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
+#: ipalib/errors.py:1424 ipalib/errors.py:1441
+#, python-format
+msgid "%(reason)s"
+msgstr "%(reason)s"
+
+#: ipalib/errors.py:826
+msgid "This entry already exists"
+msgstr "ಈ ನಮೂದು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ"
+
+#: ipalib/errors.py:842
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+"ಒಂದು ಹೋಸ್ಟ್ ಸೇವೆ(ಸರ್ವಿಸ್)ಯನ್ನು ರಚಿಸುವ ಸಲುವಾಗಿ ನೀವು ಒಂದು ಹೋಸ್ಟ್ ಅನ್ನು ಸೇರಿಸಲೇಬೇಕಾಗಿದೆ"
+
+#: ipalib/errors.py:858
+#, python-format
+msgid ""
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr ""
+"Service principalನ ಸ್ವರೂಪ ಹೀಗಿಲ್ಲ: service/fully-qualified host name: "
+"%(reason)s"
+
+#: ipalib/errors.py:874
+msgid ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr "principalನ ಕ್ಷೇತ್ರ(ರೆಲ್ಮ್)ವು ಈ IPA ಸರ್ವರ್‌ನ ಕ್ಷೇತ್ರ(ರೆಲ್ಮ್)ಕ್ಕೆ ತಾಳೆಯಾಗುತ್ತಿಲ್ಲ"
+
+#: ipalib/errors.py:890
+msgid "This command requires root access"
+msgstr "ಈ ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್) ರೂಟ್(root) ನಿಲುಕಣೆ(ಆಕ್ಸೆಸ್) ಕೋರುತ್ತದೆ"
+
+#: ipalib/errors.py:906
+msgid "This is already a posix group"
+msgstr "ಇದು ಈಗಾಗಲೇ posix ಗುಂಪು"
+
+#: ipalib/errors.py:922
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr "Principalನ ಸ್ವರೂಪ user@REALM ನಂತಲ್ಲ: %(principal)r"
+
+#: ipalib/errors.py:938
+#, fuzzy
+msgid "This entry is already enabled"
+msgstr "ಈ ನಮೂದು ಈಗಾಗಲೇ ಅನ್‌ಲಾಕ್ ಆಗಿದೆ"
+
+#: ipalib/errors.py:954
+#, fuzzy
+msgid "This entry is already disabled"
+msgstr "ಈ ನಮೂದು ಈಗಾಗಲೇ ಲಾಕ್ ಆಗಿದೆ"
+
+#: ipalib/errors.py:970
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:986
+#, fuzzy
+msgid "This entry is not a member"
+msgstr "ಈ ನಮೂದು ಗುಂಪಿನ ಒಂದು ಸದಸ್ಯ ಆಗಿಲ್ಲ"
+
+#: ipalib/errors.py:1002
+msgid "A group may not be a member of itself"
+msgstr "ಒಂದು ಗುಂಪು ಅದರ ಒಂದು ಸದಸ್ಯ ಆಗದಿರಬಹುದು"
+
+#: ipalib/errors.py:1018
+#, fuzzy
+msgid "This entry is already a member"
+msgstr "ಈ ನಮೂದು ಈಗಾಗಲೇ ಗುಂಪಿನ ಒಂದು ಸದಸ್ಯ ಆಗಿದೆ"
+
+#: ipalib/errors.py:1034
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr "Base64 ಡೆಕೋಡಿಂಗ್ ವಿಫಲಗೊಂಡಿದೆ: %(reason)s"
+
+#: ipalib/errors.py:1066
+msgid "A group may not be added as a member of itself"
+msgstr "ಒಂದು ಗುಂಪು ಅದರ ಒಂದು ಸದಸ್ಯನಂತೆ ಸೇರಿಸಲು ಆಗದಿರಬಹುದು"
+
+#: ipalib/errors.py:1082
+msgid "The default users group cannot be removed"
+msgstr "ಡಿಫಾಲ್ಟ್ ಬಳಕೆದಾರರ ಗುಂಪನ್ನು ತೆಗೆದುಹಾಕಲು ಆಗುವುದಿಲ್ಲ"
+
+#: ipalib/errors.py:1098
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1113
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1128
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1160
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1176
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1192
+#, python-format
+msgid ""
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1216
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr "ಆಜ್ಞೆ(ಕಮ್ಯಾಂಡ್) ಇಲ್ಲ ಸಹಾಯದ ಟಾಪಿಕ್ %(topic)r ಕೂಡ ಇಲ್ಲ"
+
+#: ipalib/errors.py:1240
+msgid "change collided with another change"
+msgstr "ಬದಲಾವಣೆ ಮತ್ತೊಂದು ಬದಲಾವಣೆಯೊಂದಿಗೆ ಡಿಕ್ಕಿಹೊಡೆದಿದೆ"
+
+#: ipalib/errors.py:1256
+msgid "no modifications to be performed"
+msgstr "ಯಾವುದೇ ಬದಲಾವಣೆಗಳು ನಡೆಯಬಾರದು"
+
+#: ipalib/errors.py:1272
+#, fuzzy, python-format
+msgid "%(desc)s: %(info)s"
+msgstr "%(desc)s:%(info)s"
+
+#: ipalib/errors.py:1288
+msgid "limits exceeded for this query"
+msgstr "ಈ ಕ್ವೇರಿಗೆ ಮಿತಿಗಳು ಮೀರಿವೆ"
+
+#: ipalib/errors.py:1303
+#, python-format
+msgid "%(info)s"
+msgstr "%(info)s"
+
+#: ipalib/errors.py:1318
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1334
+#, fuzzy, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr "ಕೇವಲ ಒಂದು ಬೆಲೆ ಮಾತ್ರ ಅನುಮೋದಿಸಲಾಗಿದೆ"
+
+#: ipalib/errors.py:1350
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1366
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1391
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr "ಪ್ರಮಾಣಪತ್ರದ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಆಗುತ್ತಿಲ್ಲ: %(error)s"
+
+#: ipalib/errors.py:1407
+#, fuzzy, python-format
+msgid "Certificate format error: %(error)s"
+msgstr "ಪ್ರಮಾಣಪತ್ರದ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಆಗುತ್ತಿಲ್ಲ: %(error)s"
+
+#: ipalib/errors.py:1458
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1474
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:398
+msgid "Results are truncated, try a more specific search"
+msgstr "ಫಲಿತಾಂಶಗಳು ಕತ್ತರಿಸಲ್ಪಟ್ಟಿವೆ, ಹೆಚ್ಚ್ಹು ನಿರ್ದಿಷ್ಟವಾದ ಶೋಧನೆ ಪ್ರಯತ್ನಿಸಿ"
+
+#: ipalib/frontend.py:850
+msgid ""
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:856
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:985
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:296
+msgid "incorrect type"
+msgstr "ಸರಿಯಲ್ಲದ ಬಗೆ"
+
+#: ipalib/parameters.py:299
+msgid "Only one value is allowed"
+msgstr "ಕೇವಲ ಒಂದು ಬೆಲೆ ಮಾತ್ರ ಅನುಮೋದಿಸಲಾಗಿದೆ"
+
+#: ipalib/parameters.py:901
+msgid "must be True or False"
+msgstr "ನಿಜ (True) ಅಥವಾ ಸುಳ್ಳು (False) ಆಗಿರಲೇಬೇಕು"
+
+#: ipalib/parameters.py:1002
+msgid "must be an integer"
+msgstr "ಇನ್ಟೀಜರ್ ಆಗಿರಲೇಬೇಕು"
+
+#: ipalib/parameters.py:1054
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr "ಕನಿಷ್ಠವಾಗಿ %(minvalue)d ಆಗಿರಲೇಬೇಕು"
+
+#: ipalib/parameters.py:1064
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxvalue)d ಆಗಿರಬಹುದು"
+
+#: ipalib/parameters.py:1074
+msgid "must be a decimal number"
+msgstr "ದಶಾಂಶ ಸಂಖ್ಯೆ ಆಗಿರಲೇಬೇಕು"
+
+#: ipalib/parameters.py:1097
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr "ಕನಿಷ್ಠವಾಗಿ %(minvalue)f ಆಗಿರಲೇಬೇಕು"
+
+#: ipalib/parameters.py:1107
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxvalue)f ಆಗಿರಬಹುದು"
+
+#: ipalib/parameters.py:1174
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr "ನಮೂನೆ \"%(pattern)s\" ಹೊಂದಾಣಿಕೆಯಾಗಲೇಬೇಕು"
+
+#: ipalib/parameters.py:1192
+msgid "must be binary data"
+msgstr "ಬೈನರಿ ಡಾಟಾ ಆಗಿರಲೇಬೇಕು"
+
+#: ipalib/parameters.py:1208
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr "ಕನಿಷ್ಠವಾಗಿ %(minlength)d ಬೈಟ್ಸ್ ಆಗಿರಲೇಬೇಕು"
+
+#: ipalib/parameters.py:1218
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxlength)d ಬೈಟ್ಸ್ ಆಗಿರಬಹುದು"
+
+#: ipalib/parameters.py:1228
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr "ನಿಖರವಾಗಿ %(length)d ಬೈಟ್ಸ್ ಆಗಿರಲೇಬೇಕು"
+
+#: ipalib/parameters.py:1246
+msgid "must be Unicode text"
+msgstr "ಯುನಿಕೋಡ್ ಪಠ್ಯ ಆಗಿರಲೇಬೇಕು"
+
+#: ipalib/parameters.py:1277
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr "ಕನಿಷ್ಠವಾಗಿ %(minlength)d ಅಕ್ಷರಗಳು ಇರಲೇಬೇಕು"
+
+#: ipalib/parameters.py:1287
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxlength)d ಅಕ್ಷರಗಳು ಇರಬಹುದು"
+
+#: ipalib/parameters.py:1297
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr "ನಿಖರವಾಗಿ %(length)d ಅಕ್ಷರಗಳು ಇರಲೇಬೇಕು"
+
+#: ipalib/parameters.py:1315
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1355
+#, python-format
+msgid "must be one of %(values)r"
+msgstr "%(values)r ನಲ್ಲಿ ಒಂದು ಆಗಿರಲೇಬೇಕು"
+
+#: ipalib/util.py:200
+#, python-format
+msgid "Permission denied: %(file)s"
+msgstr ""
+
+#: ipalib/x509.py:174
+#, python-format
+msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
+msgstr ""
+
+#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
+#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
+#: ipaserver/plugins/dogtag.py:1600
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr "CMS (%s) ಜೊತೆ ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ"
@@ -2050,7 +7557,7 @@ msgstr "ಹೋಸ್ಟ್ ಹಾರ್ಡ್‌ವೇರ್ ಪ್ಲ್ಯಾ
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr "ಹೋಸ್ಟ್ ಕಾರ್ಯಕಾರಿ ವ್ಯವಸ್ಥೆ ಮತ್ತು ಆವೃತ್ತಿ (e.g. \"Fedora 9\")"
-#: ipaserver/plugins/selfsign.py:98
+#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
"Request subject \"%(request_subject)s\" does not match the form "
@@ -2059,20 +7566,20 @@ msgstr ""
"ಕೋರಿಕೆ ವಿಷಯ \"%(request_subject)s\" ಸ್ವರೂಪ \"%(subject_base)s\" ಕ್ಕೆ "
"ಹೊಂದಿಕೆಯಾಗುತ್ತಿಲ್ಲ"
-#: ipaserver/plugins/selfsign.py:103
+#: ipaserver/plugins/selfsign.py:104
#, python-format
msgid "unable to decode csr: %s"
msgstr "csr ವನ್ನು ಡಿಕೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ: %s"
-#: ipaserver/plugins/selfsign.py:124 ipaserver/plugins/selfsign.py:139
+#: ipaserver/plugins/selfsign.py:125 ipaserver/plugins/selfsign.py:140
msgid "file operation"
msgstr "ಕಡತದ ಕಾರ್ಯಾಚರಣೆ"
-#: ipaserver/plugins/selfsign.py:153
+#: ipaserver/plugins/selfsign.py:154
msgid "cannot obtain next serial number"
msgstr "ಮುಂದಿನ ಸೀರಿಯಲ್ ನಂಬರ್ ಅನ್ನು ಪಡೆಯಲು ಆಗುತ್ತಿಲ್ಲ"
-#: ipaserver/plugins/selfsign.py:188
+#: ipaserver/plugins/selfsign.py:189
msgid "certutil failure"
msgstr "certutil ವಿಫಲತೆ"
@@ -2086,550 +7593,581 @@ msgstr ""
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:75
+#: ipa-client/config.c:68
+#, c-format
+msgid "out of memory\n"
+msgstr ""
+
+#: ipa-client/config.c:79
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:138 ipa-client/ipa-getkeytab.c:838
+#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
+#: ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:146
+#: ipa-client/ipa-getkeytab.c:155
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:164 ipa-client/ipa-getkeytab.c:179
+#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:194
+#: ipa-client/ipa-getkeytab.c:203
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:209
+#: ipa-client/ipa-getkeytab.c:218
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:235
+#: ipa-client/ipa-getkeytab.c:245
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:297
+#: ipa-client/ipa-getkeytab.c:307
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:310 ipa-client/ipa-getkeytab.c:327
-#: ipa-client/ipa-getkeytab.c:335 ipa-client/ipa-getkeytab.c:372
+#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
+#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:317 ipa-client/ipa-getkeytab.c:350
+#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
+#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
+#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
+#: ipa-client/ipa-join.c:819
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:361
+#: ipa-client/ipa-getkeytab.c:371
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:481
+#: ipa-client/ipa-getkeytab.c:492
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:496
+#: ipa-client/ipa-getkeytab.c:507
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:534
+#: ipa-client/ipa-getkeytab.c:545
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:541
+#: ipa-client/ipa-getkeytab.c:552
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:565
+#: ipa-client/ipa-getkeytab.c:576
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:572
+#: ipa-client/ipa-getkeytab.c:583
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:579
+#: ipa-client/ipa-getkeytab.c:596
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:589
+#: ipa-client/ipa-getkeytab.c:606
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:605 ipa-client/ipa-getkeytab.c:618
-#: ipa-client/ipa-getkeytab.c:625 ipa-client/ipa-getkeytab.c:632
+#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
+#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:638 ipa-client/ipa-getkeytab.c:648
+#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655
+#: ipa-client/ipa-getkeytab.c:672
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:674
+#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:715
+#: ipa-client/ipa-getkeytab.c:736
#, fuzzy
msgid "New Principal Password"
msgstr "Principal ಹೆಸರು"
-#: ipa-client/ipa-getkeytab.c:721
+#: ipa-client/ipa-getkeytab.c:742
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781
+#: ipa-client/ipa-getkeytab.c:778
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782
+#: ipa-client/ipa-getkeytab.c:779
#, fuzzy
msgid "Server Name"
msgstr "ಸೇವೆಯ ಹೆಸರು"
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:189
+#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
#, fuzzy
msgid "Kerberos Service Principal Name"
msgstr "Kerberos principal"
-#: ipa-client/ipa-getkeytab.c:787 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:787
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:788
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:790
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:794
+#: ipa-client/ipa-getkeytab.c:791
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:796
+#: ipa-client/ipa-getkeytab.c:793
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
#, fuzzy
msgid "LDAP DN"
msgstr "LDAP URI"
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
#, fuzzy
msgid "LDAP password"
msgstr "ಗುಪ್ತಪದ"
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:825 ipa-client/ipa-rmkeytab.c:207
-#, c-format
-msgid "Kerberos context initialization failed\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:837
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:845
+#: ipa-client/ipa-getkeytab.c:841
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:864
+#: ipa-client/ipa-getkeytab.c:860
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:877
+#: ipa-client/ipa-getkeytab.c:873
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. -P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:889
+#: ipa-client/ipa-getkeytab.c:885
#, fuzzy, c-format
msgid "Invalid Service Principal Name\n"
msgstr "Service principal"
-#: ipa-client/ipa-getkeytab.c:897
+#: ipa-client/ipa-getkeytab.c:893
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:905
+#: ipa-client/ipa-getkeytab.c:901
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:913
+#: ipa-client/ipa-getkeytab.c:909
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:920
+#: ipa-client/ipa-getkeytab.c:916
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:939
+#: ipa-client/ipa-getkeytab.c:935
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:948
+#: ipa-client/ipa-getkeytab.c:944
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:954
+#: ipa-client/ipa-getkeytab.c:950
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:67
+#: ipa-client/ipa-join.c:65
#, c-format
msgid "No permission to join this host to the IPA domain.\n"
msgstr ""
-#: ipa-client/ipa-join.c:104 ipa-client/ipa-join.c:116
+#: ipa-client/ipa-join.c:94 ipa-client/ipa-join.c:106
#, c-format
msgid "No write permissions on keytab file '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:121
+#: ipa-client/ipa-join.c:111
#, c-format
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:200
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#, c-format
+msgid "Out of memory!"
+msgstr ""
+
+#: ipa-client/ipa-join.c:204
+#, c-format
+msgid "Unable to initialize connection to ldap server: %s"
+msgstr ""
+
+#: ipa-client/ipa-join.c:210
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:206
+#: ipa-client/ipa-join.c:216
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:236
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:249
+#: ipa-client/ipa-join.c:269
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:259 ipa-client/ipa-join.c:311
+#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:302
+#: ipa-client/ipa-join.c:322
#, c-format
msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:368
+#: ipa-client/ipa-join.c:390
#, c-format
msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:377
+#: ipa-client/ipa-join.c:399
#, fuzzy, c-format
msgid "Unable to determine certificate subject of %s\n"
msgstr "ನಮೂದಿನಲ್ಲಿರುವ ಪ್ರಮಾಣಪತ್ರದ ಡಿಕೋಡಿಂಗ್ ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ"
-#: ipa-client/ipa-join.c:385
+#: ipa-client/ipa-join.c:407
#, c-format
msgid "Unable to make an LDAP connection to %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:394
+#: ipa-client/ipa-join.c:432
#, c-format
msgid "Searching with %s in %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:400
+#: ipa-client/ipa-join.c:438
#, c-format
msgid "ldap_search_ext_s: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:408
+#: ipa-client/ipa-join.c:446
#, fuzzy, c-format
msgid "Unable to find host '%s'\n"
msgstr "csr ವನ್ನು ಡಿಕೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ: %s"
-#: ipa-client/ipa-join.c:415
+#: ipa-client/ipa-join.c:453
#, c-format
msgid "Unable to get binddn for host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:428
+#: ipa-client/ipa-join.c:466
#, c-format
msgid "Host already has principal, trying bind anyway\n"
msgstr ""
-#: ipa-client/ipa-join.c:442 ipa-client/ipa-join.c:579
+#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
#, fuzzy, c-format
msgid "Host is already joined.\n"
msgstr "ಈ ನಮೂದು ಈಗಾಗಲೇ ಲಾಕ್ ಆಗಿದೆ"
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:484
#, fuzzy, c-format
msgid "Incorrect password.\n"
msgstr "ಬಳಕೆದಾರನ ಗುಪ್ತಪದ"
-#: ipa-client/ipa-join.c:457
+#: ipa-client/ipa-join.c:495
#, c-format
msgid "principal not found in host entry\n"
msgstr ""
-#: ipa-client/ipa-join.c:564
+#: ipa-client/ipa-join.c:618
#, c-format
msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:646 ipa-client/ipa-join.c:823
+#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:662 ipa-client/ipa-join.c:838
+#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:671 ipa-client/ipa-join.c:848
+#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:679
+#: ipa-client/ipa-join.c:732
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:689
+#: ipa-client/ipa-join.c:741
+#, c-format
+msgid "Error getting default Kerberos realm: %s.\n"
+msgstr ""
+
+#: ipa-client/ipa-join.c:759
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:707
+#: ipa-client/ipa-join.c:777
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:718
+#: ipa-client/ipa-join.c:788
#, fuzzy, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr "Kerberos ಯೋಗ್ಯತಾಪತ್ರಗಳನ್ನು ಪಡೆದಿಲ್ಲ"
-#: ipa-client/ipa-join.c:726
+#: ipa-client/ipa-join.c:796
#, fuzzy, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr "ಯೋಗ್ಯತಾಪತ್ರಗಳ ಕ್ಯಾಶ್‌ನಲ್ಲಿ ಜೋಡಣೆ ಸರಿಯಿಲ್ಲ"
-#: ipa-client/ipa-join.c:769
+#: ipa-client/ipa-join.c:846
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:772
+#: ipa-client/ipa-join.c:849
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:854
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:855
+#: ipa-client/ipa-join.c:932
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:863
+#: ipa-client/ipa-join.c:940
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not "
"provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:877
+#: ipa-client/ipa-join.c:954
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:906
+#: ipa-client/ipa-join.c:983
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:909
+#: ipa-client/ipa-join.c:986
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:912
+#: ipa-client/ipa-join.c:989
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:924
+#: ipa-client/ipa-join.c:1001
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:930
+#: ipa-client/ipa-join.c:1007
#, fuzzy, c-format
msgid "Certificate subject base is: %s\n"
msgstr "ಪ್ರಮಾಣಪತ್ರದ ವಿಷಯ ಮೂಲ"
-#: ipa-client/ipa-join.c:963
-msgid "Print the raw XML-RPC output"
-msgstr ""
-
-#: ipa-client/ipa-join.c:963
-msgid "XML-RPC debugging Output"
+#: ipa-client/ipa-join.c:1042
+msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:967
-msgid "Unenroll this host"
+#: ipa-client/ipa-join.c:1044
+msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:967
+#: ipa-client/ipa-join.c:1046
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Use this hostname instead of the node name"
+#: ipa-client/ipa-join.c:1048
+msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:969
+#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
#, fuzzy
-msgid "Host Name"
+msgid "hostname"
msgstr "ಹೋಸ್ಟ್ ಹೆಸರು"
-#: ipa-client/ipa-join.c:971
+#: ipa-client/ipa-join.c:1050
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:971
+#: ipa-client/ipa-join.c:1052
+msgid "Specifies where to store keytab information."
+msgstr ""
+
+#: ipa-client/ipa-join.c:1052
#, fuzzy
-msgid "IPA Server Name"
-msgstr "ಸೇವೆಯ ಹೆಸರು"
+msgid "filename"
+msgstr "ನಿಯಮದ ಹೆಸರು"
+
+#: ipa-client/ipa-join.c:1054
+msgid "LDAP password (if not using Kerberos)"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1054
+#, fuzzy
+msgid "password"
+msgstr "ಗುಪ್ತಪದ"
-#: ipa-client/ipa-rmkeytab.c:44
+#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:46
+#: ipa-client/ipa-rmkeytab.c:45
#, c-format
msgid "krb5_parse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:56
+#: ipa-client/ipa-rmkeytab.c:55
#, fuzzy, c-format
msgid "Removing principal %s\n"
msgstr "Service principal"
-#: ipa-client/ipa-rmkeytab.c:69
+#: ipa-client/ipa-rmkeytab.c:68
#, c-format
msgid "Failed to open keytab\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:73
+#: ipa-client/ipa-rmkeytab.c:72
#, c-format
msgid "principal not found\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:75
+#: ipa-client/ipa-rmkeytab.c:74
#, c-format
msgid "krb5_kt_get_entry %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:83
+#: ipa-client/ipa-rmkeytab.c:82
#, fuzzy, c-format
msgid "Unable to remove entry\n"
msgstr "ನಮೂದಿನಲ್ಲಿರುವ ಪ್ರಮಾಣಪತ್ರದ ಡಿಕೋಡಿಂಗ್ ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ"
-#: ipa-client/ipa-rmkeytab.c:85
+#: ipa-client/ipa-rmkeytab.c:84
#, c-format
msgid "kvno %d\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:86
+#: ipa-client/ipa-rmkeytab.c:85
#, c-format
msgid "krb5_kt_remove_entry %d: %s\n"
msgstr ""
@@ -2644,39 +8182,128 @@ msgstr "Kerberos principal"
msgid "krb5_unparse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:143
+#, c-format
+msgid "realm not found\n"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:169
#, fuzzy
msgid "Print debugging information"
msgstr "ಮೌಂಟ್ ಮಾಹಿತಿ"
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Debugging output"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Remove all principals in this realm"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
#, fuzzy
msgid "Realm name"
msgstr "ನಿಯಮದ ಹೆಸರು"
-#: ipa-client/ipa-rmkeytab.c:241
+#: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237
#, c-format
-msgid "Failed to open keytab '%s'\n"
+msgid "Failed to open keytab '%s': %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:255
+#: ipa-client/ipa-rmkeytab.c:253
#, c-format
msgid "Closing keytab failed\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:257
+#: ipa-client/ipa-rmkeytab.c:255
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
+#~ msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
+#~ msgstr ""
+#~ "ಈ ನಮೂದಿಗೆ nsAccountLock ಸೆಟ್ ಆಗಿದೆ, ಇದನ್ನು ಲಾಕ್ ಅಥವಾ ಅನ್‌ಲಾಕ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ"
+
+#~ msgid "Taskgroup"
+#~ msgstr "ಟಾಸ್ಕ್‌ಗ್ರೂಪ್"
+
+#~ msgid "Taskgroup ACI grants access to"
+#~ msgstr "Taskgroup ACI grants access to"
+
+#~ msgid "Set an attribute to an name/value pair. Format is attr=value"
+#~ msgstr "Set an attribute to an name/value pair. Format is attr=value"
+
+#~ msgid "Default e-mail domain"
+#~ msgstr "ಡಿಫಾಲ್ಟ್ ಈ-ಅಂಚೆ ಡೊಮೇನ್"
+
+#~ msgid "Zone"
+#~ msgstr "ವಲಯ"
+
+#~ msgid "Record type"
+#~ msgstr "ದಾಖಲೆಯ ಬಗೆ"
+
+#~ msgid "Type-specific data"
+#~ msgstr "ನಮೂನೆ-ನಿಗದಿತ ದತ್ತಾಂಶ"
+
+#~ msgid "Search criteria"
+#~ msgstr "ಹುಡುಕು criteria"
+
+#~ msgid "type-specific data"
+#~ msgstr "ನಮೂನೆ-ನಿಗದಿತ ದತ್ತಾಂಶ"
+
+#, fuzzy
+#~ msgid "Description of service"
+#~ msgstr "ವಿವರಣೆ"
+
+#, fuzzy
+#~ msgid "Removed kerberos key from \"%(value)s\""
+#~ msgstr "\"%(value)s\" ರೋಲ್‌ಗ್ರೂಪನ್ನು ಅಳಿಸಲಾಗಿದೆ"
+
+#~ msgid "Net Groups"
+#~ msgstr "ನೆಟ್ ಗುಂಪುಗಳು"
+
+#~ msgid "Role Groups"
+#~ msgstr "ಕೆಲಸ(ರೋಲ್)ದ ಗುಂಪುಗಳು"
+
+#~ msgid "Role-group name"
+#~ msgstr "ರೋಲ್-ಗುಂಪಿನ ಹೆಸರು"
+
+#~ msgid "Member of task-groups"
+#~ msgstr "ಟಾಸ್ಕ್-ಗುಂಪುಗಳ ಸದಸ್ಯ"
+
+#, fuzzy
+#~ msgid "Service principal has no kerberos key"
+#~ msgstr "Service principal"
+
+#~ msgid "Task Groups"
+#~ msgstr "ಕೆಲಸ(ಟಾಸ್ಕ್)ದ ಗುಂಪುಗಳು"
+
+#~ msgid "Task-group name"
+#~ msgstr "ಟಾಸ್ಕ್-ಗ್ರೂಪ್ ಹೆಸರು"
+
+#~ msgid "Task-group description"
+#~ msgstr "ಟಾಸ್ಕ್-ಗ್ರೂಪ್ ವಿವರಣೆ"
+
+#~ msgid "Member role-groups"
+#~ msgstr "ಸದಸ್ಯ ರೋಲ್-ಗ್ರೂಪ್‌ಗಳು"
+
+#~ msgid "Added taskgroup \"%(value)s\""
+#~ msgstr "\"%(value)s\" ಟಾಸ್ಕ್‌ಗ್ರೂಪನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
+
+#~ msgid "Deleted taskgroup \"%(value)s\""
+#~ msgstr "\"%(value)s\" ಟಾಸ್ಕ್‌ಗ್ರೂಪನ್ನು ಅಳಿಸಲಾಗಿದೆ"
+
+#~ msgid "Modified taskgroup \"%(value)s\""
+#~ msgstr "\"%(value)s\" ಟಾಸ್ಕ್‌ಗ್ರೂಪನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ"
+
+#~ msgid "%(count)d taskgroup matched"
+#~ msgid_plural "%(count)d taskgroups matched"
+#~ msgstr[0] "%(count)d ಟಾಸ್ಕ್‌ಗ್ರೂಪ್‌ ತಾಳೆಯಾಗುತ್ತಿದೆ"
+#~ msgstr[1] "%(count)d ಟಾಸ್ಕ್‌ಗ್ರೂಪ್‌ಗಳು ತಾಳೆಯಾಗುತ್ತಿವೆ"
+
+#~ msgid "Taskgroups"
+#~ msgstr "ಟಾಸ್ಕ್‌ಗ್ರೂಪ್‌ಗಳು"
+
#~ msgid "Locked user \"%(value)s\""
#~ msgstr "ಲಾಕ್ ಆಗಿರುವ ಬಳಕೆದಾರ \"%(value)s\""
diff --git a/install/po/ko.po b/install/po/ko.po
index 613759681..60ee09a88 100644
--- a/install/po/ko.po
+++ b/install/po/ko.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: ipa\n"
"Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/"
"newticket\n"
-"POT-Creation-Date: 2010-10-13 14:22-0400\n"
+"POT-Creation-Date: 2011-06-06 13:27-0400\n"
"PO-Revision-Date: 2010-09-27 10:23-0400\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -18,1502 +18,4737 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: ipalib/cli.py:507
-#, python-format
-msgid "Enter %(label)s again to verify: "
+#: ipalib/plugins/__init__.py:20
+msgid ""
+"\n"
+"Sub-package containing all core plugins.\n"
msgstr ""
-#: ipalib/cli.py:511 ipa-client/ipa-getkeytab.c:730
-#, c-format
-msgid "Passwords do not match!"
+#: ipalib/plugins/aci.py:20
+msgid ""
+"\n"
+"Directory Server Access Control Instructions (ACIs)\n"
+"\n"
+"ACIs are used to allow or deny access to information. This module is\n"
+"currently designed to allow, not deny, access.\n"
+"\n"
+"The aci commands are designed to grant permissions that allow updating\n"
+"existing entries or adding or deleting new ones. The goal of the ACIs\n"
+"that ship with IPA is to provide a set of low-level permissions that\n"
+"grant access to special groups called taskgroups. These low-level\n"
+"permissions can be combined into roles that grant broader access. These\n"
+"roles are another type of group, roles.\n"
+"\n"
+"For example, if you have taskgroups that allow adding and modifying users "
+"you\n"
+"could create a role, useradmin. You would assign users to the useradmin\n"
+"role to allow them to do the operations defined by the taskgroups.\n"
+"\n"
+"You can create ACIs that delegate permission so users in group A can write\n"
+"attributes on group B.\n"
+"\n"
+"The type option is a map that applies to all entries in the users, groups "
+"or\n"
+"host location. It is primarily designed to be used when granting add\n"
+"permissions (to write new entries).\n"
+"\n"
+"An ACI consists of three parts:\n"
+"1. target\n"
+"2. permissions\n"
+"3. bind rules\n"
+"\n"
+"The target is a set of rules that define which LDAP objects are being\n"
+"targeted. This can include a list of attributes, an area of that LDAP\n"
+"tree or an LDAP filter.\n"
+"\n"
+"The targets include:\n"
+"- attrs: list of attributes affected\n"
+"- type: an object type (user, group, host, service, etc)\n"
+"- memberof: members of a group\n"
+"- targetgroup: grant access to modify a specific group. This is primarily\n"
+" designed to enable users to add or remove members of a specific group.\n"
+"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
+"- subtree: Used to apply a rule across an entire set of objects. For "
+"example,\n"
+" to allow adding users you need to grant \"add\" permission to the subtree\n"
+" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
+" is a fail-safe for objects that may not be covered by the type option.\n"
+"\n"
+"The permissions define what the the ACI is allowed to do, and are one or\n"
+"more of:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
+"allows this to be any valid LDAP entry but we encourage the use of\n"
+"taskgroups so that the rights can be easily shared through roles.\n"
+"\n"
+"For a more thorough description of access controls see\n"
+"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control."
+"html\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
+"demonstrate how the various options work but this is done via the "
+"permission\n"
+"command-line now (see last example).\n"
+"\n"
+" Add an ACI so that the group \"secretaries\" can update the address on any "
+"user:\n"
+" ipa group-add --desc=\"Office secretaries\" secretaries\n"
+" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries "
+"--permissions=write --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Show the new ACI:\n"
+" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Add an ACI that allows members of the \"addusers\" permission to add new "
+"users:\n"
+" ipa aci-add --type=user --permission=addusers --permissions=add --"
+"prefix=none \"Add new users\"\n"
+"\n"
+" Add an ACI that allows members of the editors manage members of the admins "
+"group:\n"
+" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --"
+"group=editors --prefix=none \"Editors manage admins\"\n"
+"\n"
+" Add an ACI that allows members of the admin group to manage the street and "
+"zip code of those in the editors group:\n"
+" ipa aci-add --permissions=write --memberof=editors --group=admins --"
+"attrs=street,postalcode --prefix=none \"admins edit the address of editors"
+"\"\n"
+"\n"
+" Add an ACI that allows the admins group manage the street and zipcode of "
+"those who work for the boss:\n"
+" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode "
+"--filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --"
+"prefix=none \"Edit the address of those who work for the boss\"\n"
+"\n"
+" Add an entirely new kind of record to IPA that isn't covered by any of the "
+"--type options, creating a permission:\n"
+" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,"
+"cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
+"\n"
+"\n"
+"The show command shows the raw 389-ds ACI.\n"
+"\n"
+"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
+"must include all existing attributes as well. When doing an aci-mod the\n"
+"targetattr REPLACES the current attributes, it does not add to them.\n"
+"\n"
msgstr ""
-#: ipalib/cli.py:516
-msgid "Cancelled."
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
-#: ipalib/errors.py:297
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+#: ipalib/plugins/aci.py:172
+msgid ""
+"\n"
+" Given a name and a prefix construct an ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:315
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
+#: ipalib/plugins/aci.py:181
+msgid ""
+"\n"
+" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
+" and the actual ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:331
-msgid "an internal error has occurred"
+#: ipalib/plugins/aci.py:193
+msgid ""
+"\n"
+" Pull the group name out of a memberOf filter\n"
+" "
msgstr ""
-#: ipalib/errors.py:353
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
+#: ipalib/plugins/aci.py:204
+msgid ""
+"\n"
+" Given a name and a set of keywords construct an ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:369
-#, python-format
-msgid "unknown command %(name)r"
+#: ipalib/plugins/aci.py:215
+msgid "type, filter, subtree and targetgroup are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:386 ipalib/errors.py:411
-#, python-format
-msgid "error on server %(server)r: %(error)s"
+#: ipalib/plugins/aci.py:218
+msgid "ACI prefix is required"
msgstr ""
-#: ipalib/errors.py:402
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+#: ipalib/plugins/aci.py:221
+msgid ""
+"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
+"required"
msgstr ""
-#: ipalib/errors.py:420
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
+#: ipalib/plugins/aci.py:224
+msgid "filter and memberof are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:448
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
+#: ipalib/plugins/aci.py:230
+msgid "group, permission and self are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:465
-msgid "did not receive Kerberos credentials"
+#: ipalib/plugins/aci.py:232
+msgid "One of group, permission or self is required"
msgstr ""
-#: ipalib/errors.py:481
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
+#: ipalib/plugins/aci.py:251
+msgid "Group '%s' does not exist"
msgstr ""
-#: ipalib/errors.py:497
-msgid "No credentials cache found"
+#: ipalib/plugins/aci.py:273
+msgid "empty filter"
msgstr ""
-#: ipalib/errors.py:513
-msgid "Ticket expired"
+#: ipalib/plugins/aci.py:294
+msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/errors.py:529
-msgid "Credentials cache permissions incorrect"
+#: ipalib/plugins/aci.py:299
+msgid ""
+"Convert an ACI into its equivalent keywords.\n"
+"\n"
+" This is used for the modify operation so we can merge the\n"
+" incoming kw and existing ACI and pass the result to\n"
+" _make_aci().\n"
+" "
msgstr ""
-#: ipalib/errors.py:545
-msgid "Bad format in credentials cache"
+#: ipalib/plugins/aci.py:379
+msgid "ACI with name \"%s\" not found"
msgstr ""
-#: ipalib/errors.py:561
-msgid "Cannot resolve KDC for requested realm"
+#: ipalib/plugins/aci.py:400
+msgid "ACI prefix"
msgstr ""
-#: ipalib/errors.py:580
-#, python-format
-msgid "Insufficient access: %(info)s"
+#: ipalib/plugins/aci.py:401
+msgid ""
+"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
+"none)"
msgstr ""
-#: ipalib/errors.py:624
-#, python-format
-msgid "command %(name)r takes no arguments"
+#: ipalib/plugins/aci.py:407
+msgid ""
+"\n"
+" ACI object.\n"
+" "
msgstr ""
-#: ipalib/errors.py:644
-#, python-format
-msgid "command %(name)r takes at most %(count)d argument"
-msgid_plural "command %(name)r takes at most %(count)d arguments"
-msgstr[0] ""
+#: ipalib/plugins/aci.py:412
+msgid "ACIs"
+msgstr ""
-#: ipalib/errors.py:674
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
+#: ipalib/plugins/aci.py:417
+msgid "ACI name"
msgstr ""
-#: ipalib/errors.py:690
-#, python-format
-msgid "%(name)r is required"
+#: ipalib/plugins/aci.py:422
+msgid "Permission"
msgstr ""
-#: ipalib/errors.py:706 ipalib/errors.py:722
-#, python-format
-msgid "invalid %(name)r: %(error)s"
+#: ipalib/plugins/aci.py:423
+msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/errors.py:738
-#, python-format
-msgid "api has no such namespace: %(name)r"
+#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+msgid "User group"
msgstr ""
-#: ipalib/errors.py:747
-msgid "Passwords do not match"
+#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/errors.py:755
-msgid "Command not implemented"
+#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
+#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
+#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+msgid "Permissions"
msgstr ""
-#: ipalib/errors.py:783 ipalib/errors.py:1023 ipalib/errors.py:1254
-#, python-format
-msgid "%(reason)s"
+#: ipalib/plugins/aci.py:433
+msgid ""
+"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/errors.py:799
-msgid "This entry already exists"
+#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
+#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+msgid "Attributes"
msgstr ""
-#: ipalib/errors.py:815
-msgid "You must enroll a host in order to create a host service"
+#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
+#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/errors.py:831
-#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
+#: ipalib/plugins/permission.py:131
+msgid "Type"
msgstr ""
-#: ipalib/errors.py:847
-msgid ""
-"The realm for the principal does not match the realm for this IPA server"
+#: ipalib/plugins/aci.py:445
+msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/errors.py:863
-msgid "This command requires root access"
+#: ipalib/plugins/aci.py:450
+msgid "Member of"
msgstr ""
-#: ipalib/errors.py:879
-msgid "This is already a posix group"
+#: ipalib/plugins/aci.py:451
+msgid "Member of a group"
msgstr ""
-#: ipalib/errors.py:895
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
+#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
+#: ipalib/plugins/permission.py:144
+msgid "Filter"
msgstr ""
-#: ipalib/errors.py:911
-msgid "This entry is already unlocked"
+#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/errors.py:927
-msgid "This entry is already locked"
+#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+msgid "Subtree"
msgstr ""
-#: ipalib/errors.py:943
-msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
+#: ipalib/plugins/aci.py:461
+msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/errors.py:959
-msgid "This entry is not a member of the group"
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+msgid "Target group"
msgstr ""
-#: ipalib/errors.py:975
-msgid "A group may not be a member of itself"
+#: ipalib/plugins/aci.py:466
+msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/errors.py:991
-msgid "This entry is already a member of the group"
+#: ipalib/plugins/aci.py:470
+msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/errors.py:1007
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
+#: ipalib/plugins/aci.py:471
+msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/errors.py:1039
-msgid "A group may not be added as a member of itself"
+#: ipalib/plugins/aci.py:478
+msgid ""
+"\n"
+" Create new ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1055
-msgid "The default users group cannot be removed"
+#: ipalib/plugins/aci.py:482
+msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1071
-msgid "Host does not have corresponding DNS A record"
+#: ipalib/plugins/aci.py:487
+msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/errors.py:1086
-msgid "Deleting a managed group is not allowed. It must be detached first."
+#: ipalib/plugins/aci.py:493
+msgid ""
+"\n"
+" Execute the aci-create operation.\n"
+"\n"
+" Returns the entry as it will be created in LDAP.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: Keyword arguments for the other LDAP attributes.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1109
-#, python-format
-msgid "no command nor help topic %(topic)r"
+#: ipalib/plugins/aci.py:533
+msgid ""
+"\n"
+" Delete ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1133
-msgid "change collided with another change"
+#: ipalib/plugins/aci.py:538
+msgid "Deleted ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1149
-msgid "no modifications to be performed"
+#: ipalib/plugins/aci.py:543
+msgid ""
+"\n"
+" Execute the aci-delete operation.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/errors.py:1165
-#, python-format
-msgid "%(desc)s:%(info)s"
+#: ipalib/plugins/aci.py:576
+msgid ""
+"\n"
+" Modify ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1181
-msgid "limits exceeded for this query"
+#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
+#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
+#: ipalib/plugins/selfservice.py:212
+msgid "ACI"
msgstr ""
-#: ipalib/errors.py:1196
-#, python-format
-msgid "%(info)s"
+#: ipalib/plugins/aci.py:588
+msgid "Modified ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1221
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
+#: ipalib/plugins/aci.py:633
+msgid ""
+"\n"
+" Search for ACIs.\n"
+"\n"
+" Returns a list of ACIs\n"
+"\n"
+" EXAMPLES:\n"
+"\n"
+" To find all ACIs that apply directly to members of the group ipausers:\n"
+" ipa aci-find --memberof=ipausers\n"
+"\n"
+" To find all ACIs that grant add access:\n"
+" ipa aci-find --permissions=add\n"
+"\n"
+" Note that the find command only looks for the given text in the set of\n"
+" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
+" For example, searching on memberof=ipausers will find all ACIs that\n"
+" have ipausers as a memberof. There may be other ACIs that apply to\n"
+" members of that group indirectly.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:653
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+
+#: ipalib/plugins/aci.py:823
+msgid ""
+"\n"
+" Display a single ACI given an ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1237
-#, python-format
-msgid "Certificate format error: %(error)s"
+#: ipalib/plugins/aci.py:837
+msgid ""
+"\n"
+" Execute the aci-show operation.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param uid: The login name of the user to retrieve.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/frontend.py:380
-msgid "Results are truncated, try a more specific search"
+#: ipalib/plugins/aci.py:865
+msgid ""
+"\n"
+" Rename an ACI.\n"
+" "
msgstr ""
-#: ipalib/frontend.py:797 ipalib/plugins/misc.py:47
-msgid "retrieve all attributes"
+#: ipalib/plugins/aci.py:878
+msgid "New ACI name"
msgstr ""
-#: ipalib/frontend.py:803
-msgid "print entries as stored on the server"
+#: ipalib/plugins/aci.py:882
+msgid "Renamed ACI to \"%(value)s\""
msgstr ""
-#: ipalib/frontend.py:940
-msgid "Forward to server instead of running locally"
+#: ipalib/plugins/automount.py:20
+msgid ""
+"\n"
+"Automount\n"
+"\n"
+"Stores automount(8) configuration for autofs(8) in IPA.\n"
+"\n"
+"The base of an automount configuration is the configuration file auto."
+"master.\n"
+"This is also the base location in IPA. Multiple auto.master configurations\n"
+"can be stored in separate locations. A location is implementation-specific\n"
+"with the default being a location named 'default'. For example, you can "
+"have\n"
+"locations by geographic region, by floor, by type, etc.\n"
+"\n"
+"Automount has three basic object types: locations, maps and keys.\n"
+"\n"
+"A location defines a set of maps anchored in auto.master. This allows you\n"
+"to store multiple automount configurations. A location in itself isn't\n"
+"very interesting, it is just a point to start a new automount map.\n"
+"\n"
+"A map is roughly equivalent to a discrete automount file and provides\n"
+"storage for keys.\n"
+"\n"
+"A key is a mount point associated with a map.\n"
+"\n"
+"When a new location is created, two maps are automatically created for\n"
+"it: auto.master and auto.direct. auto.master is the root map for all\n"
+"automount maps for the location. auto.direct is the default map for\n"
+"direct mounts and is mounted on /-.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"Locations:\n"
+"\n"
+" Create a named location, \"Baltimore\":\n"
+" ipa automountlocation-add baltimore\n"
+"\n"
+" Display the new location:\n"
+" ipa automountlocation-show baltimore\n"
+"\n"
+" Find available locations:\n"
+" ipa automountlocation-find\n"
+"\n"
+" Remove a named automount location:\n"
+" ipa automountlocation-del baltimore\n"
+"\n"
+" Show what the automount maps would look like if they were in the "
+"filesystem:\n"
+" ipa automountlocation-tofiles baltimore\n"
+"\n"
+" Import an existing configuration into a location:\n"
+" ipa automountlocation-import baltimore /etc/auto.master\n"
+"\n"
+" The import will fail if any duplicate entries are found. For\n"
+" continuous operation where errors are ignored, use the --continue\n"
+" option.\n"
+"\n"
+"Maps:\n"
+"\n"
+" Create a new map, \"auto.share\":\n"
+" ipa automountmap-add baltimore auto.share\n"
+"\n"
+" Display the new map:\n"
+" ipa automountmap-show baltimore auto.share\n"
+"\n"
+" Find maps in the location baltimore:\n"
+" ipa automountmap-find baltimore\n"
+"\n"
+" Remove the auto.share map:\n"
+" ipa automountmap-del baltimore auto.share\n"
+"\n"
+"Keys:\n"
+"\n"
+" Create a new key for the auto.share map in location baltimore. This ties\n"
+" the map we previously created to auto.master:\n"
+" ipa automountkey-add baltimore auto.master --key=/share --info=auto."
+"share\n"
+"\n"
+" Create a new key for our auto.share map, an NFS mount for man pages:\n"
+" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,"
+"rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n"
+"\n"
+" Find all keys for the auto.share map:\n"
+" ipa automountkey-find baltimore auto.share\n"
+"\n"
+" Find all direct automount keys:\n"
+" ipa automountkey-find baltimore --key=/-\n"
+"\n"
+" Remove the man key from the auto.share map:\n"
+" ipa automountkey-del baltimore auto.share --key=man\n"
+msgstr ""
+
+#: ipalib/plugins/automount.py:182
+msgid ""
+"\n"
+" Location container for automount maps.\n"
+" "
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
+#: ipalib/plugins/automount.py:190
+msgid "Automount Locations"
msgstr ""
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
+#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+msgid "Location"
msgstr ""
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
+#: ipalib/plugins/automount.py:197
+msgid "Automount location name."
msgstr ""
-#: ipalib/parameters.py:295
-msgid "incorrect type"
+#: ipalib/plugins/automount.py:206
+msgid ""
+"\n"
+" Create a new automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:298
-msgid "Only one value is allowed"
+#: ipalib/plugins/automount.py:221
+msgid ""
+"\n"
+" Delete an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:877
-msgid "must be True or False"
+#: ipalib/plugins/automount.py:229
+msgid ""
+"\n"
+" Display an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:978
-msgid "must be an integer"
+#: ipalib/plugins/automount.py:237
+msgid ""
+"\n"
+" Search for an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1029
-#, python-format
-msgid "must be at least %(minvalue)d"
+#: ipalib/plugins/automount.py:245
+msgid ""
+"\n"
+" Generate automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1039
-#, python-format
-msgid "can be at most %(maxvalue)d"
+#: ipalib/plugins/automount.py:308
+msgid ""
+"\n"
+" Import automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1049
-msgid "must be a decimal number"
+#: ipalib/plugins/automount.py:314
+msgid "Master file"
msgstr ""
-#: ipalib/parameters.py:1071
-#, python-format
-msgid "must be at least %(minvalue)f"
+#: ipalib/plugins/automount.py:315
+msgid "Automount master file."
msgstr ""
-#: ipalib/parameters.py:1081
-#, python-format
-msgid "can be at most %(maxvalue)f"
+#: ipalib/plugins/automount.py:322
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/parameters.py:1145
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
+#: ipalib/plugins/automount.py:334
+msgid "File %(file)s not found"
msgstr ""
-#: ipalib/parameters.py:1163
-msgid "must be binary data"
+#: ipalib/plugins/automount.py:341
+msgid ""
+"\n"
+" The basic idea is to read the master file and create all the maps\n"
+" we need, then read each map file and add all the keys for the map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1179
-#, python-format
-msgid "must be at least %(minlength)d bytes"
+#: ipalib/plugins/automount.py:492
+msgid ""
+"\n"
+" Automount map object.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1189
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
+#: ipalib/plugins/automount.py:505
+msgid "Map"
msgstr ""
-#: ipalib/parameters.py:1199
-#, python-format
-msgid "must be exactly %(length)d bytes"
+#: ipalib/plugins/automount.py:506
+msgid "Automount map name."
msgstr ""
-#: ipalib/parameters.py:1217
-msgid "must be Unicode text"
+#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
+#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
+#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
+#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
+#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
+#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
+#: ipalib/plugins/sudorule.py:78
+msgid "Description"
msgstr ""
-#: ipalib/parameters.py:1248
-#, python-format
-msgid "must be at least %(minlength)d characters"
+#: ipalib/plugins/automount.py:515
+msgid "Automount Maps"
msgstr ""
-#: ipalib/parameters.py:1258
-#, python-format
-msgid "can be at most %(maxlength)d characters"
+#: ipalib/plugins/automount.py:521
+msgid ""
+"\n"
+" Create a new automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1268
-#, python-format
-msgid "must be exactly %(length)d characters"
+#: ipalib/plugins/automount.py:529
+msgid ""
+"\n"
+" Delete an automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1307
-#, python-format
-msgid "must be one of %(values)r"
+#: ipalib/plugins/automount.py:548
+msgid ""
+"\n"
+" Modify an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:111
-msgid "A list of ACI values"
+#: ipalib/plugins/automount.py:556
+msgid ""
+"\n"
+" Search for an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:142
-msgid "type, filter, subtree and targetgroup are mutually exclusive"
+#: ipalib/plugins/automount.py:564
+msgid ""
+"\n"
+" Display an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:145
+#: ipalib/plugins/automount.py:572
msgid ""
-"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
-"required"
+"\n"
+" Automount key object.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:151
-msgid "group, taskgroup and self are mutually exclusive"
+#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
+#: ipalib/plugins/automount.py:850
+msgid "Key"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "One of group, taskgroup or self is required"
+#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
+#: ipalib/plugins/automount.py:851
+msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/aci.py:172
-#, python-format
-msgid "Group '%s' does not exist"
+#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
+#: ipalib/plugins/automount.py:855
+msgid "Mount information"
msgstr ""
-#: ipalib/plugins/aci.py:269
-#, python-format
-msgid "ACI with name \"%s\" not found"
+#: ipalib/plugins/automount.py:597
+msgid "description"
msgstr ""
-#: ipalib/plugins/aci.py:286
-msgid "ACIs"
+#: ipalib/plugins/automount.py:606
+msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/aci.py:291
-msgid "ACI name"
+#: ipalib/plugins/automount.py:607
+msgid ""
+"The key,info pair must be unique. A key named %(key)s with info %(info)s "
+"already exists"
msgstr ""
-#: ipalib/plugins/aci.py:296
-msgid "Taskgroup"
+#: ipalib/plugins/automount.py:608
+msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/aci.py:297
-msgid "Taskgroup ACI grants access to"
+#: ipalib/plugins/automount.py:609
+msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/aci.py:301
-msgid "User group"
+#: ipalib/plugins/automount.py:659
+msgid ""
+"More than one entry with key %(key)s found, use --info to select specific "
+"entry."
msgstr ""
-#: ipalib/plugins/aci.py:302
-msgid "User group ACI grants access to"
+#: ipalib/plugins/automount.py:717
+msgid ""
+"\n"
+" Create a new automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:306
-msgid "Permissions"
+#: ipalib/plugins/automount.py:742
+msgid ""
+"\n"
+" Create a new indirect mount point.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:748
+msgid "Mount point"
msgstr ""
-#: ipalib/plugins/aci.py:307
+#: ipalib/plugins/automount.py:752
+msgid "Parent map"
+msgstr ""
+
+#: ipalib/plugins/automount.py:753
+msgid "Name of parent automount map (default: auto.master)."
+msgstr ""
+
+#: ipalib/plugins/automount.py:772
msgid ""
-"comma-separated list of permissions to grant(read, write, add, delete, all)"
+"\n"
+" Delete an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:313
-msgid "Attributes"
+#: ipalib/plugins/automount.py:803
+msgid ""
+"\n"
+" Modify an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:314
-msgid "Comma-separated list of attributes"
+#: ipalib/plugins/automount.py:809
+msgid "New mount information"
msgstr ""
-#: ipalib/plugins/aci.py:318
-msgid "Type"
+#: ipalib/plugins/automount.py:836
+msgid ""
+"\n"
+" Search for an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:319
-msgid "type of IPA object (user, group, host)"
+#: ipalib/plugins/automount.py:844
+msgid ""
+"\n"
+" Display an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:324
-msgid "Member of"
+#: ipalib/plugins/baseldap.py:19
+msgid ""
+"\n"
+"Base classes for LDAP plugins.\n"
msgstr ""
-#: ipalib/plugins/aci.py:325
-msgid "Member of a group"
+#: ipalib/plugins/baseldap.py:39
+msgid "Failed members"
msgstr ""
-#: ipalib/plugins/aci.py:329
-msgid "Filter"
+#: ipalib/plugins/baseldap.py:42
+msgid "Member users"
msgstr ""
-#: ipalib/plugins/aci.py:330
-msgid "Legal LDAP filter (e.g. ou=Engineering)"
+#: ipalib/plugins/baseldap.py:45
+msgid "Member groups"
msgstr ""
-#: ipalib/plugins/aci.py:334
-msgid "Subtree"
+#: ipalib/plugins/baseldap.py:48
+msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/aci.py:335
-msgid "Subtree to apply ACI to"
+#: ipalib/plugins/baseldap.py:51
+msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/aci.py:339
-msgid "Target group"
+#: ipalib/plugins/baseldap.py:54
+msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:340
-msgid "Group to apply ACI to"
+#: ipalib/plugins/baseldap.py:57
+msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:344
-msgid "Target your own entry (self)"
+#: ipalib/plugins/baseldap.py:66
+msgid "Roles"
msgstr ""
-#: ipalib/plugins/aci.py:345
-msgid "Apply ACI to your own entry (self)"
+#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
+#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
+#: ipalib/plugins/sudorule.py:143
+msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/aci.py:357
-#, python-format
-msgid "Created ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:75
+msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/aci.py:407
-#, python-format
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:78
+msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:447
-#, python-format
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:81
+msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:519
-#, python-format
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
-msgstr[0] ""
+#: ipalib/plugins/baseldap.py:84
+msgid "Member services"
+msgstr ""
-#: ipalib/plugins/automount.py:103
-msgid "Automount"
+#: ipalib/plugins/baseldap.py:87
+msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/automount.py:109 ipalib/plugins/host.py:134
-msgid "Location"
+#: ipalib/plugins/baseldap.py:93
+msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/automount.py:110
-msgid "Automount location name"
+#: ipalib/plugins/baseldap.py:102
+msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/automount.py:226
-msgid "Map"
+#: ipalib/plugins/baseldap.py:105
+msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/automount.py:227
-msgid "Automount map name"
+#: ipalib/plugins/baseldap.py:108
+msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/automount.py:232 ipalib/plugins/group.py:108
-#: ipalib/plugins/hbac.py:151 ipalib/plugins/hbacsvc.py:72
-#: ipalib/plugins/hbacsvcgroup.py:77 ipalib/plugins/host.py:124
-#: ipalib/plugins/hostgroup.py:81 ipalib/plugins/netgroup.py:96
-#: ipalib/plugins/rolegroup.py:90 ipalib/plugins/sudocmd.py:71
-#: ipalib/plugins/sudocmdgroup.py:77 ipalib/plugins/sudorule.py:58
-#: ipalib/plugins/taskgroup.py:62
-msgid "Description"
+#: ipalib/plugins/baseldap.py:111
+msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/automount.py:236
-msgid "Automount Maps"
+#: ipalib/plugins/baseldap.py:114
+msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid "Key"
+#: ipalib/plugins/baseldap.py:117
+msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/automount.py:309
-msgid "Automount key name"
+#: ipalib/plugins/baseldap.py:120
+msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/automount.py:314
-msgid "Mount information"
+#: ipalib/plugins/baseldap.py:123
+msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/automount.py:318
-msgid "description"
+#: ipalib/plugins/baseldap.py:126
+msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/automount.py:322
-msgid "Automount Keys"
+#: ipalib/plugins/baseldap.py:141
+msgid "External host"
msgstr ""
-#: ipalib/plugins/automount.py:342
-msgid "Mount point"
+#: ipalib/plugins/baseldap.py:144
+msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/automount.py:346
-msgid "Parent map"
+#: ipalib/plugins/baseldap.py:147
+msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/automount.py:347
-msgid "Name of parent automount map (default: auto.master)"
+#: ipalib/plugins/baseldap.py:150
+msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:79
-#, python-format
+#: ipalib/plugins/baseldap.py:153
+msgid "Failed to remove"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:171
+msgid ""
+"\n"
+" Given a list of values in the form name=value, return a list of name.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:197
+msgid ""
+"\n"
+" When adding or removing reverse members we are faking an update to\n"
+" object A by updating the member attribute in object B. The memberof\n"
+" plugin makes this work by adding or removing the memberof attribute\n"
+" to/from object A, it just takes a little bit of time.\n"
+"\n"
+" This will loop for 6+ seconds, retrieving object A so we can see\n"
+" if all the memberof attributes have been updated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:241
+msgid ""
+"\n"
+" Object representing a LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:281
+msgid "Entry"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:283
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:80
-#, python-format
+#: ipalib/plugins/baseldap.py:284
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
-#, python-format
+#: ipalib/plugins/baseldap.py:285
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
-msgid "Add an attribute/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:286
+msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:155
-msgid "Set an attribute to an name/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:415
+msgid ""
+"Add an attribute/value pair. Format is attr=value. The attribute must be "
+"part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:359
+#: ipalib/plugins/baseldap.py:420
+msgid ""
+"Set an attribute to a name/value pair. Format is attr=value.\n"
+"For multi-valued attributes, the command replaces the values already present."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:444
+msgid ""
+"\n"
+" If the set of objectclasses is limited enforce that only those\n"
+" are updated in entry_attrs (plus dn)\n"
+"\n"
+" allow_only tells us what mode to check in:\n"
+"\n"
+" If True then we enforce that the attributes must be in the list of\n"
+" allowed.\n"
+"\n"
+" If False then those attributes are not allowed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:474
+msgid ""
+"\n"
+" Callback registration interface\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:561
+msgid ""
+"\n"
+" Create a new entry in LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:703
+msgid ""
+"\n"
+" Base class for commands that need to retrieve an existing entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:727
+msgid ""
+"\n"
+" Base class for commands that need to retrieve one or more existing "
+"entries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:733
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:517
+#: ipalib/plugins/baseldap.py:750
+msgid ""
+"\n"
+" Retrieve an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
+#: ipalib/plugins/internal.py:232
+msgid "Rights"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+msgid ""
+"Display the access rights of this entry (requires --all). See ipa man page "
+"for details."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:821
+msgid ""
+"\n"
+" Update an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:837
+msgid "Rename"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:838
+msgid "Rename the %(ldap_obj_name)s object"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:957
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:674
+#: ipalib/plugins/baseldap.py:988
+msgid ""
+"\n"
+" Delete an LDAP entry and all of its direct subentries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1078
+msgid ""
+"\n"
+" Base class for member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1120
+msgid ""
+"\n"
+" Add other LDAP entries to members.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
+#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
+#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
msgid "Members that could not be added"
msgstr ""
-#: ipalib/plugins/baseldap.py:678
+#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:684 ipalib/plugins/baseldap.py:789
-msgid "Failed members"
+#: ipalib/plugins/baseldap.py:1226
+msgid ""
+"\n"
+" Remove LDAP entries from members.\n"
+" "
msgstr ""
-#: ipalib/plugins/baseldap.py:779
+#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:783
+#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:880
+#: ipalib/plugins/baseldap.py:1335
+msgid ""
+"\n"
+" Retrieve all LDAP entries matching the given criteria.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1344
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:881
+#: ipalib/plugins/baseldap.py:1345
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:887
+#: ipalib/plugins/baseldap.py:1351
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:888
+#: ipalib/plugins/baseldap.py:1352
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/cert.py:93
+#: ipalib/plugins/baseldap.py:1552
+msgid ""
+"\n"
+" Base class for reverse member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1574
+msgid ""
+"\n"
+" Add other LDAP entries to members in reverse.\n"
+"\n"
+" The call looks like \"add A to B\" but in fact executes\n"
+" add B to A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1654
+msgid "added"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1687
+msgid ""
+"\n"
+" Remove other LDAP entries from members in reverse.\n"
+"\n"
+" The call looks like \"remove A from B\" but in fact executes\n"
+" remove B from A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1767
+msgid "removed"
+msgstr ""
+
+#: ipalib/plugins/batch.py:21
+msgid ""
+"\n"
+"Plugin to make multiple ipa calls via one remote procedure call\n"
+"\n"
+"To run this code in the lite-server\n"
+"\n"
+"curl -H \"Content-Type:application/json\" -H \"Accept:application/"
+"json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /"
+"etc/ipa/ca.crt -d @batch_request.json -X POST http://"
+"localhost:8888/ipa/json\n"
+"\n"
+"where the contents of the file batch_request.json follow the below example\n"
+"\n"
+"{\"method\":\"batch\",\"params\":[[\n"
+" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
+" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all"
+"\":\"true\"}]},\n"
+" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
+" ],{}],\"id\":1}\n"
+"\n"
+"The format of the response is nested the same way. At the top you will see\n"
+" \"error\": null,\n"
+" \"id\": 1,\n"
+" \"result\": {\n"
+" \"count\": 3,\n"
+" \"results\": [\n"
+"\n"
+"\n"
+"And then a nested response for each IPA command method sent in the request\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/batch.py:61
+msgid "Nested Methods to execute"
+msgstr ""
+
+#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/plugins/cert.py:22
+msgid ""
+"\n"
+"IPA certificate operations\n"
+"\n"
+"Implements a set of commands for managing server SSL certificates.\n"
+"\n"
+"Certificate requests exist in the form of a Certificate Signing Request "
+"(CSR)\n"
+"in PEM format.\n"
+"\n"
+"If using the selfsign back end then the subject in the CSR needs to match\n"
+"the subject configured in the server. The dogtag CA uses just the CN\n"
+"value of the CSR and forces the rest of the subject.\n"
+"\n"
+"A certificate is stored with a service principal and a service principal\n"
+"needs a host.\n"
+"\n"
+"In order to request a certificate:\n"
+"\n"
+"* The host must exist\n"
+"* The service must exist (or you use the --add option to automatically add "
+"it)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Request a new certificate and add the principal:\n"
+" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n"
+"\n"
+" Retrieve an existing certificate:\n"
+" ipa cert-show 1032\n"
+"\n"
+" Revoke a certificate (see RFC 5280 for reason details):\n"
+" ipa cert-revoke --revocation-reason=6 1032\n"
+"\n"
+" Remove a certificate from revocation hold status:\n"
+" ipa cert-remove-hold 1032\n"
+"\n"
+" Check the status of a signing request:\n"
+" ipa cert-status 10\n"
+"\n"
+"IPA currently immediately issues (or declines) all certificate requests so\n"
+"the status of a request is not normally useful. This is for future use\n"
+"or the case where a CA does not immediately issue a certificate.\n"
+"\n"
+"The following revocation reasons are supported:\n"
+"\n"
+" * 0 - unspecified\n"
+" * 1 - keyCompromise\n"
+" * 2 - cACompromise\n"
+" * 3 - affiliationChanged\n"
+" * 4 - superseded\n"
+" * 5 - cessationOfOperation\n"
+" * 6 - certificateHold\n"
+" * 8 - removeFromCRL\n"
+" * 9 - privilegeWithdrawn\n"
+" * 10 - aACompromise\n"
+"\n"
+"Note that reason code 7 is not used. See RFC 5280 for more details:\n"
+"\n"
+"http://www.ietf.org/rfc/rfc5280.txt\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/cert.py:104
+msgid ""
+"\n"
+" Return the value of CN in the subject of the request or None\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:106 ipalib/plugins/cert.py:118
+#: ipalib/plugins/cert.py:115
+msgid ""
+"\n"
+" Return the first value of the subject alt name, if any\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:120
-#, python-format
+#: ipalib/plugins/cert.py:128
+msgid ""
+"\n"
+" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
+" parser.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:139
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:171 ipalib/plugins/service.py:197
+#: ipalib/plugins/cert.py:142
+msgid ""
+"\n"
+" Strip any leading and trailing cruft around the BEGIN/END block\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:162
+msgid ""
+"\n"
+" Convert a SN given in decimal or hexadecimal.\n"
+" Returns the number or None if conversion fails.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:188
+msgid ""
+"\n"
+" Given a principal with or without a realm return the\n"
+" host portion.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:202
+msgid ""
+"\n"
+" Submit a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:172
+#: ipalib/plugins/cert.py:217
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:179
+#: ipalib/plugins/cert.py:224
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:187 ipalib/plugins/cert.py:392
-#: ipalib/plugins/host.py:154 ipalib/plugins/service.py:204
+#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
+#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
+#: ipalib/plugins/service.py:232
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:191 ipalib/plugins/cert.py:395
+#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:195 ipalib/plugins/cert.py:398
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:199 ipalib/plugins/cert.py:401
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:203 ipalib/plugins/cert.py:404
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:207 ipalib/plugins/cert.py:407
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:211 ipalib/plugins/cert.py:410
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:215 ipalib/plugins/cert.py:379
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:223 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:357
+#: ipalib/plugins/cert.py:396
+msgid ""
+"\n"
+" Check the status of a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:402
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:363
+#: ipalib/plugins/cert.py:408
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:380
+#: ipalib/plugins/cert.py:426
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:413
+#: ipalib/plugins/cert.py:431
+msgid ""
+"\n"
+" Retrieve an existing certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
+#: ipalib/plugins/service.py:114
msgid "Revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:458
+#: ipalib/plugins/cert.py:466
+msgid "Output filename"
+msgstr ""
+
+#: ipalib/plugins/cert.py:467
+msgid "File to store the certificate in."
+msgstr ""
+
+#: ipalib/plugins/cert.py:518
+msgid ""
+"\n"
+" Revoke a certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:526
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:466
+#: ipalib/plugins/cert.py:534
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:467
+#: ipalib/plugins/cert.py:535
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:502
+#: ipalib/plugins/cert.py:562
+msgid ""
+"\n"
+" Take a revoked certificate off hold.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:570
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:505
+#: ipalib/plugins/cert.py:573
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:73
+#: ipalib/plugins/config.py:20
+msgid ""
+"\n"
+"Manage the IPA configuration\n"
+"\n"
+"Manage the default values that IPA uses and some of its tuning parameters.\n"
+"\n"
+" To show the current configuration:\n"
+" ipa config-show\n"
+"\n"
+" To modify the configuration:\n"
+" ipa config-mod --maxusername=99\n"
+"\n"
+"The available options are:\n"
+"\n"
+"User management options:\n"
+"\n"
+" --maxusername=INT Max. username length when creating/modifying a user\n"
+" --homedirectory=STR Default location of home directories (default /"
+"home)\n"
+" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
+" --defaultgroup=STR Default group for new users (default ipausers). The\n"
+" group must exist, or adding new users will fail.\n"
+" --emaildomain=STR Default e-mail domain for new users\n"
+"\n"
+"Search tuning options. These impact how much data is searched through and\n"
+"how many records may be returned on a given search.\n"
+"\n"
+" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 "
+"for\n"
+" unlimited)\n"
+" --searchrecordslimit=INT Max. number of records to search (-1 is "
+"unlimited)\n"
+"\n"
+"Server Configuration.\n"
+"\n"
+" --enable-migration=BOOL Enable migration mode\n"
+" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+"\n"
+"The password notification value is stored here so it will be replicated.\n"
+"It is not currently used to notify users in advance of an expiring\n"
+"password.\n"
+"\n"
+"Some attributes are read-only, provided only for information purposes. "
+"These\n"
+"include:\n"
+"\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
+msgstr ""
+
+#: ipalib/plugins/config.py:76
+msgid "searchtimelimit must be -1 or > 1."
+msgstr ""
+
+#: ipalib/plugins/config.py:80
+msgid ""
+"\n"
+" IPA configuration object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:78
-msgid "Max username length"
+#: ipalib/plugins/config.py:96
+msgid "Max. username length"
msgstr ""
-#: ipalib/plugins/config.py:83
+#: ipalib/plugins/config.py:101
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:84
-msgid "Default location of home directories"
+#: ipalib/plugins/config.py:102
+msgid "Default location of home directories."
msgstr ""
-#: ipalib/plugins/config.py:88
+#: ipalib/plugins/config.py:106
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:89
-msgid "Default shell for new users"
+#: ipalib/plugins/config.py:107
+msgid "Default shell for new users."
msgstr ""
-#: ipalib/plugins/config.py:93
+#: ipalib/plugins/config.py:111
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:94
-msgid "Default group for new users"
+#: ipalib/plugins/config.py:112
+msgid "Default group for new users."
msgstr ""
-#: ipalib/plugins/config.py:98
-msgid "Default e-mail domain"
+#: ipalib/plugins/config.py:116
+msgid "Default e-mail domain for new users"
msgstr ""
-#: ipalib/plugins/config.py:99
-msgid "Default e-mail domain new users"
+#: ipalib/plugins/config.py:117
+msgid "Default e-mail domain new users."
msgstr ""
-#: ipalib/plugins/config.py:103
+#: ipalib/plugins/config.py:121
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:104
-msgid "Max. amount of time (sec.) for a search (-1 is unlimited)"
+#: ipalib/plugins/config.py:122
+msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:109
+#: ipalib/plugins/config.py:127
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:110
-msgid "Max. number of records to search (-1 is unlimited)"
+#: ipalib/plugins/config.py:128
+msgid "Max. number of records to search (-1 is unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:115
+#: ipalib/plugins/config.py:133
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:116
-msgid "A comma-separated list of fields to search when searching for users"
+#: ipalib/plugins/config.py:134
+msgid "A comma-separated list of fields to search when searching for users."
msgstr ""
-#: ipalib/plugins/config.py:121
-msgid "A comma-separated list of fields to search when searching for groups"
+#: ipalib/plugins/config.py:139
+msgid "A comma-separated list of fields to search when searching for groups."
msgstr ""
-#: ipalib/plugins/config.py:125
+#: ipalib/plugins/config.py:143
msgid "Migration mode"
msgstr ""
-#: ipalib/plugins/config.py:126
-msgid "Enable migration mode"
+#: ipalib/plugins/config.py:144
+msgid "Enable migration mode."
msgstr ""
-#: ipalib/plugins/config.py:130
+#: ipalib/plugins/config.py:148
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:131
-msgid "Base for certificate subjects (OU=Test,O=Example)"
+#: ipalib/plugins/config.py:149
+msgid "Base for certificate subjects (OU=Test,O=Example)."
+msgstr ""
+
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:155
+msgid "Default group objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:159
+msgid "Default user objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:160
+msgid "Default user objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:164
+msgid "Password Expiration Notification"
+msgstr ""
+
+#: ipalib/plugins/config.py:165
+msgid "Number of days's notice of impending password expiration."
+msgstr ""
+
+#: ipalib/plugins/config.py:170
+msgid "Password plugin features"
+msgstr ""
+
+#: ipalib/plugins/config.py:171
+msgid "Extra hashes to generate in password plug-in."
+msgstr ""
+
+#: ipalib/plugins/config.py:183
+msgid ""
+"\n"
+" Modify configuration options.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:220
+msgid ""
+"\n"
+" Show the current configuration.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:19
+msgid ""
+"\n"
+"Group to Group Delegation\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"Group to Group Delegations grants the members of one group to update a set\n"
+"of attributes of members of another group.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a delegation rule to allow editors to edit admin's addresses:\n"
+" ipa delegation-add --attrs=street --membergroup=admins --group=editors "
+"'editors edit admins street'\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add postalCode to the list:\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --"
+"group=editors 'editors edit admins street'\n"
+"\n"
+" Display our updated rule:\n"
+" ipa delegation-show 'editors edit admins street'\n"
+"\n"
+" Delete a rule:\n"
+" ipa delegation-del 'editors edit admins street'\n"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:56
+msgid ""
+"\n"
+" memberOf is in filter but we want to pull out the group for easier\n"
+" displaying.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:131
+#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+msgid "Delegation '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:70
+msgid "Error retrieving member group %(group)s: %(error)s"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:79
+msgid ""
+"\n"
+" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a delegation ACI, adding a new attribute\n"
+" membergroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:95
+msgid ""
+"\n"
+" Delegation object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:102
+msgid "Delegation"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+msgid "Delegation name"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+msgid ""
+"Comma-separated list of permissions to grant (read, write). Default is write."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:125
+msgid "Member user group"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:126
+msgid "User group to apply delegation to"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:152
+msgid ""
+"\n"
+" Add a new delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:156
+msgid "Added delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:176
+msgid ""
+"\n"
+" Delete a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:181
+msgid "Deleted delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:197
+msgid ""
+"\n"
+" Modify a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:201
+msgid "Modified delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:219
+msgid ""
+"\n"
+" Search for delegations.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:223
+msgid "%(count)d delegation matched"
+msgid_plural "%(count)d delegations matched"
+msgstr[0] ""
+
+#: ipalib/plugins/delegation.py:250
+msgid ""
+"\n"
+" Display information about a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:20
+msgid ""
+"\n"
+"Domain Name System (DNS)\n"
+"\n"
+"Manage DNS zone and resource records.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add new zone:\n"
+" ipa dnszone-add example.com --name-server nameserver.example.com\n"
+" --admin-email admin@example.com\n"
+"\n"
+" Add second nameserver for example.com:\n"
+" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add a mail server for example.com:\n"
+" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n"
+"\n"
+" Delete previously added nameserver from example.com:\n"
+" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add new A record for www.example.com: (random IP)\n"
+" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n"
+"\n"
+" Add new PTR record for www.example.com\n"
+" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n"
+"\n"
+" Add new SRV records for LDAP servers. Three quarters of the requests\n"
+" should go to fast.example.com, one quarter to slow.example.com. If neither\n"
+" is available, switch to backup.example.com.\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup."
+"example.com\"\n"
+"\n"
+" When dnsrecord-add command is executed with no option to add a specific "
+"record\n"
+" an interactive mode is started. The mode interactively prompts for the "
+"most\n"
+" typical record types for the respective zone:\n"
+" ipa dnsrecord-add example.com www\n"
+" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random "
+"IPs)\n"
+" [AAAA record]: (no AAAA address entered)\n"
+" Record name: www\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" The interactive mode can also be used for deleting the DNS records:\n"
+" ipa dnsrecord-del example.com www\n"
+" No option to delete specific record provided.\n"
+" Delete all? Yes/No (default No): (do not delete all records)\n"
+" Current DNS record contents:\n"
+"\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
+" Record name: www\n"
+" A record: 1.2.3.4 (A record 11.22.33.44 has been "
+"deleted)\n"
+"\n"
+" Show zone example.com:\n"
+" ipa dnszone-show example.com\n"
+"\n"
+" Find zone with \"example\" in its domain name:\n"
+" ipa dnszone-find example\n"
+"\n"
+" Find records for resources with \"www\" in their name in zone example.com:\n"
+" ipa dnsrecord-find example.com www\n"
+"\n"
+" Find A records with value 10.10.0.1 in zone example.com\n"
+" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n"
+"\n"
+" Show records for resource www in zone example.com\n"
+" ipa dnsrecord-show example.com www\n"
+"\n"
+" Delete zone example.com with all resource records:\n"
+" ipa dnszone-del example.com\n"
+"\n"
+" Resolve a host name to see if it exists (will add default IPA domain\n"
+" if one is not included):\n"
+" ipa dns-resolve www.example.com\n"
+" ipa dns-resolve www\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:140
+msgid "Generate serial number for zones."
+msgstr ""
+
+#: ipalib/plugins/dns.py:189
+msgid "see RFC 2915 "
+msgstr ""
+
+#: ipalib/plugins/dns.py:249
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:272
+msgid ""
+"\n"
+" DNS Zone, container for resource records.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:284
msgid "DNS"
msgstr ""
-#: ipalib/plugins/dns.py:136
-msgid "Zone"
+#: ipalib/plugins/dns.py:289
+msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:137
+#: ipalib/plugins/dns.py:290
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:143
-msgid "Authoritative name server"
+#: ipalib/plugins/dns.py:296
+msgid "Authoritative nameserver"
+msgstr ""
+
+#: ipalib/plugins/dns.py:297
+msgid "Authoritative nameserver."
msgstr ""
-#: ipalib/plugins/dns.py:147
-msgid "administrator e-mail address"
+#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:153
+#: ipalib/plugins/dns.py:308
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:157
+#: ipalib/plugins/dns.py:309
+msgid "SOA record serial number"
+msgstr ""
+
+#: ipalib/plugins/dns.py:316
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:161
+#: ipalib/plugins/dns.py:317
+msgid "SOA record refresh time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:324
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:165
+#: ipalib/plugins/dns.py:325
+msgid "SOA record retry time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:169
+#: ipalib/plugins/dns.py:333
+msgid "SOA record expire time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:173
+#: ipalib/plugins/dns.py:341
+msgid "How long should negative responses be cached"
+msgstr ""
+
+#: ipalib/plugins/dns.py:349
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:177
+#: ipalib/plugins/dns.py:350
+msgid "SOA record time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:354
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:182
-msgid "allow dynamic update?"
+#: ipalib/plugins/dns.py:355
+msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:186
+#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:426 ipalib/plugins/dns.py:460
-#: ipalib/plugins/dns.py:495 ipalib/plugins/dns.py:610
-#: ipalib/plugins/dns.py:695 ipalib/plugins/dns.py:819
-msgid "Zone name"
+#: ipalib/plugins/dns.py:365
+msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:500
-msgid "resource name"
+#: ipalib/plugins/dns.py:366
+msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:505 ipalib/plugins/dns.py:620
-#: ipalib/plugins/dns.py:711
-msgid "Record type"
+#: ipalib/plugins/dns.py:372
+msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:509 ipalib/plugins/dns.py:624
-msgid "Data"
+#: ipalib/plugins/dns.py:373
+msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:510 ipalib/plugins/dns.py:625
-msgid "Type-specific data"
+#: ipalib/plugins/dns.py:382
+msgid ""
+"\n"
+" Create new DNS zone (SOA record).\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:517
-msgid "Time to live"
+#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
+#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+msgid "Force"
+msgstr ""
+
+#: ipalib/plugins/dns.py:388
+msgid "Force DNS zone creation even if nameserver not in DNS."
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+msgid "Add the nameserver to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:397
+msgid "DNS is not configured"
+msgstr ""
+
+#: ipalib/plugins/dns.py:431
+msgid ""
+"\n"
+" Delete DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"\n"
+" Modify DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:452
+msgid ""
+"\n"
+" Search for DNS zones (SOA records).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:460
+msgid ""
+"\n"
+" Display information about a DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+msgid ""
+"\n"
+" Disable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:472
+msgid "Disabled DNS zone \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:490
+msgid ""
+"\n"
+" Enable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:494
+msgid "Enabled DNS zone \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:512
+msgid ""
+"\n"
+" DNS record.\n"
+" "
msgstr ""
#: ipalib/plugins/dns.py:522
+msgid "DNS resource record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
+msgid "Record name"
+msgstr ""
+
+#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
+msgid "Time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:538
msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:615 ipalib/plugins/dns.py:707
-#: ipalib/plugins/dns.py:824
-msgid "Resource name"
+#: ipalib/plugins/dns.py:539
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:700
-msgid "Search criteria"
+#: ipalib/plugins/dns.py:566
+msgid ""
+"\n"
+" Base class for DNS record commands with record options.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:715
-msgid "type-specific data"
+#: ipalib/plugins/dns.py:610
+msgid ""
+"\n"
+" Base class for adding/removing records from DNS resource entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:865
-#, python-format
+#: ipalib/plugins/dns.py:674
+msgid ""
+"\n"
+" Add records to DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:690
+msgid ""
+"\n"
+" Add new DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:699
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:735
+msgid ""
+"Reverse zone for PTR record should be a sub-zone of one the following fully "
+"qualified domains: %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:740
+msgid "Reverse zone %s requires exactly %d IP address components, %d given"
+msgstr ""
+
+#: ipalib/plugins/dns.py:746
+msgid "PTR record '%s' is not fully qualified (check traling '.')"
+msgstr ""
+
+#: ipalib/plugins/dns.py:789
+msgid ""
+"\n"
+" Delete DNS record entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:792
+msgid "Deleted record \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:799
+msgid ""
+"\n"
+" Delete DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:802
+msgid ""
+"Neither --del-all nor options to delete a specific record provided.\n"
+"Command help may be consulted for all supported record types."
+msgstr ""
+
+#: ipalib/plugins/dns.py:807
+msgid "Delete all associated records"
+msgstr ""
+
+#: ipalib/plugins/dns.py:834
+msgid "No option to delete specific record provided."
+msgstr ""
+
+#: ipalib/plugins/dns.py:835
+msgid "Delete all?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:845
+msgid "Current DNS record contents:\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:875
+msgid "%s record with value %s not found"
+msgstr ""
+
+#: ipalib/plugins/dns.py:889
+msgid ""
+"\n"
+" Display DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:905
+msgid ""
+"\n"
+" Search for DNS resources.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:932
+msgid ""
+"\n"
+" Resolve a host name in DNS\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:936
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:869
+#: ipalib/plugins/dns.py:940
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:882
-#, python-format
+#: ipalib/plugins/dns.py:962
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/group.py:94
+#: ipalib/plugins/dns.py:970
+msgid ""
+"\n"
+" Checks if any of the servers has the DNS service enabled.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:19
+msgid ""
+"\n"
+"Entitlements\n"
+"\n"
+"Manage entitlements for client machines\n"
+"\n"
+"Entitlements can be managed either by registering with an entitlement\n"
+"server with a username and password or by manually importing entitlement\n"
+"certificates. An entitlement certificate contains embedded information\n"
+"such as the product being entitled, the quantity and the validity dates.\n"
+"\n"
+"An entitlement server manages the number of client entitlements available.\n"
+"To mark these entitlements as used by the IPA server you provide a quantity\n"
+"and they are marked as consumed on the entitlement server.\n"
+"\n"
+" Register with an entitlement server:\n"
+" ipa entitle-register consumer\n"
+"\n"
+" Import an entitlement certificate:\n"
+" ipa entitle-import /home/user/ipaclient.pem\n"
+"\n"
+" Display current entitlements:\n"
+" ipa entitle-status\n"
+"\n"
+" Retrieve details on entitlement certificates:\n"
+" ipa entitle-get\n"
+"\n"
+" Consume some entitlements from the entitlement server:\n"
+" ipa entitle-consume 50\n"
+"\n"
+"The registration ID is a Unique Identifier (UUID). This ID will be\n"
+"IMPORTED if you have used entitle-import.\n"
+"\n"
+"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:106
+msgid ""
+"\n"
+" Get our entitlement pool. Assume there is only one pool.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:129
+msgid ""
+"\n"
+" Retrieve our UUID, certificate and key from LDAP.\n"
+"\n"
+" Except on error the caller is responsible for removing temporary files\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:178
+msgid ""
+"\n"
+" Entitlement object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:189
+msgid "Entitlements"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:206
+msgid ""
+"\n"
+" Display current entitlements\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+msgid "UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
+#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
+#: ipalib/plugins/entitle.py:690
+msgid "Product"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
+#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
+#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+msgid "Quantity"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
+#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+msgid "Consumed"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:276
+msgid ""
+"\n"
+" Consume an entitlement\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:282
+msgid "Consumed %(value)s entitlement(s)."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:314
+msgid ""
+"\n"
+" Override this so we can set value to the number of entitlements\n"
+" consumed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
+msgid ""
+"\n"
+" Returning the certificates isn't very interesting. Return the\n"
+" status of entitlements instead.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:380
+msgid ""
+"\n"
+" Retrieve the entitlement certs\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:394
+msgid "Start"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:397
+msgid "End"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
+#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+msgid "Serial Number"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
+#: ipalib/plugins/entitle.py:628
+msgid "Not an entitlement certificate"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:460
+msgid ""
+"\n"
+" Search for entitlement accounts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:473
+msgid ""
+"\n"
+" Register to the entitlement system\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:479
+msgid "Registered to entitlement server."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:483
+msgid "Username"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
+msgid "Enrollment UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
+#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
+msgid "Password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:495
+msgid "Registration password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:569
+msgid ""
+"\n"
+" Import an entitlement certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:646
+msgid ""
+"\n"
+" If we are adding the first entry there are no updates so "
+"EmptyModlist\n"
+" will get thrown. Ignore it.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:667
+msgid ""
+"\n"
+" Re-sync the local entitlement cache with the entitlement server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:673
+msgid "Entitlement(s) synchronized."
+msgstr ""
+
+#: ipalib/plugins/group.py:20
+msgid ""
+"\n"
+"Groups of users\n"
+"\n"
+"Manage groups of users. By default, new groups are POSIX groups. You\n"
+"can add the --nonposix option to the group-add command to mark a new group\n"
+"as non-POSIX, and you can use the same argument to the group-mod command\n"
+"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"converted to non-POSIX groups.\n"
+"\n"
+"Every group must have a description.\n"
+"\n"
+"POSIX groups must have a Group ID (GID) number. Changing a GID is\n"
+"supported but can have an impact on your file permissions. It is not "
+"necessary\n"
+"to supply a GID when creating a group. IPA will generate one automatically\n"
+"if it is not provided.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new group:\n"
+" ipa group-add --desc='local administrators' localadmins\n"
+"\n"
+" Add a new non-POSIX group:\n"
+" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n"
+"\n"
+" Convert a non-POSIX group to posix:\n"
+" ipa group-mod --posix remoteadmins\n"
+"\n"
+" Add a new POSIX group with a specific Group ID number:\n"
+" ipa group-add --gid=500 --desc='unix admins' unixadmins\n"
+"\n"
+" Add a new POSIX group and let IPA assign a Group ID number:\n"
+" ipa group-add --desc='printer admins' printeradmins\n"
+"\n"
+" Remove a group:\n"
+" ipa group-del unixadmins\n"
+"\n"
+" To add the \"remoteadmins\" group to the \"localadmins\" group:\n"
+" ipa group-add-member --groups=remoteadmins localadmins\n"
+"\n"
+" Add a list of users to the \"localadmins\" group:\n"
+" ipa group-add-member --users=test1,test2 localadmins\n"
+"\n"
+" Remove a user from the \"localadmins\" group:\n"
+" ipa group-remove-member --users=test2 localadmins\n"
+"\n"
+" Display information about a named group.\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/group.py:76
+msgid ""
+"\n"
+" Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:100
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:102
+#: ipalib/plugins/group.py:108
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:109 ipalib/plugins/sudocmdgroup.py:78
+#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:113
+#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:114
+#: ipalib/plugins/group.py:120
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:117 ipalib/plugins/rolegroup.py:94
-#: ipalib/plugins/taskgroup.py:66
-msgid "Member groups"
+#: ipalib/plugins/group.py:128
+msgid ""
+"\n"
+" Create a new group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:121 ipalib/plugins/rolegroup.py:98
-#: ipalib/plugins/taskgroup.py:70
-msgid "Member users"
+#: ipalib/plugins/group.py:132
+msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:134
-#, python-format
-msgid "Added group \"%(value)s\""
+#: ipalib/plugins/group.py:137
+msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:139
-msgid "Create as a non-POSIX group?"
+#: ipalib/plugins/group.py:154
+msgid ""
+"\n"
+" Delete group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:160
-#, python-format
+#: ipalib/plugins/group.py:158
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:191
-#, python-format
+#: ipalib/plugins/group.py:186
+msgid ""
+"\n"
+" Modify a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:189
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:196
+#: ipalib/plugins/group.py:194
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:222 ipalib/plugins/hbacsvcgroup.py:129
-#, python-format
+#: ipalib/plugins/group.py:215
+msgid ""
+"\n"
+" Search for groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:220
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
+#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+msgid "search for private groups"
+msgstr ""
+
#: ipalib/plugins/group.py:257
-#, python-format
-msgid "Detached group \"%(value)s\" from user \"%(value)s\""
+msgid ""
+"\n"
+" Display information about a named group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:265
+msgid ""
+"\n"
+" Add members to a group.\n"
+" "
msgstr ""
#: ipalib/plugins/group.py:273
+msgid ""
+"\n"
+" Remove members from a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:281
+msgid ""
+"\n"
+" Detach a managed group from a user\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:285
+msgid "Detached group \"%(value)s\" from user \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/group.py:288
+msgid ""
+"\n"
+" This requires updating both the user and the group. We first need "
+"to\n"
+" verify that both the user and group can be updated, then we go\n"
+" about our work. We don't want a situation where only the user or\n"
+" group can be modified and we're left in a bad state.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:306
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:277
+#: ipalib/plugins/group.py:312
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:284 ipalib/plugins/group.py:295
+#: ipalib/plugins/group.py:331
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbac.py:106
-msgid "HBAC"
+#: ipalib/plugins/hbacrule.py:19
+msgid ""
+"\n"
+"Host-based access control\n"
+"\n"
+"Control who can access what services on what hosts and from where. You\n"
+"can use HBAC to control which users or groups on a source host can\n"
+"access a service, or group of services, on a target host.\n"
+"\n"
+"You can also specify a category of users, target hosts, and source\n"
+"hosts. This is currently limited to \"all\", but might be expanded in the\n"
+"future.\n"
+"\n"
+"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n"
+"\n"
+"The available services and groups of services are controlled by the\n"
+"hbacsvc and hbacsvcgroup plug-ins respectively.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a rule, \"test1\", that grants all users access to the host \"server"
+"\" from\n"
+" anywhere:\n"
+" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add-host --hosts=server.example.com test1\n"
+"\n"
+" Display the properties of a named HBAC rule:\n"
+" ipa hbacrule-show test1\n"
+"\n"
+" Create a rule for a specific service. This lets the user john access\n"
+" the sshd service on any machine from any machine:\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add-user --users=john john_sshd\n"
+" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
+"\n"
+" Create a rule for a new service group. This lets the user john access\n"
+" the FTP service on any machine from any machine:\n"
+" ipa hbacsvcgroup-add ftpers\n"
+" ipa hbacsvc-add sftp\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add-user --users=john john_ftp\n"
+" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
+"\n"
+" Disable a named HBAC rule:\n"
+" ipa hbacrule-disable test1\n"
+"\n"
+" Remove a named HBAC rule:\n"
+" ipa hbacrule-del allow_server\n"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:91
+msgid ""
+"\n"
+" See if options[attribute] is lower-case 'all' in a safe way.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:103
+msgid ""
+"\n"
+" HBAC object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:126
+msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbac.py:111 ipalib/plugins/sudorule.py:53
+#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbac.py:116
+#: ipalib/plugins/hbacrule.py:136
msgid "Rule type (allow or deny)"
msgstr ""
-#: ipalib/plugins/hbac.py:117
+#: ipalib/plugins/hbacrule.py:137
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbac.py:123
+#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
+#: ipalib/plugins/sudorule.py:86
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbac.py:124
+#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
+#: ipalib/plugins/sudorule.py:87
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:129
+#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
+#: ipalib/plugins/sudorule.py:92
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbac.py:130
+#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
+#: ipalib/plugins/sudorule.py:93
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:135
+#: ipalib/plugins/hbacrule.py:155
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbac.py:136
+#: ipalib/plugins/hbacrule.py:156
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:141
+#: ipalib/plugins/hbacrule.py:161
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbac.py:142
+#: ipalib/plugins/hbacrule.py:162
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:147 ipalib/plugins/hbac.py:325
-#: ipalib/plugins/hbac.py:363
-msgid "Access time"
-msgstr ""
-
-#: ipalib/plugins/hbac.py:154
+#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbac.py:158 ipalib/plugins/sudorule.py:61
-#: ipalib/plugins/user.py:76
+#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
+#: ipalib/plugins/user.py:108
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbac.py:162 ipalib/plugins/host.py:113
-#: ipalib/plugins/sudorule.py:65
+#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
+#: ipalib/plugins/sudorule.py:119
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
+#: ipalib/plugins/sudorule.py:123
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:166 ipalib/plugins/hostgroup.py:69
-#: ipalib/plugins/sudorule.py:69
+#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
+#: ipalib/plugins/sudorule.py:127
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbac.py:170
+#: ipalib/plugins/hbacrule.py:194
msgid "Source hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:174 ipalib/plugins/hbacsvc.py:60
-#: ipalib/plugins/service.py:192
+#: ipalib/plugins/hbacrule.py:198
+msgid "Source host groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
+#: ipalib/plugins/service.py:220
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbac.py:178
+#: ipalib/plugins/hbacrule.py:206
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:65
-msgid "Service name"
+#: ipalib/plugins/hbacrule.py:215
+msgid ""
+"\n"
+" Create a new HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:219
+msgid "Added HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:230
+msgid ""
+"\n"
+" Delete an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:234
+msgid "Deleted HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:240
+msgid ""
+"\n"
+" Modify an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:244
+msgid "Modified HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:266
+msgid ""
+"\n"
+" Search for HBAC rules.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:270
+msgid "%(count)d HBAC rule matched"
+msgid_plural "%(count)d HBAC rules matched"
+msgstr[0] ""
+
+#: ipalib/plugins/hbacrule.py:278
+msgid ""
+"\n"
+" Display the properties of an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:286
+msgid ""
+"\n"
+" Enable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:290
+msgid "Enabled HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:315
+msgid ""
+"\n"
+" Disable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:319
+msgid "Disabled HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:344
+msgid ""
+"\n"
+" Add an access time to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+msgid "Access time"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:385
+msgid ""
+"\n"
+" Remove access time to HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:425
+msgid ""
+"\n"
+" Add users and groups to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:442
+msgid ""
+"\n"
+" Remove users and groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:452
+msgid ""
+"\n"
+" Add target hosts and hostgroups to an HBAC rule\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:469
+msgid ""
+"\n"
+" Remove target hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:479
+msgid ""
+"\n"
+" Add source hosts and hostgroups from a HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:496
+msgid ""
+"\n"
+" Remove source hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:506
+msgid ""
+"\n"
+" Add services to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:523
+msgid ""
+"\n"
+" Remove service and service groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:19
+msgid ""
+"\n"
+"HBAC Services\n"
+"\n"
+"The PAM services that HBAC can control access to. The name used here\n"
+"must match the service name that PAM is evaluating.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service:\n"
+" ipa hbacsvc-add tftp\n"
+"\n"
+" Modify an existing HBAC service:\n"
+" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n"
+"\n"
+" Search for HBAC services. This example will return two results, the FTP\n"
+" service and the newly-added tftp service:\n"
+" ipa hbacsvc-find ftp\n"
+"\n"
+" Delete an HBAC service:\n"
+" ipa hbacsvc-del tftp\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:51
+msgid ""
+"\n"
+" HBAC Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:61
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "HBAC Service"
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:73
-msgid "Description of service"
+#: ipalib/plugins/hbacsvc.py:67
+msgid "HBAC service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:84 ipalib/plugins/service.py:216
-#, python-format
-msgid "Added service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:74
+msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:93 ipalib/plugins/service.py:255
-#, python-format
-msgid "Deleted service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:82
+msgid ""
+"\n"
+" Add a new HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:85
+msgid "Added HBAC service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:91
+msgid ""
+"\n"
+" Delete an existing HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:94
+msgid "Deleted HBAC service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:100
+msgid ""
+"\n"
+" Modify an HBAC service.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:66
-msgid "HBAC Service Groups"
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modified HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:71
+#: ipalib/plugins/hbacsvc.py:110
+msgid ""
+"\n"
+" Search for HBAC services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:114
+msgid "%(count)d HBAC service matched"
+msgid_plural "%(count)d HBAC services matched"
+msgstr[0] ""
+
+#: ipalib/plugins/hbacsvc.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:19
+msgid ""
+"\n"
+"HBAC Service Groups\n"
+"\n"
+"HBAC service groups can contain any number of individual services,\n"
+"or \"members\". Every group must have a description.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service group:\n"
+" ipa hbacsvcgroup-add --desc=\"login services\" login\n"
+"\n"
+" Add members to an HBAC service group:\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n"
+"\n"
+" Display information about a named group:\n"
+" ipa hbacsvcgroup-show login\n"
+"\n"
+" Add a new group to the \"login\" group:\n"
+" ipa hbacsvcgroup-add --desc=\"switch users\" login\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n"
+"\n"
+" Delete an HBAC service group:\n"
+" ipa hbacsvcgroup-del login\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:51
+msgid ""
+"\n"
+" HBAC service group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:64
+msgid "HBAC service Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:69
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:78
+#: ipalib/plugins/hbacsvcgroup.py:76
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:81
-msgid "Member services"
+#: ipalib/plugins/hbacsvcgroup.py:84
+msgid ""
+"\n"
+" Add a new HBAC service group.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:85
-msgid "Member service groups"
+#: ipalib/plugins/hbacsvcgroup.py:87
+msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:101
-#, python-format
-msgid "Added HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:93
+msgid ""
+"\n"
+" Delete an HBAC service group.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:110
-#, python-format
-msgid "Deleted HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:96
+msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:119
-#, python-format
-msgid "Modified HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:102
+msgid ""
+"\n"
+" Modify an HBAC service group.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:86
+#: ipalib/plugins/hbacsvcgroup.py:105
+msgid "Modified HBAC service group \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:111
+msgid ""
+"\n"
+" Search for an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:114
+msgid "%(count)d HBAC service group matched"
+msgid_plural "%(count)d HBAC service groups matched"
+msgstr[0] ""
+
+#: ipalib/plugins/hbacsvcgroup.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:130
+msgid ""
+"\n"
+" Add members to an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:138
+msgid ""
+"\n"
+" Remove members from an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:20
+msgid ""
+"\n"
+"Hosts/Machines\n"
+"\n"
+"A host represents a machine. It can be used in a number of contexts:\n"
+"- service entries are associated with a host\n"
+"- a host stores the host/ service principal\n"
+"- a host can be used in Host-based Access Control (HBAC) rules\n"
+"- every enrolled client generates a host entry\n"
+"\n"
+"ENROLLMENT:\n"
+"\n"
+"There are three enrollment scenarios when enrolling a new client:\n"
+"\n"
+"1. You are enrolling as a full administrator. The host entry may exist\n"
+" or not. A full administrator is a member of the hostadmin role\n"
+" or the admins group.\n"
+"2. You are enrolling as a limited administrator. The host must already\n"
+" exist. A limited administrator is a member a role with the\n"
+" Host Enrollment privilege.\n"
+"3. The host has been created with a one-time password.\n"
+"\n"
+"A host can only be enrolled once. If a client has enrolled and needs to\n"
+"be re-enrolled, the host entry must be removed and re-created. Note that\n"
+"re-creating the host entry will result in all services for the host being\n"
+"removed, and all SSL certificates associated with those services being\n"
+"revoked.\n"
+"\n"
+"A host can optionally store information such as where it is located,\n"
+"the OS that it runs, etc.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host:\n"
+" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example."
+"com\n"
+"\n"
+" Delete a host:\n"
+" ipa host-del test.example.com\n"
+"\n"
+" Add a new host with a one-time password:\n"
+" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n"
+"\n"
+" Add a new host with a random one-time password:\n"
+" ipa host-add --os='Fedora 12' --random test.example.com\n"
+"\n"
+" Modify information about a host:\n"
+" ipa host-mod --os='Fedora 12' test.example.com\n"
+"\n"
+" Disable the host Kerberos key, SSL certificate and all of its services:\n"
+" ipa host-disable test.example.com\n"
+"\n"
+" Add a host that can manage this host's keytab and certificate:\n"
+" ipa host-add-managedby --hosts=test2 test\n"
+msgstr ""
+
+#: ipalib/plugins/host.py:97
+msgid ""
+"\n"
+" Require at least one dot in the hostname (to support localhost."
+"localdomain)\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:118
+#: ipalib/plugins/host.py:129
+msgid "DNS reverse zone for IP address %(addr)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+msgid "Keytab"
+msgstr ""
+
+#: ipalib/plugins/host.py:185
+msgid ""
+"\n"
+" Verify that we have either an IPv4 or IPv6 address.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:189
+msgid "invalid IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:194
+msgid ""
+"\n"
+" Host object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:231
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:125
+#: ipalib/plugins/host.py:238
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:242
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:130
+#: ipalib/plugins/host.py:243
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:135
+#: ipalib/plugins/host.py:248
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:139
+#: ipalib/plugins/host.py:252
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:140
+#: ipalib/plugins/host.py:253
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:144
+#: ipalib/plugins/host.py:257
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:145
+#: ipalib/plugins/host.py:258
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:149
+#: ipalib/plugins/host.py:262
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:150
+#: ipalib/plugins/host.py:263
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:155 ipalib/plugins/service.py:205
-msgid "Base-64 encoded server certificate"
+#: ipalib/plugins/host.py:266
+msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:158 ipalib/plugins/host.py:274
-msgid "Principal name"
+#: ipalib/plugins/host.py:271
+msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:162 ipalib/plugins/hostgroup.py:93
-msgid "Member of host-groups"
+#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:166
-msgid "Member of net-groups"
+#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:170
-msgid "Member of role-groups"
+#: ipalib/plugins/host.py:306
+msgid ""
+"\n"
+" Add a new host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:199
-#, python-format
+#: ipalib/plugins/host.py:311
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:202
+#: ipalib/plugins/host.py:316
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:235
-#, python-format
+#: ipalib/plugins/host.py:319
+msgid "skip reverse DNS detection"
+msgstr ""
+
+#: ipalib/plugins/host.py:322
+msgid "Add the host to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+msgid "DNS zone %(zone)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:413
+msgid "The host was added but the DNS update failed with: %(exc)s"
+msgstr ""
+
+#: ipalib/plugins/host.py:422
+msgid ""
+"\n"
+" Delete a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:426
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:269
-#, python-format
+#: ipalib/plugins/host.py:431
+msgid "Remove entries from DNS"
+msgstr ""
+
+#: ipalib/plugins/host.py:537
+msgid ""
+"\n"
+" Modify information about a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:542
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:275
+#: ipalib/plugins/host.py:549
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:319
-#, python-format
+#: ipalib/plugins/host.py:618
+msgid ""
+"\n"
+" Search for hosts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:623
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
-#: ipalib/plugins/host.py:337 ipalib/plugins/service.py:84
-msgid "Keytab"
+#: ipalib/plugins/host.py:643
+msgid ""
+"\n"
+" Display information about a host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:359 ipalib/plugins/service.py:399
-#, python-format
-msgid "Removed kerberos key from \"%(value)s\""
+#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+msgid "file to store certificate in"
+msgstr ""
+
+#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+msgid "Certificate stored in file '%(file)s'"
+msgstr ""
+
+#: ipalib/plugins/host.py:684
+msgid ""
+"\n"
+" Disable the Kerberos key, SSL certificate and all services of a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:688
+msgid "Disabled host \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/host.py:770
+msgid ""
+"\n"
+" Add hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:781
+msgid ""
+"\n"
+" Remove hosts that can manage this host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:368
-msgid "Host principal has no kerberos key"
+#: ipalib/plugins/hostgroup.py:20
+msgid ""
+"\n"
+"Groups of hosts.\n"
+"\n"
+"Manage groups of hosts. This is useful for applying access control to a\n"
+"number of hosts by using Host-based Access Control.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host group:\n"
+" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n"
+"\n"
+" Add another new host group:\n"
+" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n"
+"\n"
+" Add members to the hostgroup:\n"
+" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n"
+"\n"
+" Add a hostgroup as a member of another hostgroup:\n"
+" ipa hostgroup-add-member --hostgroups=baltimore maryland\n"
+"\n"
+" Remove a host from the hostgroup:\n"
+" ipa hostgroup-remove-member --hosts=box2 baltimore\n"
+"\n"
+" Display a host group:\n"
+" ipa hostgroup-show baltimore\n"
+"\n"
+" Delete a hostgroup:\n"
+" ipa hostgroup-del baltimore\n"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:55
+msgid ""
+"\n"
+" Hostgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/hostgroup.py:78
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:75
+#: ipalib/plugins/hostgroup.py:79
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:82
+#: ipalib/plugins/hostgroup.py:86
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:85
-msgid "Member hosts"
+#: ipalib/plugins/hostgroup.py:94
+msgid ""
+"\n"
+" Add a new hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:89
-msgid "Member host-groups"
+#: ipalib/plugins/hostgroup.py:98
+msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:106
-#, python-format
-msgid "Added hostgroup \"%(value)s\""
+#: ipalib/plugins/hostgroup.py:104
+msgid ""
+"\n"
+" Delete a hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:116
-#, python-format
+#: ipalib/plugins/hostgroup.py:108
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:126
-#, python-format
+#: ipalib/plugins/hostgroup.py:114
+msgid ""
+"\n"
+" Modify a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:118
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:137
-#, python-format
+#: ipalib/plugins/hostgroup.py:124
+msgid ""
+"\n"
+" Search for hostgroups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:128
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
-#: ipalib/plugins/internal.py:39
+#: ipalib/plugins/hostgroup.py:136
+msgid ""
+"\n"
+" Display information about a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:144
+msgid ""
+"\n"
+" Add members to a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:152
+msgid ""
+"\n"
+" Remove members from a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:22
+msgid ""
+"\n"
+"Plugins not accessible directly through the CLI, commands used internally\n"
+msgstr ""
+
+#: ipalib/plugins/internal.py:36
+msgid ""
+"\n"
+" Export plugin meta-data for the webUI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:44
+msgid "Name of object to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:47
+msgid "Name of method to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:52
+msgid "Dict of JSON encoded IPA Objects"
+msgstr ""
+
+#: ipalib/plugins/internal.py:53
+msgid "Dict of JSON encoded IPA Methods"
+msgstr ""
+
+#: ipalib/plugins/internal.py:96
msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:41
+#: ipalib/plugins/internal.py:99
+msgid "Attribute"
+msgstr ""
+
+#: ipalib/plugins/internal.py:102
+msgid "Add Automount Location"
+msgstr ""
+
+#: ipalib/plugins/internal.py:103
+msgid "Automount Location Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:106
+msgid "Add Automount Map"
+msgstr ""
+
+#: ipalib/plugins/internal.py:109
+msgid "Add Automount Key"
+msgstr ""
+
+#: ipalib/plugins/internal.py:112
+msgid "Unspecified"
+msgstr ""
+
+#: ipalib/plugins/internal.py:113
+msgid "Key Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:114
+msgid "CA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:115
+msgid "Affiliation Changed"
+msgstr ""
+
+#: ipalib/plugins/internal.py:116
+msgid "Superseded"
+msgstr ""
+
+#: ipalib/plugins/internal.py:117
+msgid "Cessation of Operation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:118
+msgid "Certificate Hold"
+msgstr ""
+
+#: ipalib/plugins/internal.py:119
+msgid "Remove from CRL"
+msgstr ""
+
+#: ipalib/plugins/internal.py:120
+msgid "Privilege Withdrawn"
+msgstr ""
+
+#: ipalib/plugins/internal.py:121
+msgid "AA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:122
+msgid ""
+"To confirm your intention to revoke this certificate, select a reason from "
+"the pull-down list, and click the \"Revoke\" button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:124
+msgid "Note"
+msgstr ""
+
+#: ipalib/plugins/internal.py:125
+msgid "Reason for Revocation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:126
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\" "
+"button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:128
+msgid "Issued To"
+msgstr ""
+
+#: ipalib/plugins/internal.py:129
+msgid "Common Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:130
+msgid "Organization"
+msgstr ""
+
+#: ipalib/plugins/internal.py:131
+msgid "Organizational Unit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:133
+msgid "Issued By"
+msgstr ""
+
+#: ipalib/plugins/internal.py:134
+msgid "Validity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:135
+msgid "Issued On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:136
+msgid "Expires On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:137
+msgid "Fingerprints"
+msgstr ""
+
+#: ipalib/plugins/internal.py:138
+msgid "SHA1 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:139
+msgid "MD5 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:140
+msgid "Enter the Base64-encoded CSR below"
+msgstr ""
+
+#: ipalib/plugins/internal.py:141
+msgid "Valid Certificate Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:142
+msgid "New Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:143
+msgid "Certificate Revoked"
+msgstr ""
+
+#: ipalib/plugins/internal.py:144
+msgid "No Valid Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:145
+msgid "Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:146
+msgid "Issue New Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:147
+msgid "Revoke Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:148
+msgid "Restore Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:152
+msgid "Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:155
+msgid "Add Delegation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:158
+msgid "Add DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:159
+msgid "DNS Zone Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:162
+msgid "Add DNS Resource Record"
+msgstr ""
+
+#: ipalib/plugins/internal.py:163
+msgid "Resource"
+msgstr ""
+
+#: ipalib/plugins/internal.py:165
+msgid "Data"
+msgstr ""
+
+#: ipalib/plugins/internal.py:166
+msgid "Records for DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:169
+msgid "Add Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:170
+msgid "Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
+msgid "Is this a POSIX group?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:174
+msgid "Add HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:306
+msgid "Active"
+msgstr ""
+
+#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:308
+msgid "Inactive"
+msgstr ""
+
+#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
+msgid "Rule status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
+msgid "Who"
+msgstr ""
+
+#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
+msgid "Anyone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
+msgid "Specified Users and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:183
+msgid "Accessing"
+msgstr ""
+
+#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
+msgid "Any Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
+msgid "Specified Hosts and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:186
+msgid "Via Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:187
+msgid "Any Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:188
+msgid "Specified Services and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:189
+msgid "From"
+msgstr ""
+
+#: ipalib/plugins/internal.py:192
+msgid "Add HBAC Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:195
+msgid "Add HBAC Service Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:199
+msgid "Add Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:200
+msgid "Host Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:202
+msgid "Host Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:203
+msgid "Enrolled?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:204
+msgid "Enrollment"
+msgstr ""
+
+#: ipalib/plugins/internal.py:205
+msgid "Fully Qualified Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
+msgid "Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:208
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
+msgid "Delete Key, Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:211
+msgid "Enroll via One-Time-Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:212
+msgid "Set OTP"
+msgstr ""
+
+#: ipalib/plugins/internal.py:213
+msgid "One-Time-Password has been set."
+msgstr ""
+
+#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
+msgid "Unprovisioning ${entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:215
+msgid "Are you sure you want to unprovision this host?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
+msgid "Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:219
+msgid "Add Host Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:220
+msgid "Host Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:223
+msgid "Kerberos ticket policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:226
+msgid "Add Netgroup"
+msgstr ""
+
+#: ipalib/plugins/internal.py:227
+msgid "Netgroup Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:230
+msgid "Add Permission"
+msgstr ""
+
+#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
+msgid "Identity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:233
+msgid "Target"
+msgstr ""
+
+#: ipalib/plugins/internal.py:235
+msgid "By Subtree"
+msgstr ""
+
+#: ipalib/plugins/internal.py:236
+msgid "Target Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:237
+msgid "Object By Type"
+msgstr ""
+
+#: ipalib/plugins/internal.py:238
+msgid "Permission with invalid target specification"
+msgstr ""
+
+#: ipalib/plugins/internal.py:241
+msgid "Add Privilege"
+msgstr ""
+
+#: ipalib/plugins/internal.py:242
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:245
+msgid "Add Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:249
+msgid "Add Role"
+msgstr ""
+
+#: ipalib/plugins/internal.py:250
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:253
+msgid "Add Self Service Definition"
+msgstr ""
+
+#: ipalib/plugins/internal.py:256
+msgid "Add Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:257
+msgid "Service Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:258
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:260
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:261
+msgid "Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:263
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:267
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:271
+msgid "Add Sudo Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:275
+msgid "Add Sudo Command Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:279
+msgid "Add Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:287
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:290
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:291
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:292
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:293
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:294
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:295
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:297
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:300
+msgid "Add User"
+msgstr ""
+
+#: ipalib/plugins/internal.py:301
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:302
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:303
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:304
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:305
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:307
+msgid "Click to Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:309
+msgid "Click to Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:310
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:311
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:312
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:313
+msgid "Repeat Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:314
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:315
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:319
msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:42
+#: ipalib/plugins/internal.py:320
+msgid "Add and Add Another"
+msgstr ""
+
+#: ipalib/plugins/internal.py:321
+msgid "Add and Edit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:322
+msgid "Add and Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:323
+msgid "Add Many"
+msgstr ""
+
+#: ipalib/plugins/internal.py:324
+msgid "Back to List"
+msgstr ""
+
+#: ipalib/plugins/internal.py:325
+msgid "Cancel"
+msgstr ""
+
+#: ipalib/plugins/internal.py:326
+msgid "Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:327
+msgid "Enroll"
+msgstr ""
+
+#: ipalib/plugins/internal.py:328
msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:43
+#: ipalib/plugins/internal.py:329
+msgid "Get"
+msgstr ""
+
+#: ipalib/plugins/internal.py:330
+msgid "Issue"
+msgstr ""
+
+#: ipalib/plugins/internal.py:331
+msgid "OK"
+msgstr ""
+
+#: ipalib/plugins/internal.py:332
msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:333
+msgid "Delete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:334
+msgid "Restore"
+msgstr ""
+
+#: ipalib/plugins/internal.py:335
+msgid "Retry"
+msgstr ""
+
+#: ipalib/plugins/internal.py:336
+msgid "Revoke"
+msgstr ""
+
+#: ipalib/plugins/internal.py:337
msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:45
-msgid "Enroll"
+#: ipalib/plugins/internal.py:338
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:46
-msgid "Delete"
+#: ipalib/plugins/internal.py:341
+msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:49
+#: ipalib/plugins/internal.py:342
+msgid "This page has unsaved changes. Please save or revert."
+msgstr ""
+
+#: ipalib/plugins/internal.py:343
+msgid "Dirty"
+msgstr ""
+
+#: ipalib/plugins/internal.py:344
+msgid "Hide already enrolled."
+msgstr ""
+
+#: ipalib/plugins/internal.py:345
+msgid "Select ${entity} to be removed."
+msgstr ""
+
+#: ipalib/plugins/internal.py:346
+msgid "Remove ${entity}."
+msgstr ""
+
+#: ipalib/plugins/internal.py:347
+msgid "Prospective"
+msgstr ""
+
+#: ipalib/plugins/internal.py:350
+msgid "Managed by"
+msgstr ""
+
+#: ipalib/plugins/internal.py:351
+msgid "Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:352
+msgid "Indirect Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:353
+msgid "Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:354
+msgid "Indirect Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
+msgid "Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:358
+msgid "Search"
+msgstr ""
+
+#: ipalib/plugins/internal.py:362
msgid "Quick Links"
msgstr ""
-#: ipalib/plugins/internal.py:50
+#: ipalib/plugins/internal.py:363
msgid "Select All"
msgstr ""
-#: ipalib/plugins/internal.py:51
+#: ipalib/plugins/internal.py:364
msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Do you really want to delete the selected entries?"
+#: ipalib/plugins/internal.py:365
+msgid "Are you sure you want to delete selected entries?"
msgstr ""
-#: ipalib/plugins/internal.py:55
-msgid "Identity Details"
+#: ipalib/plugins/internal.py:366
+msgid ""
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
msgstr ""
-#: ipalib/plugins/internal.py:56
-msgid "Account Details"
+#: ipalib/plugins/internal.py:370
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:57
-msgid "Contact Details"
+#: ipalib/plugins/internal.py:371
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:58
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:372
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:59
-msgid " Employee Information"
+#: ipalib/plugins/internal.py:373
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:60
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:377
+msgid "Policy"
msgstr ""
-#: ipalib/plugins/internal.py:61
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:378
+msgid "Audit"
msgstr ""
-#: ipalib/plugins/internal.py:66
-msgid "Name of object to export"
+#: ipalib/plugins/internal.py:379
+msgid "IPA Server"
msgstr ""
-#: ipalib/plugins/internal.py:71
-msgid "Dict of JSON encoded IPA Objects"
+#: ipalib/plugins/internal.py:380
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:381
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:382
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:383
+msgid "Automount"
msgstr ""
-#: ipalib/plugins/internal.py:72
+#: ipalib/plugins/internal.py:386
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:387
+msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:388
+msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:389
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:392
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:395
+msgid ""
+"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."
+msgstr ""
+
+#: ipalib/plugins/internal.py:399
msgid "Dict of I18N messages"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:59
+#: ipalib/plugins/kerberos.py:20
+msgid ""
+"\n"
+"Backend plugin for Kerberos.\n"
+"\n"
+"This wraps the python-kerberos and python-krbV bindings.\n"
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:35
+msgid ""
+"\n"
+" Kerberos backend plugin.\n"
+"\n"
+" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
+" bindings also). Importantly, this plugin does correct Unicode\n"
+" encoding/decoding of values going-to/coming-from the bindings.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:44
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:50
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:56
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:62
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:68
+msgid ""
+"\n"
+" Return the default ccache file name.\n"
+"\n"
+" This will return something like '/tmp/krb5cc_500'.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:79
+msgid ""
+"\n"
+" Return the principal name in default credential cache.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'. If no "
+"credential\n"
+" cache exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:91
+msgid ""
+"\n"
+" Return the realm from the default credential cache.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'. If no credential "
+"cache\n"
+" exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:103
+msgid ""
+"\n"
+" Return the principal from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:111
+msgid ""
+"\n"
+" Return the realm from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:19
+msgid ""
+"\n"
+"Kerberos ticket policy\n"
+"\n"
+"There is a single Kerberos ticket policy. This policy defines the\n"
+"maximum ticket lifetime and the maximum renewal age, the period during\n"
+"which the ticket is renewable.\n"
+"\n"
+"You can also create a per-user ticket policy by specifying the user login.\n"
+"\n"
+"For changes to the global policy to take effect, restarting the KDC service\n"
+"is required, which can be achieved using:\n"
+"\n"
+"service krb5kdc restart\n"
+"\n"
+"Changes to per-user policies take effect immediately for newly requested\n"
+"tickets (e.g. when the user next runs kinit).\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Display the current Kerberos ticket policy:\n"
+" ipa krbtpolicy-show\n"
+"\n"
+" Reset the policy to the default:\n"
+" ipa krbtpolicy-reset\n"
+"\n"
+" Modify the policy to 8 hours max life, 1-day max renewal:\n"
+" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n"
+"\n"
+" Display effective Kerberos ticket policy for user 'admin':\n"
+" ipa krbtpolicy-show admin\n"
+"\n"
+" Reset per-user policy for user 'admin':\n"
+" ipa krbtpolicy-reset admin\n"
+"\n"
+" Modify per-user policy for user 'admin':\n"
+" ipa krbtpolicy-mod admin --maxlife=3600\n"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:71
+msgid ""
+"\n"
+" Kerberos Ticket Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:79
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:64 ipalib/plugins/passwd.py:52
+#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
msgid "User name"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:65
+#: ipalib/plugins/krbtpolicy.py:85
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:70
+#: ipalib/plugins/krbtpolicy.py:90
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:75
+#: ipalib/plugins/krbtpolicy.py:96
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:76
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/migration.py:44
-#, python-format
+#: ipalib/plugins/krbtpolicy.py:111
+msgid ""
+"\n"
+" Modify Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:125
+msgid ""
+"\n"
+" Display the current Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:149
+msgid ""
+"\n"
+" Reset Kerberos ticket policy to the default values.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:19
+msgid ""
+"\n"
+"Migration to IPA\n"
+"\n"
+"Migrate users and groups from an LDAP server to IPA.\n"
+"\n"
+"This performs an LDAP query against the remote server searching for\n"
+"users and groups in a container. In order to migrate passwords you need\n"
+"to bind as a user that can read the userPassword attribute on the remote\n"
+"server. This is generally restricted to high-level admins such as\n"
+"cn=Directory Manager in 389-ds (this is the default bind user).\n"
+"\n"
+"The default user container is ou=People.\n"
+"\n"
+"The default group container is ou=Groups.\n"
+"\n"
+"Users and groups that already exist on the IPA server are skipped.\n"
+"\n"
+"Two LDAP schemas define how group members are stored: RFC2307 and\n"
+"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n"
+"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n"
+"\n"
+"Migrated users do not have Kerberos credentials, they have only their\n"
+"LDAP password. To complete the migration process, users need to go\n"
+"to http://ipa.example.com/ipa/migration and authenticate using their\n"
+"LDAP password in order to generate their Kerberos credentials.\n"
+"\n"
+"Migration is disabled by default. Use the command ipa config-mod to\n"
+"enable it:\n"
+"\n"
+" ipa config-mod --enable-migration=TRUE\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" The simplest migration, accepting all defaults:\n"
+" ipa migrate-ds ldap://ds.example.com:389\n"
+"\n"
+" Specify the user and group container. This can be used to migrate user and\n"
+" group data from an IPA v1 server:\n"
+" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-"
+"container='cn=groups,cn=accounts' ldap://ds.example.com:389\n"
+msgstr ""
+
+#: ipalib/plugins/migration.py:78
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:45
+#: ipalib/plugins/migration.py:79
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:169
+#: ipalib/plugins/migration.py:175
+msgid ""
+"\n"
+" Convert usernames in member attributes to work in IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:220
+msgid "Invalid LDAP URI."
+msgstr ""
+
+#: ipalib/plugins/migration.py:225
+msgid ""
+"\n"
+" Migrate users and groups from DS to IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:266
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:170
+#: ipalib/plugins/migration.py:267
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:174
+#: ipalib/plugins/migration.py:272
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:181
+#: ipalib/plugins/migration.py:279
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:187
+#: ipalib/plugins/migration.py:285
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:188
+#: ipalib/plugins/migration.py:286
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:194
+#: ipalib/plugins/migration.py:292
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:195
+#: ipalib/plugins/migration.py:293
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:200
-msgid "Continous operation mode. Errors are reported but the process continues"
+#: ipalib/plugins/migration.py:299
+msgid "User object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:300
+msgid ""
+"Comma-separated list of objectclasses used to search for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:306
+msgid "Group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:307
+msgid ""
+"Comma-separated list of objectclasses used to search for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:313
+msgid "LDAP schema"
+msgstr ""
+
+#: ipalib/plugins/migration.py:314
+msgid ""
+"The schema used on the LDAP server. Supported values are RFC2307 and "
+"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:208
+#: ipalib/plugins/migration.py:320
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues"
+msgstr ""
+
+#: ipalib/plugins/migration.py:328
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:212
+#: ipalib/plugins/migration.py:332
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:216
+#: ipalib/plugins/migration.py:336
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:220
-#, python-format
+#: ipalib/plugins/migration.py:340
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:222
+#: ipalib/plugins/migration.py:342
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
-"migration process might be uncomplete\n"
+"migration process might be incomplete\n"
msgstr ""
-#: ipalib/plugins/migration.py:227
+#: ipalib/plugins/migration.py:347
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:230
+#: ipalib/plugins/migration.py:350
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -1522,16 +4757,55 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:297
-#, python-format
+#: ipalib/plugins/migration.py:358
+msgid ""
+"\n"
+" Call get_options of the baseclass and add \"exclude\" options\n"
+" for each type of object being migrated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:375
+msgid ""
+"\n"
+" Convert all \"exclude\" option values to lower-case.\n"
+"\n"
+" Also, empty List parameters are converted to None, but the "
+"migration\n"
+" plugin doesn't like that - convert back to empty lists.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:399
+msgid ""
+"\n"
+" Migrate objects from DS to LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:425
msgid "Container for %(container)s not found"
msgstr ""
+#: ipalib/plugins/misc.py:20
+msgid ""
+"\n"
+"Misc plug-ins\n"
+msgstr ""
+
+#: ipalib/plugins/misc.py:36
+msgid "Show environment variables"
+msgstr ""
+
#: ipalib/plugins/misc.py:38
-#, python-format
msgid "%(count)d variables"
msgstr ""
+#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115
+msgid ""
+"retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
#: ipalib/plugins/misc.py:61
msgid "Total number of variables env (>= count)"
msgstr ""
@@ -1540,428 +4814,2380 @@ msgstr ""
msgid "Number of variables returned (<= total)"
msgstr ""
-#: ipalib/plugins/misc.py:109
-#, python-format
+#: ipalib/plugins/misc.py:106
+msgid "Show all loaded plugins"
+msgstr ""
+
+#: ipalib/plugins/misc.py:108
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
-#: ipalib/plugins/misc.py:116
+#: ipalib/plugins/misc.py:126
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:57
+#: ipalib/plugins/netgroup.py:20
+msgid ""
+"\n"
+"Netgroups\n"
+"\n"
+"A netgroup is a group used for permission checking. It can contain both\n"
+"user and host values.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new netgroup:\n"
+" ipa netgroup-add --desc=\"NFS admins\" admins\n"
+"\n"
+" Add members to the netgroup:\n"
+" ipa netgroup-add-member --users=tuser1,tuser2 admins\n"
+"\n"
+" Remove a member from the netgroup:\n"
+" ipa netgroup-remove-member --users=tuser2 admins\n"
+"\n"
+" Display information about a netgroup:\n"
+" ipa netgroup-show admins\n"
+"\n"
+" Delete a netgroup:\n"
+" ipa netgroup-del admins\n"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:59
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:63
-msgid "External host"
+#: ipalib/plugins/netgroup.py:67
+msgid ""
+"\n"
+" Netgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/netgroup.py:85
-msgid "Net Groups"
+#: ipalib/plugins/netgroup.py:98
+msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:90
+#: ipalib/plugins/netgroup.py:103
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:97
+#: ipalib/plugins/netgroup.py:110
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:101
+#: ipalib/plugins/netgroup.py:114
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:106
+#: ipalib/plugins/netgroup.py:119
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:84
-#, python-format
+#: ipalib/plugins/netgroup.py:140
+msgid ""
+"\n"
+" Add a new netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:144
+msgid "Added netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:153
+msgid ""
+"\n"
+" Delete a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:156
+msgid "Deleted netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:162
+msgid ""
+"\n"
+" Modify a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:166
+msgid "Modified netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:180
+msgid ""
+"\n"
+" Search for a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:185
+msgid "%(count)d netgroup matched"
+msgid_plural "%(count)d netgroups matched"
+msgstr[0] ""
+
+#: ipalib/plugins/netgroup.py:213
+msgid ""
+"\n"
+" Display information about a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:222
+msgid ""
+"\n"
+" Add members to a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:258
+msgid ""
+"\n"
+" Remove members from a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:19
+msgid ""
+"\n"
+"Set a user's password\n"
+"\n"
+"If someone other than a user changes that user's password (e.g., Helpdesk\n"
+"resets it) then the password will need to be changed the first time it\n"
+"is used. This is so the end-user is the only one who knows the password.\n"
+"\n"
+"The IPA password policy controls how often a password may be changed,\n"
+"what strength requirements exist, and the length of the password history.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" To reset your own password:\n"
+" ipa passwd\n"
+"\n"
+" To change another user's password:\n"
+" ipa passwd tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/passwd.py:46
+msgid ""
+"\n"
+" Set a user's password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:64
+msgid "Changed password for \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/passwd.py:67
+msgid ""
+"\n"
+" Execute the passwd operation.\n"
+"\n"
+" The dn should not be passed as a keyword argument as it is "
+"constructed\n"
+" by this method.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param principal: The login name or principal of the user\n"
+" :param password: the new password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:19
+msgid ""
+"\n"
+"Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of rights. A permission is\n"
+"a human-readable form of a 389-ds Access Control Rule, or instruction "
+"(ACI).\n"
+"A permission grants the right to perform a specific task such as adding a\n"
+"user, modifying a group, etc.\n"
+"\n"
+"A permission may not contain other permissions.\n"
+"\n"
+"* A permission grants access to read, write, add or delete.\n"
+"* A privilege combines similar permissions (for example all the permissions\n"
+" needed to add a user).\n"
+"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n"
+"\n"
+"A permission is made up of a number of different parts:\n"
+"\n"
+"1. The name of the permission.\n"
+"2. The target of the permission.\n"
+"3. The rights granted by the permission.\n"
+"\n"
+"Rights define what operations are allowed, and may be one or more\n"
+"of the following:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Read permission is granted for most attributes by default so the read\n"
+"permission is not expected to be used very often.\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"There are a number of allowed targets:\n"
+"1. type: a type of object (user, group, etc).\n"
+"2. memberof: a member of a group or hostgroup\n"
+"3. filter: an LDAP filter\n"
+"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n"
+" super-set of the \"type\" target.\n"
+"5. targetgroup: grant access to modify a specific group (such as granting\n"
+" the rights to manage group membership)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a permission that grants the creation of users:\n"
+" ipa permission-add --type=user --permissions=add \"Add Users\"\n"
+"\n"
+" Add a permission that grants the ability to manage group membership:\n"
+" ipa permission-add --attrs=member --permissions=write --type=group "
+"\"Manage Group Members\"\n"
+msgstr ""
+
+#: ipalib/plugins/permission.py:84
+msgid "Permission Type"
+msgstr ""
+
+#: ipalib/plugins/permission.py:89
+msgid ""
+"\n"
+" Permission object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:112
+msgid "Permission name"
+msgstr ""
+
+#: ipalib/plugins/permission.py:119
+msgid ""
+"Comma-separated list of permissions to grant (read, write, add, delete, all)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:132
+msgid ""
+"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:138
+msgid "Member of group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:139
+msgid "Target members of a group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:151
+msgid "Subtree to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:157
+msgid "User group to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:177
+msgid ""
+"\n"
+" Add a new permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:181
+msgid "Added permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:236
+msgid ""
+"\n"
+" Delete a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:240
+msgid "Deleted permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:256
+msgid ""
+"\n"
+" Modify a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:260
+msgid "Modified permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:352
+msgid ""
+"\n"
+" Search for permissions.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:356
+msgid "%(count)d permission matched"
+msgid_plural "%(count)d permissions matched"
+msgstr[0] ""
+
+#: ipalib/plugins/permission.py:405
+msgid ""
+"\n"
+" Display information about a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:428
+msgid ""
+"\n"
+" Add members to a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:437
+msgid ""
+"\n"
+" Remove members from a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:19
+msgid ""
+"\n"
+"Ping the remote IPA server\n"
+msgstr ""
+
+#: ipalib/plugins/ping.py:29
+msgid ""
+"\n"
+" ping a remote server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:37
+msgid ""
+"\n"
+" A possible enhancement would be to take an argument and echo it\n"
+" back but a fixed value works for now.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:19
+msgid ""
+"\n"
+"Kerberos pkinit options\n"
+"\n"
+"Enable or disable anonymous pkinit using the principal\n"
+"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n"
+"pkinit support.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Enable anonymous pkinit:\n"
+" ipa pkinit-anonymous enable\n"
+"\n"
+" Disable anonymous pkinit:\n"
+" ipa pkinit-anonymous disable\n"
+"\n"
+"For more information on anonymous pkinit see:\n"
+"\n"
+"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:46
+msgid ""
+"\n"
+" PKINIT Options\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:51
+msgid "PKINIT"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:56
+msgid ""
+"\n"
+" Accepts only Enable/Disable.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:67
+msgid ""
+"\n"
+" Enable or Disable Anonymous PKINIT\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:19
+msgid ""
+"\n"
+"Privileges\n"
+"\n"
+"A privilege combines permissions into a logical task. A permission provides\n"
+"the rights to do a single task. There are some IPA operations that require\n"
+"multiple permissions to succeed. A privilege is where permissions are\n"
+"combined in order to perform a specific task.\n"
+"\n"
+"For example, adding a user requires the following permissions:\n"
+" * Creating a new user entry\n"
+" * Resetting a user password\n"
+" * Adding the new user to the default IPA users group\n"
+"\n"
+"Combining these three low-level tasks into a higher level task in the\n"
+"form of a privilege named \"Add User\" makes it easier to manage Roles.\n"
+"\n"
+"A privilege may not contain other privileges.\n"
+"\n"
+"See role and permission for additional information.\n"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:45
+msgid ""
+"\n"
+" Privilege object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:65
+msgid "Privileges"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:70
+msgid "Privilege name"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:77
+msgid "Privilege description"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:85
+msgid ""
+"\n"
+" Add a new privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:89
+msgid "Added privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:95
+msgid ""
+"\n"
+" Delete a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:99
+msgid "Deleted privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:105
+msgid ""
+"\n"
+" Modify a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:109
+msgid "Modified privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:115
+msgid ""
+"\n"
+" Search for privileges.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:119
+msgid "%(count)d privilege matched"
+msgid_plural "%(count)d privileges matched"
+msgstr[0] ""
+
+#: ipalib/plugins/privilege.py:127
+msgid ""
+"\n"
+" Display information about a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:135
+msgid ""
+"\n"
+" Add members to a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:144
+msgid ""
+"\n"
+" Remove members from a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:153
+msgid ""
+"\n"
+" Add permissions to a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:169
+msgid "Number of permissions added"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:177
+msgid ""
+"\n"
+" Remove permissions from a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:195
+msgid "Number of permissions removed"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:20
+msgid ""
+"\n"
+"Password policy\n"
+"\n"
+"A password policy sets limitations on IPA passwords, including maximum\n"
+"lifetime, minimum lifetime, the number of passwords to save in\n"
+"history, the number of character classes required (for stronger passwords)\n"
+"and the minimum password length.\n"
+"\n"
+"By default there is a single, global policy for all users. You can also\n"
+"create a password policy to apply to a group. Each user is only subject\n"
+"to one password policy, either the group policy or the global policy. A\n"
+"group policy stands alone; it is not a super-set of the global policy plus\n"
+"custom settings.\n"
+"\n"
+"Each group password policy requires a unique priority setting. If a user\n"
+"is in multiple groups that have password policies, this priority determines\n"
+"which password policy is applied. A lower value indicates a higher priority\n"
+"policy.\n"
+"\n"
+"Group password policies are automatically removed when the groups they\n"
+"are associated with are removed.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Modify the global policy:\n"
+" ipa pwpolicy-mod --minlength=10\n"
+"\n"
+" Add a new group password policy:\n"
+" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --"
+"minlength=8 --priority=10 localadmins\n"
+"\n"
+" Display the global password policy:\n"
+" ipa pwpolicy-show\n"
+"\n"
+" Display a group password policy:\n"
+" ipa pwpolicy-show localadmins\n"
+"\n"
+" Display the policy that would be applied to a given user:\n"
+" ipa pwpolicy-show --user=tuser1\n"
+"\n"
+" Modify a group password policy:\n"
+" ipa pwpolicy-mod --minclasses=2 localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:72
+msgid ""
+"\n"
+" Class of Service object used for linking policies with groups\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:87
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:170
-msgid "Password Policy"
+#: ipalib/plugins/pwpolicy.py:172
+msgid ""
+"\n"
+" Password Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:201
+msgid "Max failures"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:202
+msgid "Consecutive failures before lockout"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:207
+msgid "Failure reset interval"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:208
+msgid "Period after which failure count will be reset (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:175
+#: ipalib/plugins/pwpolicy.py:213
+msgid "Lockout duration"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:214
+msgid "Period for which lockout is enforced (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:224
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:176
+#: ipalib/plugins/pwpolicy.py:225
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:181
+#: ipalib/plugins/pwpolicy.py:230
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:182
+#: ipalib/plugins/pwpolicy.py:231
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:187
+#: ipalib/plugins/pwpolicy.py:236
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:188
+#: ipalib/plugins/pwpolicy.py:237
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:193
+#: ipalib/plugins/pwpolicy.py:242
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:194
+#: ipalib/plugins/pwpolicy.py:243
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:199
+#: ipalib/plugins/pwpolicy.py:248
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:200
+#: ipalib/plugins/pwpolicy.py:249
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:206
+#: ipalib/plugins/pwpolicy.py:255
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:256
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:212
+#: ipalib/plugins/pwpolicy.py:261
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:262
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:265
+#: ipalib/plugins/pwpolicy.py:294
+msgid ""
+"\n"
+" Ensure that the maximum lifetime is greater than the minimum.\n"
+" If there is no minimum lifetime set then don't return an error.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:314
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:330
+#: ipalib/plugins/pwpolicy.py:333
+msgid ""
+"\n"
+" Add a new group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:361
+msgid ""
+"\n"
+" Delete a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:380
+msgid ""
+"\n"
+" Modify a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:391
msgid "priority cannot be set on global policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:369
+#: ipalib/plugins/pwpolicy.py:423
+msgid ""
+"\n"
+" Display information about password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:428
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:370
+#: ipalib/plugins/pwpolicy.py:429
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/rolegroup.py:79
-msgid "Role Groups"
+#: ipalib/plugins/pwpolicy.py:452
+msgid ""
+"\n"
+" Search for group password policies.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:20
+msgid ""
+"\n"
+"Roles\n"
+"\n"
+"A role is used for fine-grained delegation. A permission grants the ability\n"
+"to perform given low-level tasks (add a user, modify a group, etc.). A\n"
+"privilege combines one or more permissions into a higher-level abstraction\n"
+"such as useradmin. A useradmin would be able to add, delete and modify "
+"users.\n"
+"\n"
+"Privileges are assigned to Roles.\n"
+"\n"
+"Users, groups, hosts and hostgroups may be members of a Role.\n"
+"\n"
+"Roles can not contain other roles.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new role:\n"
+" ipa role-add --desc=\"Junior-level admin\" junioradmin\n"
+"\n"
+" Add some privileges to this role:\n"
+" ipa role-add-privilege --privileges=addusers junioradmin\n"
+" ipa role-add-privilege --privileges=change_password junioradmin\n"
+" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n"
+"\n"
+" Add a group of users to this role:\n"
+" ipa group-add --desc=\"User admins\" useradmins\n"
+" ipa role-add-member --groups=useradmins junioradmin\n"
+"\n"
+" Display information about a role:\n"
+" ipa role-show junioradmin\n"
+"\n"
+" The result of this is that any users in the group 'useradmins' can\n"
+" add users, reset passwords or add a user to the default IPA user group.\n"
+msgstr ""
+
+#: ipalib/plugins/role.py:62
+msgid ""
+"\n"
+" Role object.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:84
-msgid "Role-group name"
+#: ipalib/plugins/role.py:81
+msgid "Role"
msgstr ""
-#: ipalib/plugins/rolegroup.py:91
+#: ipalib/plugins/role.py:86
+msgid "Role name"
+msgstr ""
+
+#: ipalib/plugins/role.py:93
msgid "A description of this role-group"
msgstr ""
-#: ipalib/plugins/rolegroup.py:102
-msgid "Member of task-groups"
+#: ipalib/plugins/role.py:101
+msgid ""
+"\n"
+" Add a new role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:115
-#, python-format
-msgid "Added rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:105
+msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/rolegroup.py:125
-#, python-format
-msgid "Deleted rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:111
+msgid ""
+"\n"
+" Delete a role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:135
-#, python-format
-msgid "Modified rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:115
+msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/rolegroup.py:146
-#, python-format
-msgid "%(count)d rolegroup matched"
-msgid_plural "%(count)d rolegroups matched"
+#: ipalib/plugins/role.py:121
+msgid ""
+"\n"
+" Modify a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:125
+msgid "Modified role \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/role.py:131
+msgid ""
+"\n"
+" Search for roles.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:135
+msgid "%(count)d role matched"
+msgid_plural "%(count)d roles matched"
+msgstr[0] ""
+
+#: ipalib/plugins/role.py:143
+msgid ""
+"\n"
+" Display information about a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:151
+msgid ""
+"\n"
+" Add members to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:159
+msgid ""
+"\n"
+" Remove members from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:167
+msgid ""
+"\n"
+" Add privileges to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:183
+msgid "Number of privileges added"
+msgstr ""
+
+#: ipalib/plugins/role.py:191
+msgid ""
+"\n"
+" Remove privileges from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:207
+msgid "Number of privileges removed"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:19
+msgid ""
+"\n"
+"Self-service Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"A Self-service permission defines what an object can change in its own "
+"entry.\n"
+"\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a self-service rule to allow users to manage their address:\n"
+" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st "
+"\"Users manage their own address\"\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add telephoneNumber to the list:\n"
+" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber "
+"\"Users manage their own address\"\n"
+"\n"
+" Display our updated rule:\n"
+" ipa selfservice-show \"Users manage their own address\"\n"
+"\n"
+" Delete a rule:\n"
+" ipa selfservice-del \"Users manage their own address\"\n"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:56
+msgid ""
+"\n"
+" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a self-service ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:64
+msgid "Self-service permission '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:68
+msgid ""
+"\n"
+" Selfservice object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:75
+msgid "Self Service Permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
+msgid "Self-service name"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:114
+msgid ""
+"\n"
+" Add a new self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:118
+msgid "Added selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:137
+msgid ""
+"\n"
+" Delete a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:142
+msgid "Deleted selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:158
+msgid ""
+"\n"
+" Modify a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:162
+msgid "Modified selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:181
+msgid ""
+"\n"
+" Search for a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:185
+msgid "%(count)d selfservice matched"
+msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
-#: ipalib/plugins/service.py:198
+#: ipalib/plugins/selfservice.py:207
+msgid ""
+"\n"
+" Display information about a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:21
+msgid ""
+"\n"
+"Services\n"
+"\n"
+"A IPA service represents a service that runs on a host. The IPA service\n"
+"record can store a Kerberos principal, an SSL certificate, or both.\n"
+"\n"
+"An IPA service can be managed directly from a machine, provided that\n"
+"machine has been given the correct permission. This is true even for\n"
+"machines other than the one the service is associated with. For example,\n"
+"requesting an SSL certificate using the host service principal credentials\n"
+"of the host. To manage a service using host credentials you need to\n"
+"kinit as the host:\n"
+"\n"
+" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n"
+"\n"
+"Adding an IPA service allows the associated service to request an SSL\n"
+"certificate or keytab, but this is performed as a separate step; they\n"
+"are not produced as a result of adding the service.\n"
+"\n"
+"Only the public aspect of a certificate is stored in a service record;\n"
+"the private key is not stored.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new IPA service:\n"
+" ipa service-add HTTP/web.example.com\n"
+"\n"
+" Allow a host to manage an IPA service certificate:\n"
+" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n"
+" ipa role-add-member --hosts=web.example.com certadmin\n"
+"\n"
+" Delete an IPA service:\n"
+" ipa service-del HTTP/web.example.com\n"
+"\n"
+" Find all IPA services associated with a host:\n"
+" ipa service-find web.example.com\n"
+"\n"
+" Find all HTTP services:\n"
+" ipa service-find HTTP\n"
+"\n"
+" Disable the service Kerberos key and SSL certificate:\n"
+" ipa service-disable HTTP/web.example.com\n"
+"\n"
+" Request a certificate for an IPA service:\n"
+" ipa cert-request --principal=HTTP/web.example.com example.csr\n"
+"\n"
+" Generate and retrieve a keytab for an IPA service:\n"
+" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/"
+"httpd.keytab\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/service.py:162
+msgid ""
+"\n"
+" For now just verify that it is properly base64-encoded.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:175
+msgid ""
+"\n"
+" Set individual attributes from some values from a certificate.\n"
+"\n"
+" entry_attrs is a dict of an entry\n"
+"\n"
+" returns nothing\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:199
+msgid ""
+"\n"
+" Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:226
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:221
+#: ipalib/plugins/service.py:242
+msgid ""
+"\n"
+" Add a new IPA new service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:245
+msgid "Added service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/service.py:251
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:292
-#, python-format
+#: ipalib/plugins/service.py:284
+msgid ""
+"\n"
+" Delete an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:287
+msgid "Deleted service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/service.py:321
+msgid ""
+"\n"
+" Modify an existing IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:324
msgid "Modified service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:323
-#, python-format
+#: ipalib/plugins/service.py:356
+msgid ""
+"\n"
+" Search for IPA services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:359
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
-#: ipalib/plugins/service.py:409
-msgid "Service principal has no kerberos key"
+#: ipalib/plugins/service.py:394
+msgid ""
+"\n"
+" Display information about an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:432
+msgid ""
+"\n"
+" Add hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:442
+msgid ""
+"\n"
+" Remove hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:452
+msgid ""
+"\n"
+" Disable the Kerberos key and SSL certificate of a service.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmd.py:60
-msgid "SudoCmds"
+#: ipalib/plugins/service.py:456
+msgid "Disabled service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:65
+#: ipalib/plugins/sudocmd.py:19
+msgid ""
+"\n"
+"Sudo Commands\n"
+"\n"
+"Commands used as building blocks for sudo\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a new command\n"
+" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n"
+"\n"
+" Remove a command\n"
+" ipa sudocmd-del /usr/bin/less\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:46
+msgid ""
+"\n"
+" Sudo Command object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:64
+msgid "Sudo Commands"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:69
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:72
+#: ipalib/plugins/sudocmd.py:75
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:99
-#, python-format
+#: ipalib/plugins/sudocmd.py:98
+msgid ""
+"\n"
+" Create new sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:102
msgid "Added sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:108
-#, python-format
+#: ipalib/plugins/sudocmd.py:107
+msgid ""
+"\n"
+" Delete sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:111
msgid "Deleted sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:117
-#, python-format
+#: ipalib/plugins/sudocmd.py:116
+msgid ""
+"\n"
+" Modify command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:120
msgid "Modified sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:127
-#, python-format
+#: ipalib/plugins/sudocmd.py:125
+msgid ""
+"\n"
+" Search for commands.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:129
msgid "%(count)d sudo command matched"
msgid_plural "%(count)d sudo command matched"
msgstr[0] ""
-#: ipalib/plugins/sudocmdgroup.py:66 ipalib/plugins/sudocmdgroup.py:85
-#: ipalib/plugins/sudorule.py:81 ipalib/plugins/sudorule.py:85
-msgid "Sudo Command Groups"
+#: ipalib/plugins/sudocmd.py:136
+msgid ""
+"\n"
+" Display sudo command.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:71
+#: ipalib/plugins/sudocmdgroup.py:19
+msgid ""
+"\n"
+"Groups of Sudo commands\n"
+"\n"
+"Manage groups of Sudo commands.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new Sudo command group:\n"
+" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
+"\n"
+" Remove a Sudo command group:\n"
+" ipa sudocmdgroup-del admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim "
+"admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
+"\n"
+" Show a Sudo command group:\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:50
+msgid ""
+"\n"
+" Sudo Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:70
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:81
-msgid "Commands"
+#: ipalib/plugins/sudocmdgroup.py:93
+msgid ""
+"\n"
+" Create new sudo command group.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:98
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:97
msgid "Added sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:108
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:103
+msgid ""
+"\n"
+" Delete sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:107
msgid "Deleted sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:118
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:113
+msgid ""
+"\n"
+" Modify group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:117
msgid "Modified sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:129
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:123
+msgid ""
+"\n"
+" Search for sudo command groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:127
msgid "%(count)d sudo command group matched"
msgid_plural "%(count)d sudo command groups matched"
msgstr[0] ""
-#: ipalib/plugins/sudorule.py:48
-msgid "SudoRule"
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid ""
+"\n"
+" Display sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:144
+msgid ""
+"\n"
+" Add members to sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:152
+msgid ""
+"\n"
+" Remove members from sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:19
+msgid ""
+"\n"
+"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
+"give certain users (or groups of users) the ability to run some (or all)\n"
+"commands as root or another user while providing an audit trail of the\n"
+"commands and their arguments.\n"
+"\n"
+"FreeIPA provides a designated binddn to use with Sudo located at:\n"
+"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
+"\n"
+"To enable the binddn run the following command to set the password:\n"
+"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -"
+"ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,"
+"dc=com\n"
+"\n"
+"For more information, see the FreeIPA Documentation to Sudo.\n"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:44
+msgid ""
+"\n"
+" Sudo Rule management\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:68
+msgid "Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:98
+msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/sudorule.py:99
+msgid "Command category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:104
+msgid "Run As User category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:105
+msgid "Run As User category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:110
+msgid "Run As Group category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:111
+msgid "Run As Group category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:131
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:77
+#: ipalib/plugins/sudorule.py:135
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:109
-#, python-format
+#: ipalib/plugins/sudorule.py:147
+msgid "Run As User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:151
+msgid "Run As Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:156
+msgid "External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:157
+msgid "External User the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:161
+msgid "RunAs External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:162
+msgid "External User the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:166
+msgid "RunAs External Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:167
+msgid "External Group the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:175
+msgid ""
+"\n"
+" Create new Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "Added sudo rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/taskgroup.py:51
-msgid "Task Groups"
+#: ipalib/plugins/sudorule.py:189
+msgid ""
+"\n"
+" Delete Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:56
-msgid "Task-group name"
+#: ipalib/plugins/sudorule.py:197
+msgid ""
+"\n"
+" Modify Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:63
-msgid "Task-group description"
+#: ipalib/plugins/sudorule.py:205
+msgid ""
+"\n"
+" Search for Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:74
-msgid "Member role-groups"
+#: ipalib/plugins/sudorule.py:213
+msgid ""
+"\n"
+" Display Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:87
-#, python-format
-msgid "Added taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:221
+msgid ""
+"\n"
+" Enable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:97
-#, python-format
-msgid "Deleted taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:247
+msgid ""
+"\n"
+" Disable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:107
-#, python-format
-msgid "Modified taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
+msgid ""
+"\n"
+" Add commands and sudo command groups affected by Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:118
-#, python-format
-msgid "%(count)d taskgroup matched"
-msgid_plural "%(count)d taskgroups matched"
-msgstr[0] ""
+#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
+msgid ""
+"\n"
+" Remove commands and sudo command groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:313
+msgid ""
+"\n"
+" Add users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/user.py:84
+#: ipalib/plugins/sudorule.py:349
+msgid ""
+"\n"
+" Remove users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:383
+msgid ""
+"\n"
+" Add hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:419
+msgid ""
+"\n"
+" Remove hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:453
+msgid ""
+"\n"
+" Add user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:489
+msgid ""
+"\n"
+" Remove user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:523
+msgid ""
+"\n"
+" Add group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:559
+msgid ""
+"\n"
+" Remove group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:593
+msgid ""
+"\n"
+" Add an option to the Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
+msgid "Sudo Option"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:635
+msgid ""
+"\n"
+" Remove an option from Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:20
+msgid ""
+"\n"
+"Users\n"
+"\n"
+"Manage user entries. All users are POSIX users.\n"
+"\n"
+"IPA supports a wide range of username formats, but you need to be aware of "
+"any\n"
+"restrictions that may apply to your particular environment. For example,\n"
+"usernames that start with a digit or usernames that exceed a certain length\n"
+"may cause problems for some UNIX systems.\n"
+"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n"
+"\n"
+"Disabling a user account prevents that user from obtaining new Kerberos\n"
+"credentials. It does not invalidate any credentials that have already\n"
+"been issued.\n"
+"\n"
+"Password management is not a part of this module. For more information\n"
+"about this topic please see: ipa help passwd\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1\n"
+"\n"
+" Find all users whose entries include the string \"Tim\":\n"
+" ipa user-find Tim\n"
+"\n"
+" Find all users with \"Tim\" as the first name:\n"
+" ipa user-find --first=Tim\n"
+"\n"
+" Disable a user account:\n"
+" ipa user-disable tuser1\n"
+"\n"
+" Enable a user account:\n"
+" ipa user-enable tuser1\n"
+"\n"
+" Delete a user:\n"
+" ipa user-del tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/user.py:79
+msgid ""
+"\n"
+" User object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:116
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:91
+#: ipalib/plugins/user.py:123
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:95
+#: ipalib/plugins/user.py:127
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:103
+#: ipalib/plugins/user.py:130
+msgid "Full name"
+msgstr ""
+
+#: ipalib/plugins/user.py:135
+msgid "Display name"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "Initials"
+msgstr ""
+
+#: ipalib/plugins/user.py:146
+msgid "Home directory"
+msgstr ""
+
+#: ipalib/plugins/user.py:150
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:109
+#: ipalib/plugins/user.py:156
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:114
+#: ipalib/plugins/user.py:161
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:120
+#: ipalib/plugins/user.py:168
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:124
-msgid "Password"
+#: ipalib/plugins/user.py:173
+msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:125
-msgid "Set the user password"
-msgstr ""
-
-#: ipalib/plugins/user.py:132
+#: ipalib/plugins/user.py:180
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:133
+#: ipalib/plugins/user.py:181
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:139
-msgid "Street address"
+#: ipalib/plugins/user.py:188
+msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:142
-msgid "Groups"
+#: ipalib/plugins/user.py:193
+msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:146
-msgid "Netgroups"
+#: ipalib/plugins/user.py:197
+msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:150
-msgid "Rolegroups"
+#: ipalib/plugins/user.py:201
+msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:154
-msgid "Taskgroups"
+#: ipalib/plugins/user.py:204
+msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:159
+#: ipalib/plugins/user.py:208
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:211
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:163
+#: ipalib/plugins/user.py:214
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:166
+#: ipalib/plugins/user.py:218
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:177
-#, python-format
+#: ipalib/plugins/user.py:222
+msgid "Org. Unit"
+msgstr ""
+
+#: ipalib/plugins/user.py:225
+msgid "Job Title"
+msgstr ""
+
+#: ipalib/plugins/user.py:228
+msgid "Manager"
+msgstr ""
+
+#: ipalib/plugins/user.py:231
+msgid "Car License"
+msgstr ""
+
+#: ipalib/plugins/user.py:234
+msgid "Account disabled"
+msgstr ""
+
+#: ipalib/plugins/user.py:258
+msgid ""
+"\n"
+" Given a userid verify the user's existence and return the dn.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:276
+msgid "manager %(manager)s not found"
+msgstr ""
+
+#: ipalib/plugins/user.py:281
+msgid ""
+"\n"
+" Convert a manager dn into a userid\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:295
+msgid ""
+"\n"
+" Add a new user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:298
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:226
-#, python-format
+#: ipalib/plugins/user.py:303
+msgid "Don't create user private group"
+msgstr ""
+
+#: ipalib/plugins/user.py:333
+msgid "can be at most %(len)d characters"
+msgstr ""
+
+#: ipalib/plugins/user.py:400
+msgid ""
+"\n"
+" Delete a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:404
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:240
-#, python-format
+#: ipalib/plugins/user.py:413
+msgid ""
+"\n"
+" Modify a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:417
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:252
+#: ipalib/plugins/user.py:437
+msgid ""
+"\n"
+" Search for users.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:444
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:253
+#: ipalib/plugins/user.py:445
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:263
-#, python-format
+#: ipalib/plugins/user.py:463
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
-#: ipalib/plugins/user.py:283
-#, python-format
+#: ipalib/plugins/user.py:471
+msgid ""
+"\n"
+" Display information about a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:484
+msgid ""
+"\n"
+" Disable a user account.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:489
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:309
-#, python-format
+#: ipalib/plugins/user.py:507
+msgid ""
+"\n"
+" Enable a user account.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:512
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipaserver/install/certs.py:599 ipaserver/plugins/dogtag.py:1313
-#: ipaserver/plugins/dogtag.py:1398 ipaserver/plugins/dogtag.py:1463
-#: ipaserver/plugins/dogtag.py:1543 ipaserver/plugins/dogtag.py:1602
+#: ipalib/plugins/user.py:529
+msgid ""
+"\n"
+" Unlock a user account\n"
+"\n"
+" An account may become locked if the password is entered incorrectly too\n"
+" many times within a specific time period as controlled by password\n"
+" policy. A locked account is a temporary condition and may be unlocked "
+"by\n"
+" an administrator.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:538
+msgid "Unlocked account \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/virtual.py:20
+msgid ""
+"\n"
+"Base classes for non-LDAP backend plugins.\n"
+msgstr ""
+
+#: ipalib/plugins/virtual.py:28
+msgid ""
+"\n"
+" A command that doesn't use the LDAP backend but wants to use the\n"
+" LDAP access control system to make authorization decisions.\n"
+"\n"
+" The class variable operation is the commonName attribute of the\n"
+" entry to be tested against.\n"
+"\n"
+" In advance, you need to create an entry of the form:\n"
+" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
+"\n"
+" Ex.\n"
+" cn=request certificate, cn=virtual operations,cn=etc, dc=example, "
+"dc=com\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/virtual.py:44
+msgid ""
+"\n"
+" Perform an LDAP query to determine authorization.\n"
+"\n"
+" This should be executed before any actual work is done.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/xmlclient.py:21
+msgid ""
+"\n"
+"XML-RPC client plugin.\n"
+msgstr ""
+
+#: ipalib/cli.py:581
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:590
+msgid "Cancelled."
+msgstr ""
+
+#: ipalib/cli.py:819
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1117
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:300
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:318
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:334
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:356
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:372
+#, python-format
+msgid "unknown command %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:389 ipalib/errors.py:414
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:405
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:423
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:439
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:465
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:482
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:498
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:514
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:530
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:546
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:562
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:578
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:597
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:641
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:661
+#, python-format
+msgid "command %(name)r takes at most %(count)d argument"
+msgid_plural "command %(name)r takes at most %(count)d arguments"
+msgstr[0] ""
+
+#: ipalib/errors.py:691
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:707
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:723 ipalib/errors.py:739
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:755
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:764
+msgid "Passwords do not match"
+msgstr ""
+
+#: ipalib/errors.py:773
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:782
+msgid "Client is not configured. Run ipa-client-install."
+msgstr ""
+
+#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
+#: ipalib/errors.py:1424 ipalib/errors.py:1441
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:826
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:842
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:858
+#, python-format
+msgid ""
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:874
+msgid ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr ""
+
+#: ipalib/errors.py:890
+msgid "This command requires root access"
+msgstr ""
+
+#: ipalib/errors.py:906
+msgid "This is already a posix group"
+msgstr ""
+
+#: ipalib/errors.py:922
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:938
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:954
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:970
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:986
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1002
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1018
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1034
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1066
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1082
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1098
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1113
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1128
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1160
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1176
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1192
+#, python-format
+msgid ""
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1216
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1240
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1256
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1272
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1288
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1303
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1318
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1334
+#, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr ""
+
+#: ipalib/errors.py:1350
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1366
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1391
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1407
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1458
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1474
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:398
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:850
+msgid ""
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:856
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:985
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:296
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:299
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:901
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1002
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1054
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1064
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1074
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1097
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1107
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1174
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1192
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1208
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1218
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1228
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1246
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1277
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1287
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1297
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1315
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1355
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/util.py:200
+#, python-format
+msgid "Permission denied: %(file)s"
+msgstr ""
+
+#: ipalib/x509.py:174
+#, python-format
+msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
+msgstr ""
+
+#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
+#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
+#: ipaserver/plugins/dogtag.py:1600
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -1982,27 +7208,27 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
-#: ipaserver/plugins/selfsign.py:98
+#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
"Request subject \"%(request_subject)s\" does not match the form "
"\"%(subject_base)s\""
msgstr ""
-#: ipaserver/plugins/selfsign.py:103
+#: ipaserver/plugins/selfsign.py:104
#, python-format
msgid "unable to decode csr: %s"
msgstr ""
-#: ipaserver/plugins/selfsign.py:124 ipaserver/plugins/selfsign.py:139
+#: ipaserver/plugins/selfsign.py:125 ipaserver/plugins/selfsign.py:140
msgid "file operation"
msgstr ""
-#: ipaserver/plugins/selfsign.py:153
+#: ipaserver/plugins/selfsign.py:154
msgid "cannot obtain next serial number"
msgstr ""
-#: ipaserver/plugins/selfsign.py:188
+#: ipaserver/plugins/selfsign.py:189
msgid "certutil failure"
msgstr ""
@@ -2016,543 +7242,573 @@ msgstr ""
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:75
+#: ipa-client/config.c:68
+#, c-format
+msgid "out of memory\n"
+msgstr ""
+
+#: ipa-client/config.c:79
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:138 ipa-client/ipa-getkeytab.c:838
+#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
+#: ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:146
+#: ipa-client/ipa-getkeytab.c:155
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:164 ipa-client/ipa-getkeytab.c:179
+#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:194
+#: ipa-client/ipa-getkeytab.c:203
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:209
+#: ipa-client/ipa-getkeytab.c:218
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:235
+#: ipa-client/ipa-getkeytab.c:245
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:297
+#: ipa-client/ipa-getkeytab.c:307
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:310 ipa-client/ipa-getkeytab.c:327
-#: ipa-client/ipa-getkeytab.c:335 ipa-client/ipa-getkeytab.c:372
+#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
+#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:317 ipa-client/ipa-getkeytab.c:350
+#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
+#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
+#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
+#: ipa-client/ipa-join.c:819
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:361
+#: ipa-client/ipa-getkeytab.c:371
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:481
+#: ipa-client/ipa-getkeytab.c:492
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:496
+#: ipa-client/ipa-getkeytab.c:507
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:534
+#: ipa-client/ipa-getkeytab.c:545
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:541
+#: ipa-client/ipa-getkeytab.c:552
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:565
+#: ipa-client/ipa-getkeytab.c:576
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:572
+#: ipa-client/ipa-getkeytab.c:583
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:579
+#: ipa-client/ipa-getkeytab.c:596
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:589
+#: ipa-client/ipa-getkeytab.c:606
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:605 ipa-client/ipa-getkeytab.c:618
-#: ipa-client/ipa-getkeytab.c:625 ipa-client/ipa-getkeytab.c:632
+#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
+#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:638 ipa-client/ipa-getkeytab.c:648
+#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655
+#: ipa-client/ipa-getkeytab.c:672
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:674
+#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:715
+#: ipa-client/ipa-getkeytab.c:736
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:721
+#: ipa-client/ipa-getkeytab.c:742
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781
+#: ipa-client/ipa-getkeytab.c:778
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782
+#: ipa-client/ipa-getkeytab.c:779
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:189
+#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:787
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:788
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:790
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:794
+#: ipa-client/ipa-getkeytab.c:791
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:796
+#: ipa-client/ipa-getkeytab.c:793
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:825 ipa-client/ipa-rmkeytab.c:207
-#, c-format
-msgid "Kerberos context initialization failed\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:837
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:845
+#: ipa-client/ipa-getkeytab.c:841
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:864
+#: ipa-client/ipa-getkeytab.c:860
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:877
+#: ipa-client/ipa-getkeytab.c:873
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. -P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:889
+#: ipa-client/ipa-getkeytab.c:885
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:897
+#: ipa-client/ipa-getkeytab.c:893
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:905
+#: ipa-client/ipa-getkeytab.c:901
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:913
+#: ipa-client/ipa-getkeytab.c:909
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:920
+#: ipa-client/ipa-getkeytab.c:916
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:939
+#: ipa-client/ipa-getkeytab.c:935
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:948
+#: ipa-client/ipa-getkeytab.c:944
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:954
+#: ipa-client/ipa-getkeytab.c:950
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:67
+#: ipa-client/ipa-join.c:65
#, c-format
msgid "No permission to join this host to the IPA domain.\n"
msgstr ""
-#: ipa-client/ipa-join.c:104 ipa-client/ipa-join.c:116
+#: ipa-client/ipa-join.c:94 ipa-client/ipa-join.c:106
#, c-format
msgid "No write permissions on keytab file '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:121
+#: ipa-client/ipa-join.c:111
#, c-format
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:200
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#, c-format
+msgid "Out of memory!"
+msgstr ""
+
+#: ipa-client/ipa-join.c:204
+#, c-format
+msgid "Unable to initialize connection to ldap server: %s"
+msgstr ""
+
+#: ipa-client/ipa-join.c:210
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:206
+#: ipa-client/ipa-join.c:216
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:236
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:249
+#: ipa-client/ipa-join.c:269
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:259 ipa-client/ipa-join.c:311
+#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:302
+#: ipa-client/ipa-join.c:322
#, c-format
msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:368
+#: ipa-client/ipa-join.c:390
#, c-format
msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:377
+#: ipa-client/ipa-join.c:399
#, c-format
msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:385
+#: ipa-client/ipa-join.c:407
#, c-format
msgid "Unable to make an LDAP connection to %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:394
+#: ipa-client/ipa-join.c:432
#, c-format
msgid "Searching with %s in %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:400
+#: ipa-client/ipa-join.c:438
#, c-format
msgid "ldap_search_ext_s: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:408
+#: ipa-client/ipa-join.c:446
#, c-format
msgid "Unable to find host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:415
+#: ipa-client/ipa-join.c:453
#, c-format
msgid "Unable to get binddn for host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:428
+#: ipa-client/ipa-join.c:466
#, c-format
msgid "Host already has principal, trying bind anyway\n"
msgstr ""
-#: ipa-client/ipa-join.c:442 ipa-client/ipa-join.c:579
+#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:484
#, c-format
msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:457
+#: ipa-client/ipa-join.c:495
#, c-format
msgid "principal not found in host entry\n"
msgstr ""
-#: ipa-client/ipa-join.c:564
+#: ipa-client/ipa-join.c:618
#, c-format
msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:646 ipa-client/ipa-join.c:823
+#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:662 ipa-client/ipa-join.c:838
+#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:671 ipa-client/ipa-join.c:848
+#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:679
+#: ipa-client/ipa-join.c:732
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:689
+#: ipa-client/ipa-join.c:741
+#, c-format
+msgid "Error getting default Kerberos realm: %s.\n"
+msgstr ""
+
+#: ipa-client/ipa-join.c:759
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:707
+#: ipa-client/ipa-join.c:777
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:718
+#: ipa-client/ipa-join.c:788
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:726
+#: ipa-client/ipa-join.c:796
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:769
+#: ipa-client/ipa-join.c:846
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:772
+#: ipa-client/ipa-join.c:849
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:854
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:855
+#: ipa-client/ipa-join.c:932
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:863
+#: ipa-client/ipa-join.c:940
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not "
"provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:877
+#: ipa-client/ipa-join.c:954
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:906
+#: ipa-client/ipa-join.c:983
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:909
+#: ipa-client/ipa-join.c:986
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:912
+#: ipa-client/ipa-join.c:989
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:924
+#: ipa-client/ipa-join.c:1001
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:930
+#: ipa-client/ipa-join.c:1007
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "Print the raw XML-RPC output"
+#: ipa-client/ipa-join.c:1042
+msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "XML-RPC debugging Output"
+#: ipa-client/ipa-join.c:1044
+msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:967
-msgid "Unenroll this host"
-msgstr ""
-
-#: ipa-client/ipa-join.c:967
+#: ipa-client/ipa-join.c:1046
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Use this hostname instead of the node name"
+#: ipa-client/ipa-join.c:1048
+msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Host Name"
+#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:971
+#: ipa-client/ipa-join.c:1050
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:971
-msgid "IPA Server Name"
+#: ipa-client/ipa-join.c:1052
+msgid "Specifies where to store keytab information."
+msgstr ""
+
+#: ipa-client/ipa-join.c:1052
+msgid "filename"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1054
+msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:44
+#: ipa-client/ipa-join.c:1054
+msgid "password"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:46
+#: ipa-client/ipa-rmkeytab.c:45
#, c-format
msgid "krb5_parse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:56
+#: ipa-client/ipa-rmkeytab.c:55
#, c-format
msgid "Removing principal %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:69
+#: ipa-client/ipa-rmkeytab.c:68
#, c-format
msgid "Failed to open keytab\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:73
+#: ipa-client/ipa-rmkeytab.c:72
#, c-format
msgid "principal not found\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:75
+#: ipa-client/ipa-rmkeytab.c:74
#, c-format
msgid "krb5_kt_get_entry %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:83
+#: ipa-client/ipa-rmkeytab.c:82
#, c-format
msgid "Unable to remove entry\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:85
+#: ipa-client/ipa-rmkeytab.c:84
#, c-format
msgid "kvno %d\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:86
+#: ipa-client/ipa-rmkeytab.c:85
#, c-format
msgid "krb5_kt_remove_entry %d: %s\n"
msgstr ""
@@ -2567,33 +7823,38 @@ msgstr ""
msgid "krb5_unparse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:143
+#, c-format
+msgid "realm not found\n"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Print debugging information"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Debugging output"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Remove all principals in this realm"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Realm name"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:241
+#: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237
#, c-format
-msgid "Failed to open keytab '%s'\n"
+msgid "Failed to open keytab '%s': %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:255
+#: ipa-client/ipa-rmkeytab.c:253
#, c-format
msgid "Closing keytab failed\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:257
+#: ipa-client/ipa-rmkeytab.c:255
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
diff --git a/install/po/pl.po b/install/po/pl.po
index ad0dfe7a2..bebeb9eb8 100644
--- a/install/po/pl.po
+++ b/install/po/pl.po
@@ -6,407 +6,190 @@ msgstr ""
"Project-Id-Version: pl\n"
"Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/"
"newticket\n"
-"POT-Creation-Date: 2010-10-13 14:22-0400\n"
+"POT-Creation-Date: 2011-06-06 13:27-0400\n"
"PO-Revision-Date: 2011-01-25 10:48+0100\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <trans-pl@lists.fedoraproject.org>\n"
+"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: pl\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
-#: ipalib/cli.py:507
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr "Proszę podać %(label)s ponownie, aby sprawdzić: "
-
-#: ipalib/cli.py:511 ipa-client/ipa-getkeytab.c:730
-#, c-format
-msgid "Passwords do not match!"
-msgstr "Hasła się nie zgadzają."
-
-#: ipalib/cli.py:516
-msgid "Cancelled."
-msgstr "Anulowano."
-
-#: ipalib/errors.py:297
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+#: ipalib/plugins/__init__.py:20
+msgid ""
+"\n"
+"Sub-package containing all core plugins.\n"
msgstr ""
-"klient w wersji %(cver)s nie jest zgodny z serwerem w wersji %(sver)s na %"
-"(server)r"
-
-#: ipalib/errors.py:315
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr "nieznany błąd %(code)d z %(server)s: %(error)s"
-
-#: ipalib/errors.py:331
-msgid "an internal error has occurred"
-msgstr "wystąpił wewnętrzny błąd"
-
-#: ipalib/errors.py:353
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr "wystąpił wewnętrzny błąd w serwerze na %(server)r"
-
-#: ipalib/errors.py:369
-#, python-format
-msgid "unknown command %(name)r"
-msgstr "nieznane polecenie %(name)r"
-
-#: ipalib/errors.py:386 ipalib/errors.py:411
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr "błąd w serwerze %(server)r: %(error)s"
-
-#: ipalib/errors.py:402
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
-msgstr "nie można połączyć się z %(uri)r: %(error)s"
-
-#: ipalib/errors.py:420
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr "Nieprawidłowe żądanie JSON-RPC: %(error)s"
-
-#: ipalib/errors.py:448
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr "Błąd Kerberosa: %(major)s/%(minor)s"
-
-#: ipalib/errors.py:465
-msgid "did not receive Kerberos credentials"
-msgstr "nie otrzymano danych uwierzytelniających Kerberosa"
-
-#: ipalib/errors.py:481
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr "Nie odnaleziono usługi %(service)r w bazie danych Kerberosa"
-#: ipalib/errors.py:497
-msgid "No credentials cache found"
-msgstr "Nie odnaleziono pamięci podręcznej danych uwierzytelniających"
-
-#: ipalib/errors.py:513
-msgid "Ticket expired"
-msgstr "Zgłoszenie wygasło"
-
-#: ipalib/errors.py:529
-msgid "Credentials cache permissions incorrect"
+#: ipalib/plugins/aci.py:20
+msgid ""
+"\n"
+"Directory Server Access Control Instructions (ACIs)\n"
+"\n"
+"ACIs are used to allow or deny access to information. This module is\n"
+"currently designed to allow, not deny, access.\n"
+"\n"
+"The aci commands are designed to grant permissions that allow updating\n"
+"existing entries or adding or deleting new ones. The goal of the ACIs\n"
+"that ship with IPA is to provide a set of low-level permissions that\n"
+"grant access to special groups called taskgroups. These low-level\n"
+"permissions can be combined into roles that grant broader access. These\n"
+"roles are another type of group, roles.\n"
+"\n"
+"For example, if you have taskgroups that allow adding and modifying users "
+"you\n"
+"could create a role, useradmin. You would assign users to the useradmin\n"
+"role to allow them to do the operations defined by the taskgroups.\n"
+"\n"
+"You can create ACIs that delegate permission so users in group A can write\n"
+"attributes on group B.\n"
+"\n"
+"The type option is a map that applies to all entries in the users, groups "
+"or\n"
+"host location. It is primarily designed to be used when granting add\n"
+"permissions (to write new entries).\n"
+"\n"
+"An ACI consists of three parts:\n"
+"1. target\n"
+"2. permissions\n"
+"3. bind rules\n"
+"\n"
+"The target is a set of rules that define which LDAP objects are being\n"
+"targeted. This can include a list of attributes, an area of that LDAP\n"
+"tree or an LDAP filter.\n"
+"\n"
+"The targets include:\n"
+"- attrs: list of attributes affected\n"
+"- type: an object type (user, group, host, service, etc)\n"
+"- memberof: members of a group\n"
+"- targetgroup: grant access to modify a specific group. This is primarily\n"
+" designed to enable users to add or remove members of a specific group.\n"
+"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
+"- subtree: Used to apply a rule across an entire set of objects. For "
+"example,\n"
+" to allow adding users you need to grant \"add\" permission to the subtree\n"
+" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
+" is a fail-safe for objects that may not be covered by the type option.\n"
+"\n"
+"The permissions define what the the ACI is allowed to do, and are one or\n"
+"more of:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
+"allows this to be any valid LDAP entry but we encourage the use of\n"
+"taskgroups so that the rights can be easily shared through roles.\n"
+"\n"
+"For a more thorough description of access controls see\n"
+"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control."
+"html\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
+"demonstrate how the various options work but this is done via the "
+"permission\n"
+"command-line now (see last example).\n"
+"\n"
+" Add an ACI so that the group \"secretaries\" can update the address on any "
+"user:\n"
+" ipa group-add --desc=\"Office secretaries\" secretaries\n"
+" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries "
+"--permissions=write --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Show the new ACI:\n"
+" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Add an ACI that allows members of the \"addusers\" permission to add new "
+"users:\n"
+" ipa aci-add --type=user --permission=addusers --permissions=add --"
+"prefix=none \"Add new users\"\n"
+"\n"
+" Add an ACI that allows members of the editors manage members of the admins "
+"group:\n"
+" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --"
+"group=editors --prefix=none \"Editors manage admins\"\n"
+"\n"
+" Add an ACI that allows members of the admin group to manage the street and "
+"zip code of those in the editors group:\n"
+" ipa aci-add --permissions=write --memberof=editors --group=admins --"
+"attrs=street,postalcode --prefix=none \"admins edit the address of editors"
+"\"\n"
+"\n"
+" Add an ACI that allows the admins group manage the street and zipcode of "
+"those who work for the boss:\n"
+" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode "
+"--filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --"
+"prefix=none \"Edit the address of those who work for the boss\"\n"
+"\n"
+" Add an entirely new kind of record to IPA that isn't covered by any of the "
+"--type options, creating a permission:\n"
+" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,"
+"cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
+"\n"
+"\n"
+"The show command shows the raw 389-ds ACI.\n"
+"\n"
+"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
+"must include all existing attributes as well. When doing an aci-mod the\n"
+"targetattr REPLACES the current attributes, it does not add to them.\n"
+"\n"
msgstr ""
-"Uprawnienia pamięci podręcznej danych uwierzytelniających są niepoprawne"
-
-#: ipalib/errors.py:545
-msgid "Bad format in credentials cache"
-msgstr "Błędny format w pamięci podręcznej danych uwierzytelniających"
-
-#: ipalib/errors.py:561
-msgid "Cannot resolve KDC for requested realm"
-msgstr "Nie można rozwiązać KDC dla żądanego obszaru"
-
-#: ipalib/errors.py:580
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr "Niewystarczający dostęp: %(info)s"
-
-#: ipalib/errors.py:624
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr "polecenie %(name)r nie przyjmuje parametrów"
-
-#: ipalib/errors.py:644
-#, python-format
-msgid "command %(name)r takes at most %(count)d argument"
-msgid_plural "command %(name)r takes at most %(count)d arguments"
-msgstr[0] "polecenie %(name)r przyjmuje co najwyżej %(count)d parametr"
-msgstr[1] "polecenie %(name)r przyjmuje co najwyżej %(count)d parametry"
-msgstr[2] "polecenie %(name)r przyjmuje co najwyżej %(count)d parametrów"
-
-#: ipalib/errors.py:674
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr "pokrywanie parametrów i opcji: %(names)r"
-
-#: ipalib/errors.py:690
-#, python-format
-msgid "%(name)r is required"
-msgstr "%(name)r jest wymagane"
-
-#: ipalib/errors.py:706 ipalib/errors.py:722
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr "nieprawidłowe %(name)r: %(error)s"
-
-#: ipalib/errors.py:738
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr "API nie posiada takiej przestrzeni nazw: %(name)r"
-
-#: ipalib/errors.py:747
-msgid "Passwords do not match"
-msgstr "Hasła się nie zgadzają"
-
-#: ipalib/errors.py:755
-msgid "Command not implemented"
-msgstr "Polecenie nie jest zaimplementowane"
-
-#: ipalib/errors.py:783 ipalib/errors.py:1023 ipalib/errors.py:1254
-#, python-format
-msgid "%(reason)s"
-msgstr "%(reason)s"
-
-#: ipalib/errors.py:799
-msgid "This entry already exists"
-msgstr "Ten wpis już istnieje"
-#: ipalib/errors.py:815
-msgid "You must enroll a host in order to create a host service"
-msgstr "Należy zapisać się do komputera, aby utworzyć jego usługę"
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
+msgstr "Lista wartości ACI"
-#: ipalib/errors.py:831
-#, python-format
+#: ipalib/plugins/aci.py:172
msgid ""
-"Service principal is not of the form: service/fully-qualified host name: %"
-"(reason)s"
+"\n"
+" Given a name and a prefix construct an ACI name.\n"
+" "
msgstr ""
-"Naczelnik usługi nie jest w formacie: usługa/w pełni kwalifikowana nazwa "
-"komputera: %(reason)s"
-#: ipalib/errors.py:847
+#: ipalib/plugins/aci.py:181
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr "Obszar naczelnika nie zgadza się z obszarem dla tego serwera IPA"
-
-#: ipalib/errors.py:863
-msgid "This command requires root access"
-msgstr "Te polecenie wymaga dostępu roota"
-
-#: ipalib/errors.py:879
-msgid "This is already a posix group"
-msgstr "To jest już grupa POSIX"
-
-#: ipalib/errors.py:895
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr "Naczelnik nie jest w formacie użytkownik@OBSZAR: %(principal)r"
-
-#: ipalib/errors.py:911
-msgid "This entry is already unlocked"
-msgstr "Ten wpis jest już odblokowany"
-
-#: ipalib/errors.py:927
-msgid "This entry is already locked"
-msgstr "Ten wpis jest już zablokowany"
-
-#: ipalib/errors.py:943
-msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
+"\n"
+" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
+" and the actual ACI name.\n"
+" "
msgstr ""
-"Ten wpis posiada ustawione nsAccountLock, nie może być zablokowany lub "
-"niezablokowany"
-
-#: ipalib/errors.py:959
-msgid "This entry is not a member of the group"
-msgstr "Ten wpis nie jest elementem grupy"
-
-#: ipalib/errors.py:975
-msgid "A group may not be a member of itself"
-msgstr "Grupa nie może być własnym elementem"
-
-#: ipalib/errors.py:991
-msgid "This entry is already a member of the group"
-msgstr "Ten wpis jest już elementem grupy"
-
-#: ipalib/errors.py:1007
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr "Dekodowanie base64 nie powiodło się: %(reason)s"
-
-#: ipalib/errors.py:1039
-msgid "A group may not be added as a member of itself"
-msgstr "Nie można dodać grupy jako elementu jej samej"
-
-#: ipalib/errors.py:1055
-msgid "The default users group cannot be removed"
-msgstr "Nie można usunąć domyślnej grupy użytkowników"
-#: ipalib/errors.py:1071
-msgid "Host does not have corresponding DNS A record"
-msgstr "Komputer nie posiada pasującego wpisu DNS A"
-
-#: ipalib/errors.py:1086
-msgid "Deleting a managed group is not allowed. It must be detached first."
+#: ipalib/plugins/aci.py:193
+msgid ""
+"\n"
+" Pull the group name out of a memberOf filter\n"
+" "
msgstr ""
-"Usuwanie zarządzanej grupy nie jest dozwolone. Musi zostać najpierw "
-"odłączona."
-#: ipalib/errors.py:1109
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr "nie ma takiego polecenia lub tematu pomocy %(topic)r"
-
-#: ipalib/errors.py:1133
-msgid "change collided with another change"
-msgstr "zmiana koliduje z inną zmianą"
-
-#: ipalib/errors.py:1149
-msgid "no modifications to be performed"
-msgstr "żadne modyfikacje nie zostaną wykonane"
-
-#: ipalib/errors.py:1165
-#, python-format
-msgid "%(desc)s:%(info)s"
-msgstr "%(desc)s:%(info)s"
-
-#: ipalib/errors.py:1181
-msgid "limits exceeded for this query"
-msgstr "przekroczono ograniczenia dla tego zapytania"
-
-#: ipalib/errors.py:1196
-#, python-format
-msgid "%(info)s"
-msgstr "%(info)s"
-
-#: ipalib/errors.py:1221
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr "Nie można ukończyć działania na certyfikacie: %(error)s"
-
-#: ipalib/errors.py:1237
-#, python-format
-msgid "Certificate format error: %(error)s"
-msgstr "Błąd formatu certyfikatu: %(error)s"
-
-#: ipalib/frontend.py:380
-msgid "Results are truncated, try a more specific search"
+#: ipalib/plugins/aci.py:204
+msgid ""
+"\n"
+" Given a name and a set of keywords construct an ACI.\n"
+" "
msgstr ""
-"Wyniki zostały obcięte, proszę spróbować bardziej konkretnego wyszukiwania"
-
-#: ipalib/frontend.py:797 ipalib/plugins/misc.py:47
-msgid "retrieve all attributes"
-msgstr "odbiór wszystkich atrybutów"
-
-#: ipalib/frontend.py:803
-msgid "print entries as stored on the server"
-msgstr "wyświetlenie wpisów przechowywanych w serwerze"
-
-#: ipalib/frontend.py:940
-msgid "Forward to server instead of running locally"
-msgstr "Przekazanie do serwera zamiast uruchamiania lokalnie"
-
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr "Słownik reprezentujący wpis LDAP"
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr "Lista wpisów LDAP"
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr "Wszystkie polecenia powinny powiadać przynajmniej wynik"
-
-#: ipalib/parameters.py:295
-msgid "incorrect type"
-msgstr "niepoprawny typ"
-
-#: ipalib/parameters.py:298
-msgid "Only one value is allowed"
-msgstr "Dozwolona jest tylko jedna wartość"
-
-#: ipalib/parameters.py:877
-msgid "must be True or False"
-msgstr "musi być prawdą lub fałszem"
-
-#: ipalib/parameters.py:978
-msgid "must be an integer"
-msgstr "musi być liczba całkowitą"
-
-#: ipalib/parameters.py:1029
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr "musi wynosić co najmniej %(minvalue)d"
-
-#: ipalib/parameters.py:1039
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr "może wynosić co najwyżej %(maxvalue)d"
-
-#: ipalib/parameters.py:1049
-msgid "must be a decimal number"
-msgstr "musi być liczbą dziesiętną"
-
-#: ipalib/parameters.py:1071
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr "musi wynosić co najmniej %(minvalue)f"
-
-#: ipalib/parameters.py:1081
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr "może wynosić co najwyżej %(maxvalue)f"
-
-#: ipalib/parameters.py:1145
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr "musi pasować do wzorca \"%(pattern)s\""
-
-#: ipalib/parameters.py:1163
-msgid "must be binary data"
-msgstr "musi być danymi binarnymi"
-
-#: ipalib/parameters.py:1179
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr "musi wynosić co najmniej %(minlength)d bajtów"
-
-#: ipalib/parameters.py:1189
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr "może wynosić co najwyżej %(maxlength)d bajtów"
-
-#: ipalib/parameters.py:1199
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr "musi wynosić dokładnie %(length)d bajtów"
-#: ipalib/parameters.py:1217
-msgid "must be Unicode text"
-msgstr "musi być tekstem w unikodzie"
-
-#: ipalib/parameters.py:1248
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr "musi wynosić co najmniej %(minlength)d znaków"
-
-#: ipalib/parameters.py:1258
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr "może wynosić co najwyżej %(maxlength)d znaków"
-
-#: ipalib/parameters.py:1268
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr "musi wynosić dokładnie %(length)d znaków"
-
-#: ipalib/parameters.py:1307
-#, python-format
-msgid "must be one of %(values)r"
-msgstr "musi być jednym z %(values)r"
-
-#: ipalib/plugins/aci.py:111
-msgid "A list of ACI values"
-msgstr "Lista wartości ACI"
-
-#: ipalib/plugins/aci.py:142
+#: ipalib/plugins/aci.py:215
msgid "type, filter, subtree and targetgroup are mutually exclusive"
msgstr ""
"wartości \"type\", \"filter\", \"subtree\" i \"targetgroup\" są wzajemnie "
"wyłączne"
-#: ipalib/plugins/aci.py:145
+#: ipalib/plugins/aci.py:218
+#, fuzzy
+msgid "ACI prefix is required"
+msgstr "%(name)r jest wymagane"
+
+#: ipalib/plugins/aci.py:221
msgid ""
"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
"required"
@@ -414,1070 +197,4694 @@ msgstr ""
"co najmniej jedna z wartości: \"type\", \"filter\", \"subtree\", "
"\"targetgroup\", \"attrs\" lub \"memberof\" jest wymagana"
-#: ipalib/plugins/aci.py:151
-msgid "group, taskgroup and self are mutually exclusive"
+#: ipalib/plugins/aci.py:224
+#, fuzzy
+msgid "filter and memberof are mutually exclusive"
+msgstr ""
+"wartości \"type\", \"filter\", \"subtree\" i \"targetgroup\" są wzajemnie "
+"wyłączne"
+
+#: ipalib/plugins/aci.py:230
+#, fuzzy
+msgid "group, permission and self are mutually exclusive"
msgstr "wartości \"group\", \"taskgroup\" i \"self\" są wzajemnie wyłączne"
-#: ipalib/plugins/aci.py:153
-msgid "One of group, taskgroup or self is required"
+#: ipalib/plugins/aci.py:232
+#, fuzzy
+msgid "One of group, permission or self is required"
msgstr "Wymagana jest wartość \"group\", \"taskgroup\" lub \"self\""
-#: ipalib/plugins/aci.py:172
-#, python-format
+#: ipalib/plugins/aci.py:251
msgid "Group '%s' does not exist"
msgstr "Grupa \"%s\" nie istnieje"
-#: ipalib/plugins/aci.py:269
-#, python-format
+#: ipalib/plugins/aci.py:273
+msgid "empty filter"
+msgstr ""
+
+#: ipalib/plugins/aci.py:294
+#, fuzzy
+msgid "Syntax Error: %(error)s"
+msgstr "Błąd formatu certyfikatu: %(error)s"
+
+#: ipalib/plugins/aci.py:299
+msgid ""
+"Convert an ACI into its equivalent keywords.\n"
+"\n"
+" This is used for the modify operation so we can merge the\n"
+" incoming kw and existing ACI and pass the result to\n"
+" _make_aci().\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:379
msgid "ACI with name \"%s\" not found"
msgstr "Nie odnaleziono ACI o nazwie \"%s\""
-#: ipalib/plugins/aci.py:286
+#: ipalib/plugins/aci.py:400
+msgid "ACI prefix"
+msgstr ""
+
+#: ipalib/plugins/aci.py:401
+msgid ""
+"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
+"none)"
+msgstr ""
+
+#: ipalib/plugins/aci.py:407
+msgid ""
+"\n"
+" ACI object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr "ACI"
-#: ipalib/plugins/aci.py:291
+#: ipalib/plugins/aci.py:417
msgid "ACI name"
msgstr "Nazwa ACI"
-#: ipalib/plugins/aci.py:296
-msgid "Taskgroup"
-msgstr "Grupa zadaniowa"
+#: ipalib/plugins/aci.py:422
+#, fuzzy
+msgid "Permission"
+msgstr "Uprawnienia"
-#: ipalib/plugins/aci.py:297
-msgid "Taskgroup ACI grants access to"
-msgstr "Grupa zadaniowa, do której ACI zapewnia dostęp"
+#: ipalib/plugins/aci.py:423
+#, fuzzy
+msgid "Permission ACI grants access to"
+msgstr "Grupa użytkowników, do której ACI zapewnia dostęp"
-#: ipalib/plugins/aci.py:301
+#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
msgid "User group"
msgstr "Grupa użytkowników"
-#: ipalib/plugins/aci.py:302
+#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
msgid "User group ACI grants access to"
msgstr "Grupa użytkowników, do której ACI zapewnia dostęp"
-#: ipalib/plugins/aci.py:306
+#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
+#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
+#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
msgid "Permissions"
msgstr "Uprawnienia"
-#: ipalib/plugins/aci.py:307
+#: ipalib/plugins/aci.py:433
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
"lista uprawnień oddzielonych przecinkami do udzielenia (odczyt, zapis, "
"dodanie, usunięcie, wszystkie)"
-#: ipalib/plugins/aci.py:313
+#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
+#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
msgid "Attributes"
msgstr "Atrybuty"
-#: ipalib/plugins/aci.py:314
+#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
+#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
msgid "Comma-separated list of attributes"
msgstr "Lista atrybutów oddzielonych przecinkami"
-#: ipalib/plugins/aci.py:318
+#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
+#: ipalib/plugins/permission.py:131
msgid "Type"
msgstr "Typ"
-#: ipalib/plugins/aci.py:319
-msgid "type of IPA object (user, group, host)"
+#: ipalib/plugins/aci.py:445
+#, fuzzy
+msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr "typ obiektu IPA (użytkownik, grupa, komputer)"
-#: ipalib/plugins/aci.py:324
+#: ipalib/plugins/aci.py:450
msgid "Member of"
msgstr "Element"
-#: ipalib/plugins/aci.py:325
+#: ipalib/plugins/aci.py:451
msgid "Member of a group"
msgstr "Element grupy"
-#: ipalib/plugins/aci.py:329
+#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
+#: ipalib/plugins/permission.py:144
msgid "Filter"
msgstr "Filtr"
-#: ipalib/plugins/aci.py:330
+#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr "Dozwolony filtr LDAP (np. ou=Inżynieria)"
-#: ipalib/plugins/aci.py:334
+#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
msgid "Subtree"
msgstr "Poddrzewo"
-#: ipalib/plugins/aci.py:335
+#: ipalib/plugins/aci.py:461
msgid "Subtree to apply ACI to"
msgstr "Poddrzewo, do którego zastosować ACI"
-#: ipalib/plugins/aci.py:339
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
msgid "Target group"
msgstr "Grupa docelowa"
-#: ipalib/plugins/aci.py:340
+#: ipalib/plugins/aci.py:466
msgid "Group to apply ACI to"
msgstr "Grupa, do której zastosować ACI"
-#: ipalib/plugins/aci.py:344
+#: ipalib/plugins/aci.py:470
msgid "Target your own entry (self)"
msgstr "Cel własnego wpisu (\"self\")"
-#: ipalib/plugins/aci.py:345
+#: ipalib/plugins/aci.py:471
msgid "Apply ACI to your own entry (self)"
msgstr "Zastosowanie ACI do własnego wpisu (\"self\")"
-#: ipalib/plugins/aci.py:357
-#, python-format
+#: ipalib/plugins/aci.py:478
+msgid ""
+"\n"
+" Create new ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:482
msgid "Created ACI \"%(value)s\""
msgstr "Utworzono ACI \"%(value)s\""
-#: ipalib/plugins/aci.py:407
-#, python-format
+#: ipalib/plugins/aci.py:487
+msgid "Test the ACI syntax but don't write anything"
+msgstr ""
+
+#: ipalib/plugins/aci.py:493
+msgid ""
+"\n"
+" Execute the aci-create operation.\n"
+"\n"
+" Returns the entry as it will be created in LDAP.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: Keyword arguments for the other LDAP attributes.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:533
+msgid ""
+"\n"
+" Delete ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:538
msgid "Deleted ACI \"%(value)s\""
msgstr "Usunięto ACI \"%(value)s\""
-#: ipalib/plugins/aci.py:447
-#, python-format
+#: ipalib/plugins/aci.py:543
+msgid ""
+"\n"
+" Execute the aci-delete operation.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: unused\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:576
+msgid ""
+"\n"
+" Modify ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
+#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
+#: ipalib/plugins/selfservice.py:212
+#, fuzzy
+msgid "ACI"
+msgstr "ACI"
+
+#: ipalib/plugins/aci.py:588
msgid "Modified ACI \"%(value)s\""
msgstr "Zmodyfikowano ACI \"%(value)s\""
-#: ipalib/plugins/aci.py:519
-#, python-format
+#: ipalib/plugins/aci.py:633
+msgid ""
+"\n"
+" Search for ACIs.\n"
+"\n"
+" Returns a list of ACIs\n"
+"\n"
+" EXAMPLES:\n"
+"\n"
+" To find all ACIs that apply directly to members of the group ipausers:\n"
+" ipa aci-find --memberof=ipausers\n"
+"\n"
+" To find all ACIs that grant add access:\n"
+" ipa aci-find --permissions=add\n"
+"\n"
+" Note that the find command only looks for the given text in the set of\n"
+" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
+" For example, searching on memberof=ipausers will find all ACIs that\n"
+" have ipausers as a memberof. There may be other ACIs that apply to\n"
+" members of that group indirectly.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:653
msgid "%(count)d ACI matched"
msgid_plural "%(count)d ACIs matched"
msgstr[0] "Pasuje %(count)d ACI"
msgstr[1] "Pasują %(count)d ACI"
msgstr[2] "Pasuje %(count)d ACI"
-#: ipalib/plugins/automount.py:103
-msgid "Automount"
-msgstr "Automatyczne montowanie"
+#: ipalib/plugins/aci.py:823
+msgid ""
+"\n"
+" Display a single ACI given an ACI name.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:837
+msgid ""
+"\n"
+" Execute the aci-show operation.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param uid: The login name of the user to retrieve.\n"
+" :param kw: unused\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:865
+msgid ""
+"\n"
+" Rename an ACI.\n"
+" "
+msgstr ""
-#: ipalib/plugins/automount.py:109 ipalib/plugins/host.py:134
+#: ipalib/plugins/aci.py:878
+#, fuzzy
+msgid "New ACI name"
+msgstr "Nazwa ACI"
+
+#: ipalib/plugins/aci.py:882
+#, fuzzy
+msgid "Renamed ACI to \"%(value)s\""
+msgstr "Utworzono ACI \"%(value)s\""
+
+#: ipalib/plugins/automount.py:20
+msgid ""
+"\n"
+"Automount\n"
+"\n"
+"Stores automount(8) configuration for autofs(8) in IPA.\n"
+"\n"
+"The base of an automount configuration is the configuration file auto."
+"master.\n"
+"This is also the base location in IPA. Multiple auto.master configurations\n"
+"can be stored in separate locations. A location is implementation-specific\n"
+"with the default being a location named 'default'. For example, you can "
+"have\n"
+"locations by geographic region, by floor, by type, etc.\n"
+"\n"
+"Automount has three basic object types: locations, maps and keys.\n"
+"\n"
+"A location defines a set of maps anchored in auto.master. This allows you\n"
+"to store multiple automount configurations. A location in itself isn't\n"
+"very interesting, it is just a point to start a new automount map.\n"
+"\n"
+"A map is roughly equivalent to a discrete automount file and provides\n"
+"storage for keys.\n"
+"\n"
+"A key is a mount point associated with a map.\n"
+"\n"
+"When a new location is created, two maps are automatically created for\n"
+"it: auto.master and auto.direct. auto.master is the root map for all\n"
+"automount maps for the location. auto.direct is the default map for\n"
+"direct mounts and is mounted on /-.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"Locations:\n"
+"\n"
+" Create a named location, \"Baltimore\":\n"
+" ipa automountlocation-add baltimore\n"
+"\n"
+" Display the new location:\n"
+" ipa automountlocation-show baltimore\n"
+"\n"
+" Find available locations:\n"
+" ipa automountlocation-find\n"
+"\n"
+" Remove a named automount location:\n"
+" ipa automountlocation-del baltimore\n"
+"\n"
+" Show what the automount maps would look like if they were in the "
+"filesystem:\n"
+" ipa automountlocation-tofiles baltimore\n"
+"\n"
+" Import an existing configuration into a location:\n"
+" ipa automountlocation-import baltimore /etc/auto.master\n"
+"\n"
+" The import will fail if any duplicate entries are found. For\n"
+" continuous operation where errors are ignored, use the --continue\n"
+" option.\n"
+"\n"
+"Maps:\n"
+"\n"
+" Create a new map, \"auto.share\":\n"
+" ipa automountmap-add baltimore auto.share\n"
+"\n"
+" Display the new map:\n"
+" ipa automountmap-show baltimore auto.share\n"
+"\n"
+" Find maps in the location baltimore:\n"
+" ipa automountmap-find baltimore\n"
+"\n"
+" Remove the auto.share map:\n"
+" ipa automountmap-del baltimore auto.share\n"
+"\n"
+"Keys:\n"
+"\n"
+" Create a new key for the auto.share map in location baltimore. This ties\n"
+" the map we previously created to auto.master:\n"
+" ipa automountkey-add baltimore auto.master --key=/share --info=auto."
+"share\n"
+"\n"
+" Create a new key for our auto.share map, an NFS mount for man pages:\n"
+" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,"
+"rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n"
+"\n"
+" Find all keys for the auto.share map:\n"
+" ipa automountkey-find baltimore auto.share\n"
+"\n"
+" Find all direct automount keys:\n"
+" ipa automountkey-find baltimore --key=/-\n"
+"\n"
+" Remove the man key from the auto.share map:\n"
+" ipa automountkey-del baltimore auto.share --key=man\n"
+msgstr ""
+
+#: ipalib/plugins/automount.py:182
+msgid ""
+"\n"
+" Location container for automount maps.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:190
+#, fuzzy
+msgid "Automount Locations"
+msgstr "Automatyczne montowanie nazwy położenia"
+
+#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
msgid "Location"
msgstr "Położenie"
-#: ipalib/plugins/automount.py:110
-msgid "Automount location name"
+#: ipalib/plugins/automount.py:197
+#, fuzzy
+msgid "Automount location name."
msgstr "Automatyczne montowanie nazwy położenia"
-#: ipalib/plugins/automount.py:226
+#: ipalib/plugins/automount.py:206
+msgid ""
+"\n"
+" Create a new automount location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:221
+msgid ""
+"\n"
+" Delete an automount location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:229
+msgid ""
+"\n"
+" Display an automount location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:237
+msgid ""
+"\n"
+" Search for an automount location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:245
+msgid ""
+"\n"
+" Generate automount files for a specific location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:308
+msgid ""
+"\n"
+" Import automount files for a specific location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:314
+msgid "Master file"
+msgstr ""
+
+#: ipalib/plugins/automount.py:315
+#, fuzzy
+msgid "Automount master file."
+msgstr "Automatyczne montowanie nazwy mapy"
+
+#: ipalib/plugins/automount.py:322
+#, fuzzy
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues."
+msgstr ""
+"Tryb działania ciągłego. Błędy są zgłaszane, ale proces jest kontynuowany"
+
+#: ipalib/plugins/automount.py:334
+#, fuzzy
+msgid "File %(file)s not found"
+msgstr "%(pkey)s: nie odnaleziono %(oname)s"
+
+#: ipalib/plugins/automount.py:341
+msgid ""
+"\n"
+" The basic idea is to read the master file and create all the maps\n"
+" we need, then read each map file and add all the keys for the map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:492
+#, fuzzy
+msgid ""
+"\n"
+" Automount map object.\n"
+" "
+msgstr "Automatyczne montowanie nazwy mapy"
+
+#: ipalib/plugins/automount.py:505
msgid "Map"
msgstr "Mapa"
-#: ipalib/plugins/automount.py:227
-msgid "Automount map name"
+#: ipalib/plugins/automount.py:506
+#, fuzzy
+msgid "Automount map name."
msgstr "Automatyczne montowanie nazwy mapy"
-#: ipalib/plugins/automount.py:232 ipalib/plugins/group.py:108
-#: ipalib/plugins/hbac.py:151 ipalib/plugins/hbacsvc.py:72
-#: ipalib/plugins/hbacsvcgroup.py:77 ipalib/plugins/host.py:124
-#: ipalib/plugins/hostgroup.py:81 ipalib/plugins/netgroup.py:96
-#: ipalib/plugins/rolegroup.py:90 ipalib/plugins/sudocmd.py:71
-#: ipalib/plugins/sudocmdgroup.py:77 ipalib/plugins/sudorule.py:58
-#: ipalib/plugins/taskgroup.py:62
+#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
+#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
+#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
+#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
+#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
+#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
+#: ipalib/plugins/sudorule.py:78
msgid "Description"
msgstr "Opis"
-#: ipalib/plugins/automount.py:236
+#: ipalib/plugins/automount.py:515
msgid "Automount Maps"
msgstr "Automatyczne montowanie map"
-#: ipalib/plugins/automount.py:308
+#: ipalib/plugins/automount.py:521
+msgid ""
+"\n"
+" Create a new automount map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:529
+msgid ""
+"\n"
+" Delete an automount map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:548
+msgid ""
+"\n"
+" Modify an automount map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:556
+msgid ""
+"\n"
+" Search for an automount map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:564
+msgid ""
+"\n"
+" Display an automount map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:572
+#, fuzzy
+msgid ""
+"\n"
+" Automount key object.\n"
+" "
+msgstr "Automatyczne montowanie nazw kluczy"
+
+#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
+#: ipalib/plugins/automount.py:850
msgid "Key"
msgstr "Klucz"
-#: ipalib/plugins/automount.py:309
-msgid "Automount key name"
+#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
+#: ipalib/plugins/automount.py:851
+#, fuzzy
+msgid "Automount key name."
msgstr "Automatyczne montowanie nazw kluczy"
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
+#: ipalib/plugins/automount.py:855
msgid "Mount information"
msgstr "Informacje o montowaniu"
-#: ipalib/plugins/automount.py:318
+#: ipalib/plugins/automount.py:597
msgid "description"
msgstr "opis"
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:606
msgid "Automount Keys"
msgstr "Automatyczne montowanie kluczy"
-#: ipalib/plugins/automount.py:342
+#: ipalib/plugins/automount.py:607
+msgid ""
+"The key,info pair must be unique. A key named %(key)s with info %(info)s "
+"already exists"
+msgstr ""
+
+#: ipalib/plugins/automount.py:608
+#, fuzzy
+msgid "key named %(key)s already exists"
+msgstr "Ten wpis już istnieje"
+
+#: ipalib/plugins/automount.py:609
+msgid "The automount key %(key)s with info %(info)s does not exist"
+msgstr ""
+
+#: ipalib/plugins/automount.py:659
+msgid ""
+"More than one entry with key %(key)s found, use --info to select specific "
+"entry."
+msgstr ""
+
+#: ipalib/plugins/automount.py:717
+msgid ""
+"\n"
+" Create a new automount key.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:742
+msgid ""
+"\n"
+" Create a new indirect mount point.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:748
msgid "Mount point"
msgstr "Punkt montowania"
-#: ipalib/plugins/automount.py:346
+#: ipalib/plugins/automount.py:752
msgid "Parent map"
msgstr "Mapa nadrzędna"
-#: ipalib/plugins/automount.py:347
-msgid "Name of parent automount map (default: auto.master)"
+#: ipalib/plugins/automount.py:753
+#, fuzzy
+msgid "Name of parent automount map (default: auto.master)."
msgstr ""
"Nazwa nadrzędnej mapy automatycznego montowania (domyślnie: auto.master)"
-#: ipalib/plugins/baseldap.py:79
-#, python-format
+#: ipalib/plugins/automount.py:772
+msgid ""
+"\n"
+" Delete an automount key.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:803
+msgid ""
+"\n"
+" Modify an automount key.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:809
+#, fuzzy
+msgid "New mount information"
+msgstr "Informacje o montowaniu"
+
+#: ipalib/plugins/automount.py:836
+msgid ""
+"\n"
+" Search for an automount key.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:844
+msgid ""
+"\n"
+" Display an automount key.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:19
+msgid ""
+"\n"
+"Base classes for LDAP plugins.\n"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:39
+msgid "Failed members"
+msgstr "Elementy, które się nie powiodły"
+
+#: ipalib/plugins/baseldap.py:42
+msgid "Member users"
+msgstr "Elementy użytkowników"
+
+#: ipalib/plugins/baseldap.py:45
+msgid "Member groups"
+msgstr "Elementy grupy"
+
+#: ipalib/plugins/baseldap.py:48
+#, fuzzy
+msgid "Member of groups"
+msgstr "Element grupy"
+
+#: ipalib/plugins/baseldap.py:51
+msgid "Member hosts"
+msgstr "Element komputerów"
+
+#: ipalib/plugins/baseldap.py:54
+msgid "Member host-groups"
+msgstr "Element grupy komputerów"
+
+#: ipalib/plugins/baseldap.py:57
+msgid "Member of host-groups"
+msgstr "Element grupy komputerów"
+
+#: ipalib/plugins/baseldap.py:66
+#, fuzzy
+msgid "Roles"
+msgstr "Grupy rol"
+
+#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
+#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
+#: ipalib/plugins/sudorule.py:143
+msgid "Sudo Command Groups"
+msgstr "Grupy polecenia sudo"
+
+#: ipalib/plugins/baseldap.py:75
+msgid "Granting privilege to roles"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:78
+#, fuzzy
+msgid "Member netgroups"
+msgstr "Elementy grupy"
+
+#: ipalib/plugins/baseldap.py:81
+#, fuzzy
+msgid "Member of netgroups"
+msgstr "Element grupy sieci"
+
+#: ipalib/plugins/baseldap.py:84
+msgid "Member services"
+msgstr "Usługi elementów"
+
+#: ipalib/plugins/baseldap.py:87
+msgid "Member service groups"
+msgstr "Grupy usługi elementów"
+
+#: ipalib/plugins/baseldap.py:93
+#, fuzzy
+msgid "Member HBAC service groups"
+msgstr "Grupy usługi elementów"
+
+#: ipalib/plugins/baseldap.py:102
+#, fuzzy
+msgid "Indirect Member users"
+msgstr "Elementy użytkowników"
+
+#: ipalib/plugins/baseldap.py:105
+#, fuzzy
+msgid "Indirect Member groups"
+msgstr "Elementy grupy"
+
+#: ipalib/plugins/baseldap.py:108
+#, fuzzy
+msgid "Indirect Member hosts"
+msgstr "Element komputerów"
+
+#: ipalib/plugins/baseldap.py:111
+#, fuzzy
+msgid "Indirect Member host-groups"
+msgstr "Element grupy komputerów"
+
+#: ipalib/plugins/baseldap.py:114
+#, fuzzy
+msgid "Indirect Member of roles"
+msgstr "Element grupy roli"
+
+#: ipalib/plugins/baseldap.py:117
+msgid "Indirect Member permissions"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:120
+#, fuzzy
+msgid "Indirect Member HBAC service"
+msgstr "Usługi elementów"
+
+#: ipalib/plugins/baseldap.py:123
+#, fuzzy
+msgid "Indirect Member HBAC service group"
+msgstr "Grupy usługi elementów"
+
+#: ipalib/plugins/baseldap.py:126
+#, fuzzy
+msgid "Indirect Member netgroups"
+msgstr "Element grupy sieci"
+
+#: ipalib/plugins/baseldap.py:141
+msgid "External host"
+msgstr "Zewnętrzny komputer"
+
+#: ipalib/plugins/baseldap.py:144
+#, fuzzy
+msgid "Failed hosts/hostgroups"
+msgstr "Nazwa grupy komputerów"
+
+#: ipalib/plugins/baseldap.py:147
+#, fuzzy
+msgid "Failed users/groups"
+msgstr "Domyślna grupa użytkowników"
+
+#: ipalib/plugins/baseldap.py:150
+#, fuzzy
+msgid "Failed managedby"
+msgstr "Elementy, które się nie powiodły"
+
+#: ipalib/plugins/baseldap.py:153
+#, fuzzy
+msgid "Failed to remove"
+msgstr "Utworzenie klucza nie powiodło się.\n"
+
+#: ipalib/plugins/baseldap.py:171
+msgid ""
+"\n"
+" Given a list of values in the form name=value, return a list of name.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:197
+msgid ""
+"\n"
+" When adding or removing reverse members we are faking an update to\n"
+" object A by updating the member attribute in object B. The memberof\n"
+" plugin makes this work by adding or removing the memberof attribute\n"
+" to/from object A, it just takes a little bit of time.\n"
+"\n"
+" This will loop for 6+ seconds, retrieving object A so we can see\n"
+" if all the memberof attributes have been updated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:241
+#, fuzzy
+msgid ""
+"\n"
+" Object representing a LDAP entry.\n"
+" "
+msgstr "Słownik reprezentujący wpis LDAP"
+
+#: ipalib/plugins/baseldap.py:281
+msgid "Entry"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:283
msgid "container entry (%(container)s) not found"
msgstr "nie odnaleziono wpisu kontenera (%(container)s)"
-#: ipalib/plugins/baseldap.py:80
-#, python-format
+#: ipalib/plugins/baseldap.py:284
msgid "%(parent)s: %(oname)s not found"
msgstr "%(parent)s: nie odnaleziono %(oname)s"
-#: ipalib/plugins/baseldap.py:81
-#, python-format
+#: ipalib/plugins/baseldap.py:285
msgid "%(pkey)s: %(oname)s not found"
msgstr "%(pkey)s: nie odnaleziono %(oname)s"
-#: ipalib/plugins/baseldap.py:150
-msgid "Add an attribute/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:286
+msgid "%(oname)s with name \"%(pkey)s\" already exists"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:415
+#, fuzzy
+msgid ""
+"Add an attribute/value pair. Format is attr=value. The attribute must be "
+"part of the schema."
msgstr "Dodaj parę atrybut/wartość. Format to atrybut=wartość"
-#: ipalib/plugins/baseldap.py:155
-msgid "Set an attribute to an name/value pair. Format is attr=value"
-msgstr "Ustaw atrybut dla pary nazwa/wartość. Format to atrybut=wartość"
+#: ipalib/plugins/baseldap.py:420
+msgid ""
+"Set an attribute to a name/value pair. Format is attr=value.\n"
+"For multi-valued attributes, the command replaces the values already present."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:444
+msgid ""
+"\n"
+" If the set of objectclasses is limited enforce that only those\n"
+" are updated in entry_attrs (plus dn)\n"
+"\n"
+" allow_only tells us what mode to check in:\n"
+"\n"
+" If True then we enforce that the attributes must be in the list of\n"
+" allowed.\n"
+"\n"
+" If False then those attributes are not allowed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:474
+msgid ""
+"\n"
+" Callback registration interface\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:561
+msgid ""
+"\n"
+" Create a new entry in LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:703
+msgid ""
+"\n"
+" Base class for commands that need to retrieve an existing entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:727
+msgid ""
+"\n"
+" Base class for commands that need to retrieve one or more existing "
+"entries.\n"
+" "
+msgstr ""
-#: ipalib/plugins/baseldap.py:359
+#: ipalib/plugins/baseldap.py:733
msgid "Continuous mode: Don't stop on errors."
msgstr "Tryb ciągły: bez zatrzymywania po błędach."
-#: ipalib/plugins/baseldap.py:517
+#: ipalib/plugins/baseldap.py:750
+msgid ""
+"\n"
+" Retrieve an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
+#: ipalib/plugins/internal.py:232
+msgid "Rights"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+msgid ""
+"Display the access rights of this entry (requires --all). See ipa man page "
+"for details."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:821
+msgid ""
+"\n"
+" Update an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:837
+#, fuzzy
+msgid "Rename"
+msgstr "Nazwa reguły"
+
+#: ipalib/plugins/baseldap.py:838
+msgid "Rename the %(ldap_obj_name)s object"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:957
msgid "the entry was deleted while being modified"
msgstr "wpis został usunięty podczas modyfikowania"
-#: ipalib/plugins/baseldap.py:674
+#: ipalib/plugins/baseldap.py:988
+msgid ""
+"\n"
+" Delete an LDAP entry and all of its direct subentries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1078
+msgid ""
+"\n"
+" Base class for member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1120
+msgid ""
+"\n"
+" Add other LDAP entries to members.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
+#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
+#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
msgid "Members that could not be added"
msgstr "Elementy, które nie mogły zostać dodane"
-#: ipalib/plugins/baseldap.py:678
+#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596
msgid "Number of members added"
msgstr "Liczba dodanych elementów"
-#: ipalib/plugins/baseldap.py:684 ipalib/plugins/baseldap.py:789
-msgid "Failed members"
-msgstr "Elementy, które się nie powiodły"
+#: ipalib/plugins/baseldap.py:1226
+msgid ""
+"\n"
+" Remove LDAP entries from members.\n"
+" "
+msgstr ""
-#: ipalib/plugins/baseldap.py:779
+#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
msgid "Members that could not be removed"
msgstr "Liczba elementów, które nie mogły zostać usunięte"
-#: ipalib/plugins/baseldap.py:783
+#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
msgid "Number of members removed"
msgstr "Liczba usuniętych elementów"
-#: ipalib/plugins/baseldap.py:880
+#: ipalib/plugins/baseldap.py:1335
+msgid ""
+"\n"
+" Retrieve all LDAP entries matching the given criteria.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1344
msgid "Time Limit"
msgstr "Ograniczenie czasu"
-#: ipalib/plugins/baseldap.py:881
+#: ipalib/plugins/baseldap.py:1345
msgid "Time limit of search in seconds"
msgstr "Ograniczenie czasu wyszukiwania w sekundach"
-#: ipalib/plugins/baseldap.py:887
+#: ipalib/plugins/baseldap.py:1351
msgid "Size Limit"
msgstr "Ograniczenie rozmiaru"
-#: ipalib/plugins/baseldap.py:888
+#: ipalib/plugins/baseldap.py:1352
msgid "Maximum number of entries returned"
msgstr "Maksymalna liczba zwróconych wpisów"
-#: ipalib/plugins/cert.py:93
+#: ipalib/plugins/baseldap.py:1552
+msgid ""
+"\n"
+" Base class for reverse member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1574
+msgid ""
+"\n"
+" Add other LDAP entries to members in reverse.\n"
+"\n"
+" The call looks like \"add A to B\" but in fact executes\n"
+" add B to A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1654
+msgid "added"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1687
+msgid ""
+"\n"
+" Remove other LDAP entries from members in reverse.\n"
+"\n"
+" The call looks like \"remove A from B\" but in fact executes\n"
+" remove B from A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1767
+msgid "removed"
+msgstr ""
+
+#: ipalib/plugins/batch.py:21
+msgid ""
+"\n"
+"Plugin to make multiple ipa calls via one remote procedure call\n"
+"\n"
+"To run this code in the lite-server\n"
+"\n"
+"curl -H \"Content-Type:application/json\" -H \"Accept:application/"
+"json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /"
+"etc/ipa/ca.crt -d @batch_request.json -X POST http://"
+"localhost:8888/ipa/json\n"
+"\n"
+"where the contents of the file batch_request.json follow the below example\n"
+"\n"
+"{\"method\":\"batch\",\"params\":[[\n"
+" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
+" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all"
+"\":\"true\"}]},\n"
+" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
+" ],{}],\"id\":1}\n"
+"\n"
+"The format of the response is nested the same way. At the top you will see\n"
+" \"error\": null,\n"
+" \"id\": 1,\n"
+" \"result\": {\n"
+" \"count\": 3,\n"
+" \"results\": [\n"
+"\n"
+"\n"
+"And then a nested response for each IPA command method sent in the request\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/batch.py:61
+msgid "Nested Methods to execute"
+msgstr ""
+
+#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/plugins/cert.py:22
+msgid ""
+"\n"
+"IPA certificate operations\n"
+"\n"
+"Implements a set of commands for managing server SSL certificates.\n"
+"\n"
+"Certificate requests exist in the form of a Certificate Signing Request "
+"(CSR)\n"
+"in PEM format.\n"
+"\n"
+"If using the selfsign back end then the subject in the CSR needs to match\n"
+"the subject configured in the server. The dogtag CA uses just the CN\n"
+"value of the CSR and forces the rest of the subject.\n"
+"\n"
+"A certificate is stored with a service principal and a service principal\n"
+"needs a host.\n"
+"\n"
+"In order to request a certificate:\n"
+"\n"
+"* The host must exist\n"
+"* The service must exist (or you use the --add option to automatically add "
+"it)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Request a new certificate and add the principal:\n"
+" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n"
+"\n"
+" Retrieve an existing certificate:\n"
+" ipa cert-show 1032\n"
+"\n"
+" Revoke a certificate (see RFC 5280 for reason details):\n"
+" ipa cert-revoke --revocation-reason=6 1032\n"
+"\n"
+" Remove a certificate from revocation hold status:\n"
+" ipa cert-remove-hold 1032\n"
+"\n"
+" Check the status of a signing request:\n"
+" ipa cert-status 10\n"
+"\n"
+"IPA currently immediately issues (or declines) all certificate requests so\n"
+"the status of a request is not normally useful. This is for future use\n"
+"or the case where a CA does not immediately issue a certificate.\n"
+"\n"
+"The following revocation reasons are supported:\n"
+"\n"
+" * 0 - unspecified\n"
+" * 1 - keyCompromise\n"
+" * 2 - cACompromise\n"
+" * 3 - affiliationChanged\n"
+" * 4 - superseded\n"
+" * 5 - cessationOfOperation\n"
+" * 6 - certificateHold\n"
+" * 8 - removeFromCRL\n"
+" * 9 - privilegeWithdrawn\n"
+" * 10 - aACompromise\n"
+"\n"
+"Note that reason code 7 is not used. See RFC 5280 for more details:\n"
+"\n"
+"http://www.ietf.org/rfc/rfc5280.txt\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/cert.py:104
+msgid ""
+"\n"
+" Return the value of CN in the subject of the request or None\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr "Dekodowanie żądania podpisywania certyfikatu nie powiodło się:"
-#: ipalib/plugins/cert.py:106 ipalib/plugins/cert.py:118
+#: ipalib/plugins/cert.py:115
+msgid ""
+"\n"
+" Return the first value of the subject alt name, if any\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
msgid "Failure decoding Certificate Signing Request"
msgstr "Dekodowanie żądania podpisywania certyfikatu nie powiodło się"
-#: ipalib/plugins/cert.py:120
-#, python-format
+#: ipalib/plugins/cert.py:128
+msgid ""
+"\n"
+" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
+" parser.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:139
msgid "Failure decoding Certificate Signing Request: %s"
msgstr "Dekodowanie żądania podpisywania certyfikatu nie powiodło się: %s"
-#: ipalib/plugins/cert.py:171 ipalib/plugins/service.py:197
+#: ipalib/plugins/cert.py:142
+msgid ""
+"\n"
+" Strip any leading and trailing cruft around the BEGIN/END block\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:162
+msgid ""
+"\n"
+" Convert a SN given in decimal or hexadecimal.\n"
+" Returns the number or None if conversion fails.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:188
+msgid ""
+"\n"
+" Given a principal with or without a realm return the\n"
+" host portion.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:202
+msgid ""
+"\n"
+" Submit a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
msgid "Principal"
msgstr "Naczelnik"
-#: ipalib/plugins/cert.py:172
+#: ipalib/plugins/cert.py:217
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr "Naczelnik usługi dla tego certyfikatu (np. HTTP/test.przykład.pl)"
-#: ipalib/plugins/cert.py:179
+#: ipalib/plugins/cert.py:224
msgid "automatically add the principal if it doesn't exist"
msgstr "automatycznie dodaj naczelnika, jeśli nie istnieje"
-#: ipalib/plugins/cert.py:187 ipalib/plugins/cert.py:392
-#: ipalib/plugins/host.py:154 ipalib/plugins/service.py:204
+#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
+#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
+#: ipalib/plugins/service.py:232
msgid "Certificate"
msgstr "Certyfikat"
-#: ipalib/plugins/cert.py:191 ipalib/plugins/cert.py:395
+#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
msgid "Subject"
msgstr "Temat"
-#: ipalib/plugins/cert.py:195 ipalib/plugins/cert.py:398
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
msgid "Issuer"
msgstr "Wydawca"
-#: ipalib/plugins/cert.py:199 ipalib/plugins/cert.py:401
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
msgid "Not Before"
msgstr "Nie wcześniej"
-#: ipalib/plugins/cert.py:203 ipalib/plugins/cert.py:404
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
msgid "Not After"
msgstr "Nie po"
-#: ipalib/plugins/cert.py:207 ipalib/plugins/cert.py:407
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
msgid "Fingerprint (MD5)"
msgstr "Odcisk (MD5)"
-#: ipalib/plugins/cert.py:211 ipalib/plugins/cert.py:410
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
msgid "Fingerprint (SHA1)"
msgstr "Odcisk (SHA1)"
-#: ipalib/plugins/cert.py:215 ipalib/plugins/cert.py:379
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
msgid "Serial number"
msgstr "Numer seryjny"
-#: ipalib/plugins/cert.py:223 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr "Nazwa zmiennej mapowania słownika do ustawienia jako wartość"
-#: ipalib/plugins/cert.py:357
+#: ipalib/plugins/cert.py:396
+msgid ""
+"\n"
+" Check the status of a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:402
msgid "Request id"
msgstr "Identyfikator żądania"
-#: ipalib/plugins/cert.py:363
+#: ipalib/plugins/cert.py:408
msgid "Request status"
msgstr "Stan żądania"
-#: ipalib/plugins/cert.py:380
+#: ipalib/plugins/cert.py:426
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
"Numer seryjny w formie dziesiętnej lub szesnastkowej, jeśli poprzedzone 0x"
-#: ipalib/plugins/cert.py:413
+#: ipalib/plugins/cert.py:431
+msgid ""
+"\n"
+" Retrieve an existing certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
+#: ipalib/plugins/service.py:114
msgid "Revocation reason"
msgstr "Przyczyna unieważnienia"
-#: ipalib/plugins/cert.py:458
+#: ipalib/plugins/cert.py:466
+#, fuzzy
+msgid "Output filename"
+msgstr "Automatyczne montowanie nazw kluczy"
+
+#: ipalib/plugins/cert.py:467
+#, fuzzy
+msgid "File to store the certificate in."
+msgstr "Plik, w którym przechowywać informację o tablicy kluczy"
+
+#: ipalib/plugins/cert.py:518
+msgid ""
+"\n"
+" Revoke a certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:526
msgid "Revoked"
msgstr "Unieważniono"
-#: ipalib/plugins/cert.py:466
+#: ipalib/plugins/cert.py:534
msgid "Reason"
msgstr "Przyczyna"
-#: ipalib/plugins/cert.py:467
+#: ipalib/plugins/cert.py:535
msgid "Reason for revoking the certificate (0-10)"
msgstr "Przyczyna unieważnienia certyfikatu (0-10)"
-#: ipalib/plugins/cert.py:502
+#: ipalib/plugins/cert.py:562
+msgid ""
+"\n"
+" Take a revoked certificate off hold.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:570
msgid "Unrevoked"
msgstr "Cofnięto unieważnienie"
-#: ipalib/plugins/cert.py:505
+#: ipalib/plugins/cert.py:573
msgid "Error"
msgstr "Błąd"
-#: ipalib/plugins/config.py:73
+#: ipalib/plugins/config.py:20
+msgid ""
+"\n"
+"Manage the IPA configuration\n"
+"\n"
+"Manage the default values that IPA uses and some of its tuning parameters.\n"
+"\n"
+" To show the current configuration:\n"
+" ipa config-show\n"
+"\n"
+" To modify the configuration:\n"
+" ipa config-mod --maxusername=99\n"
+"\n"
+"The available options are:\n"
+"\n"
+"User management options:\n"
+"\n"
+" --maxusername=INT Max. username length when creating/modifying a user\n"
+" --homedirectory=STR Default location of home directories (default /"
+"home)\n"
+" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
+" --defaultgroup=STR Default group for new users (default ipausers). The\n"
+" group must exist, or adding new users will fail.\n"
+" --emaildomain=STR Default e-mail domain for new users\n"
+"\n"
+"Search tuning options. These impact how much data is searched through and\n"
+"how many records may be returned on a given search.\n"
+"\n"
+" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 "
+"for\n"
+" unlimited)\n"
+" --searchrecordslimit=INT Max. number of records to search (-1 is "
+"unlimited)\n"
+"\n"
+"Server Configuration.\n"
+"\n"
+" --enable-migration=BOOL Enable migration mode\n"
+" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+"\n"
+"The password notification value is stored here so it will be replicated.\n"
+"It is not currently used to notify users in advance of an expiring\n"
+"password.\n"
+"\n"
+"Some attributes are read-only, provided only for information purposes. "
+"These\n"
+"include:\n"
+"\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
+msgstr ""
+
+#: ipalib/plugins/config.py:76
+msgid "searchtimelimit must be -1 or > 1."
+msgstr ""
+
+#: ipalib/plugins/config.py:80
+msgid ""
+"\n"
+" IPA configuration object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
msgid "Configuration"
msgstr "Konfiguracja"
-#: ipalib/plugins/config.py:78
-msgid "Max username length"
+#: ipalib/plugins/config.py:96
+#, fuzzy
+msgid "Max. username length"
msgstr "Maksymalna długość nazwy użytkownika"
-#: ipalib/plugins/config.py:83
+#: ipalib/plugins/config.py:101
msgid "Home directory base"
msgstr "Podstawa katalogu domowego"
-#: ipalib/plugins/config.py:84
-msgid "Default location of home directories"
+#: ipalib/plugins/config.py:102
+#, fuzzy
+msgid "Default location of home directories."
msgstr "Domyślne położenie katalogów domowych"
-#: ipalib/plugins/config.py:88
+#: ipalib/plugins/config.py:106
msgid "Default shell"
msgstr "Domyślna powłoka"
-#: ipalib/plugins/config.py:89
-msgid "Default shell for new users"
+#: ipalib/plugins/config.py:107
+#, fuzzy
+msgid "Default shell for new users."
msgstr "Domyślna powłoka dla nowych użytkowników"
-#: ipalib/plugins/config.py:93
+#: ipalib/plugins/config.py:111
msgid "Default users group"
msgstr "Domyślna grupa użytkowników"
-#: ipalib/plugins/config.py:94
-msgid "Default group for new users"
+#: ipalib/plugins/config.py:112
+#, fuzzy
+msgid "Default group for new users."
msgstr "Domyślna grupa dla nowych użytkowników"
-#: ipalib/plugins/config.py:98
-msgid "Default e-mail domain"
-msgstr "Domyślna domena e-mail"
+#: ipalib/plugins/config.py:116
+#, fuzzy
+msgid "Default e-mail domain for new users"
+msgstr "Domyślna domena e-mail dla nowych użytkowników"
-#: ipalib/plugins/config.py:99
-msgid "Default e-mail domain new users"
+#: ipalib/plugins/config.py:117
+#, fuzzy
+msgid "Default e-mail domain new users."
msgstr "Domyślna domena e-mail dla nowych użytkowników"
-#: ipalib/plugins/config.py:103
+#: ipalib/plugins/config.py:121
msgid "Search time limit"
msgstr "Ograniczenie czasu wyszukiwania"
-#: ipalib/plugins/config.py:104
-msgid "Max. amount of time (sec.) for a search (-1 is unlimited)"
+#: ipalib/plugins/config.py:122
+#, fuzzy
+msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
msgstr ""
"Maksymalny czas (w sekundach) wyszukiwania (-1 oznacza brak ograniczenia)"
-#: ipalib/plugins/config.py:109
+#: ipalib/plugins/config.py:127
msgid "Search size limit"
msgstr "Ograniczenie rozmiaru wyszukiwania"
-#: ipalib/plugins/config.py:110
-msgid "Max. number of records to search (-1 is unlimited)"
+#: ipalib/plugins/config.py:128
+#, fuzzy
+msgid "Max. number of records to search (-1 is unlimited)."
msgstr ""
"Maksymalna liczba wpisów do wyszukiwania (-1 oznacza brak ograniczenia)"
-#: ipalib/plugins/config.py:115
+#: ipalib/plugins/config.py:133
msgid "User search fields"
msgstr "Pola wyszukiwania użytkowników"
-#: ipalib/plugins/config.py:116
-msgid "A comma-separated list of fields to search when searching for users"
+#: ipalib/plugins/config.py:134
+#, fuzzy
+msgid "A comma-separated list of fields to search when searching for users."
msgstr ""
"Lista pól oddzielonych przecinkami do przeszukania podczas wyszukiwania "
"użytkowników"
-#: ipalib/plugins/config.py:121
-msgid "A comma-separated list of fields to search when searching for groups"
+#: ipalib/plugins/config.py:139
+#, fuzzy
+msgid "A comma-separated list of fields to search when searching for groups."
msgstr ""
"Lista pól oddzielonych przecinkami do przeszukania podczas wyszukiwania grup"
-#: ipalib/plugins/config.py:125
+#: ipalib/plugins/config.py:143
msgid "Migration mode"
msgstr "Tryb migracji"
-#: ipalib/plugins/config.py:126
-msgid "Enable migration mode"
+#: ipalib/plugins/config.py:144
+#, fuzzy
+msgid "Enable migration mode."
msgstr "Włączenie trybu migracji"
-#: ipalib/plugins/config.py:130
+#: ipalib/plugins/config.py:148
msgid "Certificate Subject base"
msgstr "Podstawa tematu certyfikatu"
-#: ipalib/plugins/config.py:131
-msgid "Base for certificate subjects (OU=Test,O=Example)"
+#: ipalib/plugins/config.py:149
+#, fuzzy
+msgid "Base for certificate subjects (OU=Test,O=Example)."
msgstr "Podstawa dla tematów certyfikatów (OU=Test,O=Przykład)"
-#: ipalib/plugins/dns.py:131
+#: ipalib/plugins/config.py:154
+#, fuzzy
+msgid "Default group objectclasses"
+msgstr "Domyślna grupa dla nowych użytkowników"
+
+#: ipalib/plugins/config.py:155
+msgid "Default group objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:159
+#, fuzzy
+msgid "Default user objectclasses"
+msgstr "Domyślna grupa użytkowników"
+
+#: ipalib/plugins/config.py:160
+msgid "Default user objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:164
+msgid "Password Expiration Notification"
+msgstr ""
+
+#: ipalib/plugins/config.py:165
+msgid "Number of days's notice of impending password expiration."
+msgstr ""
+
+#: ipalib/plugins/config.py:170
+msgid "Password plugin features"
+msgstr ""
+
+#: ipalib/plugins/config.py:171
+msgid "Extra hashes to generate in password plug-in."
+msgstr ""
+
+#: ipalib/plugins/config.py:183
+msgid ""
+"\n"
+" Modify configuration options.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:220
+msgid ""
+"\n"
+" Show the current configuration.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:19
+msgid ""
+"\n"
+"Group to Group Delegation\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"Group to Group Delegations grants the members of one group to update a set\n"
+"of attributes of members of another group.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a delegation rule to allow editors to edit admin's addresses:\n"
+" ipa delegation-add --attrs=street --membergroup=admins --group=editors "
+"'editors edit admins street'\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add postalCode to the list:\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --"
+"group=editors 'editors edit admins street'\n"
+"\n"
+" Display our updated rule:\n"
+" ipa delegation-show 'editors edit admins street'\n"
+"\n"
+" Delete a rule:\n"
+" ipa delegation-del 'editors edit admins street'\n"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:56
+msgid ""
+"\n"
+" memberOf is in filter but we want to pull out the group for easier\n"
+" displaying.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#, fuzzy
+msgid "Delegation '%(permission)s' not found"
+msgstr "Nie odnaleziono komputera \"%(host)s\""
+
+#: ipalib/plugins/delegation.py:70
+msgid "Error retrieving member group %(group)s: %(error)s"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:79
+msgid ""
+"\n"
+" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a delegation ACI, adding a new attribute\n"
+" membergroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:95
+msgid ""
+"\n"
+" Delegation object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:102
+#, fuzzy
+msgid "Delegation"
+msgstr "Usuń"
+
+#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#, fuzzy
+msgid "Delegation name"
+msgstr "Tryb migracji"
+
+#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#, fuzzy
+msgid ""
+"Comma-separated list of permissions to grant (read, write). Default is write."
+msgstr ""
+"lista uprawnień oddzielonych przecinkami do udzielenia (odczyt, zapis, "
+"dodanie, usunięcie, wszystkie)"
+
+#: ipalib/plugins/delegation.py:125
+#, fuzzy
+msgid "Member user group"
+msgstr "Grupy usługi elementów"
+
+#: ipalib/plugins/delegation.py:126
+#, fuzzy
+msgid "User group to apply delegation to"
+msgstr "Grupa, do której zastosować ACI"
+
+#: ipalib/plugins/delegation.py:152
+msgid ""
+"\n"
+" Add a new delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:156
+#, fuzzy
+msgid "Added delegation \"%(value)s\""
+msgstr "Dodano grupę roli \"%(value)s\""
+
+#: ipalib/plugins/delegation.py:176
+msgid ""
+"\n"
+" Delete a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:181
+#, fuzzy
+msgid "Deleted delegation \"%(value)s\""
+msgstr "Usunięto grupę roli \"%(value)s\""
+
+#: ipalib/plugins/delegation.py:197
+msgid ""
+"\n"
+" Modify a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:201
+#, fuzzy
+msgid "Modified delegation \"%(value)s\""
+msgstr "Zmodyfikowano grupę roli \"%(value)s\""
+
+#: ipalib/plugins/delegation.py:219
+msgid ""
+"\n"
+" Search for delegations.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:223
+#, fuzzy
+msgid "%(count)d delegation matched"
+msgid_plural "%(count)d delegations matched"
+msgstr[0] "Pasuje %(count)d grupa roli"
+msgstr[1] "Pasują %(count)d grupy roli"
+msgstr[2] "Pasuje %(count)d grup roli"
+
+#: ipalib/plugins/delegation.py:250
+msgid ""
+"\n"
+" Display information about a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:20
+msgid ""
+"\n"
+"Domain Name System (DNS)\n"
+"\n"
+"Manage DNS zone and resource records.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add new zone:\n"
+" ipa dnszone-add example.com --name-server nameserver.example.com\n"
+" --admin-email admin@example.com\n"
+"\n"
+" Add second nameserver for example.com:\n"
+" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add a mail server for example.com:\n"
+" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n"
+"\n"
+" Delete previously added nameserver from example.com:\n"
+" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add new A record for www.example.com: (random IP)\n"
+" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n"
+"\n"
+" Add new PTR record for www.example.com\n"
+" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n"
+"\n"
+" Add new SRV records for LDAP servers. Three quarters of the requests\n"
+" should go to fast.example.com, one quarter to slow.example.com. If neither\n"
+" is available, switch to backup.example.com.\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup."
+"example.com\"\n"
+"\n"
+" When dnsrecord-add command is executed with no option to add a specific "
+"record\n"
+" an interactive mode is started. The mode interactively prompts for the "
+"most\n"
+" typical record types for the respective zone:\n"
+" ipa dnsrecord-add example.com www\n"
+" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random "
+"IPs)\n"
+" [AAAA record]: (no AAAA address entered)\n"
+" Record name: www\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" The interactive mode can also be used for deleting the DNS records:\n"
+" ipa dnsrecord-del example.com www\n"
+" No option to delete specific record provided.\n"
+" Delete all? Yes/No (default No): (do not delete all records)\n"
+" Current DNS record contents:\n"
+"\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
+" Record name: www\n"
+" A record: 1.2.3.4 (A record 11.22.33.44 has been "
+"deleted)\n"
+"\n"
+" Show zone example.com:\n"
+" ipa dnszone-show example.com\n"
+"\n"
+" Find zone with \"example\" in its domain name:\n"
+" ipa dnszone-find example\n"
+"\n"
+" Find records for resources with \"www\" in their name in zone example.com:\n"
+" ipa dnsrecord-find example.com www\n"
+"\n"
+" Find A records with value 10.10.0.1 in zone example.com\n"
+" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n"
+"\n"
+" Show records for resource www in zone example.com\n"
+" ipa dnsrecord-show example.com www\n"
+"\n"
+" Delete zone example.com with all resource records:\n"
+" ipa dnszone-del example.com\n"
+"\n"
+" Resolve a host name to see if it exists (will add default IPA domain\n"
+" if one is not included):\n"
+" ipa dns-resolve www.example.com\n"
+" ipa dns-resolve www\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:140
+msgid "Generate serial number for zones."
+msgstr ""
+
+#: ipalib/plugins/dns.py:189
+msgid "see RFC 2915 "
+msgstr ""
+
+#: ipalib/plugins/dns.py:249
+#, fuzzy
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr "Komputer nie posiada pasującego wpisu DNS A"
+
+#: ipalib/plugins/dns.py:272
+#, fuzzy
+msgid ""
+"\n"
+" DNS Zone, container for resource records.\n"
+" "
+msgstr "RDN kontenera dla użytkowników w DS"
+
+#: ipalib/plugins/dns.py:284
msgid "DNS"
msgstr "DNS"
-#: ipalib/plugins/dns.py:136
-msgid "Zone"
-msgstr "Strefa"
+#: ipalib/plugins/dns.py:289
+msgid "Zone name"
+msgstr "Nazwa strefy"
-#: ipalib/plugins/dns.py:137
+#: ipalib/plugins/dns.py:290
msgid "Zone name (FQDN)"
msgstr "Nazwa strefy (FQDN)"
-#: ipalib/plugins/dns.py:143
-msgid "Authoritative name server"
+#: ipalib/plugins/dns.py:296
+#, fuzzy
+msgid "Authoritative nameserver"
+msgstr "Autorytatywny serwer nazwa"
+
+#: ipalib/plugins/dns.py:297
+#, fuzzy
+msgid "Authoritative nameserver."
msgstr "Autorytatywny serwer nazwa"
-#: ipalib/plugins/dns.py:147
-msgid "administrator e-mail address"
+#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#, fuzzy
+msgid "Administrator e-mail address"
msgstr "adres e-mail administratora"
-#: ipalib/plugins/dns.py:153
+#: ipalib/plugins/dns.py:308
msgid "SOA serial"
msgstr "Numer seryjny SOA"
-#: ipalib/plugins/dns.py:157
+#: ipalib/plugins/dns.py:309
+#, fuzzy
+msgid "SOA record serial number"
+msgstr "Numer seryjny"
+
+#: ipalib/plugins/dns.py:316
msgid "SOA refresh"
msgstr "Odświeżenie SOA"
-#: ipalib/plugins/dns.py:161
+#: ipalib/plugins/dns.py:317
+#, fuzzy
+msgid "SOA record refresh time"
+msgstr "Odświeżenie SOA"
+
+#: ipalib/plugins/dns.py:324
msgid "SOA retry"
msgstr "Ponowienie SOA"
-#: ipalib/plugins/dns.py:165
+#: ipalib/plugins/dns.py:325
+#, fuzzy
+msgid "SOA record retry time"
+msgstr "Ponowienie SOA"
+
+#: ipalib/plugins/dns.py:332
msgid "SOA expire"
msgstr "Wygaszenie SOA"
-#: ipalib/plugins/dns.py:169
+#: ipalib/plugins/dns.py:333
+#, fuzzy
+msgid "SOA record expire time"
+msgstr "Wygaszenie SOA"
+
+#: ipalib/plugins/dns.py:340
msgid "SOA minimum"
msgstr "Minimalne SOA"
-#: ipalib/plugins/dns.py:173
+#: ipalib/plugins/dns.py:341
+msgid "How long should negative responses be cached"
+msgstr ""
+
+#: ipalib/plugins/dns.py:349
msgid "SOA time to live"
msgstr "Czas życia SOA"
-#: ipalib/plugins/dns.py:177
+#: ipalib/plugins/dns.py:350
+#, fuzzy
+msgid "SOA record time to live"
+msgstr "Czas życia SOA"
+
+#: ipalib/plugins/dns.py:354
msgid "SOA class"
msgstr "Klasa SOA"
-#: ipalib/plugins/dns.py:182
-msgid "allow dynamic update?"
-msgstr "zezwolić na dynamiczne aktualizacje?"
+#: ipalib/plugins/dns.py:355
+#, fuzzy
+msgid "SOA record class"
+msgstr "Klasa SOA"
-#: ipalib/plugins/dns.py:186
+#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
msgid "BIND update policy"
msgstr "Polityka aktualizacji BIND"
-#: ipalib/plugins/dns.py:426 ipalib/plugins/dns.py:460
-#: ipalib/plugins/dns.py:495 ipalib/plugins/dns.py:610
-#: ipalib/plugins/dns.py:695 ipalib/plugins/dns.py:819
-msgid "Zone name"
-msgstr "Nazwa strefy"
+#: ipalib/plugins/dns.py:365
+msgid "Active zone"
+msgstr ""
-#: ipalib/plugins/dns.py:500
-msgid "resource name"
-msgstr "nazwa zasobu"
+#: ipalib/plugins/dns.py:366
+msgid "Is zone active?"
+msgstr ""
-#: ipalib/plugins/dns.py:505 ipalib/plugins/dns.py:620
-#: ipalib/plugins/dns.py:711
-msgid "Record type"
-msgstr "Typ wpisu"
+#: ipalib/plugins/dns.py:372
+#, fuzzy
+msgid "Dynamic update"
+msgstr "zezwolić na dynamiczne aktualizacje?"
-#: ipalib/plugins/dns.py:509 ipalib/plugins/dns.py:624
-msgid "Data"
-msgstr "Dane"
+#: ipalib/plugins/dns.py:373
+#, fuzzy
+msgid "Allow dynamic updates."
+msgstr "zezwolić na dynamiczne aktualizacje?"
+
+#: ipalib/plugins/dns.py:382
+msgid ""
+"\n"
+" Create new DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
+#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+msgid "Force"
+msgstr ""
+
+#: ipalib/plugins/dns.py:388
+#, fuzzy
+msgid "Force DNS zone creation even if nameserver not in DNS."
+msgstr "wymuszenie nazwy komputera nawet, jeśli nie w DNS"
+
+#: ipalib/plugins/dns.py:391
+msgid "Add the nameserver to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:397
+msgid "DNS is not configured"
+msgstr ""
+
+#: ipalib/plugins/dns.py:431
+msgid ""
+"\n"
+" Delete DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"\n"
+" Modify DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:452
+msgid ""
+"\n"
+" Search for DNS zones (SOA records).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:460
+msgid ""
+"\n"
+" Display information about a DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+msgid ""
+"\n"
+" Disable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:472
+#, fuzzy
+msgid "Disabled DNS zone \"%(value)s\""
+msgstr "Wyłączono konto użytkownika \"%(value)s\""
-#: ipalib/plugins/dns.py:510 ipalib/plugins/dns.py:625
-msgid "Type-specific data"
-msgstr "Dane specyficzne dla typu"
+#: ipalib/plugins/dns.py:490
+msgid ""
+"\n"
+" Enable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:494
+#, fuzzy
+msgid "Enabled DNS zone \"%(value)s\""
+msgstr "Włączono konto użytkownika \"%(value)s\""
+
+#: ipalib/plugins/dns.py:512
+msgid ""
+"\n"
+" DNS record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:522
+#, fuzzy
+msgid "DNS resource record"
+msgstr "nazwa zasobu"
+
+#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
+#, fuzzy
+msgid "Record name"
+msgstr "Nazwa zasobu"
-#: ipalib/plugins/dns.py:517
+#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
msgid "Time to live"
msgstr "Czas życia"
-#: ipalib/plugins/dns.py:522
+#: ipalib/plugins/dns.py:538
msgid "Class"
msgstr "Klasa"
-#: ipalib/plugins/dns.py:615 ipalib/plugins/dns.py:707
-#: ipalib/plugins/dns.py:824
-msgid "Resource name"
-msgstr "Nazwa zasobu"
+#: ipalib/plugins/dns.py:539
+#, fuzzy
+msgid "DNS class"
+msgstr "Klasa SOA"
-#: ipalib/plugins/dns.py:700
-msgid "Search criteria"
-msgstr "Kryterium wyszukiwania"
+#: ipalib/plugins/dns.py:566
+msgid ""
+"\n"
+" Base class for DNS record commands with record options.\n"
+" "
+msgstr ""
-#: ipalib/plugins/dns.py:715
-msgid "type-specific data"
-msgstr "dane specyficzne dla typu"
+#: ipalib/plugins/dns.py:610
+msgid ""
+"\n"
+" Base class for adding/removing records from DNS resource entries.\n"
+" "
+msgstr ""
-#: ipalib/plugins/dns.py:865
-#, python-format
+#: ipalib/plugins/dns.py:674
+msgid ""
+"\n"
+" Add records to DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:690
+msgid ""
+"\n"
+" Add new DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:699
+#, fuzzy
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr "wymuszenie nazwy komputera nawet, jeśli nie w DNS"
+
+#: ipalib/plugins/dns.py:735
+msgid ""
+"Reverse zone for PTR record should be a sub-zone of one the following fully "
+"qualified domains: %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:740
+msgid "Reverse zone %s requires exactly %d IP address components, %d given"
+msgstr ""
+
+#: ipalib/plugins/dns.py:746
+msgid "PTR record '%s' is not fully qualified (check traling '.')"
+msgstr ""
+
+#: ipalib/plugins/dns.py:789
+msgid ""
+"\n"
+" Delete DNS record entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:792
+#, fuzzy
+msgid "Deleted record \"%(value)s\""
+msgstr "Usunięto użytkownika \"%(value)s\""
+
+#: ipalib/plugins/dns.py:799
+msgid ""
+"\n"
+" Delete DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:802
+msgid ""
+"Neither --del-all nor options to delete a specific record provided.\n"
+"Command help may be consulted for all supported record types."
+msgstr ""
+
+#: ipalib/plugins/dns.py:807
+msgid "Delete all associated records"
+msgstr ""
+
+#: ipalib/plugins/dns.py:834
+msgid "No option to delete specific record provided."
+msgstr ""
+
+#: ipalib/plugins/dns.py:835
+#, fuzzy
+msgid "Delete all?"
+msgstr "Usuń"
+
+#: ipalib/plugins/dns.py:845
+msgid "Current DNS record contents:\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:875
+#, fuzzy
+msgid "%s record with value %s not found"
+msgstr "Nie odnaleziono ACI o nazwie \"%s\""
+
+#: ipalib/plugins/dns.py:889
+msgid ""
+"\n"
+" Display DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:905
+msgid ""
+"\n"
+" Search for DNS resources.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:932
+msgid ""
+"\n"
+" Resolve a host name in DNS\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:936
msgid "Found '%(value)s'"
msgstr "Odnaleziono \"%(value)s\""
-#: ipalib/plugins/dns.py:869
+#: ipalib/plugins/dns.py:940
msgid "Hostname"
msgstr "Nazwa komputera"
-#: ipalib/plugins/dns.py:882
-#, python-format
+#: ipalib/plugins/dns.py:962
msgid "Host '%(host)s' not found"
msgstr "Nie odnaleziono komputera \"%(host)s\""
-#: ipalib/plugins/group.py:94
+#: ipalib/plugins/dns.py:970
+msgid ""
+"\n"
+" Checks if any of the servers has the DNS service enabled.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:19
+msgid ""
+"\n"
+"Entitlements\n"
+"\n"
+"Manage entitlements for client machines\n"
+"\n"
+"Entitlements can be managed either by registering with an entitlement\n"
+"server with a username and password or by manually importing entitlement\n"
+"certificates. An entitlement certificate contains embedded information\n"
+"such as the product being entitled, the quantity and the validity dates.\n"
+"\n"
+"An entitlement server manages the number of client entitlements available.\n"
+"To mark these entitlements as used by the IPA server you provide a quantity\n"
+"and they are marked as consumed on the entitlement server.\n"
+"\n"
+" Register with an entitlement server:\n"
+" ipa entitle-register consumer\n"
+"\n"
+" Import an entitlement certificate:\n"
+" ipa entitle-import /home/user/ipaclient.pem\n"
+"\n"
+" Display current entitlements:\n"
+" ipa entitle-status\n"
+"\n"
+" Retrieve details on entitlement certificates:\n"
+" ipa entitle-get\n"
+"\n"
+" Consume some entitlements from the entitlement server:\n"
+" ipa entitle-consume 50\n"
+"\n"
+"The registration ID is a Unique Identifier (UUID). This ID will be\n"
+"IMPORTED if you have used entitle-import.\n"
+"\n"
+"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:106
+msgid ""
+"\n"
+" Get our entitlement pool. Assume there is only one pool.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:129
+msgid ""
+"\n"
+" Retrieve our UUID, certificate and key from LDAP.\n"
+"\n"
+" Except on error the caller is responsible for removing temporary files\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:178
+msgid ""
+"\n"
+" Entitlement object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:189
+msgid "Entitlements"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:206
+msgid ""
+"\n"
+" Display current entitlements\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+msgid "UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
+#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
+#: ipalib/plugins/entitle.py:690
+msgid "Product"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
+#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
+#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+msgid "Quantity"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
+#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+msgid "Consumed"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:276
+msgid ""
+"\n"
+" Consume an entitlement\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:282
+msgid "Consumed %(value)s entitlement(s)."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:314
+msgid ""
+"\n"
+" Override this so we can set value to the number of entitlements\n"
+" consumed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
+msgid ""
+"\n"
+" Returning the certificates isn't very interesting. Return the\n"
+" status of entitlements instead.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:380
+msgid ""
+"\n"
+" Retrieve the entitlement certs\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:394
+msgid "Start"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:397
+#, fuzzy
+msgid "End"
+msgstr "Włączone"
+
+#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
+#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#, fuzzy
+msgid "Serial Number"
+msgstr "Numer seryjny"
+
+#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
+#: ipalib/plugins/entitle.py:628
+msgid "Not an entitlement certificate"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:460
+msgid ""
+"\n"
+" Search for entitlement accounts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:473
+msgid ""
+"\n"
+" Register to the entitlement system\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:479
+msgid "Registered to entitlement server."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:483
+#, fuzzy
+msgid "Username"
+msgstr "Nazwa użytkownika"
+
+#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
+msgid "Enrollment UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
+#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
+msgid "Password"
+msgstr "Hasło"
+
+#: ipalib/plugins/entitle.py:495
+#, fuzzy
+msgid "Registration password"
+msgstr "Hasło użytkownika"
+
+#: ipalib/plugins/entitle.py:569
+msgid ""
+"\n"
+" Import an entitlement certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:646
+msgid ""
+"\n"
+" If we are adding the first entry there are no updates so "
+"EmptyModlist\n"
+" will get thrown. Ignore it.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:667
+msgid ""
+"\n"
+" Re-sync the local entitlement cache with the entitlement server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:673
+msgid "Entitlement(s) synchronized."
+msgstr ""
+
+#: ipalib/plugins/group.py:20
+msgid ""
+"\n"
+"Groups of users\n"
+"\n"
+"Manage groups of users. By default, new groups are POSIX groups. You\n"
+"can add the --nonposix option to the group-add command to mark a new group\n"
+"as non-POSIX, and you can use the same argument to the group-mod command\n"
+"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"converted to non-POSIX groups.\n"
+"\n"
+"Every group must have a description.\n"
+"\n"
+"POSIX groups must have a Group ID (GID) number. Changing a GID is\n"
+"supported but can have an impact on your file permissions. It is not "
+"necessary\n"
+"to supply a GID when creating a group. IPA will generate one automatically\n"
+"if it is not provided.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new group:\n"
+" ipa group-add --desc='local administrators' localadmins\n"
+"\n"
+" Add a new non-POSIX group:\n"
+" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n"
+"\n"
+" Convert a non-POSIX group to posix:\n"
+" ipa group-mod --posix remoteadmins\n"
+"\n"
+" Add a new POSIX group with a specific Group ID number:\n"
+" ipa group-add --gid=500 --desc='unix admins' unixadmins\n"
+"\n"
+" Add a new POSIX group and let IPA assign a Group ID number:\n"
+" ipa group-add --desc='printer admins' printeradmins\n"
+"\n"
+" Remove a group:\n"
+" ipa group-del unixadmins\n"
+"\n"
+" To add the \"remoteadmins\" group to the \"localadmins\" group:\n"
+" ipa group-add-member --groups=remoteadmins localadmins\n"
+"\n"
+" Add a list of users to the \"localadmins\" group:\n"
+" ipa group-add-member --users=test1,test2 localadmins\n"
+"\n"
+" Remove a user from the \"localadmins\" group:\n"
+" ipa group-remove-member --users=test2 localadmins\n"
+"\n"
+" Display information about a named group.\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/group.py:76
+msgid ""
+"\n"
+" Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:100
msgid "User Groups"
msgstr "Grupy użytkowników"
-#: ipalib/plugins/group.py:102
+#: ipalib/plugins/group.py:108
msgid "Group name"
msgstr "Nazwa grupy"
-#: ipalib/plugins/group.py:109 ipalib/plugins/sudocmdgroup.py:78
+#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
msgid "Group description"
msgstr "Opis grupy"
-#: ipalib/plugins/group.py:113
+#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
msgid "GID"
msgstr "GID"
-#: ipalib/plugins/group.py:114
+#: ipalib/plugins/group.py:120
msgid "GID (use this option to set it manually)"
msgstr "GID (ta opcja umożliwia jego ręczne ustawienie)"
-#: ipalib/plugins/group.py:117 ipalib/plugins/rolegroup.py:94
-#: ipalib/plugins/taskgroup.py:66
-msgid "Member groups"
-msgstr "Elementy grupy"
-
-#: ipalib/plugins/group.py:121 ipalib/plugins/rolegroup.py:98
-#: ipalib/plugins/taskgroup.py:70
-msgid "Member users"
-msgstr "Elementy użytkowników"
+#: ipalib/plugins/group.py:128
+msgid ""
+"\n"
+" Create a new group.\n"
+" "
+msgstr ""
-#: ipalib/plugins/group.py:134
-#, python-format
+#: ipalib/plugins/group.py:132
msgid "Added group \"%(value)s\""
msgstr "Dodano grupę \"%(value)s\""
-#: ipalib/plugins/group.py:139
-msgid "Create as a non-POSIX group?"
+#: ipalib/plugins/group.py:137
+#, fuzzy
+msgid "Create as a non-POSIX group"
msgstr "Utworzyć jako grupę nie będącą POSIX?"
-#: ipalib/plugins/group.py:160
-#, python-format
+#: ipalib/plugins/group.py:154
+msgid ""
+"\n"
+" Delete group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:158
msgid "Deleted group \"%(value)s\""
msgstr "Usunięto grupę \"%(value)s\""
-#: ipalib/plugins/group.py:191
-#, python-format
+#: ipalib/plugins/group.py:186
+msgid ""
+"\n"
+" Modify a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:189
msgid "Modified group \"%(value)s\""
msgstr "Zmodyfikowano grupę \"%(value)s\""
-#: ipalib/plugins/group.py:196
+#: ipalib/plugins/group.py:194
msgid "change to a POSIX group"
msgstr "zmiana na grupę POSIX"
-#: ipalib/plugins/group.py:222 ipalib/plugins/hbacsvcgroup.py:129
-#, python-format
+#: ipalib/plugins/group.py:215
+msgid ""
+"\n"
+" Search for groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:220
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] "Pasuje %(count)d grupa"
msgstr[1] "Pasują %(count)d grupy"
msgstr[2] "Pasuje %(count)d grup"
+#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+msgid "search for private groups"
+msgstr ""
+
#: ipalib/plugins/group.py:257
-#, python-format
+msgid ""
+"\n"
+" Display information about a named group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:265
+#, fuzzy
+msgid ""
+"\n"
+" Add members to a group.\n"
+" "
+msgstr "Element grupy"
+
+#: ipalib/plugins/group.py:273
+msgid ""
+"\n"
+" Remove members from a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:281
+msgid ""
+"\n"
+" Detach a managed group from a user\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:285
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr "Odłączono grupę \"%(value)s\" od użytkownika \"%(value)s\""
-#: ipalib/plugins/group.py:273
+#: ipalib/plugins/group.py:288
+msgid ""
+"\n"
+" This requires updating both the user and the group. We first need "
+"to\n"
+" verify that both the user and group can be updated, then we go\n"
+" about our work. We don't want a situation where only the user or\n"
+" group can be modified and we're left in a bad state.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:306
msgid "not allowed to modify user entries"
msgstr "modyfikowanie wpisów użytkowników nie jest dozwolone"
-#: ipalib/plugins/group.py:277
+#: ipalib/plugins/group.py:312
msgid "not allowed to modify group entries"
msgstr "modyfikowanie wpisów grup nie jest dozwolone"
-#: ipalib/plugins/group.py:284 ipalib/plugins/group.py:295
+#: ipalib/plugins/group.py:331
msgid "Not a managed group"
msgstr "Nie jest zarządzaną grupą"
-#: ipalib/plugins/hbac.py:106
-msgid "HBAC"
+#: ipalib/plugins/hbacrule.py:19
+msgid ""
+"\n"
+"Host-based access control\n"
+"\n"
+"Control who can access what services on what hosts and from where. You\n"
+"can use HBAC to control which users or groups on a source host can\n"
+"access a service, or group of services, on a target host.\n"
+"\n"
+"You can also specify a category of users, target hosts, and source\n"
+"hosts. This is currently limited to \"all\", but might be expanded in the\n"
+"future.\n"
+"\n"
+"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n"
+"\n"
+"The available services and groups of services are controlled by the\n"
+"hbacsvc and hbacsvcgroup plug-ins respectively.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a rule, \"test1\", that grants all users access to the host \"server"
+"\" from\n"
+" anywhere:\n"
+" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add-host --hosts=server.example.com test1\n"
+"\n"
+" Display the properties of a named HBAC rule:\n"
+" ipa hbacrule-show test1\n"
+"\n"
+" Create a rule for a specific service. This lets the user john access\n"
+" the sshd service on any machine from any machine:\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add-user --users=john john_sshd\n"
+" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
+"\n"
+" Create a rule for a new service group. This lets the user john access\n"
+" the FTP service on any machine from any machine:\n"
+" ipa hbacsvcgroup-add ftpers\n"
+" ipa hbacsvc-add sftp\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add-user --users=john john_ftp\n"
+" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
+"\n"
+" Disable a named HBAC rule:\n"
+" ipa hbacrule-disable test1\n"
+"\n"
+" Remove a named HBAC rule:\n"
+" ipa hbacrule-del allow_server\n"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:91
+msgid ""
+"\n"
+" See if options[attribute] is lower-case 'all' in a safe way.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:103
+msgid ""
+"\n"
+" HBAC object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:126
+#, fuzzy
+msgid "HBAC Rule"
msgstr "HBAC"
-#: ipalib/plugins/hbac.py:111 ipalib/plugins/sudorule.py:53
+#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
msgid "Rule name"
msgstr "Nazwa reguły"
-#: ipalib/plugins/hbac.py:116
+#: ipalib/plugins/hbacrule.py:136
msgid "Rule type (allow or deny)"
msgstr "Typ reguły (zezwalanie lub zabranianie)"
-#: ipalib/plugins/hbac.py:117
+#: ipalib/plugins/hbacrule.py:137
msgid "Rule type"
msgstr "Typ reguły"
-#: ipalib/plugins/hbac.py:123
+#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
+#: ipalib/plugins/sudorule.py:86
msgid "User category"
msgstr "Kategoria użytkowników"
-#: ipalib/plugins/hbac.py:124
+#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
+#: ipalib/plugins/sudorule.py:87
msgid "User category the rule applies to"
msgstr "Kategoria użytkowników, do których zastosowywana jest reguła"
-#: ipalib/plugins/hbac.py:129
+#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
+#: ipalib/plugins/sudorule.py:92
msgid "Host category"
msgstr "Kategoria komputerów"
-#: ipalib/plugins/hbac.py:130
+#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
+#: ipalib/plugins/sudorule.py:93
msgid "Host category the rule applies to"
msgstr "Kategoria komputerów, do których zastosowywana jest reguła"
-#: ipalib/plugins/hbac.py:135
+#: ipalib/plugins/hbacrule.py:155
msgid "Source host category"
msgstr "Kategoria komputerów źródłowych"
-#: ipalib/plugins/hbac.py:136
+#: ipalib/plugins/hbacrule.py:156
msgid "Source host category the rule applies to"
msgstr "Kategoria komputerów źródłowych, do których zastosowywana jest reguła"
-#: ipalib/plugins/hbac.py:141
+#: ipalib/plugins/hbacrule.py:161
msgid "Service category"
msgstr "Kategoria usług"
-#: ipalib/plugins/hbac.py:142
+#: ipalib/plugins/hbacrule.py:162
msgid "Service category the rule applies to"
msgstr "Kategoria usług, do których zastosowywana jest reguła"
-#: ipalib/plugins/hbac.py:147 ipalib/plugins/hbac.py:325
-#: ipalib/plugins/hbac.py:363
-msgid "Access time"
-msgstr "Czas dostępu"
-
-#: ipalib/plugins/hbac.py:154
+#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
msgid "Enabled"
msgstr "Włączone"
-#: ipalib/plugins/hbac.py:158 ipalib/plugins/sudorule.py:61
-#: ipalib/plugins/user.py:76
+#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
+#: ipalib/plugins/user.py:108
msgid "Users"
msgstr "Użytkownicy"
-#: ipalib/plugins/hbac.py:162 ipalib/plugins/host.py:113
-#: ipalib/plugins/sudorule.py:65
+#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
+#: ipalib/plugins/sudorule.py:119
+msgid "Groups"
+msgstr "Grupy"
+
+#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
+#: ipalib/plugins/sudorule.py:123
msgid "Hosts"
msgstr "Komputery"
-#: ipalib/plugins/hbac.py:166 ipalib/plugins/hostgroup.py:69
-#: ipalib/plugins/sudorule.py:69
+#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
+#: ipalib/plugins/sudorule.py:127
msgid "Host Groups"
msgstr "Grupy komputerów"
-#: ipalib/plugins/hbac.py:170
+#: ipalib/plugins/hbacrule.py:194
msgid "Source hosts"
msgstr "Komputery źródłowe"
-#: ipalib/plugins/hbac.py:174 ipalib/plugins/hbacsvc.py:60
-#: ipalib/plugins/service.py:192
+#: ipalib/plugins/hbacrule.py:198
+#, fuzzy
+msgid "Source host groups"
+msgstr "Komputery źródłowe"
+
+#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
+#: ipalib/plugins/service.py:220
msgid "Services"
msgstr "Usługi"
-#: ipalib/plugins/hbac.py:178
+#: ipalib/plugins/hbacrule.py:206
msgid "Service Groups"
msgstr "Grupy usług"
-#: ipalib/plugins/hbacsvc.py:65
+#: ipalib/plugins/hbacrule.py:215
+msgid ""
+"\n"
+" Create a new HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:219
+#, fuzzy
+msgid "Added HBAC rule \"%(value)s\""
+msgstr "Dodano regułę sudo \"%(value)s\""
+
+#: ipalib/plugins/hbacrule.py:230
+msgid ""
+"\n"
+" Delete an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:234
+#, fuzzy
+msgid "Deleted HBAC rule \"%(value)s\""
+msgstr "Usunięto ACI \"%(value)s\""
+
+#: ipalib/plugins/hbacrule.py:240
+msgid ""
+"\n"
+" Modify an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:244
+#, fuzzy
+msgid "Modified HBAC rule \"%(value)s\""
+msgstr "Zmodyfikowano ACI \"%(value)s\""
+
+#: ipalib/plugins/hbacrule.py:266
+msgid ""
+"\n"
+" Search for HBAC rules.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:270
+#, fuzzy
+msgid "%(count)d HBAC rule matched"
+msgid_plural "%(count)d HBAC rules matched"
+msgstr[0] "Pasuje %(count)d ACI"
+msgstr[1] "Pasują %(count)d ACI"
+msgstr[2] "Pasuje %(count)d ACI"
+
+#: ipalib/plugins/hbacrule.py:278
+msgid ""
+"\n"
+" Display the properties of an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:286
+msgid ""
+"\n"
+" Enable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:290
+#, fuzzy
+msgid "Enabled HBAC rule \"%(value)s\""
+msgstr "Włączono konto użytkownika \"%(value)s\""
+
+#: ipalib/plugins/hbacrule.py:315
+msgid ""
+"\n"
+" Disable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:319
+#, fuzzy
+msgid "Disabled HBAC rule \"%(value)s\""
+msgstr "Wyłączono konto użytkownika \"%(value)s\""
+
+#: ipalib/plugins/hbacrule.py:344
+msgid ""
+"\n"
+" Add an access time to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+msgid "Access time"
+msgstr "Czas dostępu"
+
+#: ipalib/plugins/hbacrule.py:385
+msgid ""
+"\n"
+" Remove access time to HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:425
+msgid ""
+"\n"
+" Add users and groups to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:442
+msgid ""
+"\n"
+" Remove users and groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:452
+msgid ""
+"\n"
+" Add target hosts and hostgroups to an HBAC rule\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:469
+msgid ""
+"\n"
+" Remove target hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:479
+msgid ""
+"\n"
+" Add source hosts and hostgroups from a HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:496
+msgid ""
+"\n"
+" Remove source hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:506
+msgid ""
+"\n"
+" Add services to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:523
+msgid ""
+"\n"
+" Remove service and service groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:19
+msgid ""
+"\n"
+"HBAC Services\n"
+"\n"
+"The PAM services that HBAC can control access to. The name used here\n"
+"must match the service name that PAM is evaluating.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service:\n"
+" ipa hbacsvc-add tftp\n"
+"\n"
+" Modify an existing HBAC service:\n"
+" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n"
+"\n"
+" Search for HBAC services. This example will return two results, the FTP\n"
+" service and the newly-added tftp service:\n"
+" ipa hbacsvc-find ftp\n"
+"\n"
+" Delete an HBAC service:\n"
+" ipa hbacsvc-del tftp\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:51
+msgid ""
+"\n"
+" HBAC Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:61
+#, fuzzy
+msgid "HBAC Services"
+msgstr "Usługa HBAC"
+
+#: ipalib/plugins/hbacsvc.py:66
msgid "Service name"
msgstr "Nazwa usługi"
-#: ipalib/plugins/hbacsvc.py:66
-msgid "HBAC Service"
+#: ipalib/plugins/hbacsvc.py:67
+#, fuzzy
+msgid "HBAC service"
msgstr "Usługa HBAC"
-#: ipalib/plugins/hbacsvc.py:73
-msgid "Description of service"
-msgstr "Opis usługi"
+#: ipalib/plugins/hbacsvc.py:74
+#, fuzzy
+msgid "HBAC service description"
+msgstr "Opis grupy usługi HBAC"
-#: ipalib/plugins/hbacsvc.py:84 ipalib/plugins/service.py:216
-#, python-format
-msgid "Added service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:82
+msgid ""
+"\n"
+" Add a new HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:85
+#, fuzzy
+msgid "Added HBAC service \"%(value)s\""
msgstr "Dodano usługę \"%(value)s\""
-#: ipalib/plugins/hbacsvc.py:93 ipalib/plugins/service.py:255
-#, python-format
-msgid "Deleted service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:91
+msgid ""
+"\n"
+" Delete an existing HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:94
+#, fuzzy
+msgid "Deleted HBAC service \"%(value)s\""
msgstr "Usunięto usługę \"%(value)s\""
-#: ipalib/plugins/hbacsvcgroup.py:66
-msgid "HBAC Service Groups"
+#: ipalib/plugins/hbacsvc.py:100
+msgid ""
+"\n"
+" Modify an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:104
+#, fuzzy
+msgid "Modified HBAC service \"%(value)s\""
+msgstr "Zmodyfikowano usługę \"%(value)s\""
+
+#: ipalib/plugins/hbacsvc.py:110
+msgid ""
+"\n"
+" Search for HBAC services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:114
+#, fuzzy
+msgid "%(count)d HBAC service matched"
+msgid_plural "%(count)d HBAC services matched"
+msgstr[0] "Pasuje %(count)d usługa"
+msgstr[1] "Pasuje %(count)d usługi"
+msgstr[2] "Pasuje %(count)d usług"
+
+#: ipalib/plugins/hbacsvc.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:19
+msgid ""
+"\n"
+"HBAC Service Groups\n"
+"\n"
+"HBAC service groups can contain any number of individual services,\n"
+"or \"members\". Every group must have a description.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service group:\n"
+" ipa hbacsvcgroup-add --desc=\"login services\" login\n"
+"\n"
+" Add members to an HBAC service group:\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n"
+"\n"
+" Display information about a named group:\n"
+" ipa hbacsvcgroup-show login\n"
+"\n"
+" Add a new group to the \"login\" group:\n"
+" ipa hbacsvcgroup-add --desc=\"switch users\" login\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n"
+"\n"
+" Delete an HBAC service group:\n"
+" ipa hbacsvcgroup-del login\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:51
+#, fuzzy
+msgid ""
+"\n"
+" HBAC service group object.\n"
+" "
+msgstr "Opis grupy usługi HBAC"
+
+#: ipalib/plugins/hbacsvcgroup.py:64
+#, fuzzy
+msgid "HBAC service Groups"
msgstr "Grupy usługi HBAC"
-#: ipalib/plugins/hbacsvcgroup.py:71
+#: ipalib/plugins/hbacsvcgroup.py:69
msgid "Service group name"
msgstr "Nazwa grupy usługi"
-#: ipalib/plugins/hbacsvcgroup.py:78
+#: ipalib/plugins/hbacsvcgroup.py:76
msgid "HBAC service group description"
msgstr "Opis grupy usługi HBAC"
-#: ipalib/plugins/hbacsvcgroup.py:81
-msgid "Member services"
-msgstr "Usługi elementów"
-
-#: ipalib/plugins/hbacsvcgroup.py:85
-msgid "Member service groups"
-msgstr "Grupy usługi elementów"
+#: ipalib/plugins/hbacsvcgroup.py:84
+#, fuzzy
+msgid ""
+"\n"
+" Add a new HBAC service group.\n"
+" "
+msgstr "Dodano grupę usługi HBAC \"%(value)s\""
-#: ipalib/plugins/hbacsvcgroup.py:101
-#, python-format
-msgid "Added HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:87
+#, fuzzy
+msgid "Added HBAC service group \"%(value)s\""
msgstr "Dodano grupę usługi HBAC \"%(value)s\""
-#: ipalib/plugins/hbacsvcgroup.py:110
-#, python-format
-msgid "Deleted HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:93
+#, fuzzy
+msgid ""
+"\n"
+" Delete an HBAC service group.\n"
+" "
msgstr "Usunięto grupę usługi HBAC \"%(value)s\""
-#: ipalib/plugins/hbacsvcgroup.py:119
-#, python-format
-msgid "Modified HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:96
+#, fuzzy
+msgid "Deleted HBAC service group \"%(value)s\""
+msgstr "Usunięto grupę usługi HBAC \"%(value)s\""
+
+#: ipalib/plugins/hbacsvcgroup.py:102
+#, fuzzy
+msgid ""
+"\n"
+" Modify an HBAC service group.\n"
+" "
+msgstr "Zmodyfikowano grupę usługi HBAC \"%(value)s\""
+
+#: ipalib/plugins/hbacsvcgroup.py:105
+#, fuzzy
+msgid "Modified HBAC service group \"%(value)s\""
msgstr "Zmodyfikowano grupę usługi HBAC \"%(value)s\""
-#: ipalib/plugins/host.py:86
+#: ipalib/plugins/hbacsvcgroup.py:111
+msgid ""
+"\n"
+" Search for an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:114
+#, fuzzy
+msgid "%(count)d HBAC service group matched"
+msgid_plural "%(count)d HBAC service groups matched"
+msgstr[0] "Pasuje %(count)d usługa"
+msgstr[1] "Pasuje %(count)d usługi"
+msgstr[2] "Pasuje %(count)d usług"
+
+#: ipalib/plugins/hbacsvcgroup.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:130
+msgid ""
+"\n"
+" Add members to an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:138
+msgid ""
+"\n"
+" Remove members from an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:20
+msgid ""
+"\n"
+"Hosts/Machines\n"
+"\n"
+"A host represents a machine. It can be used in a number of contexts:\n"
+"- service entries are associated with a host\n"
+"- a host stores the host/ service principal\n"
+"- a host can be used in Host-based Access Control (HBAC) rules\n"
+"- every enrolled client generates a host entry\n"
+"\n"
+"ENROLLMENT:\n"
+"\n"
+"There are three enrollment scenarios when enrolling a new client:\n"
+"\n"
+"1. You are enrolling as a full administrator. The host entry may exist\n"
+" or not. A full administrator is a member of the hostadmin role\n"
+" or the admins group.\n"
+"2. You are enrolling as a limited administrator. The host must already\n"
+" exist. A limited administrator is a member a role with the\n"
+" Host Enrollment privilege.\n"
+"3. The host has been created with a one-time password.\n"
+"\n"
+"A host can only be enrolled once. If a client has enrolled and needs to\n"
+"be re-enrolled, the host entry must be removed and re-created. Note that\n"
+"re-creating the host entry will result in all services for the host being\n"
+"removed, and all SSL certificates associated with those services being\n"
+"revoked.\n"
+"\n"
+"A host can optionally store information such as where it is located,\n"
+"the OS that it runs, etc.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host:\n"
+" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example."
+"com\n"
+"\n"
+" Delete a host:\n"
+" ipa host-del test.example.com\n"
+"\n"
+" Add a new host with a one-time password:\n"
+" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n"
+"\n"
+" Add a new host with a random one-time password:\n"
+" ipa host-add --os='Fedora 12' --random test.example.com\n"
+"\n"
+" Modify information about a host:\n"
+" ipa host-mod --os='Fedora 12' test.example.com\n"
+"\n"
+" Disable the host Kerberos key, SSL certificate and all of its services:\n"
+" ipa host-disable test.example.com\n"
+"\n"
+" Add a host that can manage this host's keytab and certificate:\n"
+" ipa host-add-managedby --hosts=test2 test\n"
+msgstr ""
+
+#: ipalib/plugins/host.py:97
+msgid ""
+"\n"
+" Require at least one dot in the hostname (to support localhost."
+"localdomain)\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr "Wymagana jest w pełni kwalifikowana nazwa komputera"
-#: ipalib/plugins/host.py:118
+#: ipalib/plugins/host.py:129
+msgid "DNS reverse zone for IP address %(addr)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+msgid "Keytab"
+msgstr "Tabela kluczy"
+
+#: ipalib/plugins/host.py:185
+msgid ""
+"\n"
+" Verify that we have either an IPv4 or IPv6 address.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:189
+#, fuzzy
+msgid "invalid IP address"
+msgstr "Adres e-mail"
+
+#: ipalib/plugins/host.py:194
+msgid ""
+"\n"
+" Host object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:231
msgid "Host name"
msgstr "Nazwa komputera"
-#: ipalib/plugins/host.py:125
+#: ipalib/plugins/host.py:238
msgid "A description of this host"
msgstr "Opis tego komputera"
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:242
msgid "Locality"
msgstr "Lokalizacja"
-#: ipalib/plugins/host.py:130
+#: ipalib/plugins/host.py:243
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr "Lokalizacja komputera (np. \"Baltimore, MD\")"
-#: ipalib/plugins/host.py:135
+#: ipalib/plugins/host.py:248
msgid "Host location (e.g. \"Lab 2\")"
msgstr "Położenie komputera (np. \"Laboratorium nr 2\")"
-#: ipalib/plugins/host.py:139
+#: ipalib/plugins/host.py:252
msgid "Platform"
msgstr "Platforma"
-#: ipalib/plugins/host.py:140
+#: ipalib/plugins/host.py:253
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr "Platforma sprzętowa komputera (np. \"Lenovo T61\")"
-#: ipalib/plugins/host.py:144
+#: ipalib/plugins/host.py:257
msgid "Operating system"
msgstr "System operacyjny"
-#: ipalib/plugins/host.py:145
+#: ipalib/plugins/host.py:258
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr "System operacyjny komputera i jego wersja (np. \"Fedora 9\")"
-#: ipalib/plugins/host.py:149
+#: ipalib/plugins/host.py:262
msgid "User password"
msgstr "Hasło użytkownika"
-#: ipalib/plugins/host.py:150
+#: ipalib/plugins/host.py:263
msgid "Password used in bulk enrollment"
msgstr "Hasło używane w zapisywaniu większej części"
-#: ipalib/plugins/host.py:155 ipalib/plugins/service.py:205
+#: ipalib/plugins/host.py:266
+#, fuzzy
+msgid "Generate a random password to be used in bulk enrollment"
+msgstr "Hasło używane w zapisywaniu większej części"
+
+#: ipalib/plugins/host.py:271
+#, fuzzy
+msgid "Random password"
+msgstr "hasło Bind"
+
+#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
msgid "Base-64 encoded server certificate"
msgstr "Certyfikat serwera zakodowany za pomocą Base-64"
-#: ipalib/plugins/host.py:158 ipalib/plugins/host.py:274
+#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
msgid "Principal name"
msgstr "Nazwa naczelnika"
-#: ipalib/plugins/host.py:162 ipalib/plugins/hostgroup.py:93
-msgid "Member of host-groups"
-msgstr "Element grupy komputerów"
-
-#: ipalib/plugins/host.py:166
-msgid "Member of net-groups"
-msgstr "Element grupy sieci"
-
-#: ipalib/plugins/host.py:170
-msgid "Member of role-groups"
-msgstr "Element grupy roli"
+#: ipalib/plugins/host.py:306
+msgid ""
+"\n"
+" Add a new host.\n"
+" "
+msgstr ""
-#: ipalib/plugins/host.py:199
-#, python-format
+#: ipalib/plugins/host.py:311
msgid "Added host \"%(value)s\""
msgstr "Dodano komputer \"%(value)s\""
-#: ipalib/plugins/host.py:202
+#: ipalib/plugins/host.py:316
msgid "force host name even if not in DNS"
msgstr "wymuszenie nazwy komputera nawet, jeśli nie w DNS"
-#: ipalib/plugins/host.py:235
-#, python-format
+#: ipalib/plugins/host.py:319
+msgid "skip reverse DNS detection"
+msgstr ""
+
+#: ipalib/plugins/host.py:322
+msgid "Add the host to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#, fuzzy
+msgid "DNS zone %(zone)s not found"
+msgstr "%(pkey)s: nie odnaleziono %(oname)s"
+
+#: ipalib/plugins/host.py:413
+msgid "The host was added but the DNS update failed with: %(exc)s"
+msgstr ""
+
+#: ipalib/plugins/host.py:422
+msgid ""
+"\n"
+" Delete a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:426
msgid "Deleted host \"%(value)s\""
msgstr "Usunięto komputer \"%(value)s\""
-#: ipalib/plugins/host.py:269
-#, python-format
+#: ipalib/plugins/host.py:431
+msgid "Remove entries from DNS"
+msgstr ""
+
+#: ipalib/plugins/host.py:537
+msgid ""
+"\n"
+" Modify information about a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:542
msgid "Modified host \"%(value)s\""
msgstr "Zmodyfikowano komputer \"%(value)s\""
-#: ipalib/plugins/host.py:275
+#: ipalib/plugins/host.py:549
msgid "Kerberos principal name for this host"
msgstr "Nazwa naczelnika Kerberosa dla tego komputera"
-#: ipalib/plugins/host.py:319
-#, python-format
+#: ipalib/plugins/host.py:618
+msgid ""
+"\n"
+" Search for hosts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:623
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] "Pasuje %(count)d komputer"
msgstr[1] "Pasuje %(count)d komputery"
msgstr[2] "Pasuje %(count)d komputerów"
-#: ipalib/plugins/host.py:337 ipalib/plugins/service.py:84
-msgid "Keytab"
-msgstr "Tabela kluczy"
+#: ipalib/plugins/host.py:643
+msgid ""
+"\n"
+" Display information about a host.\n"
+" "
+msgstr ""
-#: ipalib/plugins/host.py:359 ipalib/plugins/service.py:399
-#, python-format
-msgid "Removed kerberos key from \"%(value)s\""
-msgstr "Usunięto klucz Kerberosa z \"%(value)s\""
+#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#, fuzzy
+msgid "file to store certificate in"
+msgstr "Certyfikat serwera zakodowany za pomocą Base-64"
+
+#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#, fuzzy
+msgid "Certificate stored in file '%(file)s'"
+msgstr "Błąd formatu certyfikatu: %(error)s"
-#: ipalib/plugins/host.py:368
-msgid "Host principal has no kerberos key"
-msgstr "Naczelnik komputera nie posiada klucza Kerberosa"
+#: ipalib/plugins/host.py:684
+msgid ""
+"\n"
+" Disable the Kerberos key, SSL certificate and all services of a host.\n"
+" "
+msgstr ""
-#: ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/host.py:688
+#, fuzzy
+msgid "Disabled host \"%(value)s\""
+msgstr "Usunięto komputer \"%(value)s\""
+
+#: ipalib/plugins/host.py:770
+msgid ""
+"\n"
+" Add hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:781
+msgid ""
+"\n"
+" Remove hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:20
+msgid ""
+"\n"
+"Groups of hosts.\n"
+"\n"
+"Manage groups of hosts. This is useful for applying access control to a\n"
+"number of hosts by using Host-based Access Control.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host group:\n"
+" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n"
+"\n"
+" Add another new host group:\n"
+" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n"
+"\n"
+" Add members to the hostgroup:\n"
+" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n"
+"\n"
+" Add a hostgroup as a member of another hostgroup:\n"
+" ipa hostgroup-add-member --hostgroups=baltimore maryland\n"
+"\n"
+" Remove a host from the hostgroup:\n"
+" ipa hostgroup-remove-member --hosts=box2 baltimore\n"
+"\n"
+" Display a host group:\n"
+" ipa hostgroup-show baltimore\n"
+"\n"
+" Delete a hostgroup:\n"
+" ipa hostgroup-del baltimore\n"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:55
+msgid ""
+"\n"
+" Hostgroup object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:78
msgid "Host-group"
msgstr "Grupa komputerów"
-#: ipalib/plugins/hostgroup.py:75
+#: ipalib/plugins/hostgroup.py:79
msgid "Name of host-group"
msgstr "Nazwa grupy komputerów"
-#: ipalib/plugins/hostgroup.py:82
+#: ipalib/plugins/hostgroup.py:86
msgid "A description of this host-group"
msgstr "Opis tej grupy komputerów"
-#: ipalib/plugins/hostgroup.py:85
-msgid "Member hosts"
-msgstr "Element komputerów"
-
-#: ipalib/plugins/hostgroup.py:89
-msgid "Member host-groups"
-msgstr "Element grupy komputerów"
+#: ipalib/plugins/hostgroup.py:94
+msgid ""
+"\n"
+" Add a new hostgroup.\n"
+" "
+msgstr ""
-#: ipalib/plugins/hostgroup.py:106
-#, python-format
+#: ipalib/plugins/hostgroup.py:98
msgid "Added hostgroup \"%(value)s\""
msgstr "Dodano grupę komputerów \"%(value)s\""
-#: ipalib/plugins/hostgroup.py:116
-#, python-format
+#: ipalib/plugins/hostgroup.py:104
+msgid ""
+"\n"
+" Delete a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:108
msgid "Deleted hostgroup \"%(value)s\""
msgstr "Usunięto grupę komputerów \"%(value)s\""
-#: ipalib/plugins/hostgroup.py:126
-#, python-format
+#: ipalib/plugins/hostgroup.py:114
+msgid ""
+"\n"
+" Modify a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:118
msgid "Modified hostgroup \"%(value)s\""
msgstr "Zmodyfikowano grupę komputerów \"%(value)s\""
-#: ipalib/plugins/hostgroup.py:137
-#, python-format
+#: ipalib/plugins/hostgroup.py:124
+msgid ""
+"\n"
+" Search for hostgroups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:128
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] "Pasuje %(count)d grupa komputerów"
msgstr[1] "Pasują %(count)d grupy komputerów"
msgstr[2] "Pasuje %(count)d grup komputerów"
-#: ipalib/plugins/internal.py:39
+#: ipalib/plugins/hostgroup.py:136
+msgid ""
+"\n"
+" Display information about a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:144
+msgid ""
+"\n"
+" Add members to a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:152
+msgid ""
+"\n"
+" Remove members from a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:22
+msgid ""
+"\n"
+"Plugins not accessible directly through the CLI, commands used internally\n"
+msgstr ""
+
+#: ipalib/plugins/internal.py:36
+msgid ""
+"\n"
+" Export plugin meta-data for the webUI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:44
+msgid "Name of object to export"
+msgstr "Nazwa obiektu do wyeksportowania"
+
+#: ipalib/plugins/internal.py:47
+#, fuzzy
+msgid "Name of method to export"
+msgstr "Nazwa obiektu do wyeksportowania"
+
+#: ipalib/plugins/internal.py:52
+msgid "Dict of JSON encoded IPA Objects"
+msgstr "Słownik obiektów IPA zakodowanych w formacie JSON"
+
+#: ipalib/plugins/internal.py:53
+#, fuzzy
+msgid "Dict of JSON encoded IPA Methods"
+msgstr "Słownik obiektów IPA zakodowanych w formacie JSON"
+
+#: ipalib/plugins/internal.py:96
msgid "Logged In As"
msgstr "Zalogowano jako"
-#: ipalib/plugins/internal.py:41
+#: ipalib/plugins/internal.py:99
+#, fuzzy
+msgid "Attribute"
+msgstr "Atrybuty"
+
+#: ipalib/plugins/internal.py:102
+#, fuzzy
+msgid "Add Automount Location"
+msgstr "Automatyczne montowanie nazwy położenia"
+
+#: ipalib/plugins/internal.py:103
+#, fuzzy
+msgid "Automount Location Settings"
+msgstr "Automatyczne montowanie nazwy położenia"
+
+#: ipalib/plugins/internal.py:106
+#, fuzzy
+msgid "Add Automount Map"
+msgstr "Automatyczne montowanie map"
+
+#: ipalib/plugins/internal.py:109
+#, fuzzy
+msgid "Add Automount Key"
+msgstr "Automatyczne montowanie kluczy"
+
+#: ipalib/plugins/internal.py:112
+msgid "Unspecified"
+msgstr ""
+
+#: ipalib/plugins/internal.py:113
+msgid "Key Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:114
+msgid "CA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:115
+msgid "Affiliation Changed"
+msgstr ""
+
+#: ipalib/plugins/internal.py:116
+msgid "Superseded"
+msgstr ""
+
+#: ipalib/plugins/internal.py:117
+#, fuzzy
+msgid "Cessation of Operation"
+msgstr "działanie na pliku"
+
+#: ipalib/plugins/internal.py:118
+#, fuzzy
+msgid "Certificate Hold"
+msgstr "Certyfikat"
+
+#: ipalib/plugins/internal.py:119
+msgid "Remove from CRL"
+msgstr ""
+
+#: ipalib/plugins/internal.py:120
+msgid "Privilege Withdrawn"
+msgstr ""
+
+#: ipalib/plugins/internal.py:121
+msgid "AA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:122
+msgid ""
+"To confirm your intention to revoke this certificate, select a reason from "
+"the pull-down list, and click the \"Revoke\" button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:124
+msgid "Note"
+msgstr ""
+
+#: ipalib/plugins/internal.py:125
+msgid "Reason for Revocation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:126
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\" "
+"button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:128
+#, fuzzy
+msgid "Issued To"
+msgstr "Wydawca"
+
+#: ipalib/plugins/internal.py:129
+#, fuzzy
+msgid "Common Name"
+msgstr "Nazwa komputera"
+
+#: ipalib/plugins/internal.py:130
+msgid "Organization"
+msgstr ""
+
+#: ipalib/plugins/internal.py:131
+msgid "Organizational Unit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:133
+#, fuzzy
+msgid "Issued By"
+msgstr "Wydawca"
+
+#: ipalib/plugins/internal.py:134
+msgid "Validity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:135
+#, fuzzy
+msgid "Issued On"
+msgstr "Wydawca"
+
+#: ipalib/plugins/internal.py:136
+msgid "Expires On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:137
+#, fuzzy
+msgid "Fingerprints"
+msgstr "Odcisk (MD5)"
+
+#: ipalib/plugins/internal.py:138
+#, fuzzy
+msgid "SHA1 Fingerprint"
+msgstr "Odcisk (MD5)"
+
+#: ipalib/plugins/internal.py:139
+#, fuzzy
+msgid "MD5 Fingerprint"
+msgstr "Odcisk (MD5)"
+
+#: ipalib/plugins/internal.py:140
+msgid "Enter the Base64-encoded CSR below"
+msgstr ""
+
+#: ipalib/plugins/internal.py:141
+#, fuzzy
+msgid "Valid Certificate Present"
+msgstr "Podstawa tematu certyfikatu"
+
+#: ipalib/plugins/internal.py:142
+#, fuzzy
+msgid "New Certificate"
+msgstr "Certyfikat"
+
+#: ipalib/plugins/internal.py:143
+#, fuzzy
+msgid "Certificate Revoked"
+msgstr "Certyfikat"
+
+#: ipalib/plugins/internal.py:144
+#, fuzzy
+msgid "No Valid Certificate"
+msgstr "Certyfikat"
+
+#: ipalib/plugins/internal.py:145
+msgid "Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:146
+msgid "Issue New Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:147
+msgid "Revoke Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:148
+msgid "Restore Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:152
+#, fuzzy
+msgid "Name"
+msgstr "Nazwa komputera"
+
+#: ipalib/plugins/internal.py:155
+msgid "Add Delegation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:158
+msgid "Add DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:159
+msgid "DNS Zone Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:162
+msgid "Add DNS Resource Record"
+msgstr ""
+
+#: ipalib/plugins/internal.py:163
+#, fuzzy
+msgid "Resource"
+msgstr "Nazwa zasobu"
+
+#: ipalib/plugins/internal.py:165
+msgid "Data"
+msgstr "Dane"
+
+#: ipalib/plugins/internal.py:166
+msgid "Records for DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:169
+#, fuzzy
+msgid "Add Group"
+msgstr "Grupa"
+
+#: ipalib/plugins/internal.py:170
+#, fuzzy
+msgid "Group Settings"
+msgstr "Opis grupy"
+
+#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
+#, fuzzy
+msgid "Is this a POSIX group?"
+msgstr "zmiana na grupę POSIX"
+
+#: ipalib/plugins/internal.py:174
+msgid "Add HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:306
+msgid "Active"
+msgstr ""
+
+#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:308
+msgid "Inactive"
+msgstr ""
+
+#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
+#, fuzzy
+msgid "Rule status"
+msgstr "Stan żądania"
+
+#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
+msgid "Who"
+msgstr ""
+
+#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
+msgid "Anyone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
+msgid "Specified Users and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:183
+#, fuzzy
+msgid "Accessing"
+msgstr "Czas dostępu"
+
+#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
+#, fuzzy
+msgid "Any Host"
+msgstr "Komputery"
+
+#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
+#, fuzzy
+msgid "Specified Hosts and Groups"
+msgstr "Grupy polecenia sudo"
+
+#: ipalib/plugins/internal.py:186
+#, fuzzy
+msgid "Via Service"
+msgstr "Usługi"
+
+#: ipalib/plugins/internal.py:187
+#, fuzzy
+msgid "Any Service"
+msgstr "Usługa HBAC"
+
+#: ipalib/plugins/internal.py:188
+#, fuzzy
+msgid "Specified Services and Groups"
+msgstr "Grupy usług"
+
+#: ipalib/plugins/internal.py:189
+msgid "From"
+msgstr ""
+
+#: ipalib/plugins/internal.py:192
+#, fuzzy
+msgid "Add HBAC Service"
+msgstr "Usługa HBAC"
+
+#: ipalib/plugins/internal.py:195
+#, fuzzy
+msgid "Add HBAC Service Group"
+msgstr "Grupy usługi HBAC"
+
+#: ipalib/plugins/internal.py:199
+#, fuzzy
+msgid "Add Host"
+msgstr "Komputery"
+
+#: ipalib/plugins/internal.py:200
+#, fuzzy
+msgid "Host Certificate"
+msgstr "Certyfikat"
+
+#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
+msgid "Host Name"
+msgstr "Nazwa komputera"
+
+#: ipalib/plugins/internal.py:202
+msgid "Host Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:203
+#, fuzzy
+msgid "Enrolled?"
+msgstr "Zapisz się"
+
+#: ipalib/plugins/internal.py:204
+#, fuzzy
+msgid "Enrollment"
+msgstr "Zapisz się"
+
+#: ipalib/plugins/internal.py:205
+#, fuzzy
+msgid "Fully Qualified Host Name"
+msgstr "Wymagana jest w pełni kwalifikowana nazwa komputera"
+
+#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
+msgid "Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:208
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
+msgid "Delete Key, Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:211
+msgid "Enroll via One-Time-Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:212
+msgid "Set OTP"
+msgstr ""
+
+#: ipalib/plugins/internal.py:213
+msgid "One-Time-Password has been set."
+msgstr ""
+
+#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
+msgid "Unprovisioning ${entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:215
+msgid "Are you sure you want to unprovision this host?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
+msgid "Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:219
+#, fuzzy
+msgid "Add Host Group"
+msgstr "Grupy komputerów"
+
+#: ipalib/plugins/internal.py:220
+#, fuzzy
+msgid "Host Group Settings"
+msgstr "Grupy komputerów"
+
+#: ipalib/plugins/internal.py:223
+#, fuzzy
+msgid "Kerberos ticket policy"
+msgstr "Polityka zgłoszeń Kerberosa"
+
+#: ipalib/plugins/internal.py:226
+#, fuzzy
+msgid "Add Netgroup"
+msgstr "Grupy sieciowe"
+
+#: ipalib/plugins/internal.py:227
+#, fuzzy
+msgid "Netgroup Settings"
+msgstr "Opis grupy sieciowej"
+
+#: ipalib/plugins/internal.py:230
+#, fuzzy
+msgid "Add Permission"
+msgstr "Uprawnienia"
+
+#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
+#, fuzzy
+msgid "Identity"
+msgstr "Informacje o tożsamości"
+
+#: ipalib/plugins/internal.py:233
+#, fuzzy
+msgid "Target"
+msgstr "Grupa docelowa"
+
+#: ipalib/plugins/internal.py:235
+#, fuzzy
+msgid "By Subtree"
+msgstr "Poddrzewo"
+
+#: ipalib/plugins/internal.py:236
+#, fuzzy
+msgid "Target Group"
+msgstr "Grupa docelowa"
+
+#: ipalib/plugins/internal.py:237
+msgid "Object By Type"
+msgstr ""
+
+#: ipalib/plugins/internal.py:238
+msgid "Permission with invalid target specification"
+msgstr ""
+
+#: ipalib/plugins/internal.py:241
+msgid "Add Privilege"
+msgstr ""
+
+#: ipalib/plugins/internal.py:242
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:245
+#, fuzzy
+msgid "Add Password Policy"
+msgstr "Polityka haseł"
+
+#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
+msgid "Password Policy"
+msgstr "Polityka haseł"
+
+#: ipalib/plugins/internal.py:249
+msgid "Add Role"
+msgstr ""
+
+#: ipalib/plugins/internal.py:250
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:253
+msgid "Add Self Service Definition"
+msgstr ""
+
+#: ipalib/plugins/internal.py:256
+#, fuzzy
+msgid "Add Service"
+msgstr "Usługa HBAC"
+
+#: ipalib/plugins/internal.py:257
+#, fuzzy
+msgid "Service Certificate"
+msgstr "Certyfikat"
+
+#: ipalib/plugins/internal.py:258
+#, fuzzy
+msgid "Service Settings"
+msgstr "Usługi"
+
+#: ipalib/plugins/internal.py:260
+#, fuzzy
+msgid "Provisioning"
+msgstr "Uprawnienia"
+
+#: ipalib/plugins/internal.py:261
+#, fuzzy
+msgid "Service"
+msgstr "Usługi"
+
+#: ipalib/plugins/internal.py:263
+#, fuzzy
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr "Nazwa naczelnika usługi Kerberos"
+
+#: ipalib/plugins/internal.py:267
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:271
+#, fuzzy
+msgid "Add Sudo Command"
+msgstr "Polecenie sudo"
+
+#: ipalib/plugins/internal.py:275
+#, fuzzy
+msgid "Add Sudo Command Group"
+msgstr "Grupy polecenia sudo"
+
+#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
+msgid "Commands"
+msgstr "Polecenia"
+
+#: ipalib/plugins/internal.py:279
+#, fuzzy
+msgid "Add Sudo Rule"
+msgstr "Reguła sudo"
+
+#: ipalib/plugins/internal.py:287
+#, fuzzy
+msgid "Access this host"
+msgstr "Czas dostępu"
+
+#: ipalib/plugins/internal.py:290
+#, fuzzy
+msgid "Run Commands"
+msgstr "Polecenia"
+
+#: ipalib/plugins/internal.py:291
+#, fuzzy
+msgid "Any Command"
+msgstr "Polecenia"
+
+#: ipalib/plugins/internal.py:292
+#, fuzzy
+msgid "Specified Commands and Groups"
+msgstr "Grupy polecenia sudo"
+
+#: ipalib/plugins/internal.py:293
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:294
+#, fuzzy
+msgid "Any Group"
+msgstr "Grupa"
+
+#: ipalib/plugins/internal.py:295
+#, fuzzy
+msgid "Specified Groups"
+msgstr "Grupy usług"
+
+#: ipalib/plugins/internal.py:297
+#, fuzzy
+msgid "External"
+msgstr "Zewnętrzny komputer"
+
+#: ipalib/plugins/internal.py:300
+#, fuzzy
+msgid "Add User"
+msgstr "Użytkownik"
+
+#: ipalib/plugins/internal.py:301
+#, fuzzy
+msgid "Account Settings"
+msgstr "Informacje o koncie"
+
+#: ipalib/plugins/internal.py:302
+#, fuzzy
+msgid "Contact Settings"
+msgstr "Informacje o kontakcie"
+
+#: ipalib/plugins/internal.py:303
+msgid "Mailing Address"
+msgstr "Adres pocztowy"
+
+#: ipalib/plugins/internal.py:304
+#, fuzzy
+msgid "Employee Information"
+msgstr "Informacje o pracowniku"
+
+#: ipalib/plugins/internal.py:305
+msgid "Misc. Information"
+msgstr "Różne informacje"
+
+#: ipalib/plugins/internal.py:307
+msgid "Click to Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:309
+msgid "Click to Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:310
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:311
+#, fuzzy
+msgid "Reset Password"
+msgstr "Hasło użytkownika"
+
+#: ipalib/plugins/internal.py:312
+#, fuzzy
+msgid "New Password"
+msgstr "Hasło"
+
+#: ipalib/plugins/internal.py:313
+#, fuzzy
+msgid "Repeat Password"
+msgstr "Hasło"
+
+#: ipalib/plugins/internal.py:314
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:315
+#, fuzzy
+msgid "Passwords must match"
+msgstr "Hasła się nie zgadzają"
+
+#: ipalib/plugins/internal.py:319
msgid "Add"
msgstr "Dodaj"
-#: ipalib/plugins/internal.py:42
+#: ipalib/plugins/internal.py:320
+msgid "Add and Add Another"
+msgstr ""
+
+#: ipalib/plugins/internal.py:321
+msgid "Add and Edit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:322
+msgid "Add and Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:323
+msgid "Add Many"
+msgstr ""
+
+#: ipalib/plugins/internal.py:324
+#, fuzzy
+msgid "Back to List"
+msgstr "Wróć na górę"
+
+#: ipalib/plugins/internal.py:325
+#, fuzzy
+msgid "Cancel"
+msgstr "Anulowano."
+
+#: ipalib/plugins/internal.py:326
+msgid "Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:327
+msgid "Enroll"
+msgstr "Zapisz się"
+
+#: ipalib/plugins/internal.py:328
msgid "Find"
msgstr "Znajdź"
-#: ipalib/plugins/internal.py:43
+#: ipalib/plugins/internal.py:329
+msgid "Get"
+msgstr ""
+
+#: ipalib/plugins/internal.py:330
+#, fuzzy
+msgid "Issue"
+msgstr "Wydawca"
+
+#: ipalib/plugins/internal.py:331
+msgid "OK"
+msgstr ""
+
+#: ipalib/plugins/internal.py:332
msgid "Reset"
msgstr "Przywróć"
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:333
+msgid "Delete"
+msgstr "Usuń"
+
+#: ipalib/plugins/internal.py:334
+msgid "Restore"
+msgstr ""
+
+#: ipalib/plugins/internal.py:335
+msgid "Retry"
+msgstr ""
+
+#: ipalib/plugins/internal.py:336
+#, fuzzy
+msgid "Revoke"
+msgstr "Unieważniono"
+
+#: ipalib/plugins/internal.py:337
msgid "Update"
msgstr "Zaktualizuj"
-#: ipalib/plugins/internal.py:45
-msgid "Enroll"
-msgstr "Zapisz się"
+#: ipalib/plugins/internal.py:338
+msgid "View"
+msgstr ""
-#: ipalib/plugins/internal.py:46
-msgid "Delete"
-msgstr "Usuń"
+#: ipalib/plugins/internal.py:341
+msgid "Available"
+msgstr ""
+
+#: ipalib/plugins/internal.py:342
+msgid "This page has unsaved changes. Please save or revert."
+msgstr ""
+
+#: ipalib/plugins/internal.py:343
+msgid "Dirty"
+msgstr ""
+
+#: ipalib/plugins/internal.py:344
+#, fuzzy
+msgid "Hide already enrolled."
+msgstr "Komputer jest już dołączony.\n"
+
+#: ipalib/plugins/internal.py:345
+msgid "Select ${entity} to be removed."
+msgstr ""
+
+#: ipalib/plugins/internal.py:346
+msgid "Remove ${entity}."
+msgstr ""
+
+#: ipalib/plugins/internal.py:347
+msgid "Prospective"
+msgstr ""
+
+#: ipalib/plugins/internal.py:350
+msgid "Managed by"
+msgstr ""
+
+#: ipalib/plugins/internal.py:351
+#, fuzzy
+msgid "Member"
+msgstr "Element"
+
+#: ipalib/plugins/internal.py:352
+msgid "Indirect Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:353
+#, fuzzy
+msgid "Member Of"
+msgstr "Element"
+
+#: ipalib/plugins/internal.py:354
+msgid "Indirect Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
+msgid "Settings"
+msgstr ""
-#: ipalib/plugins/internal.py:49
+#: ipalib/plugins/internal.py:358
+msgid "Search"
+msgstr ""
+
+#: ipalib/plugins/internal.py:362
msgid "Quick Links"
msgstr "Szybkie odnośniki"
-#: ipalib/plugins/internal.py:50
+#: ipalib/plugins/internal.py:363
msgid "Select All"
msgstr "Zaznacz wszystko"
-#: ipalib/plugins/internal.py:51
+#: ipalib/plugins/internal.py:364
msgid "Unselect All"
msgstr "Odznacz wszystko"
-#: ipalib/plugins/internal.py:52
-msgid "Do you really want to delete the selected entries?"
+#: ipalib/plugins/internal.py:365
+#, fuzzy
+msgid "Are you sure you want to delete selected entries?"
msgstr "Na pewno usunąć zaznaczone wpisy?"
-#: ipalib/plugins/internal.py:55
-msgid "Identity Details"
+#: ipalib/plugins/internal.py:366
+msgid ""
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr ""
+
+#: ipalib/plugins/internal.py:370
+msgid "General"
+msgstr ""
+
+#: ipalib/plugins/internal.py:371
+#, fuzzy
+msgid "Identity Settings"
msgstr "Informacje o tożsamości"
-#: ipalib/plugins/internal.py:56
-msgid "Account Details"
-msgstr "Informacje o koncie"
+#: ipalib/plugins/internal.py:372
+msgid "${entity} ${primary_key} Settings"
+msgstr ""
-#: ipalib/plugins/internal.py:57
-msgid "Contact Details"
-msgstr "Informacje o kontakcie"
+#: ipalib/plugins/internal.py:373
+msgid "Back to Top"
+msgstr "Wróć na górę"
-#: ipalib/plugins/internal.py:58
-msgid "Mailing Address"
-msgstr "Adres pocztowy"
+#: ipalib/plugins/internal.py:377
+msgid "Policy"
+msgstr ""
-#: ipalib/plugins/internal.py:59
-msgid " Employee Information"
-msgstr "Informacje o pracowniku"
+#: ipalib/plugins/internal.py:378
+msgid "Audit"
+msgstr ""
-#: ipalib/plugins/internal.py:60
-msgid "Misc. Information"
-msgstr "Różne informacje"
+#: ipalib/plugins/internal.py:379
+#, fuzzy
+msgid "IPA Server"
+msgstr "Nazwa serwera IPA"
-#: ipalib/plugins/internal.py:61
-msgid "Back to Top"
-msgstr "Wróć na górę"
+#: ipalib/plugins/internal.py:380
+#, fuzzy
+msgid "Sudo"
+msgstr "Polecenia sudo"
-#: ipalib/plugins/internal.py:66
-msgid "Name of object to export"
-msgstr "Nazwa obiektu do wyeksportowania"
+#: ipalib/plugins/internal.py:381
+msgid "Host Based Access Control"
+msgstr ""
-#: ipalib/plugins/internal.py:71
-msgid "Dict of JSON encoded IPA Objects"
-msgstr "Słownik obiektów IPA zakodowanych w formacie JSON"
+#: ipalib/plugins/internal.py:382
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:383
+msgid "Automount"
+msgstr "Automatyczne montowanie"
-#: ipalib/plugins/internal.py:72
+#: ipalib/plugins/internal.py:386
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:387
+msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:388
+msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:389
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:392
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:395
+msgid ""
+"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."
+msgstr ""
+
+#: ipalib/plugins/internal.py:399
msgid "Dict of I18N messages"
msgstr "Słownik komunikatów umiędzynaradawiania"
-#: ipalib/plugins/krbtpolicy.py:59
+#: ipalib/plugins/kerberos.py:20
+msgid ""
+"\n"
+"Backend plugin for Kerberos.\n"
+"\n"
+"This wraps the python-kerberos and python-krbV bindings.\n"
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:35
+msgid ""
+"\n"
+" Kerberos backend plugin.\n"
+"\n"
+" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
+" bindings also). Importantly, this plugin does correct Unicode\n"
+" encoding/decoding of values going-to/coming-from the bindings.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:44
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:50
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:56
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:62
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:68
+msgid ""
+"\n"
+" Return the default ccache file name.\n"
+"\n"
+" This will return something like '/tmp/krb5cc_500'.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:79
+msgid ""
+"\n"
+" Return the principal name in default credential cache.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'. If no "
+"credential\n"
+" cache exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:91
+msgid ""
+"\n"
+" Return the realm from the default credential cache.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'. If no credential "
+"cache\n"
+" exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:103
+msgid ""
+"\n"
+" Return the principal from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:111
+msgid ""
+"\n"
+" Return the realm from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:19
+msgid ""
+"\n"
+"Kerberos ticket policy\n"
+"\n"
+"There is a single Kerberos ticket policy. This policy defines the\n"
+"maximum ticket lifetime and the maximum renewal age, the period during\n"
+"which the ticket is renewable.\n"
+"\n"
+"You can also create a per-user ticket policy by specifying the user login.\n"
+"\n"
+"For changes to the global policy to take effect, restarting the KDC service\n"
+"is required, which can be achieved using:\n"
+"\n"
+"service krb5kdc restart\n"
+"\n"
+"Changes to per-user policies take effect immediately for newly requested\n"
+"tickets (e.g. when the user next runs kinit).\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Display the current Kerberos ticket policy:\n"
+" ipa krbtpolicy-show\n"
+"\n"
+" Reset the policy to the default:\n"
+" ipa krbtpolicy-reset\n"
+"\n"
+" Modify the policy to 8 hours max life, 1-day max renewal:\n"
+" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n"
+"\n"
+" Display effective Kerberos ticket policy for user 'admin':\n"
+" ipa krbtpolicy-show admin\n"
+"\n"
+" Reset per-user policy for user 'admin':\n"
+" ipa krbtpolicy-reset admin\n"
+"\n"
+" Modify per-user policy for user 'admin':\n"
+" ipa krbtpolicy-mod admin --maxlife=3600\n"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:71
+#, fuzzy
+msgid ""
+"\n"
+" Kerberos Ticket Policy object\n"
+" "
+msgstr "Polityka zgłoszeń Kerberosa"
+
+#: ipalib/plugins/krbtpolicy.py:79
msgid "Kerberos Ticket Policy"
msgstr "Polityka zgłoszeń Kerberosa"
-#: ipalib/plugins/krbtpolicy.py:64 ipalib/plugins/passwd.py:52
+#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
msgid "User name"
msgstr "Nazwa użytkownika"
-#: ipalib/plugins/krbtpolicy.py:65
+#: ipalib/plugins/krbtpolicy.py:85
msgid "Manage ticket policy for specific user"
msgstr "Zarządzanie polityką zgłoszeń dla podanego użytkownika"
-#: ipalib/plugins/krbtpolicy.py:70
+#: ipalib/plugins/krbtpolicy.py:90
msgid "Max life"
msgstr "Maksymalny czas życia"
-#: ipalib/plugins/krbtpolicy.py:71
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Maximum ticket life (seconds)"
msgstr "Minimalny czas życia zgłoszenia (sekundy)"
-#: ipalib/plugins/krbtpolicy.py:75
+#: ipalib/plugins/krbtpolicy.py:96
msgid "Max renew"
msgstr "Maksymalne odnowienie"
-#: ipalib/plugins/krbtpolicy.py:76
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Maximum renewable age (seconds)"
msgstr "Maksymalny czas, w którym możliwe jest odnowienie (sekundy)"
-#: ipalib/plugins/migration.py:44
-#, python-format
+#: ipalib/plugins/krbtpolicy.py:111
+#, fuzzy
+msgid ""
+"\n"
+" Modify Kerberos ticket policy.\n"
+" "
+msgstr "Polityka zgłoszeń Kerberosa"
+
+#: ipalib/plugins/krbtpolicy.py:125
+#, fuzzy
+msgid ""
+"\n"
+" Display the current Kerberos ticket policy.\n"
+" "
+msgstr "Wyświetlenie wpisu użytkownika dla bieżącego naczelnika Kerberosa"
+
+#: ipalib/plugins/krbtpolicy.py:149
+msgid ""
+"\n"
+" Reset Kerberos ticket policy to the default values.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:19
+msgid ""
+"\n"
+"Migration to IPA\n"
+"\n"
+"Migrate users and groups from an LDAP server to IPA.\n"
+"\n"
+"This performs an LDAP query against the remote server searching for\n"
+"users and groups in a container. In order to migrate passwords you need\n"
+"to bind as a user that can read the userPassword attribute on the remote\n"
+"server. This is generally restricted to high-level admins such as\n"
+"cn=Directory Manager in 389-ds (this is the default bind user).\n"
+"\n"
+"The default user container is ou=People.\n"
+"\n"
+"The default group container is ou=Groups.\n"
+"\n"
+"Users and groups that already exist on the IPA server are skipped.\n"
+"\n"
+"Two LDAP schemas define how group members are stored: RFC2307 and\n"
+"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n"
+"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n"
+"\n"
+"Migrated users do not have Kerberos credentials, they have only their\n"
+"LDAP password. To complete the migration process, users need to go\n"
+"to http://ipa.example.com/ipa/migration and authenticate using their\n"
+"LDAP password in order to generate their Kerberos credentials.\n"
+"\n"
+"Migration is disabled by default. Use the command ipa config-mod to\n"
+"enable it:\n"
+"\n"
+" ipa config-mod --enable-migration=TRUE\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" The simplest migration, accepting all defaults:\n"
+" ipa migrate-ds ldap://ds.example.com:389\n"
+"\n"
+" Specify the user and group container. This can be used to migrate user and\n"
+" group data from an IPA v1 server:\n"
+" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-"
+"container='cn=groups,cn=accounts' ldap://ds.example.com:389\n"
+msgstr ""
+
+#: ipalib/plugins/migration.py:78
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
"Naczelnik Kerberosa %s już istnieje. Należy użyć polecenia \"ipa user-mod\", "
"aby ustawić go ręcznie."
-#: ipalib/plugins/migration.py:45
+#: ipalib/plugins/migration.py:79
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
@@ -1485,79 +4892,133 @@ msgstr ""
"Dodanie użytkownika do domyślnej grupy nie powiodło się. Należy użyć "
"polecenia \"ipa group-add-member\", aby dodać go ręcznie."
-#: ipalib/plugins/migration.py:169
+#: ipalib/plugins/migration.py:175
+msgid ""
+"\n"
+" Convert usernames in member attributes to work in IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:220
+#, fuzzy
+msgid "Invalid LDAP URI."
+msgstr "Adres URI LDAP"
+
+#: ipalib/plugins/migration.py:225
+msgid ""
+"\n"
+" Migrate users and groups from DS to IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:266
msgid "LDAP URI"
msgstr "Adres URI LDAP"
-#: ipalib/plugins/migration.py:170
+#: ipalib/plugins/migration.py:267
msgid "LDAP URI of DS server to migrate from"
msgstr "Adres URI LDAP serwera DS, z którego migrować"
-#: ipalib/plugins/migration.py:174
+#: ipalib/plugins/migration.py:272
msgid "bind password"
msgstr "hasło Bind"
-#: ipalib/plugins/migration.py:181
+#: ipalib/plugins/migration.py:279
msgid "Bind DN"
msgstr "DN dowiązania"
-#: ipalib/plugins/migration.py:187
+#: ipalib/plugins/migration.py:285
msgid "User container"
msgstr "Kontener użytkownika"
-#: ipalib/plugins/migration.py:188
+#: ipalib/plugins/migration.py:286
msgid "RDN of container for users in DS"
msgstr "RDN kontenera dla użytkowników w DS"
-#: ipalib/plugins/migration.py:194
+#: ipalib/plugins/migration.py:292
msgid "Group container"
msgstr "Kontener grupy"
-#: ipalib/plugins/migration.py:195
+#: ipalib/plugins/migration.py:293
msgid "RDN of container for groups in DS"
msgstr "RDN kontenera dla grup w DS"
-#: ipalib/plugins/migration.py:200
-msgid "Continous operation mode. Errors are reported but the process continues"
+#: ipalib/plugins/migration.py:299
+msgid "User object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:300
+#, fuzzy
+msgid ""
+"Comma-separated list of objectclasses used to search for user entries in DS"
+msgstr ""
+"Lista pól oddzielonych przecinkami do przeszukania podczas wyszukiwania "
+"użytkowników"
+
+#: ipalib/plugins/migration.py:306
+msgid "Group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:307
+#, fuzzy
+msgid ""
+"Comma-separated list of objectclasses used to search for group entries in DS"
+msgstr ""
+"Lista pól oddzielonych przecinkami do przeszukania podczas wyszukiwania grup"
+
+#: ipalib/plugins/migration.py:313
+msgid "LDAP schema"
+msgstr ""
+
+#: ipalib/plugins/migration.py:314
+msgid ""
+"The schema used on the LDAP server. Supported values are RFC2307 and "
+"RFC2307bis. The default is RFC2307bis"
+msgstr ""
+
+#: ipalib/plugins/migration.py:320
+#, fuzzy
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
"Tryb działania ciągłego. Błędy są zgłaszane, ale proces jest kontynuowany"
-#: ipalib/plugins/migration.py:208
+#: ipalib/plugins/migration.py:328
msgid "Lists of objects migrated; categorized by type."
msgstr "Lista migrowanych obiektów, ułożonych w kategorie według typu."
-#: ipalib/plugins/migration.py:212
+#: ipalib/plugins/migration.py:332
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
"Lista obiektów, które nie mogły zostać migrowane, ułożonych w kategorie "
"według typu."
-#: ipalib/plugins/migration.py:216
+#: ipalib/plugins/migration.py:336
msgid "False if migration mode was disabled."
msgstr "Fałsz, jeśli wyłączono tryb migracji"
-#: ipalib/plugins/migration.py:220
-#, python-format
+#: ipalib/plugins/migration.py:340
msgid "comma-separated list of %s to exclude from migration"
msgstr "lista %s oddzielonych przecinkami do wykluczenia z migracji"
-#: ipalib/plugins/migration.py:222
+#: ipalib/plugins/migration.py:342
+#, fuzzy
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
-"migration process might be uncomplete\n"
+"migration process might be incomplete\n"
msgstr ""
"wyniki wyszukiwania obiektów do migrowania\n"
"zostały skrócone przez serwer. Proces\n"
"migracji mógł nie zostać ukończony\n"
-#: ipalib/plugins/migration.py:227
+#: ipalib/plugins/migration.py:347
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
"Tryb migracji jest wyłączony. Należy użyć polecenia \"ipa config-mod\", aby "
"go włączyć."
-#: ipalib/plugins/migration.py:230
+#: ipalib/plugins/migration.py:350
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -1572,16 +5033,55 @@ msgstr ""
"https://twoja.domena/ipa/migration/, zanim będą mogli\n"
"używać swoich kont Kerberosa."
-#: ipalib/plugins/migration.py:297
-#, python-format
+#: ipalib/plugins/migration.py:358
+msgid ""
+"\n"
+" Call get_options of the baseclass and add \"exclude\" options\n"
+" for each type of object being migrated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:375
+msgid ""
+"\n"
+" Convert all \"exclude\" option values to lower-case.\n"
+"\n"
+" Also, empty List parameters are converted to None, but the "
+"migration\n"
+" plugin doesn't like that - convert back to empty lists.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:399
+msgid ""
+"\n"
+" Migrate objects from DS to LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:425
msgid "Container for %(container)s not found"
msgstr "Nie odnaleziono kontenera dla %(container)s"
+#: ipalib/plugins/misc.py:20
+msgid ""
+"\n"
+"Misc plug-ins\n"
+msgstr ""
+
+#: ipalib/plugins/misc.py:36
+msgid "Show environment variables"
+msgstr ""
+
#: ipalib/plugins/misc.py:38
-#, python-format
msgid "%(count)d variables"
msgstr "%(count)d zmiennych"
+#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115
+msgid ""
+"retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
#: ipalib/plugins/misc.py:61
msgid "Total number of variables env (>= count)"
msgstr "Całkowita liczba zmiennych środowiskowych (>= licznik)"
@@ -1590,446 +5090,2495 @@ msgstr "Całkowita liczba zmiennych środowiskowych (>= licznik)"
msgid "Number of variables returned (<= total)"
msgstr "Liczba zwróconych zmiennych (<= razem)"
-#: ipalib/plugins/misc.py:109
-#, python-format
+#: ipalib/plugins/misc.py:106
+msgid "Show all loaded plugins"
+msgstr ""
+
+#: ipalib/plugins/misc.py:108
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] "Wczytano %(count)d wtyczkę"
msgstr[1] "Wczytano %(count)d wtyczki"
msgstr[2] "Wczytano %(count)d wtyczek"
-#: ipalib/plugins/misc.py:116
+#: ipalib/plugins/misc.py:126
msgid "Number of plugins loaded"
msgstr "Liczba wczytanych wtyczek"
-#: ipalib/plugins/netgroup.py:57
+#: ipalib/plugins/netgroup.py:20
+msgid ""
+"\n"
+"Netgroups\n"
+"\n"
+"A netgroup is a group used for permission checking. It can contain both\n"
+"user and host values.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new netgroup:\n"
+" ipa netgroup-add --desc=\"NFS admins\" admins\n"
+"\n"
+" Add members to the netgroup:\n"
+" ipa netgroup-add-member --users=tuser1,tuser2 admins\n"
+"\n"
+" Remove a member from the netgroup:\n"
+" ipa netgroup-remove-member --users=tuser2 admins\n"
+"\n"
+" Display information about a netgroup:\n"
+" ipa netgroup-show admins\n"
+"\n"
+" Delete a netgroup:\n"
+" ipa netgroup-del admins\n"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:59
msgid "Member Host"
msgstr "Komputer elementu"
-#: ipalib/plugins/netgroup.py:63
-msgid "External host"
-msgstr "Zewnętrzny komputer"
+#: ipalib/plugins/netgroup.py:67
+msgid ""
+"\n"
+" Netgroup object.\n"
+" "
+msgstr ""
-#: ipalib/plugins/netgroup.py:85
-msgid "Net Groups"
+#: ipalib/plugins/netgroup.py:98
+msgid "Netgroups"
msgstr "Grupy sieciowe"
-#: ipalib/plugins/netgroup.py:90
+#: ipalib/plugins/netgroup.py:103
msgid "Netgroup name"
msgstr "Nazwa grupy sieciowej"
-#: ipalib/plugins/netgroup.py:97
+#: ipalib/plugins/netgroup.py:110
msgid "Netgroup description"
msgstr "Opis grupy sieciowej"
-#: ipalib/plugins/netgroup.py:101
+#: ipalib/plugins/netgroup.py:114
msgid "NIS domain name"
msgstr "Nazwa domeny NIS"
-#: ipalib/plugins/netgroup.py:106
+#: ipalib/plugins/netgroup.py:119
msgid "IPA unique ID"
msgstr "Unikalny identyfikator IPA"
-#: ipalib/plugins/pwpolicy.py:84
-#, python-format
+#: ipalib/plugins/netgroup.py:140
+msgid ""
+"\n"
+" Add a new netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:144
+#, fuzzy
+msgid "Added netgroup \"%(value)s\""
+msgstr "Dodano grupę \"%(value)s\""
+
+#: ipalib/plugins/netgroup.py:153
+msgid ""
+"\n"
+" Delete a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:156
+#, fuzzy
+msgid "Deleted netgroup \"%(value)s\""
+msgstr "Usunięto grupę \"%(value)s\""
+
+#: ipalib/plugins/netgroup.py:162
+msgid ""
+"\n"
+" Modify a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:166
+#, fuzzy
+msgid "Modified netgroup \"%(value)s\""
+msgstr "Zmodyfikowano grupę \"%(value)s\""
+
+#: ipalib/plugins/netgroup.py:180
+msgid ""
+"\n"
+" Search for a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:185
+#, fuzzy
+msgid "%(count)d netgroup matched"
+msgid_plural "%(count)d netgroups matched"
+msgstr[0] "Pasuje %(count)d grupa"
+msgstr[1] "Pasują %(count)d grupy"
+msgstr[2] "Pasuje %(count)d grup"
+
+#: ipalib/plugins/netgroup.py:213
+msgid ""
+"\n"
+" Display information about a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:222
+msgid ""
+"\n"
+" Add members to a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:258
+msgid ""
+"\n"
+" Remove members from a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:19
+msgid ""
+"\n"
+"Set a user's password\n"
+"\n"
+"If someone other than a user changes that user's password (e.g., Helpdesk\n"
+"resets it) then the password will need to be changed the first time it\n"
+"is used. This is so the end-user is the only one who knows the password.\n"
+"\n"
+"The IPA password policy controls how often a password may be changed,\n"
+"what strength requirements exist, and the length of the password history.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" To reset your own password:\n"
+" ipa passwd\n"
+"\n"
+" To change another user's password:\n"
+" ipa passwd tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/passwd.py:46
+#, fuzzy
+msgid ""
+"\n"
+" Set a user's password\n"
+" "
+msgstr "Ustaw hasło użytkownika"
+
+#: ipalib/plugins/passwd.py:64
+#, fuzzy
+msgid "Changed password for \"%(value)s\""
+msgstr "Dodano regułę sudo \"%(value)s\""
+
+#: ipalib/plugins/passwd.py:67
+msgid ""
+"\n"
+" Execute the passwd operation.\n"
+"\n"
+" The dn should not be passed as a keyword argument as it is "
+"constructed\n"
+" by this method.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param principal: The login name or principal of the user\n"
+" :param password: the new password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:19
+msgid ""
+"\n"
+"Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of rights. A permission is\n"
+"a human-readable form of a 389-ds Access Control Rule, or instruction "
+"(ACI).\n"
+"A permission grants the right to perform a specific task such as adding a\n"
+"user, modifying a group, etc.\n"
+"\n"
+"A permission may not contain other permissions.\n"
+"\n"
+"* A permission grants access to read, write, add or delete.\n"
+"* A privilege combines similar permissions (for example all the permissions\n"
+" needed to add a user).\n"
+"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n"
+"\n"
+"A permission is made up of a number of different parts:\n"
+"\n"
+"1. The name of the permission.\n"
+"2. The target of the permission.\n"
+"3. The rights granted by the permission.\n"
+"\n"
+"Rights define what operations are allowed, and may be one or more\n"
+"of the following:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Read permission is granted for most attributes by default so the read\n"
+"permission is not expected to be used very often.\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"There are a number of allowed targets:\n"
+"1. type: a type of object (user, group, etc).\n"
+"2. memberof: a member of a group or hostgroup\n"
+"3. filter: an LDAP filter\n"
+"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n"
+" super-set of the \"type\" target.\n"
+"5. targetgroup: grant access to modify a specific group (such as granting\n"
+" the rights to manage group membership)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a permission that grants the creation of users:\n"
+" ipa permission-add --type=user --permissions=add \"Add Users\"\n"
+"\n"
+" Add a permission that grants the ability to manage group membership:\n"
+" ipa permission-add --attrs=member --permissions=write --type=group "
+"\"Manage Group Members\"\n"
+msgstr ""
+
+#: ipalib/plugins/permission.py:84
+#, fuzzy
+msgid "Permission Type"
+msgstr "Uprawnienia"
+
+#: ipalib/plugins/permission.py:89
+msgid ""
+"\n"
+" Permission object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:112
+#, fuzzy
+msgid "Permission name"
+msgstr "Uprawnienia"
+
+#: ipalib/plugins/permission.py:119
+#, fuzzy
+msgid ""
+"Comma-separated list of permissions to grant (read, write, add, delete, all)"
+msgstr ""
+"lista uprawnień oddzielonych przecinkami do udzielenia (odczyt, zapis, "
+"dodanie, usunięcie, wszystkie)"
+
+#: ipalib/plugins/permission.py:132
+#, fuzzy
+msgid ""
+"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
+msgstr "typ obiektu IPA (użytkownik, grupa, komputer)"
+
+#: ipalib/plugins/permission.py:138
+#, fuzzy
+msgid "Member of group"
+msgstr "Element grupy"
+
+#: ipalib/plugins/permission.py:139
+#, fuzzy
+msgid "Target members of a group"
+msgstr "Element grupy"
+
+#: ipalib/plugins/permission.py:151
+#, fuzzy
+msgid "Subtree to apply permissions to"
+msgstr "Poddrzewo, do którego zastosować ACI"
+
+#: ipalib/plugins/permission.py:157
+#, fuzzy
+msgid "User group to apply permissions to"
+msgstr "Grupa, do której zastosować ACI"
+
+#: ipalib/plugins/permission.py:177
+msgid ""
+"\n"
+" Add a new permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:181
+#, fuzzy
+msgid "Added permission \"%(value)s\""
+msgstr "Dodano użytkownika \"%(value)s\""
+
+#: ipalib/plugins/permission.py:236
+msgid ""
+"\n"
+" Delete a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:240
+#, fuzzy
+msgid "Deleted permission \"%(value)s\""
+msgstr "Usunięto użytkownika \"%(value)s\""
+
+#: ipalib/plugins/permission.py:256
+msgid ""
+"\n"
+" Modify a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:260
+#, fuzzy
+msgid "Modified permission \"%(value)s\""
+msgstr "Zmodyfikowano użytkownika \"%(value)s\""
+
+#: ipalib/plugins/permission.py:352
+msgid ""
+"\n"
+" Search for permissions.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:356
+#, fuzzy
+msgid "%(count)d permission matched"
+msgid_plural "%(count)d permissions matched"
+msgstr[0] "Pasuje %(count)d użytkownik"
+msgstr[1] "Pasuje %(count)d użytkowników"
+msgstr[2] "Pasuje %(count)d użytkowników"
+
+#: ipalib/plugins/permission.py:405
+msgid ""
+"\n"
+" Display information about a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:428
+msgid ""
+"\n"
+" Add members to a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:437
+msgid ""
+"\n"
+" Remove members from a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:19
+msgid ""
+"\n"
+"Ping the remote IPA server\n"
+msgstr ""
+
+#: ipalib/plugins/ping.py:29
+msgid ""
+"\n"
+" ping a remote server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:37
+msgid ""
+"\n"
+" A possible enhancement would be to take an argument and echo it\n"
+" back but a fixed value works for now.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:19
+msgid ""
+"\n"
+"Kerberos pkinit options\n"
+"\n"
+"Enable or disable anonymous pkinit using the principal\n"
+"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n"
+"pkinit support.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Enable anonymous pkinit:\n"
+" ipa pkinit-anonymous enable\n"
+"\n"
+" Disable anonymous pkinit:\n"
+" ipa pkinit-anonymous disable\n"
+"\n"
+"For more information on anonymous pkinit see:\n"
+"\n"
+"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:46
+msgid ""
+"\n"
+" PKINIT Options\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:51
+msgid "PKINIT"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:56
+msgid ""
+"\n"
+" Accepts only Enable/Disable.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:67
+msgid ""
+"\n"
+" Enable or Disable Anonymous PKINIT\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:19
+msgid ""
+"\n"
+"Privileges\n"
+"\n"
+"A privilege combines permissions into a logical task. A permission provides\n"
+"the rights to do a single task. There are some IPA operations that require\n"
+"multiple permissions to succeed. A privilege is where permissions are\n"
+"combined in order to perform a specific task.\n"
+"\n"
+"For example, adding a user requires the following permissions:\n"
+" * Creating a new user entry\n"
+" * Resetting a user password\n"
+" * Adding the new user to the default IPA users group\n"
+"\n"
+"Combining these three low-level tasks into a higher level task in the\n"
+"form of a privilege named \"Add User\" makes it easier to manage Roles.\n"
+"\n"
+"A privilege may not contain other privileges.\n"
+"\n"
+"See role and permission for additional information.\n"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:45
+msgid ""
+"\n"
+" Privilege object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:65
+msgid "Privileges"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:70
+#, fuzzy
+msgid "Privilege name"
+msgstr "Nazwa naczelnika"
+
+#: ipalib/plugins/privilege.py:77
+#, fuzzy
+msgid "Privilege description"
+msgstr "opis"
+
+#: ipalib/plugins/privilege.py:85
+msgid ""
+"\n"
+" Add a new privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:89
+#, fuzzy
+msgid "Added privilege \"%(value)s\""
+msgstr "Dodano usługę \"%(value)s\""
+
+#: ipalib/plugins/privilege.py:95
+msgid ""
+"\n"
+" Delete a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:99
+#, fuzzy
+msgid "Deleted privilege \"%(value)s\""
+msgstr "Usunięto usługę \"%(value)s\""
+
+#: ipalib/plugins/privilege.py:105
+msgid ""
+"\n"
+" Modify a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:109
+#, fuzzy
+msgid "Modified privilege \"%(value)s\""
+msgstr "Zmodyfikowano usługę \"%(value)s\""
+
+#: ipalib/plugins/privilege.py:115
+msgid ""
+"\n"
+" Search for privileges.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:119
+#, fuzzy
+msgid "%(count)d privilege matched"
+msgid_plural "%(count)d privileges matched"
+msgstr[0] "Pasuje %(count)d usługa"
+msgstr[1] "Pasuje %(count)d usługi"
+msgstr[2] "Pasuje %(count)d usług"
+
+#: ipalib/plugins/privilege.py:127
+msgid ""
+"\n"
+" Display information about a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:135
+msgid ""
+"\n"
+" Add members to a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:144
+msgid ""
+"\n"
+" Remove members from a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:153
+msgid ""
+"\n"
+" Add permissions to a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:169
+#, fuzzy
+msgid "Number of permissions added"
+msgstr "Liczba dodanych elementów"
+
+#: ipalib/plugins/privilege.py:177
+msgid ""
+"\n"
+" Remove permissions from a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:195
+#, fuzzy
+msgid "Number of permissions removed"
+msgstr "Liczba usuniętych elementów"
+
+#: ipalib/plugins/pwpolicy.py:20
+msgid ""
+"\n"
+"Password policy\n"
+"\n"
+"A password policy sets limitations on IPA passwords, including maximum\n"
+"lifetime, minimum lifetime, the number of passwords to save in\n"
+"history, the number of character classes required (for stronger passwords)\n"
+"and the minimum password length.\n"
+"\n"
+"By default there is a single, global policy for all users. You can also\n"
+"create a password policy to apply to a group. Each user is only subject\n"
+"to one password policy, either the group policy or the global policy. A\n"
+"group policy stands alone; it is not a super-set of the global policy plus\n"
+"custom settings.\n"
+"\n"
+"Each group password policy requires a unique priority setting. If a user\n"
+"is in multiple groups that have password policies, this priority determines\n"
+"which password policy is applied. A lower value indicates a higher priority\n"
+"policy.\n"
+"\n"
+"Group password policies are automatically removed when the groups they\n"
+"are associated with are removed.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Modify the global policy:\n"
+" ipa pwpolicy-mod --minlength=10\n"
+"\n"
+" Add a new group password policy:\n"
+" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --"
+"minlength=8 --priority=10 localadmins\n"
+"\n"
+" Display the global password policy:\n"
+" ipa pwpolicy-show\n"
+"\n"
+" Display a group password policy:\n"
+" ipa pwpolicy-show localadmins\n"
+"\n"
+" Display the policy that would be applied to a given user:\n"
+" ipa pwpolicy-show --user=tuser1\n"
+"\n"
+" Modify a group password policy:\n"
+" ipa pwpolicy-mod --minclasses=2 localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:72
+msgid ""
+"\n"
+" Class of Service object used for linking policies with groups\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:87
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-"priorytet musi być unikalną wartością (%(prio)d jest już używane przez %"
-"(gname)s)"
+"priorytet musi być unikalną wartością (%(prio)d jest już używane przez "
+"%(gname)s)"
-#: ipalib/plugins/pwpolicy.py:170
-msgid "Password Policy"
+#: ipalib/plugins/pwpolicy.py:172
+#, fuzzy
+msgid ""
+"\n"
+" Password Policy object\n"
+" "
msgstr "Polityka haseł"
-#: ipalib/plugins/pwpolicy.py:175
+#: ipalib/plugins/pwpolicy.py:201
+#, fuzzy
+msgid "Max failures"
+msgstr "Maksymalny czas życia"
+
+#: ipalib/plugins/pwpolicy.py:202
+msgid "Consecutive failures before lockout"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:207
+msgid "Failure reset interval"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:208
+msgid "Period after which failure count will be reset (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:213
+#, fuzzy
+msgid "Lockout duration"
+msgstr "Położenie"
+
+#: ipalib/plugins/pwpolicy.py:214
+msgid "Period for which lockout is enforced (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:224
msgid "Group"
msgstr "Grupa"
-#: ipalib/plugins/pwpolicy.py:176
+#: ipalib/plugins/pwpolicy.py:225
msgid "Manage password policy for specific group"
msgstr "Zarządzanie polityką haseł dla podanej grupy"
-#: ipalib/plugins/pwpolicy.py:181
+#: ipalib/plugins/pwpolicy.py:230
msgid "Max lifetime (days)"
msgstr "Maksymalny czas życia (w dniach)"
-#: ipalib/plugins/pwpolicy.py:182
+#: ipalib/plugins/pwpolicy.py:231
msgid "Maximum password lifetime (in days)"
msgstr "Maksymalny czas życia hasła (w dniach)"
-#: ipalib/plugins/pwpolicy.py:187
+#: ipalib/plugins/pwpolicy.py:236
msgid "Min lifetime (hours)"
msgstr "Minimalny czas życia (w godzinach)"
-#: ipalib/plugins/pwpolicy.py:188
+#: ipalib/plugins/pwpolicy.py:237
msgid "Minimum password lifetime (in hours)"
msgstr "Minimalny czas życia hasła (w godzinach)"
-#: ipalib/plugins/pwpolicy.py:193
+#: ipalib/plugins/pwpolicy.py:242
msgid "History size"
msgstr "Rozmiar historii"
-#: ipalib/plugins/pwpolicy.py:194
+#: ipalib/plugins/pwpolicy.py:243
msgid "Password history size"
msgstr "Rozmiar historii haseł"
-#: ipalib/plugins/pwpolicy.py:199
+#: ipalib/plugins/pwpolicy.py:248
msgid "Character classes"
msgstr "Klasy znaków"
-#: ipalib/plugins/pwpolicy.py:200
+#: ipalib/plugins/pwpolicy.py:249
msgid "Minimum number of character classes"
msgstr "Minimalna liczba klas znaków"
-#: ipalib/plugins/pwpolicy.py:206
+#: ipalib/plugins/pwpolicy.py:255
msgid "Min length"
msgstr "Minimalna długość"
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:256
msgid "Minimum length of password"
msgstr "Minimalna długość hasła"
-#: ipalib/plugins/pwpolicy.py:212
+#: ipalib/plugins/pwpolicy.py:261
msgid "Priority"
msgstr "Priorytet"
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:262
msgid "Priority of the policy (higher number means lower priority"
msgstr "Priorytet polityki (wyższy numer równa się niższemu priorytetowi"
-#: ipalib/plugins/pwpolicy.py:265
+#: ipalib/plugins/pwpolicy.py:294
+msgid ""
+"\n"
+" Ensure that the maximum lifetime is greater than the minimum.\n"
+" If there is no minimum lifetime set then don't return an error.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:314
msgid "Maximum password life must be greater than minimum."
msgstr "Maksymalny czas życia hasła musi być wyższy niż minimalny."
-#: ipalib/plugins/pwpolicy.py:330
+#: ipalib/plugins/pwpolicy.py:333
+msgid ""
+"\n"
+" Add a new group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:361
+msgid ""
+"\n"
+" Delete a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:380
+msgid ""
+"\n"
+" Modify a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:391
msgid "priority cannot be set on global policy"
msgstr "nie można ustawiać priorytetu dla globalnej polityki"
-#: ipalib/plugins/pwpolicy.py:369
+#: ipalib/plugins/pwpolicy.py:423
+msgid ""
+"\n"
+" Display information about password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:428
msgid "User"
msgstr "Użytkownik"
-#: ipalib/plugins/pwpolicy.py:370
+#: ipalib/plugins/pwpolicy.py:429
msgid "Display effective policy for a specific user"
msgstr "Wyświetlanie aktywnej polityki dla podanego użytkownika"
-#: ipalib/plugins/rolegroup.py:79
-msgid "Role Groups"
-msgstr "Grupy rol"
+#: ipalib/plugins/pwpolicy.py:452
+msgid ""
+"\n"
+" Search for group password policies.\n"
+" "
+msgstr ""
-#: ipalib/plugins/rolegroup.py:84
-msgid "Role-group name"
-msgstr "Nazwa grupy rol"
+#: ipalib/plugins/role.py:20
+msgid ""
+"\n"
+"Roles\n"
+"\n"
+"A role is used for fine-grained delegation. A permission grants the ability\n"
+"to perform given low-level tasks (add a user, modify a group, etc.). A\n"
+"privilege combines one or more permissions into a higher-level abstraction\n"
+"such as useradmin. A useradmin would be able to add, delete and modify "
+"users.\n"
+"\n"
+"Privileges are assigned to Roles.\n"
+"\n"
+"Users, groups, hosts and hostgroups may be members of a Role.\n"
+"\n"
+"Roles can not contain other roles.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new role:\n"
+" ipa role-add --desc=\"Junior-level admin\" junioradmin\n"
+"\n"
+" Add some privileges to this role:\n"
+" ipa role-add-privilege --privileges=addusers junioradmin\n"
+" ipa role-add-privilege --privileges=change_password junioradmin\n"
+" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n"
+"\n"
+" Add a group of users to this role:\n"
+" ipa group-add --desc=\"User admins\" useradmins\n"
+" ipa role-add-member --groups=useradmins junioradmin\n"
+"\n"
+" Display information about a role:\n"
+" ipa role-show junioradmin\n"
+"\n"
+" The result of this is that any users in the group 'useradmins' can\n"
+" add users, reset passwords or add a user to the default IPA user group.\n"
+msgstr ""
-#: ipalib/plugins/rolegroup.py:91
+#: ipalib/plugins/role.py:62
+msgid ""
+"\n"
+" Role object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:81
+msgid "Role"
+msgstr ""
+
+#: ipalib/plugins/role.py:86
+#, fuzzy
+msgid "Role name"
+msgstr "Nazwa reguły"
+
+#: ipalib/plugins/role.py:93
msgid "A description of this role-group"
msgstr "Opis tej grupy rol"
-#: ipalib/plugins/rolegroup.py:102
-msgid "Member of task-groups"
-msgstr "Element grupy zadaniowej"
+#: ipalib/plugins/role.py:101
+msgid ""
+"\n"
+" Add a new role.\n"
+" "
+msgstr ""
-#: ipalib/plugins/rolegroup.py:115
-#, python-format
-msgid "Added rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:105
+#, fuzzy
+msgid "Added role \"%(value)s\""
msgstr "Dodano grupę roli \"%(value)s\""
-#: ipalib/plugins/rolegroup.py:125
-#, python-format
-msgid "Deleted rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:111
+msgid ""
+"\n"
+" Delete a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:115
+#, fuzzy
+msgid "Deleted role \"%(value)s\""
msgstr "Usunięto grupę roli \"%(value)s\""
-#: ipalib/plugins/rolegroup.py:135
-#, python-format
-msgid "Modified rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:121
+msgid ""
+"\n"
+" Modify a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:125
+#, fuzzy
+msgid "Modified role \"%(value)s\""
msgstr "Zmodyfikowano grupę roli \"%(value)s\""
-#: ipalib/plugins/rolegroup.py:146
-#, python-format
-msgid "%(count)d rolegroup matched"
-msgid_plural "%(count)d rolegroups matched"
+#: ipalib/plugins/role.py:131
+msgid ""
+"\n"
+" Search for roles.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:135
+#, fuzzy
+msgid "%(count)d role matched"
+msgid_plural "%(count)d roles matched"
msgstr[0] "Pasuje %(count)d grupa roli"
msgstr[1] "Pasują %(count)d grupy roli"
msgstr[2] "Pasuje %(count)d grup roli"
-#: ipalib/plugins/service.py:198
+#: ipalib/plugins/role.py:143
+msgid ""
+"\n"
+" Display information about a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:151
+msgid ""
+"\n"
+" Add members to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:159
+msgid ""
+"\n"
+" Remove members from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:167
+msgid ""
+"\n"
+" Add privileges to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:183
+#, fuzzy
+msgid "Number of privileges added"
+msgstr "Liczba dodanych elementów"
+
+#: ipalib/plugins/role.py:191
+msgid ""
+"\n"
+" Remove privileges from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:207
+#, fuzzy
+msgid "Number of privileges removed"
+msgstr "Liczba usuniętych elementów"
+
+#: ipalib/plugins/selfservice.py:19
+msgid ""
+"\n"
+"Self-service Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"A Self-service permission defines what an object can change in its own "
+"entry.\n"
+"\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a self-service rule to allow users to manage their address:\n"
+" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st "
+"\"Users manage their own address\"\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add telephoneNumber to the list:\n"
+" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber "
+"\"Users manage their own address\"\n"
+"\n"
+" Display our updated rule:\n"
+" ipa selfservice-show \"Users manage their own address\"\n"
+"\n"
+" Delete a rule:\n"
+" ipa selfservice-del \"Users manage their own address\"\n"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:56
+msgid ""
+"\n"
+" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a self-service ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:64
+msgid "Self-service permission '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:68
+msgid ""
+"\n"
+" Selfservice object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:75
+#, fuzzy
+msgid "Self Service Permissions"
+msgstr "Uprawnienia"
+
+#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
+#, fuzzy
+msgid "Self-service name"
+msgstr "Nazwa usługi"
+
+#: ipalib/plugins/selfservice.py:114
+msgid ""
+"\n"
+" Add a new self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:118
+#, fuzzy
+msgid "Added selfservice \"%(value)s\""
+msgstr "Dodano usługę \"%(value)s\""
+
+#: ipalib/plugins/selfservice.py:137
+msgid ""
+"\n"
+" Delete a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:142
+#, fuzzy
+msgid "Deleted selfservice \"%(value)s\""
+msgstr "Usunięto usługę \"%(value)s\""
+
+#: ipalib/plugins/selfservice.py:158
+msgid ""
+"\n"
+" Modify a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:162
+#, fuzzy
+msgid "Modified selfservice \"%(value)s\""
+msgstr "Zmodyfikowano usługę \"%(value)s\""
+
+#: ipalib/plugins/selfservice.py:181
+msgid ""
+"\n"
+" Search for a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:185
+#, fuzzy
+msgid "%(count)d selfservice matched"
+msgid_plural "%(count)d selfservices matched"
+msgstr[0] "Pasuje %(count)d usługa"
+msgstr[1] "Pasuje %(count)d usługi"
+msgstr[2] "Pasuje %(count)d usług"
+
+#: ipalib/plugins/selfservice.py:207
+msgid ""
+"\n"
+" Display information about a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:21
+msgid ""
+"\n"
+"Services\n"
+"\n"
+"A IPA service represents a service that runs on a host. The IPA service\n"
+"record can store a Kerberos principal, an SSL certificate, or both.\n"
+"\n"
+"An IPA service can be managed directly from a machine, provided that\n"
+"machine has been given the correct permission. This is true even for\n"
+"machines other than the one the service is associated with. For example,\n"
+"requesting an SSL certificate using the host service principal credentials\n"
+"of the host. To manage a service using host credentials you need to\n"
+"kinit as the host:\n"
+"\n"
+" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n"
+"\n"
+"Adding an IPA service allows the associated service to request an SSL\n"
+"certificate or keytab, but this is performed as a separate step; they\n"
+"are not produced as a result of adding the service.\n"
+"\n"
+"Only the public aspect of a certificate is stored in a service record;\n"
+"the private key is not stored.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new IPA service:\n"
+" ipa service-add HTTP/web.example.com\n"
+"\n"
+" Allow a host to manage an IPA service certificate:\n"
+" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n"
+" ipa role-add-member --hosts=web.example.com certadmin\n"
+"\n"
+" Delete an IPA service:\n"
+" ipa service-del HTTP/web.example.com\n"
+"\n"
+" Find all IPA services associated with a host:\n"
+" ipa service-find web.example.com\n"
+"\n"
+" Find all HTTP services:\n"
+" ipa service-find HTTP\n"
+"\n"
+" Disable the service Kerberos key and SSL certificate:\n"
+" ipa service-disable HTTP/web.example.com\n"
+"\n"
+" Request a certificate for an IPA service:\n"
+" ipa cert-request --principal=HTTP/web.example.com example.csr\n"
+"\n"
+" Generate and retrieve a keytab for an IPA service:\n"
+" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/"
+"httpd.keytab\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/service.py:162
+msgid ""
+"\n"
+" For now just verify that it is properly base64-encoded.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:175
+msgid ""
+"\n"
+" Set individual attributes from some values from a certificate.\n"
+"\n"
+" entry_attrs is a dict of an entry\n"
+"\n"
+" returns nothing\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:199
+msgid ""
+"\n"
+" Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:226
msgid "Service principal"
msgstr "Naczelnik usługi"
-#: ipalib/plugins/service.py:221
+#: ipalib/plugins/service.py:242
+msgid ""
+"\n"
+" Add a new IPA new service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:245
+msgid "Added service \"%(value)s\""
+msgstr "Dodano usługę \"%(value)s\""
+
+#: ipalib/plugins/service.py:251
msgid "force principal name even if not in DNS"
msgstr "wymuszenie nazwy naczelnika nawet, jeśli nie w DNS"
-#: ipalib/plugins/service.py:292
-#, python-format
+#: ipalib/plugins/service.py:284
+msgid ""
+"\n"
+" Delete an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:287
+msgid "Deleted service \"%(value)s\""
+msgstr "Usunięto usługę \"%(value)s\""
+
+#: ipalib/plugins/service.py:321
+msgid ""
+"\n"
+" Modify an existing IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:324
msgid "Modified service \"%(value)s\""
msgstr "Zmodyfikowano usługę \"%(value)s\""
-#: ipalib/plugins/service.py:323
-#, python-format
+#: ipalib/plugins/service.py:356
+msgid ""
+"\n"
+" Search for IPA services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:359
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] "Pasuje %(count)d usługa"
msgstr[1] "Pasuje %(count)d usługi"
msgstr[2] "Pasuje %(count)d usług"
-#: ipalib/plugins/service.py:409
-msgid "Service principal has no kerberos key"
-msgstr "Naczelnik usługi nie posiada klucza Kerberosa"
+#: ipalib/plugins/service.py:394
+msgid ""
+"\n"
+" Display information about an IPA service.\n"
+" "
+msgstr ""
-#: ipalib/plugins/sudocmd.py:60
-msgid "SudoCmds"
-msgstr "Polecenia sudo"
+#: ipalib/plugins/service.py:432
+msgid ""
+"\n"
+" Add hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:442
+msgid ""
+"\n"
+" Remove hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:452
+msgid ""
+"\n"
+" Disable the Kerberos key and SSL certificate of a service.\n"
+" "
+msgstr ""
-#: ipalib/plugins/sudocmd.py:65
+#: ipalib/plugins/service.py:456
+#, fuzzy
+msgid "Disabled service \"%(value)s\""
+msgstr "Usunięto usługę \"%(value)s\""
+
+#: ipalib/plugins/sudocmd.py:19
+msgid ""
+"\n"
+"Sudo Commands\n"
+"\n"
+"Commands used as building blocks for sudo\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a new command\n"
+" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n"
+"\n"
+" Remove a command\n"
+" ipa sudocmd-del /usr/bin/less\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:46
+msgid ""
+"\n"
+" Sudo Command object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:64
+#, fuzzy
+msgid "Sudo Commands"
+msgstr "Polecenie sudo"
+
+#: ipalib/plugins/sudocmd.py:69
msgid "Sudo Command"
msgstr "Polecenie sudo"
-#: ipalib/plugins/sudocmd.py:72
+#: ipalib/plugins/sudocmd.py:75
msgid "A description of this command"
msgstr "Opis tego polecenia"
-#: ipalib/plugins/sudocmd.py:99
-#, python-format
+#: ipalib/plugins/sudocmd.py:98
+msgid ""
+"\n"
+" Create new sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:102
msgid "Added sudo command \"%(value)s\""
msgstr "Dodano polecenie sudo \"%(value)s\""
-#: ipalib/plugins/sudocmd.py:108
-#, python-format
+#: ipalib/plugins/sudocmd.py:107
+#, fuzzy
+msgid ""
+"\n"
+" Delete sudo command.\n"
+" "
+msgstr "Usunięto polecenie sudo \"%(value)s\""
+
+#: ipalib/plugins/sudocmd.py:111
msgid "Deleted sudo command \"%(value)s\""
msgstr "Usunięto polecenie sudo \"%(value)s\""
-#: ipalib/plugins/sudocmd.py:117
-#, python-format
+#: ipalib/plugins/sudocmd.py:116
+msgid ""
+"\n"
+" Modify command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:120
msgid "Modified sudo command \"%(value)s\""
msgstr "Zmodyfikowano polecenie sudo \"%(value)s\""
-#: ipalib/plugins/sudocmd.py:127
-#, python-format
+#: ipalib/plugins/sudocmd.py:125
+msgid ""
+"\n"
+" Search for commands.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:129
msgid "%(count)d sudo command matched"
msgid_plural "%(count)d sudo command matched"
msgstr[0] "Pasuje %(count)d polecenie sudo"
msgstr[1] "Pasuje %(count)d polecenia sudo"
msgstr[2] "Pasuje %(count)d poleceń sudo"
-#: ipalib/plugins/sudocmdgroup.py:66 ipalib/plugins/sudocmdgroup.py:85
-#: ipalib/plugins/sudorule.py:81 ipalib/plugins/sudorule.py:85
-msgid "Sudo Command Groups"
-msgstr "Grupy polecenia sudo"
+#: ipalib/plugins/sudocmd.py:136
+msgid ""
+"\n"
+" Display sudo command.\n"
+" "
+msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:71
-msgid "Sudo Command Group name"
-msgstr "Grupa polecenia sudo"
+#: ipalib/plugins/sudocmdgroup.py:19
+msgid ""
+"\n"
+"Groups of Sudo commands\n"
+"\n"
+"Manage groups of Sudo commands.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new Sudo command group:\n"
+" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
+"\n"
+" Remove a Sudo command group:\n"
+" ipa sudocmdgroup-del admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim "
+"admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
+"\n"
+" Show a Sudo command group:\n"
+" ipa group-show localadmins\n"
+msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:81
-msgid "Commands"
-msgstr "Polecenia"
+#: ipalib/plugins/sudocmdgroup.py:50
+msgid ""
+"\n"
+" Sudo Group object.\n"
+" "
+msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:98
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:70
+#, fuzzy
+msgid "Sudo Command Group"
+msgstr "Grupy polecenia sudo"
+
+#: ipalib/plugins/sudocmdgroup.py:93
+msgid ""
+"\n"
+" Create new sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:97
msgid "Added sudo command group \"%(value)s\""
msgstr "Dodano grupę polecenia sudo \"%(value)s\""
-#: ipalib/plugins/sudocmdgroup.py:108
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:103
+#, fuzzy
+msgid ""
+"\n"
+" Delete sudo command group.\n"
+" "
+msgstr "Usunięto grupę polecenia sudo \"%(value)s\""
+
+#: ipalib/plugins/sudocmdgroup.py:107
msgid "Deleted sudo command group \"%(value)s\""
msgstr "Usunięto grupę polecenia sudo \"%(value)s\""
-#: ipalib/plugins/sudocmdgroup.py:118
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:113
+msgid ""
+"\n"
+" Modify group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:117
msgid "Modified sudo command group \"%(value)s\""
msgstr "Zmodyfikowano grupę polecenia sudo \"%(value)s\""
-#: ipalib/plugins/sudocmdgroup.py:129
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:123
+msgid ""
+"\n"
+" Search for sudo command groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:127
msgid "%(count)d sudo command group matched"
msgid_plural "%(count)d sudo command groups matched"
msgstr[0] "Pasuje %(count)d grupa polecenia sudo"
msgstr[1] "Pasują %(count)d grupy polecenia sudo"
msgstr[2] "Pasuje %(count)d grup polecenia sudo"
-#: ipalib/plugins/sudorule.py:48
-msgid "SudoRule"
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid ""
+"\n"
+" Display sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:144
+#, fuzzy
+msgid ""
+"\n"
+" Add members to sudo command group.\n"
+" "
+msgstr "Dodano grupę polecenia sudo \"%(value)s\""
+
+#: ipalib/plugins/sudocmdgroup.py:152
+msgid ""
+"\n"
+" Remove members from sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:19
+msgid ""
+"\n"
+"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
+"give certain users (or groups of users) the ability to run some (or all)\n"
+"commands as root or another user while providing an audit trail of the\n"
+"commands and their arguments.\n"
+"\n"
+"FreeIPA provides a designated binddn to use with Sudo located at:\n"
+"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
+"\n"
+"To enable the binddn run the following command to set the password:\n"
+"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -"
+"ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,"
+"dc=com\n"
+"\n"
+"For more information, see the FreeIPA Documentation to Sudo.\n"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:44
+msgid ""
+"\n"
+" Sudo Rule management\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:68
+#, fuzzy
+msgid "Sudo Rule"
msgstr "Reguła sudo"
-#: ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/sudorule.py:98
+#, fuzzy
+msgid "Command category"
+msgstr "Kategoria komputerów"
+
+#: ipalib/plugins/sudorule.py:99
+#, fuzzy
+msgid "Command category the rule applies to"
+msgstr "Kategoria komputerów, do których zastosowywana jest reguła"
+
+#: ipalib/plugins/sudorule.py:104
+#, fuzzy
+msgid "Run As User category"
+msgstr "Kategoria użytkowników"
+
+#: ipalib/plugins/sudorule.py:105
+#, fuzzy
+msgid "Run As User category the rule applies to"
+msgstr "Kategoria użytkowników, do których zastosowywana jest reguła"
+
+#: ipalib/plugins/sudorule.py:110
+#, fuzzy
+msgid "Run As Group category"
+msgstr "Kategoria użytkowników"
+
+#: ipalib/plugins/sudorule.py:111
+#, fuzzy
+msgid "Run As Group category the rule applies to"
+msgstr "Kategoria użytkowników, do których zastosowywana jest reguła"
+
+#: ipalib/plugins/sudorule.py:131
msgid "Sudo Allow Commands"
msgstr "Polecenia zezwolone sudo"
-#: ipalib/plugins/sudorule.py:77
+#: ipalib/plugins/sudorule.py:135
msgid "Sudo Deny Commands"
msgstr "Polecenia zabronione sudo"
-#: ipalib/plugins/sudorule.py:109
-#, python-format
+#: ipalib/plugins/sudorule.py:147
+msgid "Run As User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:151
+#, fuzzy
+msgid "Run As Group"
+msgstr "Grupy użytkowników"
+
+#: ipalib/plugins/sudorule.py:156
+#, fuzzy
+msgid "External User"
+msgstr "Zewnętrzny komputer"
+
+#: ipalib/plugins/sudorule.py:157
+#, fuzzy
+msgid "External User the rule applies to"
+msgstr "Kategoria użytkowników, do których zastosowywana jest reguła"
+
+#: ipalib/plugins/sudorule.py:161
+#, fuzzy
+msgid "RunAs External User"
+msgstr "Zewnętrzny komputer"
+
+#: ipalib/plugins/sudorule.py:162
+msgid "External User the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:166
+#, fuzzy
+msgid "RunAs External Group"
+msgstr "Zewnętrzny komputer"
+
+#: ipalib/plugins/sudorule.py:167
+msgid "External Group the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:175
+msgid ""
+"\n"
+" Create new Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "Added sudo rule \"%(value)s\""
msgstr "Dodano regułę sudo \"%(value)s\""
-#: ipalib/plugins/taskgroup.py:51
-msgid "Task Groups"
-msgstr "Grupy zadaniowe"
+#: ipalib/plugins/sudorule.py:189
+msgid ""
+"\n"
+" Delete Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:56
-msgid "Task-group name"
-msgstr "Nazwa grupy zadaniowej"
+#: ipalib/plugins/sudorule.py:197
+msgid ""
+"\n"
+" Modify Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:63
-msgid "Task-group description"
-msgstr "Opis grupy zadaniowej"
+#: ipalib/plugins/sudorule.py:205
+msgid ""
+"\n"
+" Search for Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:74
-msgid "Member role-groups"
-msgstr "Element grupy zadaniowej"
+#: ipalib/plugins/sudorule.py:213
+msgid ""
+"\n"
+" Display Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:87
-#, python-format
-msgid "Added taskgroup \"%(value)s\""
-msgstr "Dodano grupę zadaniową \"%(value)s\""
+#: ipalib/plugins/sudorule.py:221
+msgid ""
+"\n"
+" Enable a Sudo rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:97
-#, python-format
-msgid "Deleted taskgroup \"%(value)s\""
-msgstr "Usunięto grupę zadaniową \"%(value)s\""
+#: ipalib/plugins/sudorule.py:247
+msgid ""
+"\n"
+" Disable a Sudo rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:107
-#, python-format
-msgid "Modified taskgroup \"%(value)s\""
-msgstr "Zmodyfikowano grupę zadaniową \"%(value)s\""
+#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
+msgid ""
+"\n"
+" Add commands and sudo command groups affected by Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:118
-#, python-format
-msgid "%(count)d taskgroup matched"
-msgid_plural "%(count)d taskgroups matched"
-msgstr[0] "Pasuje %(count)d grupa zadaniowa"
-msgstr[1] "Pasują %(count)d grupy zadaniowe"
-msgstr[2] "Pasuje %(count)d grup zadaniowych"
+#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
+msgid ""
+"\n"
+" Remove commands and sudo command groups affected by Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/user.py:84
+#: ipalib/plugins/sudorule.py:313
+msgid ""
+"\n"
+" Add users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:349
+msgid ""
+"\n"
+" Remove users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:383
+msgid ""
+"\n"
+" Add hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:419
+msgid ""
+"\n"
+" Remove hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:453
+msgid ""
+"\n"
+" Add user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:489
+msgid ""
+"\n"
+" Remove user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:523
+msgid ""
+"\n"
+" Add group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:559
+msgid ""
+"\n"
+" Remove group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:593
+msgid ""
+"\n"
+" Add an option to the Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
+#, fuzzy
+msgid "Sudo Option"
+msgstr "Polecenie sudo"
+
+#: ipalib/plugins/sudorule.py:635
+msgid ""
+"\n"
+" Remove an option from Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:20
+msgid ""
+"\n"
+"Users\n"
+"\n"
+"Manage user entries. All users are POSIX users.\n"
+"\n"
+"IPA supports a wide range of username formats, but you need to be aware of "
+"any\n"
+"restrictions that may apply to your particular environment. For example,\n"
+"usernames that start with a digit or usernames that exceed a certain length\n"
+"may cause problems for some UNIX systems.\n"
+"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n"
+"\n"
+"Disabling a user account prevents that user from obtaining new Kerberos\n"
+"credentials. It does not invalidate any credentials that have already\n"
+"been issued.\n"
+"\n"
+"Password management is not a part of this module. For more information\n"
+"about this topic please see: ipa help passwd\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1\n"
+"\n"
+" Find all users whose entries include the string \"Tim\":\n"
+" ipa user-find Tim\n"
+"\n"
+" Find all users with \"Tim\" as the first name:\n"
+" ipa user-find --first=Tim\n"
+"\n"
+" Disable a user account:\n"
+" ipa user-disable tuser1\n"
+"\n"
+" Enable a user account:\n"
+" ipa user-enable tuser1\n"
+"\n"
+" Delete a user:\n"
+" ipa user-del tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/user.py:79
+msgid ""
+"\n"
+" User object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:116
msgid "User login"
msgstr "Login użytkownika"
-#: ipalib/plugins/user.py:91
+#: ipalib/plugins/user.py:123
msgid "First name"
msgstr "Imię"
-#: ipalib/plugins/user.py:95
+#: ipalib/plugins/user.py:127
msgid "Last name"
msgstr "Nazwisko"
-#: ipalib/plugins/user.py:103
+#: ipalib/plugins/user.py:130
+#, fuzzy
+msgid "Full name"
+msgstr "Nazwa reguły"
+
+#: ipalib/plugins/user.py:135
+#, fuzzy
+msgid "Display name"
+msgstr "Imię"
+
+#: ipalib/plugins/user.py:140
+msgid "Initials"
+msgstr ""
+
+#: ipalib/plugins/user.py:146
+#, fuzzy
+msgid "Home directory"
+msgstr "Podstawa katalogu domowego"
+
+#: ipalib/plugins/user.py:150
msgid "GECOS field"
msgstr "Pole GECOS"
-#: ipalib/plugins/user.py:109
+#: ipalib/plugins/user.py:156
msgid "Login shell"
msgstr "Powłoka logowania"
-#: ipalib/plugins/user.py:114
+#: ipalib/plugins/user.py:161
msgid "Kerberos principal"
msgstr "Naczelnik Kerberosa"
-#: ipalib/plugins/user.py:120
+#: ipalib/plugins/user.py:168
msgid "Email address"
msgstr "Adres e-mail"
-#: ipalib/plugins/user.py:124
-msgid "Password"
-msgstr "Hasło"
-
-#: ipalib/plugins/user.py:125
-msgid "Set the user password"
+#: ipalib/plugins/user.py:173
+#, fuzzy
+msgid "Prompt to set the user password"
msgstr "Ustaw hasło użytkownika"
-#: ipalib/plugins/user.py:132
+#: ipalib/plugins/user.py:180
msgid "UID"
msgstr "UID"
-#: ipalib/plugins/user.py:133
+#: ipalib/plugins/user.py:181
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
"Numer identyfikacyjny użytkownika (system go przydzieli, jeśli nie zostanie "
"podany)"
-#: ipalib/plugins/user.py:139
+#: ipalib/plugins/user.py:188
+#, fuzzy
+msgid "Group ID Number"
+msgstr "Nazwa grupy"
+
+#: ipalib/plugins/user.py:193
msgid "Street address"
msgstr "Adres zamieszkania"
-#: ipalib/plugins/user.py:142
-msgid "Groups"
-msgstr "Grupy"
-
-#: ipalib/plugins/user.py:146
-msgid "Netgroups"
-msgstr "Grupy sieciowe"
+#: ipalib/plugins/user.py:197
+msgid "City"
+msgstr ""
-#: ipalib/plugins/user.py:150
-msgid "Rolegroups"
-msgstr "Grupy rol"
+#: ipalib/plugins/user.py:201
+msgid "State/Province"
+msgstr ""
-#: ipalib/plugins/user.py:154
-msgid "Taskgroups"
-msgstr "Grupy zadaniowe"
+#: ipalib/plugins/user.py:204
+msgid "ZIP"
+msgstr ""
-#: ipalib/plugins/user.py:159
+#: ipalib/plugins/user.py:208
msgid "Telephone Number"
msgstr "Numer telefonu"
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:211
msgid "Mobile Telephone Number"
msgstr "Numer telefonu komórkowego"
-#: ipalib/plugins/user.py:163
+#: ipalib/plugins/user.py:214
msgid "Pager Number"
msgstr "Numer pagera"
-#: ipalib/plugins/user.py:166
+#: ipalib/plugins/user.py:218
msgid "Fax Number"
msgstr "Numer faksu"
-#: ipalib/plugins/user.py:177
-#, python-format
+#: ipalib/plugins/user.py:222
+msgid "Org. Unit"
+msgstr ""
+
+#: ipalib/plugins/user.py:225
+msgid "Job Title"
+msgstr ""
+
+#: ipalib/plugins/user.py:228
+msgid "Manager"
+msgstr ""
+
+#: ipalib/plugins/user.py:231
+msgid "Car License"
+msgstr ""
+
+#: ipalib/plugins/user.py:234
+#, fuzzy
+msgid "Account disabled"
+msgstr "Informacje o koncie"
+
+#: ipalib/plugins/user.py:258
+msgid ""
+"\n"
+" Given a userid verify the user's existence and return the dn.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:276
+#, fuzzy
+msgid "manager %(manager)s not found"
+msgstr "Nie odnaleziono kontenera dla %(container)s"
+
+#: ipalib/plugins/user.py:281
+msgid ""
+"\n"
+" Convert a manager dn into a userid\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:295
+msgid ""
+"\n"
+" Add a new user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:298
msgid "Added user \"%(value)s\""
msgstr "Dodano użytkownika \"%(value)s\""
-#: ipalib/plugins/user.py:226
-#, python-format
+#: ipalib/plugins/user.py:303
+#, fuzzy
+msgid "Don't create user private group"
+msgstr "Domyślna grupa użytkowników"
+
+#: ipalib/plugins/user.py:333
+#, fuzzy
+msgid "can be at most %(len)d characters"
+msgstr "może wynosić co najwyżej %(maxlength)d znaków"
+
+#: ipalib/plugins/user.py:400
+msgid ""
+"\n"
+" Delete a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:404
msgid "Deleted user \"%(value)s\""
msgstr "Usunięto użytkownika \"%(value)s\""
-#: ipalib/plugins/user.py:240
-#, python-format
+#: ipalib/plugins/user.py:413
+msgid ""
+"\n"
+" Modify a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:417
msgid "Modified user \"%(value)s\""
msgstr "Zmodyfikowano użytkownika \"%(value)s\""
-#: ipalib/plugins/user.py:252
+#: ipalib/plugins/user.py:437
+msgid ""
+"\n"
+" Search for users.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:444
msgid "Self"
msgstr "Własny"
-#: ipalib/plugins/user.py:253
+#: ipalib/plugins/user.py:445
msgid "Display user record for current Kerberos principal"
msgstr "Wyświetlenie wpisu użytkownika dla bieżącego naczelnika Kerberosa"
-#: ipalib/plugins/user.py:263
-#, python-format
+#: ipalib/plugins/user.py:463
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] "Pasuje %(count)d użytkownik"
msgstr[1] "Pasuje %(count)d użytkowników"
msgstr[2] "Pasuje %(count)d użytkowników"
-#: ipalib/plugins/user.py:283
-#, python-format
+#: ipalib/plugins/user.py:471
+msgid ""
+"\n"
+" Display information about a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:484
+#, fuzzy
+msgid ""
+"\n"
+" Disable a user account.\n"
+" "
+msgstr "Wyłączono konto użytkownika \"%(value)s\""
+
+#: ipalib/plugins/user.py:489
msgid "Disabled user account \"%(value)s\""
msgstr "Wyłączono konto użytkownika \"%(value)s\""
-#: ipalib/plugins/user.py:309
-#, python-format
+#: ipalib/plugins/user.py:507
+#, fuzzy
+msgid ""
+"\n"
+" Enable a user account.\n"
+" "
+msgstr "Włączono konto użytkownika \"%(value)s\""
+
+#: ipalib/plugins/user.py:512
msgid "Enabled user account \"%(value)s\""
msgstr "Włączono konto użytkownika \"%(value)s\""
-#: ipaserver/install/certs.py:599 ipaserver/plugins/dogtag.py:1313
-#: ipaserver/plugins/dogtag.py:1398 ipaserver/plugins/dogtag.py:1463
-#: ipaserver/plugins/dogtag.py:1543 ipaserver/plugins/dogtag.py:1602
+#: ipalib/plugins/user.py:529
+msgid ""
+"\n"
+" Unlock a user account\n"
+"\n"
+" An account may become locked if the password is entered incorrectly too\n"
+" many times within a specific time period as controlled by password\n"
+" policy. A locked account is a temporary condition and may be unlocked "
+"by\n"
+" an administrator.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:538
+#, fuzzy
+msgid "Unlocked account \"%(value)s\""
+msgstr "Włączono konto użytkownika \"%(value)s\""
+
+#: ipalib/plugins/virtual.py:20
+msgid ""
+"\n"
+"Base classes for non-LDAP backend plugins.\n"
+msgstr ""
+
+#: ipalib/plugins/virtual.py:28
+msgid ""
+"\n"
+" A command that doesn't use the LDAP backend but wants to use the\n"
+" LDAP access control system to make authorization decisions.\n"
+"\n"
+" The class variable operation is the commonName attribute of the\n"
+" entry to be tested against.\n"
+"\n"
+" In advance, you need to create an entry of the form:\n"
+" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
+"\n"
+" Ex.\n"
+" cn=request certificate, cn=virtual operations,cn=etc, dc=example, "
+"dc=com\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/virtual.py:44
+msgid ""
+"\n"
+" Perform an LDAP query to determine authorization.\n"
+"\n"
+" This should be executed before any actual work is done.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/xmlclient.py:21
+msgid ""
+"\n"
+"XML-RPC client plugin.\n"
+msgstr ""
+
+#: ipalib/cli.py:581
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr "Proszę podać %(label)s ponownie, aby sprawdzić: "
+
+#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
+#, c-format
+msgid "Passwords do not match!"
+msgstr "Hasła się nie zgadzają."
+
+#: ipalib/cli.py:590
+msgid "Cancelled."
+msgstr "Anulowano."
+
+#: ipalib/cli.py:819
+#, fuzzy
+msgid "Command name"
+msgstr "Polecenia"
+
+#: ipalib/cli.py:1117
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:300
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+"klient w wersji %(cver)s nie jest zgodny z serwerem w wersji %(sver)s na "
+"%(server)r"
+
+#: ipalib/errors.py:318
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr "nieznany błąd %(code)d z %(server)s: %(error)s"
+
+#: ipalib/errors.py:334
+msgid "an internal error has occurred"
+msgstr "wystąpił wewnętrzny błąd"
+
+#: ipalib/errors.py:356
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr "wystąpił wewnętrzny błąd w serwerze na %(server)r"
+
+#: ipalib/errors.py:372
+#, python-format
+msgid "unknown command %(name)r"
+msgstr "nieznane polecenie %(name)r"
+
+#: ipalib/errors.py:389 ipalib/errors.py:414
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr "błąd w serwerze %(server)r: %(error)s"
+
+#: ipalib/errors.py:405
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr "nie można połączyć się z %(uri)r: %(error)s"
+
+#: ipalib/errors.py:423
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr "Nieprawidłowe żądanie JSON-RPC: %(error)s"
+
+#: ipalib/errors.py:439
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:465
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr "Błąd Kerberosa: %(major)s/%(minor)s"
+
+#: ipalib/errors.py:482
+msgid "did not receive Kerberos credentials"
+msgstr "nie otrzymano danych uwierzytelniających Kerberosa"
+
+#: ipalib/errors.py:498
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr "Nie odnaleziono usługi %(service)r w bazie danych Kerberosa"
+
+#: ipalib/errors.py:514
+msgid "No credentials cache found"
+msgstr "Nie odnaleziono pamięci podręcznej danych uwierzytelniających"
+
+#: ipalib/errors.py:530
+msgid "Ticket expired"
+msgstr "Zgłoszenie wygasło"
+
+#: ipalib/errors.py:546
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+"Uprawnienia pamięci podręcznej danych uwierzytelniających są niepoprawne"
+
+#: ipalib/errors.py:562
+msgid "Bad format in credentials cache"
+msgstr "Błędny format w pamięci podręcznej danych uwierzytelniających"
+
+#: ipalib/errors.py:578
+msgid "Cannot resolve KDC for requested realm"
+msgstr "Nie można rozwiązać KDC dla żądanego obszaru"
+
+#: ipalib/errors.py:597
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr "Niewystarczający dostęp: %(info)s"
+
+#: ipalib/errors.py:641
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr "polecenie %(name)r nie przyjmuje parametrów"
+
+#: ipalib/errors.py:661
+#, python-format
+msgid "command %(name)r takes at most %(count)d argument"
+msgid_plural "command %(name)r takes at most %(count)d arguments"
+msgstr[0] "polecenie %(name)r przyjmuje co najwyżej %(count)d parametr"
+msgstr[1] "polecenie %(name)r przyjmuje co najwyżej %(count)d parametry"
+msgstr[2] "polecenie %(name)r przyjmuje co najwyżej %(count)d parametrów"
+
+#: ipalib/errors.py:691
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr "pokrywanie parametrów i opcji: %(names)r"
+
+#: ipalib/errors.py:707
+#, python-format
+msgid "%(name)r is required"
+msgstr "%(name)r jest wymagane"
+
+#: ipalib/errors.py:723 ipalib/errors.py:739
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr "nieprawidłowe %(name)r: %(error)s"
+
+#: ipalib/errors.py:755
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr "API nie posiada takiej przestrzeni nazw: %(name)r"
+
+#: ipalib/errors.py:764
+msgid "Passwords do not match"
+msgstr "Hasła się nie zgadzają"
+
+#: ipalib/errors.py:773
+msgid "Command not implemented"
+msgstr "Polecenie nie jest zaimplementowane"
+
+#: ipalib/errors.py:782
+msgid "Client is not configured. Run ipa-client-install."
+msgstr ""
+
+#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
+#: ipalib/errors.py:1424 ipalib/errors.py:1441
+#, python-format
+msgid "%(reason)s"
+msgstr "%(reason)s"
+
+#: ipalib/errors.py:826
+msgid "This entry already exists"
+msgstr "Ten wpis już istnieje"
+
+#: ipalib/errors.py:842
+msgid "You must enroll a host in order to create a host service"
+msgstr "Należy zapisać się do komputera, aby utworzyć jego usługę"
+
+#: ipalib/errors.py:858
+#, python-format
+msgid ""
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr ""
+"Naczelnik usługi nie jest w formacie: usługa/w pełni kwalifikowana nazwa "
+"komputera: %(reason)s"
+
+#: ipalib/errors.py:874
+msgid ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr "Obszar naczelnika nie zgadza się z obszarem dla tego serwera IPA"
+
+#: ipalib/errors.py:890
+msgid "This command requires root access"
+msgstr "Te polecenie wymaga dostępu roota"
+
+#: ipalib/errors.py:906
+msgid "This is already a posix group"
+msgstr "To jest już grupa POSIX"
+
+#: ipalib/errors.py:922
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr "Naczelnik nie jest w formacie użytkownik@OBSZAR: %(principal)r"
+
+#: ipalib/errors.py:938
+#, fuzzy
+msgid "This entry is already enabled"
+msgstr "Ten wpis jest już odblokowany"
+
+#: ipalib/errors.py:954
+#, fuzzy
+msgid "This entry is already disabled"
+msgstr "Ten wpis jest już zablokowany"
+
+#: ipalib/errors.py:970
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:986
+#, fuzzy
+msgid "This entry is not a member"
+msgstr "Ten wpis nie jest elementem grupy"
+
+#: ipalib/errors.py:1002
+msgid "A group may not be a member of itself"
+msgstr "Grupa nie może być własnym elementem"
+
+#: ipalib/errors.py:1018
+#, fuzzy
+msgid "This entry is already a member"
+msgstr "Ten wpis jest już elementem grupy"
+
+#: ipalib/errors.py:1034
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr "Dekodowanie base64 nie powiodło się: %(reason)s"
+
+#: ipalib/errors.py:1066
+msgid "A group may not be added as a member of itself"
+msgstr "Nie można dodać grupy jako elementu jej samej"
+
+#: ipalib/errors.py:1082
+msgid "The default users group cannot be removed"
+msgstr "Nie można usunąć domyślnej grupy użytkowników"
+
+#: ipalib/errors.py:1098
+msgid "Host does not have corresponding DNS A record"
+msgstr "Komputer nie posiada pasującego wpisu DNS A"
+
+#: ipalib/errors.py:1113
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+"Usuwanie zarządzanej grupy nie jest dozwolone. Musi zostać najpierw "
+"odłączona."
+
+#: ipalib/errors.py:1128
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1160
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1176
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1192
+#, python-format
+msgid ""
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1216
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr "nie ma takiego polecenia lub tematu pomocy %(topic)r"
+
+#: ipalib/errors.py:1240
+msgid "change collided with another change"
+msgstr "zmiana koliduje z inną zmianą"
+
+#: ipalib/errors.py:1256
+msgid "no modifications to be performed"
+msgstr "żadne modyfikacje nie zostaną wykonane"
+
+#: ipalib/errors.py:1272
+#, fuzzy, python-format
+msgid "%(desc)s: %(info)s"
+msgstr "%(desc)s:%(info)s"
+
+#: ipalib/errors.py:1288
+msgid "limits exceeded for this query"
+msgstr "przekroczono ograniczenia dla tego zapytania"
+
+#: ipalib/errors.py:1303
+#, python-format
+msgid "%(info)s"
+msgstr "%(info)s"
+
+#: ipalib/errors.py:1318
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1334
+#, fuzzy, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr "Dozwolona jest tylko jedna wartość"
+
+#: ipalib/errors.py:1350
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1366
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1391
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr "Nie można ukończyć działania na certyfikacie: %(error)s"
+
+#: ipalib/errors.py:1407
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr "Błąd formatu certyfikatu: %(error)s"
+
+#: ipalib/errors.py:1458
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1474
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:398
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+"Wyniki zostały obcięte, proszę spróbować bardziej konkretnego wyszukiwania"
+
+#: ipalib/frontend.py:850
+msgid ""
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:856
+#, fuzzy
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr "wyświetlenie wpisów przechowywanych w serwerze"
+
+#: ipalib/frontend.py:985
+msgid "Forward to server instead of running locally"
+msgstr "Przekazanie do serwera zamiast uruchamiania lokalnie"
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr "Słownik reprezentujący wpis LDAP"
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr "Lista wpisów LDAP"
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr "Wszystkie polecenia powinny powiadać przynajmniej wynik"
+
+#: ipalib/parameters.py:296
+msgid "incorrect type"
+msgstr "niepoprawny typ"
+
+#: ipalib/parameters.py:299
+msgid "Only one value is allowed"
+msgstr "Dozwolona jest tylko jedna wartość"
+
+#: ipalib/parameters.py:901
+msgid "must be True or False"
+msgstr "musi być prawdą lub fałszem"
+
+#: ipalib/parameters.py:1002
+msgid "must be an integer"
+msgstr "musi być liczba całkowitą"
+
+#: ipalib/parameters.py:1054
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr "musi wynosić co najmniej %(minvalue)d"
+
+#: ipalib/parameters.py:1064
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr "może wynosić co najwyżej %(maxvalue)d"
+
+#: ipalib/parameters.py:1074
+msgid "must be a decimal number"
+msgstr "musi być liczbą dziesiętną"
+
+#: ipalib/parameters.py:1097
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr "musi wynosić co najmniej %(minvalue)f"
+
+#: ipalib/parameters.py:1107
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr "może wynosić co najwyżej %(maxvalue)f"
+
+#: ipalib/parameters.py:1174
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr "musi pasować do wzorca \"%(pattern)s\""
+
+#: ipalib/parameters.py:1192
+msgid "must be binary data"
+msgstr "musi być danymi binarnymi"
+
+#: ipalib/parameters.py:1208
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr "musi wynosić co najmniej %(minlength)d bajtów"
+
+#: ipalib/parameters.py:1218
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr "może wynosić co najwyżej %(maxlength)d bajtów"
+
+#: ipalib/parameters.py:1228
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr "musi wynosić dokładnie %(length)d bajtów"
+
+#: ipalib/parameters.py:1246
+msgid "must be Unicode text"
+msgstr "musi być tekstem w unikodzie"
+
+#: ipalib/parameters.py:1277
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr "musi wynosić co najmniej %(minlength)d znaków"
+
+#: ipalib/parameters.py:1287
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr "może wynosić co najwyżej %(maxlength)d znaków"
+
+#: ipalib/parameters.py:1297
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr "musi wynosić dokładnie %(length)d znaków"
+
+#: ipalib/parameters.py:1315
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1355
+#, python-format
+msgid "must be one of %(values)r"
+msgstr "musi być jednym z %(values)r"
+
+#: ipalib/util.py:200
+#, python-format
+msgid "Permission denied: %(file)s"
+msgstr ""
+
+#: ipalib/x509.py:174
+#, python-format
+msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
+msgstr ""
+
+#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
+#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
+#: ipaserver/plugins/dogtag.py:1600
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr "Nie można komunikować się z CMS (%s)"
@@ -2050,29 +7599,29 @@ msgstr "Platforma sprzętowa komputera (np. Lenovo T61)"
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr "System operacyjny komputera i jego wersja (np. Fedora 9)"
-#: ipaserver/plugins/selfsign.py:98
+#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
-"Request subject \"%(request_subject)s\" does not match the form \"%"
-"(subject_base)s\""
+"Request subject \"%(request_subject)s\" does not match the form "
+"\"%(subject_base)s\""
msgstr ""
-"Temat żądania \"%(request_subject)s\" nie pasuje do formatu \"%(subject_base)"
-"s\""
+"Temat żądania \"%(request_subject)s\" nie pasuje do formatu "
+"\"%(subject_base)s\""
-#: ipaserver/plugins/selfsign.py:103
+#: ipaserver/plugins/selfsign.py:104
#, python-format
msgid "unable to decode csr: %s"
msgstr "nie można dekodować csr: %s"
-#: ipaserver/plugins/selfsign.py:124 ipaserver/plugins/selfsign.py:139
+#: ipaserver/plugins/selfsign.py:125 ipaserver/plugins/selfsign.py:140
msgid "file operation"
msgstr "działanie na pliku"
-#: ipaserver/plugins/selfsign.py:153
+#: ipaserver/plugins/selfsign.py:154
msgid "cannot obtain next serial number"
msgstr "nie można uzyskać następnego numeru szeregowego"
-#: ipaserver/plugins/selfsign.py:188
+#: ipaserver/plugins/selfsign.py:189
msgid "certutil failure"
msgstr "narzędzie certyfikatów nie powiodło się"
@@ -2086,224 +7635,231 @@ msgstr "nie można otworzyć pliku konfiguracji %s\n"
msgid "cannot stat() configuration file %s\n"
msgstr "nie można wykonać stat() na pliku konfiguracji %s\n"
-#: ipa-client/config.c:75
+#: ipa-client/config.c:68
+#, fuzzy, c-format
+msgid "out of memory\n"
+msgstr "Brak pamięci\n"
+
+#: ipa-client/config.c:79
#, c-format
msgid "read error\n"
msgstr "błąd odczytu\n"
-#: ipa-client/ipa-getkeytab.c:138 ipa-client/ipa-getkeytab.c:838
+#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
+#: ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr "Zainicjowanie kontekstu Kerberosa nie powiodło się\n"
+
+#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr "Brak typów szyfrowania preferowanych przez system?\n"
-#: ipa-client/ipa-getkeytab.c:146
+#: ipa-client/ipa-getkeytab.c:155
#, c-format
msgid "Out of memory!?\n"
msgstr "Brak pamięci?\n"
-#: ipa-client/ipa-getkeytab.c:164 ipa-client/ipa-getkeytab.c:179
+#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
#, c-format
msgid "Out of memory\n"
msgstr "Brak pamięci\n"
-#: ipa-client/ipa-getkeytab.c:194
+#: ipa-client/ipa-getkeytab.c:203
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr "Ostrzeżenie o nierozpoznanym typie szyfrowania: [%s]\n"
-#: ipa-client/ipa-getkeytab.c:209
+#: ipa-client/ipa-getkeytab.c:218
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr "Ostrzeżenie o nierozpoznanym typie salt: [%s]\n"
-#: ipa-client/ipa-getkeytab.c:235
+#: ipa-client/ipa-getkeytab.c:245
#, c-format
msgid "Enctype comparison failed!\n"
msgstr "Porównanie typów szyfrowania nie powiodło się.\n"
-#: ipa-client/ipa-getkeytab.c:297
+#: ipa-client/ipa-getkeytab.c:307
#, c-format
msgid "Failed to create random key!\n"
msgstr "Utworzenie losowego klucza nie powiodło się.\n"
-#: ipa-client/ipa-getkeytab.c:310 ipa-client/ipa-getkeytab.c:327
-#: ipa-client/ipa-getkeytab.c:335 ipa-client/ipa-getkeytab.c:372
+#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
+#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
#, c-format
msgid "Failed to create key!\n"
msgstr "Utworzenie klucza nie powiodło się.\n"
-#: ipa-client/ipa-getkeytab.c:317 ipa-client/ipa-getkeytab.c:350
+#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
+#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
+#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
+#: ipa-client/ipa-join.c:819
#, c-format
msgid "Out of memory!\n"
msgstr "Brak pamięci.\n"
-#: ipa-client/ipa-getkeytab.c:361
+#: ipa-client/ipa-getkeytab.c:371
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr "Błędny lub nieobsługiwany typ salt (%d).\n"
-#: ipa-client/ipa-getkeytab.c:481
+#: ipa-client/ipa-getkeytab.c:492
#, c-format
msgid "No keys accepted by KDC\n"
msgstr "Żadne klucze nie zostały zaakceptowane przez KDC\n"
-#: ipa-client/ipa-getkeytab.c:496
+#: ipa-client/ipa-getkeytab.c:507
#, c-format
msgid "Out of memory \n"
msgstr "Brak pamięci \n"
-#: ipa-client/ipa-getkeytab.c:534
+#: ipa-client/ipa-getkeytab.c:545
#, c-format
msgid "Out of Memory!\n"
msgstr "Brak pamięci.\n"
-#: ipa-client/ipa-getkeytab.c:541
+#: ipa-client/ipa-getkeytab.c:552
#, c-format
msgid "Failed to create control!\n"
msgstr "Utworzenie kontroli nie powiodło się.\n"
-#: ipa-client/ipa-getkeytab.c:565
+#: ipa-client/ipa-getkeytab.c:576
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr "Nie można zainicjować biblioteki LDAP.\n"
-#: ipa-client/ipa-getkeytab.c:572
+#: ipa-client/ipa-getkeytab.c:583
#, c-format
msgid "Unable to set ldap options!\n"
msgstr "Nie można ustawić opcji LDAP.\n"
-#: ipa-client/ipa-getkeytab.c:579
+#: ipa-client/ipa-getkeytab.c:596
#, c-format
msgid "Simple bind failed\n"
msgstr "Proste dowiązanie nie powiodło się\n"
-#: ipa-client/ipa-getkeytab.c:589
+#: ipa-client/ipa-getkeytab.c:606
#, c-format
msgid "SASL Bind failed!\n"
msgstr "Dowiązanie SASL nie powiodło się.\n"
-#: ipa-client/ipa-getkeytab.c:605 ipa-client/ipa-getkeytab.c:618
-#: ipa-client/ipa-getkeytab.c:625 ipa-client/ipa-getkeytab.c:632
+#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
+#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
#, c-format
msgid "Operation failed! %s\n"
msgstr "Działanie nie powiodło się. %s\n"
-#: ipa-client/ipa-getkeytab.c:638 ipa-client/ipa-getkeytab.c:648
+#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
#, c-format
msgid "Missing reply control!\n"
msgstr "Brak kontroli odpowiedzi.\n"
-#: ipa-client/ipa-getkeytab.c:655
+#: ipa-client/ipa-getkeytab.c:672
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr "ber_init() nie powiodło się, nieprawidłowa kontrola?\n"
-#: ipa-client/ipa-getkeytab.c:674
+#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr "ber_scanf() nie powiodło się, nieprawidłowa kontrola?\n"
-#: ipa-client/ipa-getkeytab.c:715
+#: ipa-client/ipa-getkeytab.c:736
msgid "New Principal Password"
msgstr "Nowe hasło naczelnika"
-#: ipa-client/ipa-getkeytab.c:721
+#: ipa-client/ipa-getkeytab.c:742
msgid "Verify Principal Password"
msgstr "Sprawdzenie hasła naczelnika"
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Print as little as possible"
msgstr "Wyświetla tak mało, jak to możliwe"
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Output only on errors"
msgstr "Wyświetla tylko błędy"
-#: ipa-client/ipa-getkeytab.c:781
+#: ipa-client/ipa-getkeytab.c:778
msgid "Contact this specific KDC Server"
msgstr "Kontaktuje się z konkretnym serwerem KDC"
-#: ipa-client/ipa-getkeytab.c:782
+#: ipa-client/ipa-getkeytab.c:779
msgid "Server Name"
msgstr "Nazwa serwera"
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
"Naczelnik, dla którego uzyskać tablicę kluczy (np.: ftp/ftp.przykład."
"pl@PRZYKŁAD.PL)"
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:189
+#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr "Nazwa naczelnika usługi Kerberos"
-#: ipa-client/ipa-getkeytab.c:787 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr "Plik, w którym przechowywać informację o tablicy kluczy"
-#: ipa-client/ipa-getkeytab.c:788 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr "Nazwa pliku tablicy kluczy"
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:787
msgid "Encryption types to request"
msgstr "Typy szyfrowania do zażądania"
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:788
msgid "Comma separated encryption types list"
msgstr "Lista typów szyfrowania oddzielonych przecinkami"
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:790
msgid "Show the list of permitted encryption types and exit"
msgstr "Wyświetla listę dozwolonych typów szyfrowania i kończy działanie"
-#: ipa-client/ipa-getkeytab.c:794
+#: ipa-client/ipa-getkeytab.c:791
msgid "Permitted Encryption Types"
msgstr "Dozwolone typy szyfrowania"
-#: ipa-client/ipa-getkeytab.c:796
+#: ipa-client/ipa-getkeytab.c:793
msgid "Asks for a non-random password to use for the principal"
msgstr "Pyta o nielosowe hasło do użycia z naczelnikiem"
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "LDAP DN"
msgstr "DN LDAP"
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "DN to bind as if not using kerberos"
msgstr "DN do dowiązania, jeśli nie jest używany Kerberos"
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "LDAP password"
msgstr "Hasło LDAP"
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "password to use if not using kerberos"
msgstr "hasło do użycia, jeśli nie jest używany Kerberos"
-#: ipa-client/ipa-getkeytab.c:825 ipa-client/ipa-rmkeytab.c:207
-#, c-format
-msgid "Kerberos context initialization failed\n"
-msgstr "Zainicjowanie kontekstu Kerberosa nie powiodło się\n"
-
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:837
#, c-format
msgid "Supported encryption types:\n"
msgstr "Obsługiwane typy szyfrowania:\n"
-#: ipa-client/ipa-getkeytab.c:845
+#: ipa-client/ipa-getkeytab.c:841
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr "Ostrzeżenie: przekonwertowanie typu (#%d) nie powiodło się\n"
-#: ipa-client/ipa-getkeytab.c:864
+#: ipa-client/ipa-getkeytab.c:860
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr "Hasło dowiązania jest wymagane podczas używania dowiązania DN.\n"
-#: ipa-client/ipa-getkeytab.c:877
+#: ipa-client/ipa-getkeytab.c:873
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. -P)\n"
@@ -2311,19 +7867,19 @@ msgstr ""
"Ostrzeżenie: typy salt nie są uwzględniane z losowymi hasłami (proszę "
"zobaczyć opcję -P)\n"
-#: ipa-client/ipa-getkeytab.c:889
+#: ipa-client/ipa-getkeytab.c:885
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr "Nieprawidłowa nazwa naczelnika usługi\n"
-#: ipa-client/ipa-getkeytab.c:897
+#: ipa-client/ipa-getkeytab.c:893
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
"Nie odnaleziono pamięci podręcznej danych uwierzytelniających. Istnieje "
"zgłoszenie Kerberosa?\n"
-#: ipa-client/ipa-getkeytab.c:905
+#: ipa-client/ipa-getkeytab.c:901
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
@@ -2331,205 +7887,221 @@ msgstr ""
"Nie odnaleziono naczelnika użytkownika Kerberosa. Istnieje prawidłowa pamięć "
"podręczna danych uwierzytelniających?\n"
-#: ipa-client/ipa-getkeytab.c:913
+#: ipa-client/ipa-getkeytab.c:909
#, c-format
msgid "Failed to open Keytab\n"
msgstr "Otwarcie tablicy kluczy nie powiodło się\n"
-#: ipa-client/ipa-getkeytab.c:920
+#: ipa-client/ipa-getkeytab.c:916
#, c-format
msgid "Failed to create key material\n"
msgstr "Utworzenie materiału klucza nie powiodło się\n"
-#: ipa-client/ipa-getkeytab.c:939
+#: ipa-client/ipa-getkeytab.c:935
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr "Dodanie klucza do tablicy kluczy nie powiodło się\n"
-#: ipa-client/ipa-getkeytab.c:948
+#: ipa-client/ipa-getkeytab.c:944
#, c-format
msgid "Failed to close the keytab\n"
msgstr "Zamknięcie tablicy kluczy nie powiodło się\n"
-#: ipa-client/ipa-getkeytab.c:954
+#: ipa-client/ipa-getkeytab.c:950
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr "Pomyślnie pobrano tablicę kluczy i przechowano ją w: %s\n"
-#: ipa-client/ipa-join.c:67
+#: ipa-client/ipa-join.c:65
#, c-format
msgid "No permission to join this host to the IPA domain.\n"
msgstr "Brak uprawnienia do dołączenia do tego komputera w domenie IPA.\n"
-#: ipa-client/ipa-join.c:104 ipa-client/ipa-join.c:116
+#: ipa-client/ipa-join.c:94 ipa-client/ipa-join.c:106
#, c-format
msgid "No write permissions on keytab file '%s'\n"
msgstr "Brak uprawnień do zapisu pliku tablicy kluczy \"%s\"\n"
-#: ipa-client/ipa-join.c:121
+#: ipa-client/ipa-join.c:111
#, c-format
msgid "access() on %s failed: errno = %d\n"
msgstr "access() w %s nie powiodło się: errno = %d\n"
-#: ipa-client/ipa-join.c:200
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#, fuzzy, c-format
+msgid "Out of memory!"
+msgstr "Brak pamięci.\n"
+
+#: ipa-client/ipa-join.c:204
+#, fuzzy, c-format
+msgid "Unable to initialize connection to ldap server: %s"
+msgstr "Nie można zainicjować biblioteki LDAP.\n"
+
+#: ipa-client/ipa-join.c:210
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr "Nie można włączyć SSL w LDAP\n"
-#: ipa-client/ipa-join.c:206
+#: ipa-client/ipa-join.c:216
#, c-format
msgid "Unable to set LDAP version\n"
msgstr "Nie można ustawić wersji LDAP\n"
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:236
#, c-format
msgid "Bind failed: %s\n"
msgstr "Dowiązanie nie powiodło się: %s\n"
-#: ipa-client/ipa-join.c:249
+#: ipa-client/ipa-join.c:269
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr "Wyszukiwanie %s w rootdse nie powiodło się z błędem %d"
-#: ipa-client/ipa-join.c:259 ipa-client/ipa-join.c:311
+#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
#, c-format
msgid "No values for %s"
msgstr "Brak wartości dla %s"
-#: ipa-client/ipa-join.c:302
+#: ipa-client/ipa-join.c:322
#, c-format
msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr "Wyszukiwanie ipaCertificateSubjectBase nie powiodło się z błędem %d"
-#: ipa-client/ipa-join.c:368
+#: ipa-client/ipa-join.c:390
#, c-format
msgid "Unable to determine root DN of %s\n"
msgstr "Nie można ustalić głównego DN %s\n"
-#: ipa-client/ipa-join.c:377
+#: ipa-client/ipa-join.c:399
#, c-format
msgid "Unable to determine certificate subject of %s\n"
msgstr "Nie można ustalić tematu certyfikatu %s\n"
-#: ipa-client/ipa-join.c:385
+#: ipa-client/ipa-join.c:407
#, c-format
msgid "Unable to make an LDAP connection to %s\n"
msgstr "Nie można utworzyć połączenia LDAP do %s\n"
-#: ipa-client/ipa-join.c:394
+#: ipa-client/ipa-join.c:432
#, c-format
msgid "Searching with %s in %s\n"
msgstr "Wyszukiwanie %s w %s\n"
-#: ipa-client/ipa-join.c:400
+#: ipa-client/ipa-join.c:438
#, c-format
msgid "ldap_search_ext_s: %s\n"
msgstr "ldap_search_ext_s: %s\n"
-#: ipa-client/ipa-join.c:408
+#: ipa-client/ipa-join.c:446
#, c-format
msgid "Unable to find host '%s'\n"
msgstr "Nie można odnaleźć komputera \"%s\"\n"
-#: ipa-client/ipa-join.c:415
+#: ipa-client/ipa-join.c:453
#, c-format
msgid "Unable to get binddn for host '%s'\n"
msgstr "Nie można uzyskać binddn dla komputera \"%s\"\n"
-#: ipa-client/ipa-join.c:428
+#: ipa-client/ipa-join.c:466
#, c-format
msgid "Host already has principal, trying bind anyway\n"
msgstr "Komputer posiada już naczelnika, próba dowiązania mimo to\n"
-#: ipa-client/ipa-join.c:442 ipa-client/ipa-join.c:579
+#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
#, c-format
msgid "Host is already joined.\n"
msgstr "Komputer jest już dołączony.\n"
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:484
#, c-format
msgid "Incorrect password.\n"
msgstr "Niepoprawne hasło.\n"
-#: ipa-client/ipa-join.c:457
+#: ipa-client/ipa-join.c:495
#, c-format
msgid "principal not found in host entry\n"
msgstr "nie odnaleziono naczelnika we wpisie komputera\n"
-#: ipa-client/ipa-join.c:564
+#: ipa-client/ipa-join.c:618
#, c-format
msgid "principal not found in XML-RPC response\n"
msgstr "nie odnaleziono naczelnika w odpowiedzi XML-RPC\n"
-#: ipa-client/ipa-join.c:646 ipa-client/ipa-join.c:823
+#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr "Nie można ustalić serwera IPA z %s\n"
-#: ipa-client/ipa-join.c:662 ipa-client/ipa-join.c:838
+#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr "Nazwa komputera musi być w pełni kwalifikowana: %s\n"
-#: ipa-client/ipa-join.c:671 ipa-client/ipa-join.c:848
+#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
"Nie można dołączyć do komputera: zainicjowanie kontekstu Kerberosa nie "
"powiodło się\n"
-#: ipa-client/ipa-join.c:679
+#: ipa-client/ipa-join.c:732
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr "Błąd podczas rozwiązywania tablicy kluczy: %s.\n"
-#: ipa-client/ipa-join.c:689
+#: ipa-client/ipa-join.c:741
+#, fuzzy, c-format
+msgid "Error getting default Kerberos realm: %s.\n"
+msgstr ""
+"Błąd podczas uzyskiwania początkowych danych uwierzytelniających: %s.\n"
+
+#: ipa-client/ipa-join.c:759
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr "Błąd podczas przetwarzania \"%s\": %s.\n"
-#: ipa-client/ipa-join.c:707
+#: ipa-client/ipa-join.c:777
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
"Błąd podczas uzyskiwania początkowych danych uwierzytelniających: %s.\n"
-#: ipa-client/ipa-join.c:718
+#: ipa-client/ipa-join.c:788
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
"Nie można utworzyć pamięci podręcznej danych uwierzytelniających Kerberosa\n"
-#: ipa-client/ipa-join.c:726
+#: ipa-client/ipa-join.c:796
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
"Błąd podczas przechowywania danych uwierzytelniających w pamięci podręcznej: "
"%s.\n"
-#: ipa-client/ipa-join.c:769
+#: ipa-client/ipa-join.c:846
#, c-format
msgid "Unenrollment successful.\n"
msgstr "Pomyślnie wypisano.\n"
-#: ipa-client/ipa-join.c:772
+#: ipa-client/ipa-join.c:849
#, c-format
msgid "Unenrollment failed.\n"
msgstr "Wypisanie nie powiodło się.\n"
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:854
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr "nie odnaleziono wyniku w odpowiedzi XML-RPC\n"
-#: ipa-client/ipa-join.c:855
+#: ipa-client/ipa-join.c:932
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
"Nie można dołączyć do komputera: nie odnaleziono pamięci podręcznej danych "
"uwierzytelniających Kerberosa\n"
-#: ipa-client/ipa-join.c:863
+#: ipa-client/ipa-join.c:940
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not "
@@ -2538,109 +8110,123 @@ msgstr ""
"Nie można dołączyć do komputera: nie odnaleziono naczelnika użytkownika "
"Kerberosa oraz nie podano hasła komputera.\n"
-#: ipa-client/ipa-join.c:877
+#: ipa-client/ipa-join.c:954
#, c-format
msgid "fork() failed\n"
msgstr "fork() nie powiodło się\n"
-#: ipa-client/ipa-join.c:906
+#: ipa-client/ipa-join.c:983
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr "nie odnaleziono ipa-getkeytab\n"
-#: ipa-client/ipa-join.c:909
+#: ipa-client/ipa-join.c:986
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr "ipa-getkeytab posiada błędne uprawnienia?\n"
-#: ipa-client/ipa-join.c:912
+#: ipa-client/ipa-join.c:989
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr "wykonanie ipa-getkeytab nie powiodło się, errno %d\n"
-#: ipa-client/ipa-join.c:924
+#: ipa-client/ipa-join.c:1001
#, c-format
msgid "child exited with %d\n"
msgstr "potomek został zakończony z %d\n"
-#: ipa-client/ipa-join.c:930
+#: ipa-client/ipa-join.c:1007
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr "Podstawa tematu certyfikatu: %s\n"
-#: ipa-client/ipa-join.c:963
-msgid "Print the raw XML-RPC output"
+#: ipa-client/ipa-join.c:1042
+#, fuzzy
+msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr "Wyświetla surowe wyjście XML-RPC"
-#: ipa-client/ipa-join.c:963
-msgid "XML-RPC debugging Output"
-msgstr "Wyjście debugowania XML-RPC"
-
-#: ipa-client/ipa-join.c:967
-msgid "Unenroll this host"
-msgstr "Wypisuje ten komputer"
+#: ipa-client/ipa-join.c:1044
+msgid "Quiet mode. Only errors are displayed."
+msgstr ""
-#: ipa-client/ipa-join.c:967
+#: ipa-client/ipa-join.c:1046
msgid "Unenroll this host from IPA server"
msgstr "Wypisuje ten komputer z serwera IPA"
-#: ipa-client/ipa-join.c:969
-msgid "Use this hostname instead of the node name"
-msgstr "Używa tej nazwy komputera zamiast nazwy węzła"
+#: ipa-client/ipa-join.c:1048
+msgid "Hostname of this server"
+msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Host Name"
+#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#, fuzzy
+msgid "hostname"
msgstr "Nazwa komputera"
-#: ipa-client/ipa-join.c:971
+#: ipa-client/ipa-join.c:1050
msgid "IPA Server to use"
msgstr "Serwer IPA do użycia"
-#: ipa-client/ipa-join.c:971
-msgid "IPA Server Name"
-msgstr "Nazwa serwera IPA"
+#: ipa-client/ipa-join.c:1052
+#, fuzzy
+msgid "Specifies where to store keytab information."
+msgstr "Plik, w którym przechowywać informację o tablicy kluczy"
+
+#: ipa-client/ipa-join.c:1052
+#, fuzzy
+msgid "filename"
+msgstr "Nazwa reguły"
-#: ipa-client/ipa-rmkeytab.c:44
+#: ipa-client/ipa-join.c:1054
+#, fuzzy
+msgid "LDAP password (if not using Kerberos)"
+msgstr "hasło do użycia, jeśli nie jest używany Kerberos"
+
+#: ipa-client/ipa-join.c:1054
+#, fuzzy
+msgid "password"
+msgstr "Hasło"
+
+#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
msgstr "Nie można przetworzyć nazwy naczelnika\n"
-#: ipa-client/ipa-rmkeytab.c:46
+#: ipa-client/ipa-rmkeytab.c:45
#, c-format
msgid "krb5_parse_name %d: %s\n"
msgstr "krb5_parse_name %d: %s\n"
-#: ipa-client/ipa-rmkeytab.c:56
+#: ipa-client/ipa-rmkeytab.c:55
#, c-format
msgid "Removing principal %s\n"
msgstr "Usuwanie naczelnika %s\n"
-#: ipa-client/ipa-rmkeytab.c:69
+#: ipa-client/ipa-rmkeytab.c:68
#, c-format
msgid "Failed to open keytab\n"
msgstr "Otwarcie tablicy kluczy nie powiodło się\n"
-#: ipa-client/ipa-rmkeytab.c:73
+#: ipa-client/ipa-rmkeytab.c:72
#, c-format
msgid "principal not found\n"
msgstr "nie odnaleziono naczelnika\n"
-#: ipa-client/ipa-rmkeytab.c:75
+#: ipa-client/ipa-rmkeytab.c:74
#, c-format
msgid "krb5_kt_get_entry %d: %s\n"
msgstr "krb5_kt_get_entry %d: %s\n"
-#: ipa-client/ipa-rmkeytab.c:83
+#: ipa-client/ipa-rmkeytab.c:82
#, c-format
msgid "Unable to remove entry\n"
msgstr "Nie można usunąć wpisu\n"
-#: ipa-client/ipa-rmkeytab.c:85
+#: ipa-client/ipa-rmkeytab.c:84
#, c-format
msgid "kvno %d\n"
msgstr "kvno %d\n"
-#: ipa-client/ipa-rmkeytab.c:86
+#: ipa-client/ipa-rmkeytab.c:85
#, c-format
msgid "krb5_kt_remove_entry %d: %s\n"
msgstr "krb5_kt_remove_entry %d: %s\n"
@@ -2655,33 +8241,139 @@ msgstr "Nie można przetworzyć naczelnika\n"
msgid "krb5_unparse_name %d: %s\n"
msgstr "krb5_unparse_name %d: %s\n"
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:143
+#, fuzzy, c-format
+msgid "realm not found\n"
+msgstr "nie odnaleziono naczelnika\n"
+
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Print debugging information"
msgstr "Wyświetlanie informacji o debugowaniu"
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Debugging output"
msgstr "Wyjście debugowania"
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Remove all principals in this realm"
msgstr "Usuwa wszystkich naczelników w tym obszarze"
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Realm name"
msgstr "Nazwa obszaru"
-#: ipa-client/ipa-rmkeytab.c:241
-#, c-format
-msgid "Failed to open keytab '%s'\n"
+#: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237
+#, fuzzy, c-format
+msgid "Failed to open keytab '%s': %s\n"
msgstr "Otwarcie tablicy kluczy \"%s\" nie powiodło się\n"
-#: ipa-client/ipa-rmkeytab.c:255
+#: ipa-client/ipa-rmkeytab.c:253
#, c-format
msgid "Closing keytab failed\n"
msgstr "Zamknięcie tablicy kluczy nie powiodło się\n"
-#: ipa-client/ipa-rmkeytab.c:257
+#: ipa-client/ipa-rmkeytab.c:255
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr "krb5_kt_close %d: %s\n"
+
+#~ msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
+#~ msgstr ""
+#~ "Ten wpis posiada ustawione nsAccountLock, nie może być zablokowany lub "
+#~ "niezablokowany"
+
+#~ msgid "retrieve all attributes"
+#~ msgstr "odbiór wszystkich atrybutów"
+
+#~ msgid "Taskgroup"
+#~ msgstr "Grupa zadaniowa"
+
+#~ msgid "Taskgroup ACI grants access to"
+#~ msgstr "Grupa zadaniowa, do której ACI zapewnia dostęp"
+
+#~ msgid "Set an attribute to an name/value pair. Format is attr=value"
+#~ msgstr "Ustaw atrybut dla pary nazwa/wartość. Format to atrybut=wartość"
+
+#~ msgid "Default e-mail domain"
+#~ msgstr "Domyślna domena e-mail"
+
+#~ msgid "Zone"
+#~ msgstr "Strefa"
+
+#~ msgid "Record type"
+#~ msgstr "Typ wpisu"
+
+#~ msgid "Type-specific data"
+#~ msgstr "Dane specyficzne dla typu"
+
+#~ msgid "Search criteria"
+#~ msgstr "Kryterium wyszukiwania"
+
+#~ msgid "type-specific data"
+#~ msgstr "dane specyficzne dla typu"
+
+#~ msgid "Description of service"
+#~ msgstr "Opis usługi"
+
+#~ msgid "Removed kerberos key from \"%(value)s\""
+#~ msgstr "Usunięto klucz Kerberosa z \"%(value)s\""
+
+#~ msgid "Host principal has no kerberos key"
+#~ msgstr "Naczelnik komputera nie posiada klucza Kerberosa"
+
+#~ msgid "Net Groups"
+#~ msgstr "Grupy sieciowe"
+
+#~ msgid "Role Groups"
+#~ msgstr "Grupy rol"
+
+#~ msgid "Role-group name"
+#~ msgstr "Nazwa grupy rol"
+
+#~ msgid "Member of task-groups"
+#~ msgstr "Element grupy zadaniowej"
+
+#~ msgid "Service principal has no kerberos key"
+#~ msgstr "Naczelnik usługi nie posiada klucza Kerberosa"
+
+#~ msgid "Sudo Command Group name"
+#~ msgstr "Grupa polecenia sudo"
+
+#~ msgid "Task Groups"
+#~ msgstr "Grupy zadaniowe"
+
+#~ msgid "Task-group name"
+#~ msgstr "Nazwa grupy zadaniowej"
+
+#~ msgid "Task-group description"
+#~ msgstr "Opis grupy zadaniowej"
+
+#~ msgid "Member role-groups"
+#~ msgstr "Element grupy zadaniowej"
+
+#~ msgid "Added taskgroup \"%(value)s\""
+#~ msgstr "Dodano grupę zadaniową \"%(value)s\""
+
+#~ msgid "Deleted taskgroup \"%(value)s\""
+#~ msgstr "Usunięto grupę zadaniową \"%(value)s\""
+
+#~ msgid "Modified taskgroup \"%(value)s\""
+#~ msgstr "Zmodyfikowano grupę zadaniową \"%(value)s\""
+
+#~ msgid "%(count)d taskgroup matched"
+#~ msgid_plural "%(count)d taskgroups matched"
+#~ msgstr[0] "Pasuje %(count)d grupa zadaniowa"
+#~ msgstr[1] "Pasują %(count)d grupy zadaniowe"
+#~ msgstr[2] "Pasuje %(count)d grup zadaniowych"
+
+#~ msgid "Taskgroups"
+#~ msgstr "Grupy zadaniowe"
+
+#~ msgid "XML-RPC debugging Output"
+#~ msgstr "Wyjście debugowania XML-RPC"
+
+#~ msgid "Unenroll this host"
+#~ msgstr "Wypisuje ten komputer"
+
+#~ msgid "Use this hostname instead of the node name"
+#~ msgstr "Używa tej nazwy komputera zamiast nazwy węzła"
diff --git a/install/po/pt.po b/install/po/pt.po
index 7cfb0e247..f749bfd79 100644
--- a/install/po/pt.po
+++ b/install/po/pt.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: ipa\n"
"Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/"
"newticket\n"
-"POT-Creation-Date: 2010-10-13 14:22-0400\n"
+"POT-Creation-Date: 2011-06-06 13:27-0400\n"
"PO-Revision-Date: 2010-03-16 17:21-0400\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -18,1507 +18,4745 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ipalib/cli.py:507
-#, python-format
-msgid "Enter %(label)s again to verify: "
+#: ipalib/plugins/__init__.py:20
+msgid ""
+"\n"
+"Sub-package containing all core plugins.\n"
msgstr ""
-#: ipalib/cli.py:511 ipa-client/ipa-getkeytab.c:730
-#, c-format
-msgid "Passwords do not match!"
+#: ipalib/plugins/aci.py:20
+msgid ""
+"\n"
+"Directory Server Access Control Instructions (ACIs)\n"
+"\n"
+"ACIs are used to allow or deny access to information. This module is\n"
+"currently designed to allow, not deny, access.\n"
+"\n"
+"The aci commands are designed to grant permissions that allow updating\n"
+"existing entries or adding or deleting new ones. The goal of the ACIs\n"
+"that ship with IPA is to provide a set of low-level permissions that\n"
+"grant access to special groups called taskgroups. These low-level\n"
+"permissions can be combined into roles that grant broader access. These\n"
+"roles are another type of group, roles.\n"
+"\n"
+"For example, if you have taskgroups that allow adding and modifying users "
+"you\n"
+"could create a role, useradmin. You would assign users to the useradmin\n"
+"role to allow them to do the operations defined by the taskgroups.\n"
+"\n"
+"You can create ACIs that delegate permission so users in group A can write\n"
+"attributes on group B.\n"
+"\n"
+"The type option is a map that applies to all entries in the users, groups "
+"or\n"
+"host location. It is primarily designed to be used when granting add\n"
+"permissions (to write new entries).\n"
+"\n"
+"An ACI consists of three parts:\n"
+"1. target\n"
+"2. permissions\n"
+"3. bind rules\n"
+"\n"
+"The target is a set of rules that define which LDAP objects are being\n"
+"targeted. This can include a list of attributes, an area of that LDAP\n"
+"tree or an LDAP filter.\n"
+"\n"
+"The targets include:\n"
+"- attrs: list of attributes affected\n"
+"- type: an object type (user, group, host, service, etc)\n"
+"- memberof: members of a group\n"
+"- targetgroup: grant access to modify a specific group. This is primarily\n"
+" designed to enable users to add or remove members of a specific group.\n"
+"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
+"- subtree: Used to apply a rule across an entire set of objects. For "
+"example,\n"
+" to allow adding users you need to grant \"add\" permission to the subtree\n"
+" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
+" is a fail-safe for objects that may not be covered by the type option.\n"
+"\n"
+"The permissions define what the the ACI is allowed to do, and are one or\n"
+"more of:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
+"allows this to be any valid LDAP entry but we encourage the use of\n"
+"taskgroups so that the rights can be easily shared through roles.\n"
+"\n"
+"For a more thorough description of access controls see\n"
+"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control."
+"html\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
+"demonstrate how the various options work but this is done via the "
+"permission\n"
+"command-line now (see last example).\n"
+"\n"
+" Add an ACI so that the group \"secretaries\" can update the address on any "
+"user:\n"
+" ipa group-add --desc=\"Office secretaries\" secretaries\n"
+" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries "
+"--permissions=write --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Show the new ACI:\n"
+" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Add an ACI that allows members of the \"addusers\" permission to add new "
+"users:\n"
+" ipa aci-add --type=user --permission=addusers --permissions=add --"
+"prefix=none \"Add new users\"\n"
+"\n"
+" Add an ACI that allows members of the editors manage members of the admins "
+"group:\n"
+" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --"
+"group=editors --prefix=none \"Editors manage admins\"\n"
+"\n"
+" Add an ACI that allows members of the admin group to manage the street and "
+"zip code of those in the editors group:\n"
+" ipa aci-add --permissions=write --memberof=editors --group=admins --"
+"attrs=street,postalcode --prefix=none \"admins edit the address of editors"
+"\"\n"
+"\n"
+" Add an ACI that allows the admins group manage the street and zipcode of "
+"those who work for the boss:\n"
+" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode "
+"--filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --"
+"prefix=none \"Edit the address of those who work for the boss\"\n"
+"\n"
+" Add an entirely new kind of record to IPA that isn't covered by any of the "
+"--type options, creating a permission:\n"
+" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,"
+"cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
+"\n"
+"\n"
+"The show command shows the raw 389-ds ACI.\n"
+"\n"
+"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
+"must include all existing attributes as well. When doing an aci-mod the\n"
+"targetattr REPLACES the current attributes, it does not add to them.\n"
+"\n"
msgstr ""
-#: ipalib/cli.py:516
-msgid "Cancelled."
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
-#: ipalib/errors.py:297
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+#: ipalib/plugins/aci.py:172
+msgid ""
+"\n"
+" Given a name and a prefix construct an ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:315
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
+#: ipalib/plugins/aci.py:181
+msgid ""
+"\n"
+" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
+" and the actual ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:331
-msgid "an internal error has occurred"
+#: ipalib/plugins/aci.py:193
+msgid ""
+"\n"
+" Pull the group name out of a memberOf filter\n"
+" "
msgstr ""
-#: ipalib/errors.py:353
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
+#: ipalib/plugins/aci.py:204
+msgid ""
+"\n"
+" Given a name and a set of keywords construct an ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:369
-#, python-format
-msgid "unknown command %(name)r"
+#: ipalib/plugins/aci.py:215
+msgid "type, filter, subtree and targetgroup are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:386 ipalib/errors.py:411
-#, python-format
-msgid "error on server %(server)r: %(error)s"
+#: ipalib/plugins/aci.py:218
+msgid "ACI prefix is required"
msgstr ""
-#: ipalib/errors.py:402
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+#: ipalib/plugins/aci.py:221
+msgid ""
+"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
+"required"
msgstr ""
-#: ipalib/errors.py:420
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
+#: ipalib/plugins/aci.py:224
+msgid "filter and memberof are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:448
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
+#: ipalib/plugins/aci.py:230
+msgid "group, permission and self are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:465
-msgid "did not receive Kerberos credentials"
+#: ipalib/plugins/aci.py:232
+msgid "One of group, permission or self is required"
msgstr ""
-#: ipalib/errors.py:481
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
+#: ipalib/plugins/aci.py:251
+msgid "Group '%s' does not exist"
msgstr ""
-#: ipalib/errors.py:497
-msgid "No credentials cache found"
+#: ipalib/plugins/aci.py:273
+msgid "empty filter"
msgstr ""
-#: ipalib/errors.py:513
-msgid "Ticket expired"
+#: ipalib/plugins/aci.py:294
+msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/errors.py:529
-msgid "Credentials cache permissions incorrect"
+#: ipalib/plugins/aci.py:299
+msgid ""
+"Convert an ACI into its equivalent keywords.\n"
+"\n"
+" This is used for the modify operation so we can merge the\n"
+" incoming kw and existing ACI and pass the result to\n"
+" _make_aci().\n"
+" "
msgstr ""
-#: ipalib/errors.py:545
-msgid "Bad format in credentials cache"
+#: ipalib/plugins/aci.py:379
+msgid "ACI with name \"%s\" not found"
msgstr ""
-#: ipalib/errors.py:561
-msgid "Cannot resolve KDC for requested realm"
+#: ipalib/plugins/aci.py:400
+msgid "ACI prefix"
msgstr ""
-#: ipalib/errors.py:580
-#, python-format
-msgid "Insufficient access: %(info)s"
+#: ipalib/plugins/aci.py:401
+msgid ""
+"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
+"none)"
msgstr ""
-#: ipalib/errors.py:624
-#, python-format
-msgid "command %(name)r takes no arguments"
+#: ipalib/plugins/aci.py:407
+msgid ""
+"\n"
+" ACI object.\n"
+" "
msgstr ""
-#: ipalib/errors.py:644
-#, python-format
-msgid "command %(name)r takes at most %(count)d argument"
-msgid_plural "command %(name)r takes at most %(count)d arguments"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/aci.py:412
+msgid "ACIs"
+msgstr ""
-#: ipalib/errors.py:674
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
+#: ipalib/plugins/aci.py:417
+msgid "ACI name"
msgstr ""
-#: ipalib/errors.py:690
-#, python-format
-msgid "%(name)r is required"
+#: ipalib/plugins/aci.py:422
+msgid "Permission"
msgstr ""
-#: ipalib/errors.py:706 ipalib/errors.py:722
-#, python-format
-msgid "invalid %(name)r: %(error)s"
+#: ipalib/plugins/aci.py:423
+msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/errors.py:738
-#, python-format
-msgid "api has no such namespace: %(name)r"
+#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+msgid "User group"
msgstr ""
-#: ipalib/errors.py:747
-msgid "Passwords do not match"
+#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/errors.py:755
-msgid "Command not implemented"
+#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
+#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
+#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+msgid "Permissions"
msgstr ""
-#: ipalib/errors.py:783 ipalib/errors.py:1023 ipalib/errors.py:1254
-#, python-format
-msgid "%(reason)s"
+#: ipalib/plugins/aci.py:433
+msgid ""
+"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/errors.py:799
-msgid "This entry already exists"
+#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
+#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+msgid "Attributes"
msgstr ""
-#: ipalib/errors.py:815
-msgid "You must enroll a host in order to create a host service"
+#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
+#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/errors.py:831
-#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
+#: ipalib/plugins/permission.py:131
+msgid "Type"
msgstr ""
-#: ipalib/errors.py:847
-msgid ""
-"The realm for the principal does not match the realm for this IPA server"
+#: ipalib/plugins/aci.py:445
+msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/errors.py:863
-msgid "This command requires root access"
+#: ipalib/plugins/aci.py:450
+msgid "Member of"
msgstr ""
-#: ipalib/errors.py:879
-msgid "This is already a posix group"
+#: ipalib/plugins/aci.py:451
+msgid "Member of a group"
msgstr ""
-#: ipalib/errors.py:895
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
+#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
+#: ipalib/plugins/permission.py:144
+msgid "Filter"
msgstr ""
-#: ipalib/errors.py:911
-msgid "This entry is already unlocked"
+#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/errors.py:927
-msgid "This entry is already locked"
+#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+msgid "Subtree"
msgstr ""
-#: ipalib/errors.py:943
-msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
+#: ipalib/plugins/aci.py:461
+msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/errors.py:959
-msgid "This entry is not a member of the group"
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+msgid "Target group"
msgstr ""
-#: ipalib/errors.py:975
-msgid "A group may not be a member of itself"
+#: ipalib/plugins/aci.py:466
+msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/errors.py:991
-msgid "This entry is already a member of the group"
+#: ipalib/plugins/aci.py:470
+msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/errors.py:1007
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
+#: ipalib/plugins/aci.py:471
+msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/errors.py:1039
-msgid "A group may not be added as a member of itself"
+#: ipalib/plugins/aci.py:478
+msgid ""
+"\n"
+" Create new ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1055
-msgid "The default users group cannot be removed"
+#: ipalib/plugins/aci.py:482
+msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1071
-msgid "Host does not have corresponding DNS A record"
+#: ipalib/plugins/aci.py:487
+msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/errors.py:1086
-msgid "Deleting a managed group is not allowed. It must be detached first."
+#: ipalib/plugins/aci.py:493
+msgid ""
+"\n"
+" Execute the aci-create operation.\n"
+"\n"
+" Returns the entry as it will be created in LDAP.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: Keyword arguments for the other LDAP attributes.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1109
-#, python-format
-msgid "no command nor help topic %(topic)r"
+#: ipalib/plugins/aci.py:533
+msgid ""
+"\n"
+" Delete ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1133
-msgid "change collided with another change"
+#: ipalib/plugins/aci.py:538
+msgid "Deleted ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1149
-msgid "no modifications to be performed"
+#: ipalib/plugins/aci.py:543
+msgid ""
+"\n"
+" Execute the aci-delete operation.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/errors.py:1165
-#, python-format
-msgid "%(desc)s:%(info)s"
+#: ipalib/plugins/aci.py:576
+msgid ""
+"\n"
+" Modify ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1181
-msgid "limits exceeded for this query"
+#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
+#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
+#: ipalib/plugins/selfservice.py:212
+msgid "ACI"
msgstr ""
-#: ipalib/errors.py:1196
-#, python-format
-msgid "%(info)s"
+#: ipalib/plugins/aci.py:588
+msgid "Modified ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1221
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
+#: ipalib/plugins/aci.py:633
+msgid ""
+"\n"
+" Search for ACIs.\n"
+"\n"
+" Returns a list of ACIs\n"
+"\n"
+" EXAMPLES:\n"
+"\n"
+" To find all ACIs that apply directly to members of the group ipausers:\n"
+" ipa aci-find --memberof=ipausers\n"
+"\n"
+" To find all ACIs that grant add access:\n"
+" ipa aci-find --permissions=add\n"
+"\n"
+" Note that the find command only looks for the given text in the set of\n"
+" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
+" For example, searching on memberof=ipausers will find all ACIs that\n"
+" have ipausers as a memberof. There may be other ACIs that apply to\n"
+" members of that group indirectly.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:653
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/aci.py:823
+msgid ""
+"\n"
+" Display a single ACI given an ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1237
-#, python-format
-msgid "Certificate format error: %(error)s"
+#: ipalib/plugins/aci.py:837
+msgid ""
+"\n"
+" Execute the aci-show operation.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param uid: The login name of the user to retrieve.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/frontend.py:380
-msgid "Results are truncated, try a more specific search"
+#: ipalib/plugins/aci.py:865
+msgid ""
+"\n"
+" Rename an ACI.\n"
+" "
msgstr ""
-#: ipalib/frontend.py:797 ipalib/plugins/misc.py:47
-msgid "retrieve all attributes"
+#: ipalib/plugins/aci.py:878
+msgid "New ACI name"
msgstr ""
-#: ipalib/frontend.py:803
-msgid "print entries as stored on the server"
+#: ipalib/plugins/aci.py:882
+msgid "Renamed ACI to \"%(value)s\""
msgstr ""
-#: ipalib/frontend.py:940
-msgid "Forward to server instead of running locally"
+#: ipalib/plugins/automount.py:20
+msgid ""
+"\n"
+"Automount\n"
+"\n"
+"Stores automount(8) configuration for autofs(8) in IPA.\n"
+"\n"
+"The base of an automount configuration is the configuration file auto."
+"master.\n"
+"This is also the base location in IPA. Multiple auto.master configurations\n"
+"can be stored in separate locations. A location is implementation-specific\n"
+"with the default being a location named 'default'. For example, you can "
+"have\n"
+"locations by geographic region, by floor, by type, etc.\n"
+"\n"
+"Automount has three basic object types: locations, maps and keys.\n"
+"\n"
+"A location defines a set of maps anchored in auto.master. This allows you\n"
+"to store multiple automount configurations. A location in itself isn't\n"
+"very interesting, it is just a point to start a new automount map.\n"
+"\n"
+"A map is roughly equivalent to a discrete automount file and provides\n"
+"storage for keys.\n"
+"\n"
+"A key is a mount point associated with a map.\n"
+"\n"
+"When a new location is created, two maps are automatically created for\n"
+"it: auto.master and auto.direct. auto.master is the root map for all\n"
+"automount maps for the location. auto.direct is the default map for\n"
+"direct mounts and is mounted on /-.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"Locations:\n"
+"\n"
+" Create a named location, \"Baltimore\":\n"
+" ipa automountlocation-add baltimore\n"
+"\n"
+" Display the new location:\n"
+" ipa automountlocation-show baltimore\n"
+"\n"
+" Find available locations:\n"
+" ipa automountlocation-find\n"
+"\n"
+" Remove a named automount location:\n"
+" ipa automountlocation-del baltimore\n"
+"\n"
+" Show what the automount maps would look like if they were in the "
+"filesystem:\n"
+" ipa automountlocation-tofiles baltimore\n"
+"\n"
+" Import an existing configuration into a location:\n"
+" ipa automountlocation-import baltimore /etc/auto.master\n"
+"\n"
+" The import will fail if any duplicate entries are found. For\n"
+" continuous operation where errors are ignored, use the --continue\n"
+" option.\n"
+"\n"
+"Maps:\n"
+"\n"
+" Create a new map, \"auto.share\":\n"
+" ipa automountmap-add baltimore auto.share\n"
+"\n"
+" Display the new map:\n"
+" ipa automountmap-show baltimore auto.share\n"
+"\n"
+" Find maps in the location baltimore:\n"
+" ipa automountmap-find baltimore\n"
+"\n"
+" Remove the auto.share map:\n"
+" ipa automountmap-del baltimore auto.share\n"
+"\n"
+"Keys:\n"
+"\n"
+" Create a new key for the auto.share map in location baltimore. This ties\n"
+" the map we previously created to auto.master:\n"
+" ipa automountkey-add baltimore auto.master --key=/share --info=auto."
+"share\n"
+"\n"
+" Create a new key for our auto.share map, an NFS mount for man pages:\n"
+" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,"
+"rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n"
+"\n"
+" Find all keys for the auto.share map:\n"
+" ipa automountkey-find baltimore auto.share\n"
+"\n"
+" Find all direct automount keys:\n"
+" ipa automountkey-find baltimore --key=/-\n"
+"\n"
+" Remove the man key from the auto.share map:\n"
+" ipa automountkey-del baltimore auto.share --key=man\n"
+msgstr ""
+
+#: ipalib/plugins/automount.py:182
+msgid ""
+"\n"
+" Location container for automount maps.\n"
+" "
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
+#: ipalib/plugins/automount.py:190
+msgid "Automount Locations"
msgstr ""
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
+#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+msgid "Location"
msgstr ""
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
+#: ipalib/plugins/automount.py:197
+msgid "Automount location name."
msgstr ""
-#: ipalib/parameters.py:295
-msgid "incorrect type"
+#: ipalib/plugins/automount.py:206
+msgid ""
+"\n"
+" Create a new automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:298
-msgid "Only one value is allowed"
+#: ipalib/plugins/automount.py:221
+msgid ""
+"\n"
+" Delete an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:877
-msgid "must be True or False"
+#: ipalib/plugins/automount.py:229
+msgid ""
+"\n"
+" Display an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:978
-msgid "must be an integer"
+#: ipalib/plugins/automount.py:237
+msgid ""
+"\n"
+" Search for an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1029
-#, python-format
-msgid "must be at least %(minvalue)d"
+#: ipalib/plugins/automount.py:245
+msgid ""
+"\n"
+" Generate automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1039
-#, python-format
-msgid "can be at most %(maxvalue)d"
+#: ipalib/plugins/automount.py:308
+msgid ""
+"\n"
+" Import automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1049
-msgid "must be a decimal number"
+#: ipalib/plugins/automount.py:314
+msgid "Master file"
msgstr ""
-#: ipalib/parameters.py:1071
-#, python-format
-msgid "must be at least %(minvalue)f"
+#: ipalib/plugins/automount.py:315
+msgid "Automount master file."
msgstr ""
-#: ipalib/parameters.py:1081
-#, python-format
-msgid "can be at most %(maxvalue)f"
+#: ipalib/plugins/automount.py:322
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/parameters.py:1145
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
+#: ipalib/plugins/automount.py:334
+msgid "File %(file)s not found"
msgstr ""
-#: ipalib/parameters.py:1163
-msgid "must be binary data"
+#: ipalib/plugins/automount.py:341
+msgid ""
+"\n"
+" The basic idea is to read the master file and create all the maps\n"
+" we need, then read each map file and add all the keys for the map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1179
-#, python-format
-msgid "must be at least %(minlength)d bytes"
+#: ipalib/plugins/automount.py:492
+msgid ""
+"\n"
+" Automount map object.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1189
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
+#: ipalib/plugins/automount.py:505
+msgid "Map"
msgstr ""
-#: ipalib/parameters.py:1199
-#, python-format
-msgid "must be exactly %(length)d bytes"
+#: ipalib/plugins/automount.py:506
+msgid "Automount map name."
msgstr ""
-#: ipalib/parameters.py:1217
-msgid "must be Unicode text"
+#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
+#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
+#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
+#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
+#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
+#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
+#: ipalib/plugins/sudorule.py:78
+msgid "Description"
msgstr ""
-#: ipalib/parameters.py:1248
-#, python-format
-msgid "must be at least %(minlength)d characters"
+#: ipalib/plugins/automount.py:515
+msgid "Automount Maps"
msgstr ""
-#: ipalib/parameters.py:1258
-#, python-format
-msgid "can be at most %(maxlength)d characters"
+#: ipalib/plugins/automount.py:521
+msgid ""
+"\n"
+" Create a new automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1268
-#, python-format
-msgid "must be exactly %(length)d characters"
+#: ipalib/plugins/automount.py:529
+msgid ""
+"\n"
+" Delete an automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1307
-#, python-format
-msgid "must be one of %(values)r"
+#: ipalib/plugins/automount.py:548
+msgid ""
+"\n"
+" Modify an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:111
-msgid "A list of ACI values"
+#: ipalib/plugins/automount.py:556
+msgid ""
+"\n"
+" Search for an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:142
-msgid "type, filter, subtree and targetgroup are mutually exclusive"
+#: ipalib/plugins/automount.py:564
+msgid ""
+"\n"
+" Display an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:145
+#: ipalib/plugins/automount.py:572
msgid ""
-"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
-"required"
+"\n"
+" Automount key object.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:151
-msgid "group, taskgroup and self are mutually exclusive"
+#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
+#: ipalib/plugins/automount.py:850
+msgid "Key"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "One of group, taskgroup or self is required"
+#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
+#: ipalib/plugins/automount.py:851
+msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/aci.py:172
-#, python-format
-msgid "Group '%s' does not exist"
+#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
+#: ipalib/plugins/automount.py:855
+msgid "Mount information"
msgstr ""
-#: ipalib/plugins/aci.py:269
-#, python-format
-msgid "ACI with name \"%s\" not found"
+#: ipalib/plugins/automount.py:597
+msgid "description"
msgstr ""
-#: ipalib/plugins/aci.py:286
-msgid "ACIs"
+#: ipalib/plugins/automount.py:606
+msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/aci.py:291
-msgid "ACI name"
+#: ipalib/plugins/automount.py:607
+msgid ""
+"The key,info pair must be unique. A key named %(key)s with info %(info)s "
+"already exists"
msgstr ""
-#: ipalib/plugins/aci.py:296
-msgid "Taskgroup"
+#: ipalib/plugins/automount.py:608
+msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/aci.py:297
-msgid "Taskgroup ACI grants access to"
+#: ipalib/plugins/automount.py:609
+msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/aci.py:301
-msgid "User group"
+#: ipalib/plugins/automount.py:659
+msgid ""
+"More than one entry with key %(key)s found, use --info to select specific "
+"entry."
msgstr ""
-#: ipalib/plugins/aci.py:302
-msgid "User group ACI grants access to"
+#: ipalib/plugins/automount.py:717
+msgid ""
+"\n"
+" Create a new automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:306
-msgid "Permissions"
+#: ipalib/plugins/automount.py:742
+msgid ""
+"\n"
+" Create a new indirect mount point.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:748
+msgid "Mount point"
+msgstr ""
+
+#: ipalib/plugins/automount.py:752
+msgid "Parent map"
msgstr ""
-#: ipalib/plugins/aci.py:307
+#: ipalib/plugins/automount.py:753
+msgid "Name of parent automount map (default: auto.master)."
+msgstr ""
+
+#: ipalib/plugins/automount.py:772
msgid ""
-"comma-separated list of permissions to grant(read, write, add, delete, all)"
+"\n"
+" Delete an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:313
-msgid "Attributes"
+#: ipalib/plugins/automount.py:803
+msgid ""
+"\n"
+" Modify an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:314
-msgid "Comma-separated list of attributes"
+#: ipalib/plugins/automount.py:809
+msgid "New mount information"
msgstr ""
-#: ipalib/plugins/aci.py:318
-msgid "Type"
+#: ipalib/plugins/automount.py:836
+msgid ""
+"\n"
+" Search for an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:319
-msgid "type of IPA object (user, group, host)"
+#: ipalib/plugins/automount.py:844
+msgid ""
+"\n"
+" Display an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:324
-msgid "Member of"
+#: ipalib/plugins/baseldap.py:19
+msgid ""
+"\n"
+"Base classes for LDAP plugins.\n"
msgstr ""
-#: ipalib/plugins/aci.py:325
-msgid "Member of a group"
+#: ipalib/plugins/baseldap.py:39
+msgid "Failed members"
msgstr ""
-#: ipalib/plugins/aci.py:329
-msgid "Filter"
+#: ipalib/plugins/baseldap.py:42
+msgid "Member users"
msgstr ""
-#: ipalib/plugins/aci.py:330
-msgid "Legal LDAP filter (e.g. ou=Engineering)"
+#: ipalib/plugins/baseldap.py:45
+msgid "Member groups"
msgstr ""
-#: ipalib/plugins/aci.py:334
-msgid "Subtree"
+#: ipalib/plugins/baseldap.py:48
+msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/aci.py:335
-msgid "Subtree to apply ACI to"
+#: ipalib/plugins/baseldap.py:51
+msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/aci.py:339
-msgid "Target group"
+#: ipalib/plugins/baseldap.py:54
+msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:340
-msgid "Group to apply ACI to"
+#: ipalib/plugins/baseldap.py:57
+msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:344
-msgid "Target your own entry (self)"
+#: ipalib/plugins/baseldap.py:66
+msgid "Roles"
msgstr ""
-#: ipalib/plugins/aci.py:345
-msgid "Apply ACI to your own entry (self)"
+#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
+#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
+#: ipalib/plugins/sudorule.py:143
+msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/aci.py:357
-#, python-format
-msgid "Created ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:75
+msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/aci.py:407
-#, python-format
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:78
+msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:447
-#, python-format
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:81
+msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:519
-#, python-format
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/baseldap.py:84
+msgid "Member services"
+msgstr ""
-#: ipalib/plugins/automount.py:103
-msgid "Automount"
+#: ipalib/plugins/baseldap.py:87
+msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/automount.py:109 ipalib/plugins/host.py:134
-msgid "Location"
+#: ipalib/plugins/baseldap.py:93
+msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/automount.py:110
-msgid "Automount location name"
+#: ipalib/plugins/baseldap.py:102
+msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/automount.py:226
-msgid "Map"
+#: ipalib/plugins/baseldap.py:105
+msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/automount.py:227
-msgid "Automount map name"
+#: ipalib/plugins/baseldap.py:108
+msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/automount.py:232 ipalib/plugins/group.py:108
-#: ipalib/plugins/hbac.py:151 ipalib/plugins/hbacsvc.py:72
-#: ipalib/plugins/hbacsvcgroup.py:77 ipalib/plugins/host.py:124
-#: ipalib/plugins/hostgroup.py:81 ipalib/plugins/netgroup.py:96
-#: ipalib/plugins/rolegroup.py:90 ipalib/plugins/sudocmd.py:71
-#: ipalib/plugins/sudocmdgroup.py:77 ipalib/plugins/sudorule.py:58
-#: ipalib/plugins/taskgroup.py:62
-msgid "Description"
+#: ipalib/plugins/baseldap.py:111
+msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/automount.py:236
-msgid "Automount Maps"
+#: ipalib/plugins/baseldap.py:114
+msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid "Key"
+#: ipalib/plugins/baseldap.py:117
+msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/automount.py:309
-msgid "Automount key name"
+#: ipalib/plugins/baseldap.py:120
+msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/automount.py:314
-msgid "Mount information"
+#: ipalib/plugins/baseldap.py:123
+msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/automount.py:318
-msgid "description"
+#: ipalib/plugins/baseldap.py:126
+msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/automount.py:322
-msgid "Automount Keys"
+#: ipalib/plugins/baseldap.py:141
+msgid "External host"
msgstr ""
-#: ipalib/plugins/automount.py:342
-msgid "Mount point"
+#: ipalib/plugins/baseldap.py:144
+msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/automount.py:346
-msgid "Parent map"
+#: ipalib/plugins/baseldap.py:147
+msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/automount.py:347
-msgid "Name of parent automount map (default: auto.master)"
+#: ipalib/plugins/baseldap.py:150
+msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:79
-#, python-format
+#: ipalib/plugins/baseldap.py:153
+msgid "Failed to remove"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:171
+msgid ""
+"\n"
+" Given a list of values in the form name=value, return a list of name.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:197
+msgid ""
+"\n"
+" When adding or removing reverse members we are faking an update to\n"
+" object A by updating the member attribute in object B. The memberof\n"
+" plugin makes this work by adding or removing the memberof attribute\n"
+" to/from object A, it just takes a little bit of time.\n"
+"\n"
+" This will loop for 6+ seconds, retrieving object A so we can see\n"
+" if all the memberof attributes have been updated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:241
+msgid ""
+"\n"
+" Object representing a LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:281
+msgid "Entry"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:283
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:80
-#, python-format
+#: ipalib/plugins/baseldap.py:284
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
-#, python-format
+#: ipalib/plugins/baseldap.py:285
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
-msgid "Add an attribute/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:286
+msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:155
-msgid "Set an attribute to an name/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:415
+msgid ""
+"Add an attribute/value pair. Format is attr=value. The attribute must be "
+"part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:359
+#: ipalib/plugins/baseldap.py:420
+msgid ""
+"Set an attribute to a name/value pair. Format is attr=value.\n"
+"For multi-valued attributes, the command replaces the values already present."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:444
+msgid ""
+"\n"
+" If the set of objectclasses is limited enforce that only those\n"
+" are updated in entry_attrs (plus dn)\n"
+"\n"
+" allow_only tells us what mode to check in:\n"
+"\n"
+" If True then we enforce that the attributes must be in the list of\n"
+" allowed.\n"
+"\n"
+" If False then those attributes are not allowed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:474
+msgid ""
+"\n"
+" Callback registration interface\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:561
+msgid ""
+"\n"
+" Create a new entry in LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:703
+msgid ""
+"\n"
+" Base class for commands that need to retrieve an existing entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:727
+msgid ""
+"\n"
+" Base class for commands that need to retrieve one or more existing "
+"entries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:733
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:517
+#: ipalib/plugins/baseldap.py:750
+msgid ""
+"\n"
+" Retrieve an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
+#: ipalib/plugins/internal.py:232
+msgid "Rights"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+msgid ""
+"Display the access rights of this entry (requires --all). See ipa man page "
+"for details."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:821
+msgid ""
+"\n"
+" Update an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:837
+msgid "Rename"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:838
+msgid "Rename the %(ldap_obj_name)s object"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:957
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:674
+#: ipalib/plugins/baseldap.py:988
+msgid ""
+"\n"
+" Delete an LDAP entry and all of its direct subentries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1078
+msgid ""
+"\n"
+" Base class for member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1120
+msgid ""
+"\n"
+" Add other LDAP entries to members.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
+#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
+#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
msgid "Members that could not be added"
msgstr ""
-#: ipalib/plugins/baseldap.py:678
+#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:684 ipalib/plugins/baseldap.py:789
-msgid "Failed members"
+#: ipalib/plugins/baseldap.py:1226
+msgid ""
+"\n"
+" Remove LDAP entries from members.\n"
+" "
msgstr ""
-#: ipalib/plugins/baseldap.py:779
+#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:783
+#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:880
+#: ipalib/plugins/baseldap.py:1335
+msgid ""
+"\n"
+" Retrieve all LDAP entries matching the given criteria.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1344
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:881
+#: ipalib/plugins/baseldap.py:1345
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:887
+#: ipalib/plugins/baseldap.py:1351
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:888
+#: ipalib/plugins/baseldap.py:1352
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/cert.py:93
+#: ipalib/plugins/baseldap.py:1552
+msgid ""
+"\n"
+" Base class for reverse member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1574
+msgid ""
+"\n"
+" Add other LDAP entries to members in reverse.\n"
+"\n"
+" The call looks like \"add A to B\" but in fact executes\n"
+" add B to A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1654
+msgid "added"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1687
+msgid ""
+"\n"
+" Remove other LDAP entries from members in reverse.\n"
+"\n"
+" The call looks like \"remove A from B\" but in fact executes\n"
+" remove B from A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1767
+msgid "removed"
+msgstr ""
+
+#: ipalib/plugins/batch.py:21
+msgid ""
+"\n"
+"Plugin to make multiple ipa calls via one remote procedure call\n"
+"\n"
+"To run this code in the lite-server\n"
+"\n"
+"curl -H \"Content-Type:application/json\" -H \"Accept:application/"
+"json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /"
+"etc/ipa/ca.crt -d @batch_request.json -X POST http://"
+"localhost:8888/ipa/json\n"
+"\n"
+"where the contents of the file batch_request.json follow the below example\n"
+"\n"
+"{\"method\":\"batch\",\"params\":[[\n"
+" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
+" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all"
+"\":\"true\"}]},\n"
+" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
+" ],{}],\"id\":1}\n"
+"\n"
+"The format of the response is nested the same way. At the top you will see\n"
+" \"error\": null,\n"
+" \"id\": 1,\n"
+" \"result\": {\n"
+" \"count\": 3,\n"
+" \"results\": [\n"
+"\n"
+"\n"
+"And then a nested response for each IPA command method sent in the request\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/batch.py:61
+msgid "Nested Methods to execute"
+msgstr ""
+
+#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/plugins/cert.py:22
+msgid ""
+"\n"
+"IPA certificate operations\n"
+"\n"
+"Implements a set of commands for managing server SSL certificates.\n"
+"\n"
+"Certificate requests exist in the form of a Certificate Signing Request "
+"(CSR)\n"
+"in PEM format.\n"
+"\n"
+"If using the selfsign back end then the subject in the CSR needs to match\n"
+"the subject configured in the server. The dogtag CA uses just the CN\n"
+"value of the CSR and forces the rest of the subject.\n"
+"\n"
+"A certificate is stored with a service principal and a service principal\n"
+"needs a host.\n"
+"\n"
+"In order to request a certificate:\n"
+"\n"
+"* The host must exist\n"
+"* The service must exist (or you use the --add option to automatically add "
+"it)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Request a new certificate and add the principal:\n"
+" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n"
+"\n"
+" Retrieve an existing certificate:\n"
+" ipa cert-show 1032\n"
+"\n"
+" Revoke a certificate (see RFC 5280 for reason details):\n"
+" ipa cert-revoke --revocation-reason=6 1032\n"
+"\n"
+" Remove a certificate from revocation hold status:\n"
+" ipa cert-remove-hold 1032\n"
+"\n"
+" Check the status of a signing request:\n"
+" ipa cert-status 10\n"
+"\n"
+"IPA currently immediately issues (or declines) all certificate requests so\n"
+"the status of a request is not normally useful. This is for future use\n"
+"or the case where a CA does not immediately issue a certificate.\n"
+"\n"
+"The following revocation reasons are supported:\n"
+"\n"
+" * 0 - unspecified\n"
+" * 1 - keyCompromise\n"
+" * 2 - cACompromise\n"
+" * 3 - affiliationChanged\n"
+" * 4 - superseded\n"
+" * 5 - cessationOfOperation\n"
+" * 6 - certificateHold\n"
+" * 8 - removeFromCRL\n"
+" * 9 - privilegeWithdrawn\n"
+" * 10 - aACompromise\n"
+"\n"
+"Note that reason code 7 is not used. See RFC 5280 for more details:\n"
+"\n"
+"http://www.ietf.org/rfc/rfc5280.txt\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/cert.py:104
+msgid ""
+"\n"
+" Return the value of CN in the subject of the request or None\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:106 ipalib/plugins/cert.py:118
+#: ipalib/plugins/cert.py:115
+msgid ""
+"\n"
+" Return the first value of the subject alt name, if any\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:120
-#, python-format
+#: ipalib/plugins/cert.py:128
+msgid ""
+"\n"
+" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
+" parser.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:139
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:171 ipalib/plugins/service.py:197
+#: ipalib/plugins/cert.py:142
+msgid ""
+"\n"
+" Strip any leading and trailing cruft around the BEGIN/END block\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:162
+msgid ""
+"\n"
+" Convert a SN given in decimal or hexadecimal.\n"
+" Returns the number or None if conversion fails.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:188
+msgid ""
+"\n"
+" Given a principal with or without a realm return the\n"
+" host portion.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:202
+msgid ""
+"\n"
+" Submit a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:172
+#: ipalib/plugins/cert.py:217
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:179
+#: ipalib/plugins/cert.py:224
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:187 ipalib/plugins/cert.py:392
-#: ipalib/plugins/host.py:154 ipalib/plugins/service.py:204
+#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
+#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
+#: ipalib/plugins/service.py:232
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:191 ipalib/plugins/cert.py:395
+#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:195 ipalib/plugins/cert.py:398
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:199 ipalib/plugins/cert.py:401
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:203 ipalib/plugins/cert.py:404
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:207 ipalib/plugins/cert.py:407
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:211 ipalib/plugins/cert.py:410
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:215 ipalib/plugins/cert.py:379
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:223 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:357
+#: ipalib/plugins/cert.py:396
+msgid ""
+"\n"
+" Check the status of a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:402
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:363
+#: ipalib/plugins/cert.py:408
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:380
+#: ipalib/plugins/cert.py:426
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:413
+#: ipalib/plugins/cert.py:431
+msgid ""
+"\n"
+" Retrieve an existing certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
+#: ipalib/plugins/service.py:114
msgid "Revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:458
+#: ipalib/plugins/cert.py:466
+msgid "Output filename"
+msgstr ""
+
+#: ipalib/plugins/cert.py:467
+msgid "File to store the certificate in."
+msgstr ""
+
+#: ipalib/plugins/cert.py:518
+msgid ""
+"\n"
+" Revoke a certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:526
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:466
+#: ipalib/plugins/cert.py:534
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:467
+#: ipalib/plugins/cert.py:535
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:502
+#: ipalib/plugins/cert.py:562
+msgid ""
+"\n"
+" Take a revoked certificate off hold.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:570
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:505
+#: ipalib/plugins/cert.py:573
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:73
+#: ipalib/plugins/config.py:20
+msgid ""
+"\n"
+"Manage the IPA configuration\n"
+"\n"
+"Manage the default values that IPA uses and some of its tuning parameters.\n"
+"\n"
+" To show the current configuration:\n"
+" ipa config-show\n"
+"\n"
+" To modify the configuration:\n"
+" ipa config-mod --maxusername=99\n"
+"\n"
+"The available options are:\n"
+"\n"
+"User management options:\n"
+"\n"
+" --maxusername=INT Max. username length when creating/modifying a user\n"
+" --homedirectory=STR Default location of home directories (default /"
+"home)\n"
+" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
+" --defaultgroup=STR Default group for new users (default ipausers). The\n"
+" group must exist, or adding new users will fail.\n"
+" --emaildomain=STR Default e-mail domain for new users\n"
+"\n"
+"Search tuning options. These impact how much data is searched through and\n"
+"how many records may be returned on a given search.\n"
+"\n"
+" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 "
+"for\n"
+" unlimited)\n"
+" --searchrecordslimit=INT Max. number of records to search (-1 is "
+"unlimited)\n"
+"\n"
+"Server Configuration.\n"
+"\n"
+" --enable-migration=BOOL Enable migration mode\n"
+" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+"\n"
+"The password notification value is stored here so it will be replicated.\n"
+"It is not currently used to notify users in advance of an expiring\n"
+"password.\n"
+"\n"
+"Some attributes are read-only, provided only for information purposes. "
+"These\n"
+"include:\n"
+"\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
+msgstr ""
+
+#: ipalib/plugins/config.py:76
+msgid "searchtimelimit must be -1 or > 1."
+msgstr ""
+
+#: ipalib/plugins/config.py:80
+msgid ""
+"\n"
+" IPA configuration object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:78
-msgid "Max username length"
+#: ipalib/plugins/config.py:96
+msgid "Max. username length"
msgstr ""
-#: ipalib/plugins/config.py:83
+#: ipalib/plugins/config.py:101
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:84
-msgid "Default location of home directories"
+#: ipalib/plugins/config.py:102
+msgid "Default location of home directories."
msgstr ""
-#: ipalib/plugins/config.py:88
+#: ipalib/plugins/config.py:106
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:89
-msgid "Default shell for new users"
+#: ipalib/plugins/config.py:107
+msgid "Default shell for new users."
msgstr ""
-#: ipalib/plugins/config.py:93
+#: ipalib/plugins/config.py:111
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:94
-msgid "Default group for new users"
+#: ipalib/plugins/config.py:112
+msgid "Default group for new users."
msgstr ""
-#: ipalib/plugins/config.py:98
-msgid "Default e-mail domain"
+#: ipalib/plugins/config.py:116
+msgid "Default e-mail domain for new users"
msgstr ""
-#: ipalib/plugins/config.py:99
-msgid "Default e-mail domain new users"
+#: ipalib/plugins/config.py:117
+msgid "Default e-mail domain new users."
msgstr ""
-#: ipalib/plugins/config.py:103
+#: ipalib/plugins/config.py:121
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:104
-msgid "Max. amount of time (sec.) for a search (-1 is unlimited)"
+#: ipalib/plugins/config.py:122
+msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:109
+#: ipalib/plugins/config.py:127
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:110
-msgid "Max. number of records to search (-1 is unlimited)"
+#: ipalib/plugins/config.py:128
+msgid "Max. number of records to search (-1 is unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:115
+#: ipalib/plugins/config.py:133
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:116
-msgid "A comma-separated list of fields to search when searching for users"
+#: ipalib/plugins/config.py:134
+msgid "A comma-separated list of fields to search when searching for users."
msgstr ""
-#: ipalib/plugins/config.py:121
-msgid "A comma-separated list of fields to search when searching for groups"
+#: ipalib/plugins/config.py:139
+msgid "A comma-separated list of fields to search when searching for groups."
msgstr ""
-#: ipalib/plugins/config.py:125
+#: ipalib/plugins/config.py:143
msgid "Migration mode"
msgstr ""
-#: ipalib/plugins/config.py:126
-msgid "Enable migration mode"
+#: ipalib/plugins/config.py:144
+msgid "Enable migration mode."
msgstr ""
-#: ipalib/plugins/config.py:130
+#: ipalib/plugins/config.py:148
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:131
-msgid "Base for certificate subjects (OU=Test,O=Example)"
+#: ipalib/plugins/config.py:149
+msgid "Base for certificate subjects (OU=Test,O=Example)."
msgstr ""
-#: ipalib/plugins/dns.py:131
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:155
+msgid "Default group objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:159
+msgid "Default user objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:160
+msgid "Default user objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:164
+msgid "Password Expiration Notification"
+msgstr ""
+
+#: ipalib/plugins/config.py:165
+msgid "Number of days's notice of impending password expiration."
+msgstr ""
+
+#: ipalib/plugins/config.py:170
+msgid "Password plugin features"
+msgstr ""
+
+#: ipalib/plugins/config.py:171
+msgid "Extra hashes to generate in password plug-in."
+msgstr ""
+
+#: ipalib/plugins/config.py:183
+msgid ""
+"\n"
+" Modify configuration options.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:220
+msgid ""
+"\n"
+" Show the current configuration.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:19
+msgid ""
+"\n"
+"Group to Group Delegation\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"Group to Group Delegations grants the members of one group to update a set\n"
+"of attributes of members of another group.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a delegation rule to allow editors to edit admin's addresses:\n"
+" ipa delegation-add --attrs=street --membergroup=admins --group=editors "
+"'editors edit admins street'\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add postalCode to the list:\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --"
+"group=editors 'editors edit admins street'\n"
+"\n"
+" Display our updated rule:\n"
+" ipa delegation-show 'editors edit admins street'\n"
+"\n"
+" Delete a rule:\n"
+" ipa delegation-del 'editors edit admins street'\n"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:56
+msgid ""
+"\n"
+" memberOf is in filter but we want to pull out the group for easier\n"
+" displaying.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+msgid "Delegation '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:70
+msgid "Error retrieving member group %(group)s: %(error)s"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:79
+msgid ""
+"\n"
+" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a delegation ACI, adding a new attribute\n"
+" membergroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:95
+msgid ""
+"\n"
+" Delegation object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:102
+msgid "Delegation"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+msgid "Delegation name"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+msgid ""
+"Comma-separated list of permissions to grant (read, write). Default is write."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:125
+msgid "Member user group"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:126
+msgid "User group to apply delegation to"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:152
+msgid ""
+"\n"
+" Add a new delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:156
+msgid "Added delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:176
+msgid ""
+"\n"
+" Delete a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:181
+msgid "Deleted delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:197
+msgid ""
+"\n"
+" Modify a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:201
+msgid "Modified delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:219
+msgid ""
+"\n"
+" Search for delegations.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:223
+msgid "%(count)d delegation matched"
+msgid_plural "%(count)d delegations matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/delegation.py:250
+msgid ""
+"\n"
+" Display information about a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:20
+msgid ""
+"\n"
+"Domain Name System (DNS)\n"
+"\n"
+"Manage DNS zone and resource records.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add new zone:\n"
+" ipa dnszone-add example.com --name-server nameserver.example.com\n"
+" --admin-email admin@example.com\n"
+"\n"
+" Add second nameserver for example.com:\n"
+" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add a mail server for example.com:\n"
+" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n"
+"\n"
+" Delete previously added nameserver from example.com:\n"
+" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add new A record for www.example.com: (random IP)\n"
+" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n"
+"\n"
+" Add new PTR record for www.example.com\n"
+" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n"
+"\n"
+" Add new SRV records for LDAP servers. Three quarters of the requests\n"
+" should go to fast.example.com, one quarter to slow.example.com. If neither\n"
+" is available, switch to backup.example.com.\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup."
+"example.com\"\n"
+"\n"
+" When dnsrecord-add command is executed with no option to add a specific "
+"record\n"
+" an interactive mode is started. The mode interactively prompts for the "
+"most\n"
+" typical record types for the respective zone:\n"
+" ipa dnsrecord-add example.com www\n"
+" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random "
+"IPs)\n"
+" [AAAA record]: (no AAAA address entered)\n"
+" Record name: www\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" The interactive mode can also be used for deleting the DNS records:\n"
+" ipa dnsrecord-del example.com www\n"
+" No option to delete specific record provided.\n"
+" Delete all? Yes/No (default No): (do not delete all records)\n"
+" Current DNS record contents:\n"
+"\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
+" Record name: www\n"
+" A record: 1.2.3.4 (A record 11.22.33.44 has been "
+"deleted)\n"
+"\n"
+" Show zone example.com:\n"
+" ipa dnszone-show example.com\n"
+"\n"
+" Find zone with \"example\" in its domain name:\n"
+" ipa dnszone-find example\n"
+"\n"
+" Find records for resources with \"www\" in their name in zone example.com:\n"
+" ipa dnsrecord-find example.com www\n"
+"\n"
+" Find A records with value 10.10.0.1 in zone example.com\n"
+" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n"
+"\n"
+" Show records for resource www in zone example.com\n"
+" ipa dnsrecord-show example.com www\n"
+"\n"
+" Delete zone example.com with all resource records:\n"
+" ipa dnszone-del example.com\n"
+"\n"
+" Resolve a host name to see if it exists (will add default IPA domain\n"
+" if one is not included):\n"
+" ipa dns-resolve www.example.com\n"
+" ipa dns-resolve www\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:140
+msgid "Generate serial number for zones."
+msgstr ""
+
+#: ipalib/plugins/dns.py:189
+msgid "see RFC 2915 "
+msgstr ""
+
+#: ipalib/plugins/dns.py:249
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:272
+msgid ""
+"\n"
+" DNS Zone, container for resource records.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:284
msgid "DNS"
msgstr ""
-#: ipalib/plugins/dns.py:136
-msgid "Zone"
+#: ipalib/plugins/dns.py:289
+msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:137
+#: ipalib/plugins/dns.py:290
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:143
-msgid "Authoritative name server"
+#: ipalib/plugins/dns.py:296
+msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:147
-msgid "administrator e-mail address"
+#: ipalib/plugins/dns.py:297
+msgid "Authoritative nameserver."
msgstr ""
-#: ipalib/plugins/dns.py:153
+#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+msgid "Administrator e-mail address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:308
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:157
+#: ipalib/plugins/dns.py:309
+msgid "SOA record serial number"
+msgstr ""
+
+#: ipalib/plugins/dns.py:316
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:161
+#: ipalib/plugins/dns.py:317
+msgid "SOA record refresh time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:324
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:165
+#: ipalib/plugins/dns.py:325
+msgid "SOA record retry time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:169
+#: ipalib/plugins/dns.py:333
+msgid "SOA record expire time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:173
+#: ipalib/plugins/dns.py:341
+msgid "How long should negative responses be cached"
+msgstr ""
+
+#: ipalib/plugins/dns.py:349
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:177
+#: ipalib/plugins/dns.py:350
+msgid "SOA record time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:354
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:182
-msgid "allow dynamic update?"
+#: ipalib/plugins/dns.py:355
+msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:186
+#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:426 ipalib/plugins/dns.py:460
-#: ipalib/plugins/dns.py:495 ipalib/plugins/dns.py:610
-#: ipalib/plugins/dns.py:695 ipalib/plugins/dns.py:819
-msgid "Zone name"
+#: ipalib/plugins/dns.py:365
+msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:500
-msgid "resource name"
+#: ipalib/plugins/dns.py:366
+msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:505 ipalib/plugins/dns.py:620
-#: ipalib/plugins/dns.py:711
-msgid "Record type"
+#: ipalib/plugins/dns.py:372
+msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:509 ipalib/plugins/dns.py:624
-msgid "Data"
+#: ipalib/plugins/dns.py:373
+msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:510 ipalib/plugins/dns.py:625
-msgid "Type-specific data"
+#: ipalib/plugins/dns.py:382
+msgid ""
+"\n"
+" Create new DNS zone (SOA record).\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:517
-msgid "Time to live"
+#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
+#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+msgid "Force"
+msgstr ""
+
+#: ipalib/plugins/dns.py:388
+msgid "Force DNS zone creation even if nameserver not in DNS."
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+msgid "Add the nameserver to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:397
+msgid "DNS is not configured"
+msgstr ""
+
+#: ipalib/plugins/dns.py:431
+msgid ""
+"\n"
+" Delete DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"\n"
+" Modify DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:452
+msgid ""
+"\n"
+" Search for DNS zones (SOA records).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:460
+msgid ""
+"\n"
+" Display information about a DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+msgid ""
+"\n"
+" Disable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:472
+msgid "Disabled DNS zone \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:490
+msgid ""
+"\n"
+" Enable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:494
+msgid "Enabled DNS zone \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:512
+msgid ""
+"\n"
+" DNS record.\n"
+" "
msgstr ""
#: ipalib/plugins/dns.py:522
+msgid "DNS resource record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
+msgid "Record name"
+msgstr ""
+
+#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
+msgid "Time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:538
msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:615 ipalib/plugins/dns.py:707
-#: ipalib/plugins/dns.py:824
-msgid "Resource name"
+#: ipalib/plugins/dns.py:539
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:700
-msgid "Search criteria"
+#: ipalib/plugins/dns.py:566
+msgid ""
+"\n"
+" Base class for DNS record commands with record options.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:715
-msgid "type-specific data"
+#: ipalib/plugins/dns.py:610
+msgid ""
+"\n"
+" Base class for adding/removing records from DNS resource entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:865
-#, python-format
+#: ipalib/plugins/dns.py:674
+msgid ""
+"\n"
+" Add records to DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:690
+msgid ""
+"\n"
+" Add new DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:699
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:735
+msgid ""
+"Reverse zone for PTR record should be a sub-zone of one the following fully "
+"qualified domains: %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:740
+msgid "Reverse zone %s requires exactly %d IP address components, %d given"
+msgstr ""
+
+#: ipalib/plugins/dns.py:746
+msgid "PTR record '%s' is not fully qualified (check traling '.')"
+msgstr ""
+
+#: ipalib/plugins/dns.py:789
+msgid ""
+"\n"
+" Delete DNS record entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:792
+msgid "Deleted record \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:799
+msgid ""
+"\n"
+" Delete DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:802
+msgid ""
+"Neither --del-all nor options to delete a specific record provided.\n"
+"Command help may be consulted for all supported record types."
+msgstr ""
+
+#: ipalib/plugins/dns.py:807
+msgid "Delete all associated records"
+msgstr ""
+
+#: ipalib/plugins/dns.py:834
+msgid "No option to delete specific record provided."
+msgstr ""
+
+#: ipalib/plugins/dns.py:835
+msgid "Delete all?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:845
+msgid "Current DNS record contents:\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:875
+msgid "%s record with value %s not found"
+msgstr ""
+
+#: ipalib/plugins/dns.py:889
+msgid ""
+"\n"
+" Display DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:905
+msgid ""
+"\n"
+" Search for DNS resources.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:932
+msgid ""
+"\n"
+" Resolve a host name in DNS\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:936
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:869
+#: ipalib/plugins/dns.py:940
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:882
-#, python-format
+#: ipalib/plugins/dns.py:962
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/group.py:94
+#: ipalib/plugins/dns.py:970
+msgid ""
+"\n"
+" Checks if any of the servers has the DNS service enabled.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:19
+msgid ""
+"\n"
+"Entitlements\n"
+"\n"
+"Manage entitlements for client machines\n"
+"\n"
+"Entitlements can be managed either by registering with an entitlement\n"
+"server with a username and password or by manually importing entitlement\n"
+"certificates. An entitlement certificate contains embedded information\n"
+"such as the product being entitled, the quantity and the validity dates.\n"
+"\n"
+"An entitlement server manages the number of client entitlements available.\n"
+"To mark these entitlements as used by the IPA server you provide a quantity\n"
+"and they are marked as consumed on the entitlement server.\n"
+"\n"
+" Register with an entitlement server:\n"
+" ipa entitle-register consumer\n"
+"\n"
+" Import an entitlement certificate:\n"
+" ipa entitle-import /home/user/ipaclient.pem\n"
+"\n"
+" Display current entitlements:\n"
+" ipa entitle-status\n"
+"\n"
+" Retrieve details on entitlement certificates:\n"
+" ipa entitle-get\n"
+"\n"
+" Consume some entitlements from the entitlement server:\n"
+" ipa entitle-consume 50\n"
+"\n"
+"The registration ID is a Unique Identifier (UUID). This ID will be\n"
+"IMPORTED if you have used entitle-import.\n"
+"\n"
+"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:106
+msgid ""
+"\n"
+" Get our entitlement pool. Assume there is only one pool.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:129
+msgid ""
+"\n"
+" Retrieve our UUID, certificate and key from LDAP.\n"
+"\n"
+" Except on error the caller is responsible for removing temporary files\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:178
+msgid ""
+"\n"
+" Entitlement object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:189
+msgid "Entitlements"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:206
+msgid ""
+"\n"
+" Display current entitlements\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+msgid "UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
+#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
+#: ipalib/plugins/entitle.py:690
+msgid "Product"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
+#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
+#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+msgid "Quantity"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
+#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+msgid "Consumed"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:276
+msgid ""
+"\n"
+" Consume an entitlement\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:282
+msgid "Consumed %(value)s entitlement(s)."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:314
+msgid ""
+"\n"
+" Override this so we can set value to the number of entitlements\n"
+" consumed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
+msgid ""
+"\n"
+" Returning the certificates isn't very interesting. Return the\n"
+" status of entitlements instead.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:380
+msgid ""
+"\n"
+" Retrieve the entitlement certs\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:394
+msgid "Start"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:397
+msgid "End"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
+#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+msgid "Serial Number"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
+#: ipalib/plugins/entitle.py:628
+msgid "Not an entitlement certificate"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:460
+msgid ""
+"\n"
+" Search for entitlement accounts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:473
+msgid ""
+"\n"
+" Register to the entitlement system\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:479
+msgid "Registered to entitlement server."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:483
+msgid "Username"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
+msgid "Enrollment UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
+#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
+msgid "Password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:495
+msgid "Registration password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:569
+msgid ""
+"\n"
+" Import an entitlement certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:646
+msgid ""
+"\n"
+" If we are adding the first entry there are no updates so "
+"EmptyModlist\n"
+" will get thrown. Ignore it.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:667
+msgid ""
+"\n"
+" Re-sync the local entitlement cache with the entitlement server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:673
+msgid "Entitlement(s) synchronized."
+msgstr ""
+
+#: ipalib/plugins/group.py:20
+msgid ""
+"\n"
+"Groups of users\n"
+"\n"
+"Manage groups of users. By default, new groups are POSIX groups. You\n"
+"can add the --nonposix option to the group-add command to mark a new group\n"
+"as non-POSIX, and you can use the same argument to the group-mod command\n"
+"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"converted to non-POSIX groups.\n"
+"\n"
+"Every group must have a description.\n"
+"\n"
+"POSIX groups must have a Group ID (GID) number. Changing a GID is\n"
+"supported but can have an impact on your file permissions. It is not "
+"necessary\n"
+"to supply a GID when creating a group. IPA will generate one automatically\n"
+"if it is not provided.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new group:\n"
+" ipa group-add --desc='local administrators' localadmins\n"
+"\n"
+" Add a new non-POSIX group:\n"
+" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n"
+"\n"
+" Convert a non-POSIX group to posix:\n"
+" ipa group-mod --posix remoteadmins\n"
+"\n"
+" Add a new POSIX group with a specific Group ID number:\n"
+" ipa group-add --gid=500 --desc='unix admins' unixadmins\n"
+"\n"
+" Add a new POSIX group and let IPA assign a Group ID number:\n"
+" ipa group-add --desc='printer admins' printeradmins\n"
+"\n"
+" Remove a group:\n"
+" ipa group-del unixadmins\n"
+"\n"
+" To add the \"remoteadmins\" group to the \"localadmins\" group:\n"
+" ipa group-add-member --groups=remoteadmins localadmins\n"
+"\n"
+" Add a list of users to the \"localadmins\" group:\n"
+" ipa group-add-member --users=test1,test2 localadmins\n"
+"\n"
+" Remove a user from the \"localadmins\" group:\n"
+" ipa group-remove-member --users=test2 localadmins\n"
+"\n"
+" Display information about a named group.\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/group.py:76
+msgid ""
+"\n"
+" Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:100
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:102
+#: ipalib/plugins/group.py:108
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:109 ipalib/plugins/sudocmdgroup.py:78
+#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:113
+#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:114
+#: ipalib/plugins/group.py:120
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:117 ipalib/plugins/rolegroup.py:94
-#: ipalib/plugins/taskgroup.py:66
-msgid "Member groups"
+#: ipalib/plugins/group.py:128
+msgid ""
+"\n"
+" Create a new group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:121 ipalib/plugins/rolegroup.py:98
-#: ipalib/plugins/taskgroup.py:70
-msgid "Member users"
+#: ipalib/plugins/group.py:132
+msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:134
-#, python-format
-msgid "Added group \"%(value)s\""
+#: ipalib/plugins/group.py:137
+msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:139
-msgid "Create as a non-POSIX group?"
+#: ipalib/plugins/group.py:154
+msgid ""
+"\n"
+" Delete group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:160
-#, python-format
+#: ipalib/plugins/group.py:158
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:191
-#, python-format
+#: ipalib/plugins/group.py:186
+msgid ""
+"\n"
+" Modify a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:189
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:196
+#: ipalib/plugins/group.py:194
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:222 ipalib/plugins/hbacsvcgroup.py:129
-#, python-format
+#: ipalib/plugins/group.py:215
+msgid ""
+"\n"
+" Search for groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:220
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
+#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+msgid "search for private groups"
+msgstr ""
+
#: ipalib/plugins/group.py:257
-#, python-format
-msgid "Detached group \"%(value)s\" from user \"%(value)s\""
+msgid ""
+"\n"
+" Display information about a named group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:265
+msgid ""
+"\n"
+" Add members to a group.\n"
+" "
msgstr ""
#: ipalib/plugins/group.py:273
+msgid ""
+"\n"
+" Remove members from a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:281
+msgid ""
+"\n"
+" Detach a managed group from a user\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:285
+msgid "Detached group \"%(value)s\" from user \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/group.py:288
+msgid ""
+"\n"
+" This requires updating both the user and the group. We first need "
+"to\n"
+" verify that both the user and group can be updated, then we go\n"
+" about our work. We don't want a situation where only the user or\n"
+" group can be modified and we're left in a bad state.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:306
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:277
+#: ipalib/plugins/group.py:312
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:284 ipalib/plugins/group.py:295
+#: ipalib/plugins/group.py:331
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbac.py:106
-msgid "HBAC"
+#: ipalib/plugins/hbacrule.py:19
+msgid ""
+"\n"
+"Host-based access control\n"
+"\n"
+"Control who can access what services on what hosts and from where. You\n"
+"can use HBAC to control which users or groups on a source host can\n"
+"access a service, or group of services, on a target host.\n"
+"\n"
+"You can also specify a category of users, target hosts, and source\n"
+"hosts. This is currently limited to \"all\", but might be expanded in the\n"
+"future.\n"
+"\n"
+"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n"
+"\n"
+"The available services and groups of services are controlled by the\n"
+"hbacsvc and hbacsvcgroup plug-ins respectively.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a rule, \"test1\", that grants all users access to the host \"server"
+"\" from\n"
+" anywhere:\n"
+" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add-host --hosts=server.example.com test1\n"
+"\n"
+" Display the properties of a named HBAC rule:\n"
+" ipa hbacrule-show test1\n"
+"\n"
+" Create a rule for a specific service. This lets the user john access\n"
+" the sshd service on any machine from any machine:\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add-user --users=john john_sshd\n"
+" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
+"\n"
+" Create a rule for a new service group. This lets the user john access\n"
+" the FTP service on any machine from any machine:\n"
+" ipa hbacsvcgroup-add ftpers\n"
+" ipa hbacsvc-add sftp\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add-user --users=john john_ftp\n"
+" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
+"\n"
+" Disable a named HBAC rule:\n"
+" ipa hbacrule-disable test1\n"
+"\n"
+" Remove a named HBAC rule:\n"
+" ipa hbacrule-del allow_server\n"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:91
+msgid ""
+"\n"
+" See if options[attribute] is lower-case 'all' in a safe way.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:103
+msgid ""
+"\n"
+" HBAC object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbac.py:111 ipalib/plugins/sudorule.py:53
+#: ipalib/plugins/hbacrule.py:126
+msgid "HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbac.py:116
+#: ipalib/plugins/hbacrule.py:136
msgid "Rule type (allow or deny)"
msgstr ""
-#: ipalib/plugins/hbac.py:117
+#: ipalib/plugins/hbacrule.py:137
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbac.py:123
+#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
+#: ipalib/plugins/sudorule.py:86
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbac.py:124
+#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
+#: ipalib/plugins/sudorule.py:87
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:129
+#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
+#: ipalib/plugins/sudorule.py:92
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbac.py:130
+#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
+#: ipalib/plugins/sudorule.py:93
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:135
+#: ipalib/plugins/hbacrule.py:155
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbac.py:136
+#: ipalib/plugins/hbacrule.py:156
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:141
+#: ipalib/plugins/hbacrule.py:161
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbac.py:142
+#: ipalib/plugins/hbacrule.py:162
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:147 ipalib/plugins/hbac.py:325
-#: ipalib/plugins/hbac.py:363
-msgid "Access time"
-msgstr ""
-
-#: ipalib/plugins/hbac.py:154
+#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbac.py:158 ipalib/plugins/sudorule.py:61
-#: ipalib/plugins/user.py:76
+#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
+#: ipalib/plugins/user.py:108
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbac.py:162 ipalib/plugins/host.py:113
-#: ipalib/plugins/sudorule.py:65
+#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
+#: ipalib/plugins/sudorule.py:119
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
+#: ipalib/plugins/sudorule.py:123
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:166 ipalib/plugins/hostgroup.py:69
-#: ipalib/plugins/sudorule.py:69
+#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
+#: ipalib/plugins/sudorule.py:127
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbac.py:170
+#: ipalib/plugins/hbacrule.py:194
msgid "Source hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:174 ipalib/plugins/hbacsvc.py:60
-#: ipalib/plugins/service.py:192
+#: ipalib/plugins/hbacrule.py:198
+msgid "Source host groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
+#: ipalib/plugins/service.py:220
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbac.py:178
+#: ipalib/plugins/hbacrule.py:206
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:65
-msgid "Service name"
+#: ipalib/plugins/hbacrule.py:215
+msgid ""
+"\n"
+" Create a new HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:219
+msgid "Added HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:230
+msgid ""
+"\n"
+" Delete an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:234
+msgid "Deleted HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:240
+msgid ""
+"\n"
+" Modify an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:244
+msgid "Modified HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:266
+msgid ""
+"\n"
+" Search for HBAC rules.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:270
+msgid "%(count)d HBAC rule matched"
+msgid_plural "%(count)d HBAC rules matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/hbacrule.py:278
+msgid ""
+"\n"
+" Display the properties of an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:286
+msgid ""
+"\n"
+" Enable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:290
+msgid "Enabled HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:315
+msgid ""
+"\n"
+" Disable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:319
+msgid "Disabled HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:344
+msgid ""
+"\n"
+" Add an access time to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+msgid "Access time"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:385
+msgid ""
+"\n"
+" Remove access time to HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:425
+msgid ""
+"\n"
+" Add users and groups to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:442
+msgid ""
+"\n"
+" Remove users and groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:452
+msgid ""
+"\n"
+" Add target hosts and hostgroups to an HBAC rule\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:469
+msgid ""
+"\n"
+" Remove target hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:479
+msgid ""
+"\n"
+" Add source hosts and hostgroups from a HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:496
+msgid ""
+"\n"
+" Remove source hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:506
+msgid ""
+"\n"
+" Add services to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:523
+msgid ""
+"\n"
+" Remove service and service groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:19
+msgid ""
+"\n"
+"HBAC Services\n"
+"\n"
+"The PAM services that HBAC can control access to. The name used here\n"
+"must match the service name that PAM is evaluating.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service:\n"
+" ipa hbacsvc-add tftp\n"
+"\n"
+" Modify an existing HBAC service:\n"
+" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n"
+"\n"
+" Search for HBAC services. This example will return two results, the FTP\n"
+" service and the newly-added tftp service:\n"
+" ipa hbacsvc-find ftp\n"
+"\n"
+" Delete an HBAC service:\n"
+" ipa hbacsvc-del tftp\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:51
+msgid ""
+"\n"
+" HBAC Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:61
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "HBAC Service"
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:73
-msgid "Description of service"
+#: ipalib/plugins/hbacsvc.py:67
+msgid "HBAC service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:84 ipalib/plugins/service.py:216
-#, python-format
-msgid "Added service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:74
+msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:93 ipalib/plugins/service.py:255
-#, python-format
-msgid "Deleted service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:82
+msgid ""
+"\n"
+" Add a new HBAC service.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:66
-msgid "HBAC Service Groups"
+#: ipalib/plugins/hbacsvc.py:85
+msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:71
+#: ipalib/plugins/hbacsvc.py:91
+msgid ""
+"\n"
+" Delete an existing HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:94
+msgid "Deleted HBAC service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:100
+msgid ""
+"\n"
+" Modify an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modified HBAC service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:110
+msgid ""
+"\n"
+" Search for HBAC services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:114
+msgid "%(count)d HBAC service matched"
+msgid_plural "%(count)d HBAC services matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/hbacsvc.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:19
+msgid ""
+"\n"
+"HBAC Service Groups\n"
+"\n"
+"HBAC service groups can contain any number of individual services,\n"
+"or \"members\". Every group must have a description.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service group:\n"
+" ipa hbacsvcgroup-add --desc=\"login services\" login\n"
+"\n"
+" Add members to an HBAC service group:\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n"
+"\n"
+" Display information about a named group:\n"
+" ipa hbacsvcgroup-show login\n"
+"\n"
+" Add a new group to the \"login\" group:\n"
+" ipa hbacsvcgroup-add --desc=\"switch users\" login\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n"
+"\n"
+" Delete an HBAC service group:\n"
+" ipa hbacsvcgroup-del login\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:51
+msgid ""
+"\n"
+" HBAC service group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:64
+msgid "HBAC service Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:69
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:78
+#: ipalib/plugins/hbacsvcgroup.py:76
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:81
-msgid "Member services"
+#: ipalib/plugins/hbacsvcgroup.py:84
+msgid ""
+"\n"
+" Add a new HBAC service group.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:85
-msgid "Member service groups"
+#: ipalib/plugins/hbacsvcgroup.py:87
+msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:101
-#, python-format
-msgid "Added HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:93
+msgid ""
+"\n"
+" Delete an HBAC service group.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:110
-#, python-format
-msgid "Deleted HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:96
+msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:119
-#, python-format
-msgid "Modified HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:102
+msgid ""
+"\n"
+" Modify an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:105
+msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:86
+#: ipalib/plugins/hbacsvcgroup.py:111
+msgid ""
+"\n"
+" Search for an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:114
+msgid "%(count)d HBAC service group matched"
+msgid_plural "%(count)d HBAC service groups matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/hbacsvcgroup.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:130
+msgid ""
+"\n"
+" Add members to an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:138
+msgid ""
+"\n"
+" Remove members from an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:20
+msgid ""
+"\n"
+"Hosts/Machines\n"
+"\n"
+"A host represents a machine. It can be used in a number of contexts:\n"
+"- service entries are associated with a host\n"
+"- a host stores the host/ service principal\n"
+"- a host can be used in Host-based Access Control (HBAC) rules\n"
+"- every enrolled client generates a host entry\n"
+"\n"
+"ENROLLMENT:\n"
+"\n"
+"There are three enrollment scenarios when enrolling a new client:\n"
+"\n"
+"1. You are enrolling as a full administrator. The host entry may exist\n"
+" or not. A full administrator is a member of the hostadmin role\n"
+" or the admins group.\n"
+"2. You are enrolling as a limited administrator. The host must already\n"
+" exist. A limited administrator is a member a role with the\n"
+" Host Enrollment privilege.\n"
+"3. The host has been created with a one-time password.\n"
+"\n"
+"A host can only be enrolled once. If a client has enrolled and needs to\n"
+"be re-enrolled, the host entry must be removed and re-created. Note that\n"
+"re-creating the host entry will result in all services for the host being\n"
+"removed, and all SSL certificates associated with those services being\n"
+"revoked.\n"
+"\n"
+"A host can optionally store information such as where it is located,\n"
+"the OS that it runs, etc.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host:\n"
+" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example."
+"com\n"
+"\n"
+" Delete a host:\n"
+" ipa host-del test.example.com\n"
+"\n"
+" Add a new host with a one-time password:\n"
+" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n"
+"\n"
+" Add a new host with a random one-time password:\n"
+" ipa host-add --os='Fedora 12' --random test.example.com\n"
+"\n"
+" Modify information about a host:\n"
+" ipa host-mod --os='Fedora 12' test.example.com\n"
+"\n"
+" Disable the host Kerberos key, SSL certificate and all of its services:\n"
+" ipa host-disable test.example.com\n"
+"\n"
+" Add a host that can manage this host's keytab and certificate:\n"
+" ipa host-add-managedby --hosts=test2 test\n"
+msgstr ""
+
+#: ipalib/plugins/host.py:97
+msgid ""
+"\n"
+" Require at least one dot in the hostname (to support localhost."
+"localdomain)\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:118
+#: ipalib/plugins/host.py:129
+msgid "DNS reverse zone for IP address %(addr)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+msgid "Keytab"
+msgstr ""
+
+#: ipalib/plugins/host.py:185
+msgid ""
+"\n"
+" Verify that we have either an IPv4 or IPv6 address.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:189
+msgid "invalid IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:194
+msgid ""
+"\n"
+" Host object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:231
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:125
+#: ipalib/plugins/host.py:238
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:242
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:130
+#: ipalib/plugins/host.py:243
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:135
+#: ipalib/plugins/host.py:248
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:139
+#: ipalib/plugins/host.py:252
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:140
+#: ipalib/plugins/host.py:253
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:144
+#: ipalib/plugins/host.py:257
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:145
+#: ipalib/plugins/host.py:258
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:149
+#: ipalib/plugins/host.py:262
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:150
+#: ipalib/plugins/host.py:263
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:155 ipalib/plugins/service.py:205
-msgid "Base-64 encoded server certificate"
+#: ipalib/plugins/host.py:266
+msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:158 ipalib/plugins/host.py:274
-msgid "Principal name"
+#: ipalib/plugins/host.py:271
+msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:162 ipalib/plugins/hostgroup.py:93
-msgid "Member of host-groups"
+#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:166
-msgid "Member of net-groups"
+#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:170
-msgid "Member of role-groups"
+#: ipalib/plugins/host.py:306
+msgid ""
+"\n"
+" Add a new host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:199
-#, python-format
+#: ipalib/plugins/host.py:311
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:202
+#: ipalib/plugins/host.py:316
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:235
-#, python-format
+#: ipalib/plugins/host.py:319
+msgid "skip reverse DNS detection"
+msgstr ""
+
+#: ipalib/plugins/host.py:322
+msgid "Add the host to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+msgid "DNS zone %(zone)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:413
+msgid "The host was added but the DNS update failed with: %(exc)s"
+msgstr ""
+
+#: ipalib/plugins/host.py:422
+msgid ""
+"\n"
+" Delete a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:426
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:269
-#, python-format
+#: ipalib/plugins/host.py:431
+msgid "Remove entries from DNS"
+msgstr ""
+
+#: ipalib/plugins/host.py:537
+msgid ""
+"\n"
+" Modify information about a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:542
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:275
+#: ipalib/plugins/host.py:549
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:319
-#, python-format
+#: ipalib/plugins/host.py:618
+msgid ""
+"\n"
+" Search for hosts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:623
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:337 ipalib/plugins/service.py:84
-msgid "Keytab"
+#: ipalib/plugins/host.py:643
+msgid ""
+"\n"
+" Display information about a host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:359 ipalib/plugins/service.py:399
-#, python-format
-msgid "Removed kerberos key from \"%(value)s\""
+#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+msgid "file to store certificate in"
+msgstr ""
+
+#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+msgid "Certificate stored in file '%(file)s'"
+msgstr ""
+
+#: ipalib/plugins/host.py:684
+msgid ""
+"\n"
+" Disable the Kerberos key, SSL certificate and all services of a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:688
+msgid "Disabled host \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/host.py:770
+msgid ""
+"\n"
+" Add hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:781
+msgid ""
+"\n"
+" Remove hosts that can manage this host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:368
-msgid "Host principal has no kerberos key"
+#: ipalib/plugins/hostgroup.py:20
+msgid ""
+"\n"
+"Groups of hosts.\n"
+"\n"
+"Manage groups of hosts. This is useful for applying access control to a\n"
+"number of hosts by using Host-based Access Control.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host group:\n"
+" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n"
+"\n"
+" Add another new host group:\n"
+" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n"
+"\n"
+" Add members to the hostgroup:\n"
+" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n"
+"\n"
+" Add a hostgroup as a member of another hostgroup:\n"
+" ipa hostgroup-add-member --hostgroups=baltimore maryland\n"
+"\n"
+" Remove a host from the hostgroup:\n"
+" ipa hostgroup-remove-member --hosts=box2 baltimore\n"
+"\n"
+" Display a host group:\n"
+" ipa hostgroup-show baltimore\n"
+"\n"
+" Delete a hostgroup:\n"
+" ipa hostgroup-del baltimore\n"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:55
+msgid ""
+"\n"
+" Hostgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/hostgroup.py:78
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:75
+#: ipalib/plugins/hostgroup.py:79
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:82
+#: ipalib/plugins/hostgroup.py:86
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:85
-msgid "Member hosts"
+#: ipalib/plugins/hostgroup.py:94
+msgid ""
+"\n"
+" Add a new hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:89
-msgid "Member host-groups"
+#: ipalib/plugins/hostgroup.py:98
+msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:106
-#, python-format
-msgid "Added hostgroup \"%(value)s\""
+#: ipalib/plugins/hostgroup.py:104
+msgid ""
+"\n"
+" Delete a hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:116
-#, python-format
+#: ipalib/plugins/hostgroup.py:108
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:126
-#, python-format
+#: ipalib/plugins/hostgroup.py:114
+msgid ""
+"\n"
+" Modify a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:118
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:137
-#, python-format
+#: ipalib/plugins/hostgroup.py:124
+msgid ""
+"\n"
+" Search for hostgroups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:128
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/internal.py:39
+#: ipalib/plugins/hostgroup.py:136
+msgid ""
+"\n"
+" Display information about a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:144
+msgid ""
+"\n"
+" Add members to a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:152
+msgid ""
+"\n"
+" Remove members from a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:22
+msgid ""
+"\n"
+"Plugins not accessible directly through the CLI, commands used internally\n"
+msgstr ""
+
+#: ipalib/plugins/internal.py:36
+msgid ""
+"\n"
+" Export plugin meta-data for the webUI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:44
+msgid "Name of object to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:47
+msgid "Name of method to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:52
+msgid "Dict of JSON encoded IPA Objects"
+msgstr ""
+
+#: ipalib/plugins/internal.py:53
+msgid "Dict of JSON encoded IPA Methods"
+msgstr ""
+
+#: ipalib/plugins/internal.py:96
msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:41
+#: ipalib/plugins/internal.py:99
+msgid "Attribute"
+msgstr ""
+
+#: ipalib/plugins/internal.py:102
+msgid "Add Automount Location"
+msgstr ""
+
+#: ipalib/plugins/internal.py:103
+msgid "Automount Location Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:106
+msgid "Add Automount Map"
+msgstr ""
+
+#: ipalib/plugins/internal.py:109
+msgid "Add Automount Key"
+msgstr ""
+
+#: ipalib/plugins/internal.py:112
+msgid "Unspecified"
+msgstr ""
+
+#: ipalib/plugins/internal.py:113
+msgid "Key Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:114
+msgid "CA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:115
+msgid "Affiliation Changed"
+msgstr ""
+
+#: ipalib/plugins/internal.py:116
+msgid "Superseded"
+msgstr ""
+
+#: ipalib/plugins/internal.py:117
+msgid "Cessation of Operation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:118
+msgid "Certificate Hold"
+msgstr ""
+
+#: ipalib/plugins/internal.py:119
+msgid "Remove from CRL"
+msgstr ""
+
+#: ipalib/plugins/internal.py:120
+msgid "Privilege Withdrawn"
+msgstr ""
+
+#: ipalib/plugins/internal.py:121
+msgid "AA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:122
+msgid ""
+"To confirm your intention to revoke this certificate, select a reason from "
+"the pull-down list, and click the \"Revoke\" button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:124
+msgid "Note"
+msgstr ""
+
+#: ipalib/plugins/internal.py:125
+msgid "Reason for Revocation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:126
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\" "
+"button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:128
+msgid "Issued To"
+msgstr ""
+
+#: ipalib/plugins/internal.py:129
+msgid "Common Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:130
+msgid "Organization"
+msgstr ""
+
+#: ipalib/plugins/internal.py:131
+msgid "Organizational Unit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:133
+msgid "Issued By"
+msgstr ""
+
+#: ipalib/plugins/internal.py:134
+msgid "Validity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:135
+msgid "Issued On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:136
+msgid "Expires On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:137
+msgid "Fingerprints"
+msgstr ""
+
+#: ipalib/plugins/internal.py:138
+msgid "SHA1 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:139
+msgid "MD5 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:140
+msgid "Enter the Base64-encoded CSR below"
+msgstr ""
+
+#: ipalib/plugins/internal.py:141
+msgid "Valid Certificate Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:142
+msgid "New Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:143
+msgid "Certificate Revoked"
+msgstr ""
+
+#: ipalib/plugins/internal.py:144
+msgid "No Valid Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:145
+msgid "Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:146
+msgid "Issue New Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:147
+msgid "Revoke Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:148
+msgid "Restore Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:152
+msgid "Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:155
+msgid "Add Delegation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:158
+msgid "Add DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:159
+msgid "DNS Zone Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:162
+msgid "Add DNS Resource Record"
+msgstr ""
+
+#: ipalib/plugins/internal.py:163
+msgid "Resource"
+msgstr ""
+
+#: ipalib/plugins/internal.py:165
+msgid "Data"
+msgstr ""
+
+#: ipalib/plugins/internal.py:166
+msgid "Records for DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:169
+msgid "Add Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:170
+msgid "Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
+msgid "Is this a POSIX group?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:174
+msgid "Add HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:306
+msgid "Active"
+msgstr ""
+
+#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:308
+msgid "Inactive"
+msgstr ""
+
+#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
+msgid "Rule status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
+msgid "Who"
+msgstr ""
+
+#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
+msgid "Anyone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
+msgid "Specified Users and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:183
+msgid "Accessing"
+msgstr ""
+
+#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
+msgid "Any Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
+msgid "Specified Hosts and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:186
+msgid "Via Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:187
+msgid "Any Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:188
+msgid "Specified Services and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:189
+msgid "From"
+msgstr ""
+
+#: ipalib/plugins/internal.py:192
+msgid "Add HBAC Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:195
+msgid "Add HBAC Service Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:199
+msgid "Add Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:200
+msgid "Host Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:202
+msgid "Host Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:203
+msgid "Enrolled?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:204
+msgid "Enrollment"
+msgstr ""
+
+#: ipalib/plugins/internal.py:205
+msgid "Fully Qualified Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
+msgid "Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:208
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
+msgid "Delete Key, Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:211
+msgid "Enroll via One-Time-Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:212
+msgid "Set OTP"
+msgstr ""
+
+#: ipalib/plugins/internal.py:213
+msgid "One-Time-Password has been set."
+msgstr ""
+
+#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
+msgid "Unprovisioning ${entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:215
+msgid "Are you sure you want to unprovision this host?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
+msgid "Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:219
+msgid "Add Host Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:220
+msgid "Host Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:223
+msgid "Kerberos ticket policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:226
+msgid "Add Netgroup"
+msgstr ""
+
+#: ipalib/plugins/internal.py:227
+msgid "Netgroup Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:230
+msgid "Add Permission"
+msgstr ""
+
+#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
+msgid "Identity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:233
+msgid "Target"
+msgstr ""
+
+#: ipalib/plugins/internal.py:235
+msgid "By Subtree"
+msgstr ""
+
+#: ipalib/plugins/internal.py:236
+msgid "Target Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:237
+msgid "Object By Type"
+msgstr ""
+
+#: ipalib/plugins/internal.py:238
+msgid "Permission with invalid target specification"
+msgstr ""
+
+#: ipalib/plugins/internal.py:241
+msgid "Add Privilege"
+msgstr ""
+
+#: ipalib/plugins/internal.py:242
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:245
+msgid "Add Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:249
+msgid "Add Role"
+msgstr ""
+
+#: ipalib/plugins/internal.py:250
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:253
+msgid "Add Self Service Definition"
+msgstr ""
+
+#: ipalib/plugins/internal.py:256
+msgid "Add Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:257
+msgid "Service Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:258
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:260
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:261
+msgid "Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:263
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:267
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:271
+msgid "Add Sudo Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:275
+msgid "Add Sudo Command Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:279
+msgid "Add Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:287
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:290
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:291
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:292
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:293
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:294
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:295
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:297
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:300
+msgid "Add User"
+msgstr ""
+
+#: ipalib/plugins/internal.py:301
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:302
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:303
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:304
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:305
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:307
+msgid "Click to Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:309
+msgid "Click to Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:310
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:311
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:312
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:313
+msgid "Repeat Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:314
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:315
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:319
msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:42
+#: ipalib/plugins/internal.py:320
+msgid "Add and Add Another"
+msgstr ""
+
+#: ipalib/plugins/internal.py:321
+msgid "Add and Edit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:322
+msgid "Add and Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:323
+msgid "Add Many"
+msgstr ""
+
+#: ipalib/plugins/internal.py:324
+msgid "Back to List"
+msgstr ""
+
+#: ipalib/plugins/internal.py:325
+msgid "Cancel"
+msgstr ""
+
+#: ipalib/plugins/internal.py:326
+msgid "Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:327
+msgid "Enroll"
+msgstr ""
+
+#: ipalib/plugins/internal.py:328
msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:43
+#: ipalib/plugins/internal.py:329
+msgid "Get"
+msgstr ""
+
+#: ipalib/plugins/internal.py:330
+msgid "Issue"
+msgstr ""
+
+#: ipalib/plugins/internal.py:331
+msgid "OK"
+msgstr ""
+
+#: ipalib/plugins/internal.py:332
msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:333
+msgid "Delete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:334
+msgid "Restore"
+msgstr ""
+
+#: ipalib/plugins/internal.py:335
+msgid "Retry"
+msgstr ""
+
+#: ipalib/plugins/internal.py:336
+msgid "Revoke"
+msgstr ""
+
+#: ipalib/plugins/internal.py:337
msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:45
-msgid "Enroll"
+#: ipalib/plugins/internal.py:338
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:46
-msgid "Delete"
+#: ipalib/plugins/internal.py:341
+msgid "Available"
+msgstr ""
+
+#: ipalib/plugins/internal.py:342
+msgid "This page has unsaved changes. Please save or revert."
+msgstr ""
+
+#: ipalib/plugins/internal.py:343
+msgid "Dirty"
msgstr ""
-#: ipalib/plugins/internal.py:49
+#: ipalib/plugins/internal.py:344
+msgid "Hide already enrolled."
+msgstr ""
+
+#: ipalib/plugins/internal.py:345
+msgid "Select ${entity} to be removed."
+msgstr ""
+
+#: ipalib/plugins/internal.py:346
+msgid "Remove ${entity}."
+msgstr ""
+
+#: ipalib/plugins/internal.py:347
+msgid "Prospective"
+msgstr ""
+
+#: ipalib/plugins/internal.py:350
+msgid "Managed by"
+msgstr ""
+
+#: ipalib/plugins/internal.py:351
+msgid "Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:352
+msgid "Indirect Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:353
+msgid "Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:354
+msgid "Indirect Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
+msgid "Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:358
+msgid "Search"
+msgstr ""
+
+#: ipalib/plugins/internal.py:362
msgid "Quick Links"
msgstr ""
-#: ipalib/plugins/internal.py:50
+#: ipalib/plugins/internal.py:363
msgid "Select All"
msgstr ""
-#: ipalib/plugins/internal.py:51
+#: ipalib/plugins/internal.py:364
msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Do you really want to delete the selected entries?"
+#: ipalib/plugins/internal.py:365
+msgid "Are you sure you want to delete selected entries?"
msgstr ""
-#: ipalib/plugins/internal.py:55
-msgid "Identity Details"
+#: ipalib/plugins/internal.py:366
+msgid ""
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
msgstr ""
-#: ipalib/plugins/internal.py:56
-msgid "Account Details"
+#: ipalib/plugins/internal.py:370
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:57
-msgid "Contact Details"
+#: ipalib/plugins/internal.py:371
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:58
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:372
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:59
-msgid " Employee Information"
+#: ipalib/plugins/internal.py:373
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:60
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:377
+msgid "Policy"
msgstr ""
-#: ipalib/plugins/internal.py:61
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:378
+msgid "Audit"
msgstr ""
-#: ipalib/plugins/internal.py:66
-msgid "Name of object to export"
+#: ipalib/plugins/internal.py:379
+msgid "IPA Server"
msgstr ""
-#: ipalib/plugins/internal.py:71
-msgid "Dict of JSON encoded IPA Objects"
+#: ipalib/plugins/internal.py:380
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:381
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:382
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:383
+msgid "Automount"
msgstr ""
-#: ipalib/plugins/internal.py:72
+#: ipalib/plugins/internal.py:386
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:387
+msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:388
+msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:389
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:392
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:395
+msgid ""
+"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."
+msgstr ""
+
+#: ipalib/plugins/internal.py:399
msgid "Dict of I18N messages"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:59
+#: ipalib/plugins/kerberos.py:20
+msgid ""
+"\n"
+"Backend plugin for Kerberos.\n"
+"\n"
+"This wraps the python-kerberos and python-krbV bindings.\n"
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:35
+msgid ""
+"\n"
+" Kerberos backend plugin.\n"
+"\n"
+" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
+" bindings also). Importantly, this plugin does correct Unicode\n"
+" encoding/decoding of values going-to/coming-from the bindings.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:44
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:50
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:56
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:62
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:68
+msgid ""
+"\n"
+" Return the default ccache file name.\n"
+"\n"
+" This will return something like '/tmp/krb5cc_500'.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:79
+msgid ""
+"\n"
+" Return the principal name in default credential cache.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'. If no "
+"credential\n"
+" cache exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:91
+msgid ""
+"\n"
+" Return the realm from the default credential cache.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'. If no credential "
+"cache\n"
+" exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:103
+msgid ""
+"\n"
+" Return the principal from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:111
+msgid ""
+"\n"
+" Return the realm from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:19
+msgid ""
+"\n"
+"Kerberos ticket policy\n"
+"\n"
+"There is a single Kerberos ticket policy. This policy defines the\n"
+"maximum ticket lifetime and the maximum renewal age, the period during\n"
+"which the ticket is renewable.\n"
+"\n"
+"You can also create a per-user ticket policy by specifying the user login.\n"
+"\n"
+"For changes to the global policy to take effect, restarting the KDC service\n"
+"is required, which can be achieved using:\n"
+"\n"
+"service krb5kdc restart\n"
+"\n"
+"Changes to per-user policies take effect immediately for newly requested\n"
+"tickets (e.g. when the user next runs kinit).\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Display the current Kerberos ticket policy:\n"
+" ipa krbtpolicy-show\n"
+"\n"
+" Reset the policy to the default:\n"
+" ipa krbtpolicy-reset\n"
+"\n"
+" Modify the policy to 8 hours max life, 1-day max renewal:\n"
+" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n"
+"\n"
+" Display effective Kerberos ticket policy for user 'admin':\n"
+" ipa krbtpolicy-show admin\n"
+"\n"
+" Reset per-user policy for user 'admin':\n"
+" ipa krbtpolicy-reset admin\n"
+"\n"
+" Modify per-user policy for user 'admin':\n"
+" ipa krbtpolicy-mod admin --maxlife=3600\n"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:71
+msgid ""
+"\n"
+" Kerberos Ticket Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:79
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:64 ipalib/plugins/passwd.py:52
+#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
msgid "User name"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:65
+#: ipalib/plugins/krbtpolicy.py:85
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:70
+#: ipalib/plugins/krbtpolicy.py:90
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:75
+#: ipalib/plugins/krbtpolicy.py:96
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:76
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/migration.py:44
-#, python-format
+#: ipalib/plugins/krbtpolicy.py:111
+msgid ""
+"\n"
+" Modify Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:125
+msgid ""
+"\n"
+" Display the current Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:149
+msgid ""
+"\n"
+" Reset Kerberos ticket policy to the default values.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:19
+msgid ""
+"\n"
+"Migration to IPA\n"
+"\n"
+"Migrate users and groups from an LDAP server to IPA.\n"
+"\n"
+"This performs an LDAP query against the remote server searching for\n"
+"users and groups in a container. In order to migrate passwords you need\n"
+"to bind as a user that can read the userPassword attribute on the remote\n"
+"server. This is generally restricted to high-level admins such as\n"
+"cn=Directory Manager in 389-ds (this is the default bind user).\n"
+"\n"
+"The default user container is ou=People.\n"
+"\n"
+"The default group container is ou=Groups.\n"
+"\n"
+"Users and groups that already exist on the IPA server are skipped.\n"
+"\n"
+"Two LDAP schemas define how group members are stored: RFC2307 and\n"
+"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n"
+"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n"
+"\n"
+"Migrated users do not have Kerberos credentials, they have only their\n"
+"LDAP password. To complete the migration process, users need to go\n"
+"to http://ipa.example.com/ipa/migration and authenticate using their\n"
+"LDAP password in order to generate their Kerberos credentials.\n"
+"\n"
+"Migration is disabled by default. Use the command ipa config-mod to\n"
+"enable it:\n"
+"\n"
+" ipa config-mod --enable-migration=TRUE\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" The simplest migration, accepting all defaults:\n"
+" ipa migrate-ds ldap://ds.example.com:389\n"
+"\n"
+" Specify the user and group container. This can be used to migrate user and\n"
+" group data from an IPA v1 server:\n"
+" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-"
+"container='cn=groups,cn=accounts' ldap://ds.example.com:389\n"
+msgstr ""
+
+#: ipalib/plugins/migration.py:78
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:45
+#: ipalib/plugins/migration.py:79
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:169
+#: ipalib/plugins/migration.py:175
+msgid ""
+"\n"
+" Convert usernames in member attributes to work in IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:220
+msgid "Invalid LDAP URI."
+msgstr ""
+
+#: ipalib/plugins/migration.py:225
+msgid ""
+"\n"
+" Migrate users and groups from DS to IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:266
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:170
+#: ipalib/plugins/migration.py:267
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:174
+#: ipalib/plugins/migration.py:272
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:181
+#: ipalib/plugins/migration.py:279
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:187
+#: ipalib/plugins/migration.py:285
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:188
+#: ipalib/plugins/migration.py:286
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:194
+#: ipalib/plugins/migration.py:292
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:195
+#: ipalib/plugins/migration.py:293
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:200
-msgid "Continous operation mode. Errors are reported but the process continues"
+#: ipalib/plugins/migration.py:299
+msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:208
+#: ipalib/plugins/migration.py:300
+msgid ""
+"Comma-separated list of objectclasses used to search for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:306
+msgid "Group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:307
+msgid ""
+"Comma-separated list of objectclasses used to search for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:313
+msgid "LDAP schema"
+msgstr ""
+
+#: ipalib/plugins/migration.py:314
+msgid ""
+"The schema used on the LDAP server. Supported values are RFC2307 and "
+"RFC2307bis. The default is RFC2307bis"
+msgstr ""
+
+#: ipalib/plugins/migration.py:320
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues"
+msgstr ""
+
+#: ipalib/plugins/migration.py:328
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:212
+#: ipalib/plugins/migration.py:332
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:216
+#: ipalib/plugins/migration.py:336
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:220
-#, python-format
+#: ipalib/plugins/migration.py:340
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:222
+#: ipalib/plugins/migration.py:342
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
-"migration process might be uncomplete\n"
+"migration process might be incomplete\n"
msgstr ""
-#: ipalib/plugins/migration.py:227
+#: ipalib/plugins/migration.py:347
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:230
+#: ipalib/plugins/migration.py:350
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -1527,16 +4765,55 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:297
-#, python-format
+#: ipalib/plugins/migration.py:358
+msgid ""
+"\n"
+" Call get_options of the baseclass and add \"exclude\" options\n"
+" for each type of object being migrated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:375
+msgid ""
+"\n"
+" Convert all \"exclude\" option values to lower-case.\n"
+"\n"
+" Also, empty List parameters are converted to None, but the "
+"migration\n"
+" plugin doesn't like that - convert back to empty lists.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:399
+msgid ""
+"\n"
+" Migrate objects from DS to LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:425
msgid "Container for %(container)s not found"
msgstr ""
+#: ipalib/plugins/misc.py:20
+msgid ""
+"\n"
+"Misc plug-ins\n"
+msgstr ""
+
+#: ipalib/plugins/misc.py:36
+msgid "Show environment variables"
+msgstr ""
+
#: ipalib/plugins/misc.py:38
-#, python-format
msgid "%(count)d variables"
msgstr ""
+#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115
+msgid ""
+"retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
#: ipalib/plugins/misc.py:61
msgid "Total number of variables env (>= count)"
msgstr ""
@@ -1545,435 +4822,2391 @@ msgstr ""
msgid "Number of variables returned (<= total)"
msgstr ""
-#: ipalib/plugins/misc.py:109
-#, python-format
+#: ipalib/plugins/misc.py:106
+msgid "Show all loaded plugins"
+msgstr ""
+
+#: ipalib/plugins/misc.py:108
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/misc.py:116
+#: ipalib/plugins/misc.py:126
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:57
+#: ipalib/plugins/netgroup.py:20
+msgid ""
+"\n"
+"Netgroups\n"
+"\n"
+"A netgroup is a group used for permission checking. It can contain both\n"
+"user and host values.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new netgroup:\n"
+" ipa netgroup-add --desc=\"NFS admins\" admins\n"
+"\n"
+" Add members to the netgroup:\n"
+" ipa netgroup-add-member --users=tuser1,tuser2 admins\n"
+"\n"
+" Remove a member from the netgroup:\n"
+" ipa netgroup-remove-member --users=tuser2 admins\n"
+"\n"
+" Display information about a netgroup:\n"
+" ipa netgroup-show admins\n"
+"\n"
+" Delete a netgroup:\n"
+" ipa netgroup-del admins\n"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:59
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:63
-msgid "External host"
+#: ipalib/plugins/netgroup.py:67
+msgid ""
+"\n"
+" Netgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/netgroup.py:85
-msgid "Net Groups"
+#: ipalib/plugins/netgroup.py:98
+msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:90
+#: ipalib/plugins/netgroup.py:103
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:97
+#: ipalib/plugins/netgroup.py:110
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:101
+#: ipalib/plugins/netgroup.py:114
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:106
+#: ipalib/plugins/netgroup.py:119
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:84
-#, python-format
+#: ipalib/plugins/netgroup.py:140
+msgid ""
+"\n"
+" Add a new netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:144
+msgid "Added netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:153
+msgid ""
+"\n"
+" Delete a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:156
+msgid "Deleted netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:162
+msgid ""
+"\n"
+" Modify a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:166
+msgid "Modified netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:180
+msgid ""
+"\n"
+" Search for a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:185
+msgid "%(count)d netgroup matched"
+msgid_plural "%(count)d netgroups matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/netgroup.py:213
+msgid ""
+"\n"
+" Display information about a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:222
+msgid ""
+"\n"
+" Add members to a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:258
+msgid ""
+"\n"
+" Remove members from a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:19
+msgid ""
+"\n"
+"Set a user's password\n"
+"\n"
+"If someone other than a user changes that user's password (e.g., Helpdesk\n"
+"resets it) then the password will need to be changed the first time it\n"
+"is used. This is so the end-user is the only one who knows the password.\n"
+"\n"
+"The IPA password policy controls how often a password may be changed,\n"
+"what strength requirements exist, and the length of the password history.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" To reset your own password:\n"
+" ipa passwd\n"
+"\n"
+" To change another user's password:\n"
+" ipa passwd tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/passwd.py:46
+msgid ""
+"\n"
+" Set a user's password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:64
+msgid "Changed password for \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/passwd.py:67
+msgid ""
+"\n"
+" Execute the passwd operation.\n"
+"\n"
+" The dn should not be passed as a keyword argument as it is "
+"constructed\n"
+" by this method.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param principal: The login name or principal of the user\n"
+" :param password: the new password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:19
+msgid ""
+"\n"
+"Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of rights. A permission is\n"
+"a human-readable form of a 389-ds Access Control Rule, or instruction "
+"(ACI).\n"
+"A permission grants the right to perform a specific task such as adding a\n"
+"user, modifying a group, etc.\n"
+"\n"
+"A permission may not contain other permissions.\n"
+"\n"
+"* A permission grants access to read, write, add or delete.\n"
+"* A privilege combines similar permissions (for example all the permissions\n"
+" needed to add a user).\n"
+"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n"
+"\n"
+"A permission is made up of a number of different parts:\n"
+"\n"
+"1. The name of the permission.\n"
+"2. The target of the permission.\n"
+"3. The rights granted by the permission.\n"
+"\n"
+"Rights define what operations are allowed, and may be one or more\n"
+"of the following:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Read permission is granted for most attributes by default so the read\n"
+"permission is not expected to be used very often.\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"There are a number of allowed targets:\n"
+"1. type: a type of object (user, group, etc).\n"
+"2. memberof: a member of a group or hostgroup\n"
+"3. filter: an LDAP filter\n"
+"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n"
+" super-set of the \"type\" target.\n"
+"5. targetgroup: grant access to modify a specific group (such as granting\n"
+" the rights to manage group membership)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a permission that grants the creation of users:\n"
+" ipa permission-add --type=user --permissions=add \"Add Users\"\n"
+"\n"
+" Add a permission that grants the ability to manage group membership:\n"
+" ipa permission-add --attrs=member --permissions=write --type=group "
+"\"Manage Group Members\"\n"
+msgstr ""
+
+#: ipalib/plugins/permission.py:84
+msgid "Permission Type"
+msgstr ""
+
+#: ipalib/plugins/permission.py:89
+msgid ""
+"\n"
+" Permission object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:112
+msgid "Permission name"
+msgstr ""
+
+#: ipalib/plugins/permission.py:119
+msgid ""
+"Comma-separated list of permissions to grant (read, write, add, delete, all)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:132
+msgid ""
+"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:138
+msgid "Member of group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:139
+msgid "Target members of a group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:151
+msgid "Subtree to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:157
+msgid "User group to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:177
+msgid ""
+"\n"
+" Add a new permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:181
+msgid "Added permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:236
+msgid ""
+"\n"
+" Delete a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:240
+msgid "Deleted permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:256
+msgid ""
+"\n"
+" Modify a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:260
+msgid "Modified permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:352
+msgid ""
+"\n"
+" Search for permissions.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:356
+msgid "%(count)d permission matched"
+msgid_plural "%(count)d permissions matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/permission.py:405
+msgid ""
+"\n"
+" Display information about a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:428
+msgid ""
+"\n"
+" Add members to a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:437
+msgid ""
+"\n"
+" Remove members from a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:19
+msgid ""
+"\n"
+"Ping the remote IPA server\n"
+msgstr ""
+
+#: ipalib/plugins/ping.py:29
+msgid ""
+"\n"
+" ping a remote server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:37
+msgid ""
+"\n"
+" A possible enhancement would be to take an argument and echo it\n"
+" back but a fixed value works for now.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:19
+msgid ""
+"\n"
+"Kerberos pkinit options\n"
+"\n"
+"Enable or disable anonymous pkinit using the principal\n"
+"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n"
+"pkinit support.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Enable anonymous pkinit:\n"
+" ipa pkinit-anonymous enable\n"
+"\n"
+" Disable anonymous pkinit:\n"
+" ipa pkinit-anonymous disable\n"
+"\n"
+"For more information on anonymous pkinit see:\n"
+"\n"
+"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:46
+msgid ""
+"\n"
+" PKINIT Options\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:51
+msgid "PKINIT"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:56
+msgid ""
+"\n"
+" Accepts only Enable/Disable.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:67
+msgid ""
+"\n"
+" Enable or Disable Anonymous PKINIT\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:19
+msgid ""
+"\n"
+"Privileges\n"
+"\n"
+"A privilege combines permissions into a logical task. A permission provides\n"
+"the rights to do a single task. There are some IPA operations that require\n"
+"multiple permissions to succeed. A privilege is where permissions are\n"
+"combined in order to perform a specific task.\n"
+"\n"
+"For example, adding a user requires the following permissions:\n"
+" * Creating a new user entry\n"
+" * Resetting a user password\n"
+" * Adding the new user to the default IPA users group\n"
+"\n"
+"Combining these three low-level tasks into a higher level task in the\n"
+"form of a privilege named \"Add User\" makes it easier to manage Roles.\n"
+"\n"
+"A privilege may not contain other privileges.\n"
+"\n"
+"See role and permission for additional information.\n"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:45
+msgid ""
+"\n"
+" Privilege object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:65
+msgid "Privileges"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:70
+msgid "Privilege name"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:77
+msgid "Privilege description"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:85
+msgid ""
+"\n"
+" Add a new privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:89
+msgid "Added privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:95
+msgid ""
+"\n"
+" Delete a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:99
+msgid "Deleted privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:105
+msgid ""
+"\n"
+" Modify a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:109
+msgid "Modified privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:115
+msgid ""
+"\n"
+" Search for privileges.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:119
+msgid "%(count)d privilege matched"
+msgid_plural "%(count)d privileges matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/privilege.py:127
+msgid ""
+"\n"
+" Display information about a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:135
+msgid ""
+"\n"
+" Add members to a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:144
+msgid ""
+"\n"
+" Remove members from a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:153
+msgid ""
+"\n"
+" Add permissions to a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:169
+msgid "Number of permissions added"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:177
+msgid ""
+"\n"
+" Remove permissions from a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:195
+msgid "Number of permissions removed"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:20
+msgid ""
+"\n"
+"Password policy\n"
+"\n"
+"A password policy sets limitations on IPA passwords, including maximum\n"
+"lifetime, minimum lifetime, the number of passwords to save in\n"
+"history, the number of character classes required (for stronger passwords)\n"
+"and the minimum password length.\n"
+"\n"
+"By default there is a single, global policy for all users. You can also\n"
+"create a password policy to apply to a group. Each user is only subject\n"
+"to one password policy, either the group policy or the global policy. A\n"
+"group policy stands alone; it is not a super-set of the global policy plus\n"
+"custom settings.\n"
+"\n"
+"Each group password policy requires a unique priority setting. If a user\n"
+"is in multiple groups that have password policies, this priority determines\n"
+"which password policy is applied. A lower value indicates a higher priority\n"
+"policy.\n"
+"\n"
+"Group password policies are automatically removed when the groups they\n"
+"are associated with are removed.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Modify the global policy:\n"
+" ipa pwpolicy-mod --minlength=10\n"
+"\n"
+" Add a new group password policy:\n"
+" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --"
+"minlength=8 --priority=10 localadmins\n"
+"\n"
+" Display the global password policy:\n"
+" ipa pwpolicy-show\n"
+"\n"
+" Display a group password policy:\n"
+" ipa pwpolicy-show localadmins\n"
+"\n"
+" Display the policy that would be applied to a given user:\n"
+" ipa pwpolicy-show --user=tuser1\n"
+"\n"
+" Modify a group password policy:\n"
+" ipa pwpolicy-mod --minclasses=2 localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:72
+msgid ""
+"\n"
+" Class of Service object used for linking policies with groups\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:87
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:170
-msgid "Password Policy"
+#: ipalib/plugins/pwpolicy.py:172
+msgid ""
+"\n"
+" Password Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:201
+msgid "Max failures"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:202
+msgid "Consecutive failures before lockout"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:207
+msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:175
+#: ipalib/plugins/pwpolicy.py:208
+msgid "Period after which failure count will be reset (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:213
+msgid "Lockout duration"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:214
+msgid "Period for which lockout is enforced (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:224
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:176
+#: ipalib/plugins/pwpolicy.py:225
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:181
+#: ipalib/plugins/pwpolicy.py:230
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:182
+#: ipalib/plugins/pwpolicy.py:231
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:187
+#: ipalib/plugins/pwpolicy.py:236
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:188
+#: ipalib/plugins/pwpolicy.py:237
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:193
+#: ipalib/plugins/pwpolicy.py:242
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:194
+#: ipalib/plugins/pwpolicy.py:243
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:199
+#: ipalib/plugins/pwpolicy.py:248
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:200
+#: ipalib/plugins/pwpolicy.py:249
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:206
+#: ipalib/plugins/pwpolicy.py:255
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:256
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:212
+#: ipalib/plugins/pwpolicy.py:261
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:262
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:265
+#: ipalib/plugins/pwpolicy.py:294
+msgid ""
+"\n"
+" Ensure that the maximum lifetime is greater than the minimum.\n"
+" If there is no minimum lifetime set then don't return an error.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:314
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:330
+#: ipalib/plugins/pwpolicy.py:333
+msgid ""
+"\n"
+" Add a new group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:361
+msgid ""
+"\n"
+" Delete a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:380
+msgid ""
+"\n"
+" Modify a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:391
msgid "priority cannot be set on global policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:369
+#: ipalib/plugins/pwpolicy.py:423
+msgid ""
+"\n"
+" Display information about password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:428
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:370
+#: ipalib/plugins/pwpolicy.py:429
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/rolegroup.py:79
-msgid "Role Groups"
+#: ipalib/plugins/pwpolicy.py:452
+msgid ""
+"\n"
+" Search for group password policies.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:84
-msgid "Role-group name"
+#: ipalib/plugins/role.py:20
+msgid ""
+"\n"
+"Roles\n"
+"\n"
+"A role is used for fine-grained delegation. A permission grants the ability\n"
+"to perform given low-level tasks (add a user, modify a group, etc.). A\n"
+"privilege combines one or more permissions into a higher-level abstraction\n"
+"such as useradmin. A useradmin would be able to add, delete and modify "
+"users.\n"
+"\n"
+"Privileges are assigned to Roles.\n"
+"\n"
+"Users, groups, hosts and hostgroups may be members of a Role.\n"
+"\n"
+"Roles can not contain other roles.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new role:\n"
+" ipa role-add --desc=\"Junior-level admin\" junioradmin\n"
+"\n"
+" Add some privileges to this role:\n"
+" ipa role-add-privilege --privileges=addusers junioradmin\n"
+" ipa role-add-privilege --privileges=change_password junioradmin\n"
+" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n"
+"\n"
+" Add a group of users to this role:\n"
+" ipa group-add --desc=\"User admins\" useradmins\n"
+" ipa role-add-member --groups=useradmins junioradmin\n"
+"\n"
+" Display information about a role:\n"
+" ipa role-show junioradmin\n"
+"\n"
+" The result of this is that any users in the group 'useradmins' can\n"
+" add users, reset passwords or add a user to the default IPA user group.\n"
+msgstr ""
+
+#: ipalib/plugins/role.py:62
+msgid ""
+"\n"
+" Role object.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:91
+#: ipalib/plugins/role.py:81
+msgid "Role"
+msgstr ""
+
+#: ipalib/plugins/role.py:86
+msgid "Role name"
+msgstr ""
+
+#: ipalib/plugins/role.py:93
msgid "A description of this role-group"
msgstr ""
-#: ipalib/plugins/rolegroup.py:102
-msgid "Member of task-groups"
+#: ipalib/plugins/role.py:101
+msgid ""
+"\n"
+" Add a new role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:115
-#, python-format
-msgid "Added rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:105
+msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/rolegroup.py:125
-#, python-format
-msgid "Deleted rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:111
+msgid ""
+"\n"
+" Delete a role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:135
-#, python-format
-msgid "Modified rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:115
+msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/rolegroup.py:146
-#, python-format
-msgid "%(count)d rolegroup matched"
-msgid_plural "%(count)d rolegroups matched"
+#: ipalib/plugins/role.py:121
+msgid ""
+"\n"
+" Modify a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:125
+msgid "Modified role \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/role.py:131
+msgid ""
+"\n"
+" Search for roles.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:135
+msgid "%(count)d role matched"
+msgid_plural "%(count)d roles matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:198
+#: ipalib/plugins/role.py:143
+msgid ""
+"\n"
+" Display information about a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:151
+msgid ""
+"\n"
+" Add members to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:159
+msgid ""
+"\n"
+" Remove members from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:167
+msgid ""
+"\n"
+" Add privileges to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:183
+msgid "Number of privileges added"
+msgstr ""
+
+#: ipalib/plugins/role.py:191
+msgid ""
+"\n"
+" Remove privileges from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:207
+msgid "Number of privileges removed"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:19
+msgid ""
+"\n"
+"Self-service Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"A Self-service permission defines what an object can change in its own "
+"entry.\n"
+"\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a self-service rule to allow users to manage their address:\n"
+" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st "
+"\"Users manage their own address\"\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add telephoneNumber to the list:\n"
+" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber "
+"\"Users manage their own address\"\n"
+"\n"
+" Display our updated rule:\n"
+" ipa selfservice-show \"Users manage their own address\"\n"
+"\n"
+" Delete a rule:\n"
+" ipa selfservice-del \"Users manage their own address\"\n"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:56
+msgid ""
+"\n"
+" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a self-service ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:64
+msgid "Self-service permission '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:68
+msgid ""
+"\n"
+" Selfservice object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:75
+msgid "Self Service Permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
+msgid "Self-service name"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:114
+msgid ""
+"\n"
+" Add a new self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:118
+msgid "Added selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:137
+msgid ""
+"\n"
+" Delete a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:142
+msgid "Deleted selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:158
+msgid ""
+"\n"
+" Modify a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:162
+msgid "Modified selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:181
+msgid ""
+"\n"
+" Search for a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:185
+msgid "%(count)d selfservice matched"
+msgid_plural "%(count)d selfservices matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/selfservice.py:207
+msgid ""
+"\n"
+" Display information about a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:21
+msgid ""
+"\n"
+"Services\n"
+"\n"
+"A IPA service represents a service that runs on a host. The IPA service\n"
+"record can store a Kerberos principal, an SSL certificate, or both.\n"
+"\n"
+"An IPA service can be managed directly from a machine, provided that\n"
+"machine has been given the correct permission. This is true even for\n"
+"machines other than the one the service is associated with. For example,\n"
+"requesting an SSL certificate using the host service principal credentials\n"
+"of the host. To manage a service using host credentials you need to\n"
+"kinit as the host:\n"
+"\n"
+" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n"
+"\n"
+"Adding an IPA service allows the associated service to request an SSL\n"
+"certificate or keytab, but this is performed as a separate step; they\n"
+"are not produced as a result of adding the service.\n"
+"\n"
+"Only the public aspect of a certificate is stored in a service record;\n"
+"the private key is not stored.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new IPA service:\n"
+" ipa service-add HTTP/web.example.com\n"
+"\n"
+" Allow a host to manage an IPA service certificate:\n"
+" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n"
+" ipa role-add-member --hosts=web.example.com certadmin\n"
+"\n"
+" Delete an IPA service:\n"
+" ipa service-del HTTP/web.example.com\n"
+"\n"
+" Find all IPA services associated with a host:\n"
+" ipa service-find web.example.com\n"
+"\n"
+" Find all HTTP services:\n"
+" ipa service-find HTTP\n"
+"\n"
+" Disable the service Kerberos key and SSL certificate:\n"
+" ipa service-disable HTTP/web.example.com\n"
+"\n"
+" Request a certificate for an IPA service:\n"
+" ipa cert-request --principal=HTTP/web.example.com example.csr\n"
+"\n"
+" Generate and retrieve a keytab for an IPA service:\n"
+" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/"
+"httpd.keytab\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/service.py:162
+msgid ""
+"\n"
+" For now just verify that it is properly base64-encoded.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:175
+msgid ""
+"\n"
+" Set individual attributes from some values from a certificate.\n"
+"\n"
+" entry_attrs is a dict of an entry\n"
+"\n"
+" returns nothing\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:199
+msgid ""
+"\n"
+" Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:226
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:221
+#: ipalib/plugins/service.py:242
+msgid ""
+"\n"
+" Add a new IPA new service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:245
+msgid "Added service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/service.py:251
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:292
-#, python-format
+#: ipalib/plugins/service.py:284
+msgid ""
+"\n"
+" Delete an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:287
+msgid "Deleted service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/service.py:321
+msgid ""
+"\n"
+" Modify an existing IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:324
msgid "Modified service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:323
-#, python-format
+#: ipalib/plugins/service.py:356
+msgid ""
+"\n"
+" Search for IPA services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:359
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:409
-msgid "Service principal has no kerberos key"
+#: ipalib/plugins/service.py:394
+msgid ""
+"\n"
+" Display information about an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:432
+msgid ""
+"\n"
+" Add hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:442
+msgid ""
+"\n"
+" Remove hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:452
+msgid ""
+"\n"
+" Disable the Kerberos key and SSL certificate of a service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:456
+msgid "Disabled service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:19
+msgid ""
+"\n"
+"Sudo Commands\n"
+"\n"
+"Commands used as building blocks for sudo\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a new command\n"
+" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n"
+"\n"
+" Remove a command\n"
+" ipa sudocmd-del /usr/bin/less\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:46
+msgid ""
+"\n"
+" Sudo Command object.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmd.py:60
-msgid "SudoCmds"
+#: ipalib/plugins/sudocmd.py:64
+msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:65
+#: ipalib/plugins/sudocmd.py:69
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:72
+#: ipalib/plugins/sudocmd.py:75
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:99
-#, python-format
+#: ipalib/plugins/sudocmd.py:98
+msgid ""
+"\n"
+" Create new sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:102
msgid "Added sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:108
-#, python-format
+#: ipalib/plugins/sudocmd.py:107
+msgid ""
+"\n"
+" Delete sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:111
msgid "Deleted sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:117
-#, python-format
+#: ipalib/plugins/sudocmd.py:116
+msgid ""
+"\n"
+" Modify command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:120
msgid "Modified sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:127
-#, python-format
+#: ipalib/plugins/sudocmd.py:125
+msgid ""
+"\n"
+" Search for commands.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:129
msgid "%(count)d sudo command matched"
msgid_plural "%(count)d sudo command matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmdgroup.py:66 ipalib/plugins/sudocmdgroup.py:85
-#: ipalib/plugins/sudorule.py:81 ipalib/plugins/sudorule.py:85
-msgid "Sudo Command Groups"
+#: ipalib/plugins/sudocmd.py:136
+msgid ""
+"\n"
+" Display sudo command.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:71
+#: ipalib/plugins/sudocmdgroup.py:19
+msgid ""
+"\n"
+"Groups of Sudo commands\n"
+"\n"
+"Manage groups of Sudo commands.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new Sudo command group:\n"
+" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
+"\n"
+" Remove a Sudo command group:\n"
+" ipa sudocmdgroup-del admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim "
+"admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
+"\n"
+" Show a Sudo command group:\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:50
+msgid ""
+"\n"
+" Sudo Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:70
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:81
-msgid "Commands"
+#: ipalib/plugins/sudocmdgroup.py:93
+msgid ""
+"\n"
+" Create new sudo command group.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:98
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:97
msgid "Added sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:108
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:103
+msgid ""
+"\n"
+" Delete sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:107
msgid "Deleted sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:118
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:113
+msgid ""
+"\n"
+" Modify group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:117
msgid "Modified sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:129
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:123
+msgid ""
+"\n"
+" Search for sudo command groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:127
msgid "%(count)d sudo command group matched"
msgid_plural "%(count)d sudo command groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudorule.py:48
-msgid "SudoRule"
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid ""
+"\n"
+" Display sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:144
+msgid ""
+"\n"
+" Add members to sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:152
+msgid ""
+"\n"
+" Remove members from sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:19
+msgid ""
+"\n"
+"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
+"give certain users (or groups of users) the ability to run some (or all)\n"
+"commands as root or another user while providing an audit trail of the\n"
+"commands and their arguments.\n"
+"\n"
+"FreeIPA provides a designated binddn to use with Sudo located at:\n"
+"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
+"\n"
+"To enable the binddn run the following command to set the password:\n"
+"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -"
+"ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,"
+"dc=com\n"
+"\n"
+"For more information, see the FreeIPA Documentation to Sudo.\n"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:44
+msgid ""
+"\n"
+" Sudo Rule management\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:68
+msgid "Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:98
+msgid "Command category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:99
+msgid "Command category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:104
+msgid "Run As User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/sudorule.py:105
+msgid "Run As User category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:110
+msgid "Run As Group category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:111
+msgid "Run As Group category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:131
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:77
+#: ipalib/plugins/sudorule.py:135
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:109
-#, python-format
+#: ipalib/plugins/sudorule.py:147
+msgid "Run As User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:151
+msgid "Run As Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:156
+msgid "External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:157
+msgid "External User the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:161
+msgid "RunAs External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:162
+msgid "External User the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:166
+msgid "RunAs External Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:167
+msgid "External Group the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:175
+msgid ""
+"\n"
+" Create new Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "Added sudo rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/taskgroup.py:51
-msgid "Task Groups"
+#: ipalib/plugins/sudorule.py:189
+msgid ""
+"\n"
+" Delete Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:197
+msgid ""
+"\n"
+" Modify Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:56
-msgid "Task-group name"
+#: ipalib/plugins/sudorule.py:205
+msgid ""
+"\n"
+" Search for Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:63
-msgid "Task-group description"
+#: ipalib/plugins/sudorule.py:213
+msgid ""
+"\n"
+" Display Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:74
-msgid "Member role-groups"
+#: ipalib/plugins/sudorule.py:221
+msgid ""
+"\n"
+" Enable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:87
-#, python-format
-msgid "Added taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:247
+msgid ""
+"\n"
+" Disable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:97
-#, python-format
-msgid "Deleted taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
+msgid ""
+"\n"
+" Add commands and sudo command groups affected by Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:107
-#, python-format
-msgid "Modified taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
+msgid ""
+"\n"
+" Remove commands and sudo command groups affected by Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:118
-#, python-format
-msgid "%(count)d taskgroup matched"
-msgid_plural "%(count)d taskgroups matched"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/sudorule.py:313
+msgid ""
+"\n"
+" Add users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:349
+msgid ""
+"\n"
+" Remove users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:383
+msgid ""
+"\n"
+" Add hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:419
+msgid ""
+"\n"
+" Remove hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:453
+msgid ""
+"\n"
+" Add user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:489
+msgid ""
+"\n"
+" Remove user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:523
+msgid ""
+"\n"
+" Add group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:559
+msgid ""
+"\n"
+" Remove group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:593
+msgid ""
+"\n"
+" Add an option to the Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
+msgid "Sudo Option"
+msgstr ""
-#: ipalib/plugins/user.py:84
+#: ipalib/plugins/sudorule.py:635
+msgid ""
+"\n"
+" Remove an option from Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:20
+msgid ""
+"\n"
+"Users\n"
+"\n"
+"Manage user entries. All users are POSIX users.\n"
+"\n"
+"IPA supports a wide range of username formats, but you need to be aware of "
+"any\n"
+"restrictions that may apply to your particular environment. For example,\n"
+"usernames that start with a digit or usernames that exceed a certain length\n"
+"may cause problems for some UNIX systems.\n"
+"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n"
+"\n"
+"Disabling a user account prevents that user from obtaining new Kerberos\n"
+"credentials. It does not invalidate any credentials that have already\n"
+"been issued.\n"
+"\n"
+"Password management is not a part of this module. For more information\n"
+"about this topic please see: ipa help passwd\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1\n"
+"\n"
+" Find all users whose entries include the string \"Tim\":\n"
+" ipa user-find Tim\n"
+"\n"
+" Find all users with \"Tim\" as the first name:\n"
+" ipa user-find --first=Tim\n"
+"\n"
+" Disable a user account:\n"
+" ipa user-disable tuser1\n"
+"\n"
+" Enable a user account:\n"
+" ipa user-enable tuser1\n"
+"\n"
+" Delete a user:\n"
+" ipa user-del tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/user.py:79
+msgid ""
+"\n"
+" User object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:116
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:91
+#: ipalib/plugins/user.py:123
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:95
+#: ipalib/plugins/user.py:127
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:103
+#: ipalib/plugins/user.py:130
+msgid "Full name"
+msgstr ""
+
+#: ipalib/plugins/user.py:135
+msgid "Display name"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "Initials"
+msgstr ""
+
+#: ipalib/plugins/user.py:146
+msgid "Home directory"
+msgstr ""
+
+#: ipalib/plugins/user.py:150
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:109
+#: ipalib/plugins/user.py:156
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:114
+#: ipalib/plugins/user.py:161
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:120
+#: ipalib/plugins/user.py:168
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:124
-msgid "Password"
-msgstr ""
-
-#: ipalib/plugins/user.py:125
-msgid "Set the user password"
+#: ipalib/plugins/user.py:173
+msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:132
+#: ipalib/plugins/user.py:180
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:133
+#: ipalib/plugins/user.py:181
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:139
-msgid "Street address"
+#: ipalib/plugins/user.py:188
+msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:142
-msgid "Groups"
+#: ipalib/plugins/user.py:193
+msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:146
-msgid "Netgroups"
+#: ipalib/plugins/user.py:197
+msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:150
-msgid "Rolegroups"
+#: ipalib/plugins/user.py:201
+msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:154
-msgid "Taskgroups"
+#: ipalib/plugins/user.py:204
+msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:159
+#: ipalib/plugins/user.py:208
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:211
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:163
+#: ipalib/plugins/user.py:214
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:166
+#: ipalib/plugins/user.py:218
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:177
-#, python-format
+#: ipalib/plugins/user.py:222
+msgid "Org. Unit"
+msgstr ""
+
+#: ipalib/plugins/user.py:225
+msgid "Job Title"
+msgstr ""
+
+#: ipalib/plugins/user.py:228
+msgid "Manager"
+msgstr ""
+
+#: ipalib/plugins/user.py:231
+msgid "Car License"
+msgstr ""
+
+#: ipalib/plugins/user.py:234
+msgid "Account disabled"
+msgstr ""
+
+#: ipalib/plugins/user.py:258
+msgid ""
+"\n"
+" Given a userid verify the user's existence and return the dn.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:276
+msgid "manager %(manager)s not found"
+msgstr ""
+
+#: ipalib/plugins/user.py:281
+msgid ""
+"\n"
+" Convert a manager dn into a userid\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:295
+msgid ""
+"\n"
+" Add a new user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:298
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:226
-#, python-format
+#: ipalib/plugins/user.py:303
+msgid "Don't create user private group"
+msgstr ""
+
+#: ipalib/plugins/user.py:333
+msgid "can be at most %(len)d characters"
+msgstr ""
+
+#: ipalib/plugins/user.py:400
+msgid ""
+"\n"
+" Delete a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:404
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:240
-#, python-format
+#: ipalib/plugins/user.py:413
+msgid ""
+"\n"
+" Modify a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:417
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:252
+#: ipalib/plugins/user.py:437
+msgid ""
+"\n"
+" Search for users.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:444
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:253
+#: ipalib/plugins/user.py:445
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:263
-#, python-format
+#: ipalib/plugins/user.py:463
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:283
-#, python-format
+#: ipalib/plugins/user.py:471
+msgid ""
+"\n"
+" Display information about a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:484
+msgid ""
+"\n"
+" Disable a user account.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:489
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:309
-#, python-format
+#: ipalib/plugins/user.py:507
+msgid ""
+"\n"
+" Enable a user account.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:512
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipaserver/install/certs.py:599 ipaserver/plugins/dogtag.py:1313
-#: ipaserver/plugins/dogtag.py:1398 ipaserver/plugins/dogtag.py:1463
-#: ipaserver/plugins/dogtag.py:1543 ipaserver/plugins/dogtag.py:1602
+#: ipalib/plugins/user.py:529
+msgid ""
+"\n"
+" Unlock a user account\n"
+"\n"
+" An account may become locked if the password is entered incorrectly too\n"
+" many times within a specific time period as controlled by password\n"
+" policy. A locked account is a temporary condition and may be unlocked "
+"by\n"
+" an administrator.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:538
+msgid "Unlocked account \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/virtual.py:20
+msgid ""
+"\n"
+"Base classes for non-LDAP backend plugins.\n"
+msgstr ""
+
+#: ipalib/plugins/virtual.py:28
+msgid ""
+"\n"
+" A command that doesn't use the LDAP backend but wants to use the\n"
+" LDAP access control system to make authorization decisions.\n"
+"\n"
+" The class variable operation is the commonName attribute of the\n"
+" entry to be tested against.\n"
+"\n"
+" In advance, you need to create an entry of the form:\n"
+" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
+"\n"
+" Ex.\n"
+" cn=request certificate, cn=virtual operations,cn=etc, dc=example, "
+"dc=com\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/virtual.py:44
+msgid ""
+"\n"
+" Perform an LDAP query to determine authorization.\n"
+"\n"
+" This should be executed before any actual work is done.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/xmlclient.py:21
+msgid ""
+"\n"
+"XML-RPC client plugin.\n"
+msgstr ""
+
+#: ipalib/cli.py:581
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:590
+msgid "Cancelled."
+msgstr ""
+
+#: ipalib/cli.py:819
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1117
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:300
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:318
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:334
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:356
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:372
+#, python-format
+msgid "unknown command %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:389 ipalib/errors.py:414
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:405
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:423
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:439
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:465
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:482
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:498
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:514
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:530
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:546
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:562
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:578
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:597
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:641
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:661
+#, python-format
+msgid "command %(name)r takes at most %(count)d argument"
+msgid_plural "command %(name)r takes at most %(count)d arguments"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/errors.py:691
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:707
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:723 ipalib/errors.py:739
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:755
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:764
+msgid "Passwords do not match"
+msgstr ""
+
+#: ipalib/errors.py:773
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:782
+msgid "Client is not configured. Run ipa-client-install."
+msgstr ""
+
+#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
+#: ipalib/errors.py:1424 ipalib/errors.py:1441
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:826
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:842
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:858
+#, python-format
+msgid ""
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:874
+msgid ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr ""
+
+#: ipalib/errors.py:890
+msgid "This command requires root access"
+msgstr ""
+
+#: ipalib/errors.py:906
+msgid "This is already a posix group"
+msgstr ""
+
+#: ipalib/errors.py:922
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:938
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:954
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:970
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:986
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1002
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1018
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1034
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1066
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1082
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1098
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1113
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1128
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1160
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1176
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1192
+#, python-format
+msgid ""
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1216
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1240
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1256
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1272
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1288
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1303
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1318
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1334
+#, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr ""
+
+#: ipalib/errors.py:1350
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1366
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1391
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1407
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1458
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1474
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:398
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:850
+msgid ""
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:856
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:985
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:296
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:299
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:901
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1002
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1054
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1064
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1074
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1097
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1107
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1174
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1192
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1208
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1218
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1228
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1246
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1277
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1287
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1297
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1315
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1355
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/util.py:200
+#, python-format
+msgid "Permission denied: %(file)s"
+msgstr ""
+
+#: ipalib/x509.py:174
+#, python-format
+msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
+msgstr ""
+
+#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
+#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
+#: ipaserver/plugins/dogtag.py:1600
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -1994,27 +7227,27 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
-#: ipaserver/plugins/selfsign.py:98
+#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
"Request subject \"%(request_subject)s\" does not match the form "
"\"%(subject_base)s\""
msgstr ""
-#: ipaserver/plugins/selfsign.py:103
+#: ipaserver/plugins/selfsign.py:104
#, python-format
msgid "unable to decode csr: %s"
msgstr ""
-#: ipaserver/plugins/selfsign.py:124 ipaserver/plugins/selfsign.py:139
+#: ipaserver/plugins/selfsign.py:125 ipaserver/plugins/selfsign.py:140
msgid "file operation"
msgstr ""
-#: ipaserver/plugins/selfsign.py:153
+#: ipaserver/plugins/selfsign.py:154
msgid "cannot obtain next serial number"
msgstr ""
-#: ipaserver/plugins/selfsign.py:188
+#: ipaserver/plugins/selfsign.py:189
msgid "certutil failure"
msgstr ""
@@ -2028,543 +7261,573 @@ msgstr ""
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:75
+#: ipa-client/config.c:68
+#, c-format
+msgid "out of memory\n"
+msgstr ""
+
+#: ipa-client/config.c:79
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:138 ipa-client/ipa-getkeytab.c:838
+#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
+#: ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:146
+#: ipa-client/ipa-getkeytab.c:155
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:164 ipa-client/ipa-getkeytab.c:179
+#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:194
+#: ipa-client/ipa-getkeytab.c:203
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:209
+#: ipa-client/ipa-getkeytab.c:218
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:235
+#: ipa-client/ipa-getkeytab.c:245
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:297
+#: ipa-client/ipa-getkeytab.c:307
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:310 ipa-client/ipa-getkeytab.c:327
-#: ipa-client/ipa-getkeytab.c:335 ipa-client/ipa-getkeytab.c:372
+#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
+#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:317 ipa-client/ipa-getkeytab.c:350
+#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
+#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
+#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
+#: ipa-client/ipa-join.c:819
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:361
+#: ipa-client/ipa-getkeytab.c:371
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:481
+#: ipa-client/ipa-getkeytab.c:492
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:496
+#: ipa-client/ipa-getkeytab.c:507
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:534
+#: ipa-client/ipa-getkeytab.c:545
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:541
+#: ipa-client/ipa-getkeytab.c:552
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:565
+#: ipa-client/ipa-getkeytab.c:576
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:572
+#: ipa-client/ipa-getkeytab.c:583
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:579
+#: ipa-client/ipa-getkeytab.c:596
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:589
+#: ipa-client/ipa-getkeytab.c:606
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:605 ipa-client/ipa-getkeytab.c:618
-#: ipa-client/ipa-getkeytab.c:625 ipa-client/ipa-getkeytab.c:632
+#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
+#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:638 ipa-client/ipa-getkeytab.c:648
+#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655
+#: ipa-client/ipa-getkeytab.c:672
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:674
+#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:715
+#: ipa-client/ipa-getkeytab.c:736
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:721
+#: ipa-client/ipa-getkeytab.c:742
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781
+#: ipa-client/ipa-getkeytab.c:778
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782
+#: ipa-client/ipa-getkeytab.c:779
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:189
+#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:787
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:788
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:790
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:794
+#: ipa-client/ipa-getkeytab.c:791
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:796
+#: ipa-client/ipa-getkeytab.c:793
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:825 ipa-client/ipa-rmkeytab.c:207
-#, c-format
-msgid "Kerberos context initialization failed\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:837
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:845
+#: ipa-client/ipa-getkeytab.c:841
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:864
+#: ipa-client/ipa-getkeytab.c:860
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:877
+#: ipa-client/ipa-getkeytab.c:873
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. -P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:889
+#: ipa-client/ipa-getkeytab.c:885
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:897
+#: ipa-client/ipa-getkeytab.c:893
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:905
+#: ipa-client/ipa-getkeytab.c:901
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:913
+#: ipa-client/ipa-getkeytab.c:909
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:920
+#: ipa-client/ipa-getkeytab.c:916
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:939
+#: ipa-client/ipa-getkeytab.c:935
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:948
+#: ipa-client/ipa-getkeytab.c:944
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:954
+#: ipa-client/ipa-getkeytab.c:950
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:67
+#: ipa-client/ipa-join.c:65
#, c-format
msgid "No permission to join this host to the IPA domain.\n"
msgstr ""
-#: ipa-client/ipa-join.c:104 ipa-client/ipa-join.c:116
+#: ipa-client/ipa-join.c:94 ipa-client/ipa-join.c:106
#, c-format
msgid "No write permissions on keytab file '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:121
+#: ipa-client/ipa-join.c:111
#, c-format
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:200
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#, c-format
+msgid "Out of memory!"
+msgstr ""
+
+#: ipa-client/ipa-join.c:204
+#, c-format
+msgid "Unable to initialize connection to ldap server: %s"
+msgstr ""
+
+#: ipa-client/ipa-join.c:210
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:206
+#: ipa-client/ipa-join.c:216
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:236
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:249
+#: ipa-client/ipa-join.c:269
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:259 ipa-client/ipa-join.c:311
+#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:302
+#: ipa-client/ipa-join.c:322
#, c-format
msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:368
+#: ipa-client/ipa-join.c:390
#, c-format
msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:377
+#: ipa-client/ipa-join.c:399
#, c-format
msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:385
+#: ipa-client/ipa-join.c:407
#, c-format
msgid "Unable to make an LDAP connection to %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:394
+#: ipa-client/ipa-join.c:432
#, c-format
msgid "Searching with %s in %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:400
+#: ipa-client/ipa-join.c:438
#, c-format
msgid "ldap_search_ext_s: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:408
+#: ipa-client/ipa-join.c:446
#, c-format
msgid "Unable to find host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:415
+#: ipa-client/ipa-join.c:453
#, c-format
msgid "Unable to get binddn for host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:428
+#: ipa-client/ipa-join.c:466
#, c-format
msgid "Host already has principal, trying bind anyway\n"
msgstr ""
-#: ipa-client/ipa-join.c:442 ipa-client/ipa-join.c:579
+#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:484
#, c-format
msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:457
+#: ipa-client/ipa-join.c:495
#, c-format
msgid "principal not found in host entry\n"
msgstr ""
-#: ipa-client/ipa-join.c:564
+#: ipa-client/ipa-join.c:618
#, c-format
msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:646 ipa-client/ipa-join.c:823
+#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:662 ipa-client/ipa-join.c:838
+#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:671 ipa-client/ipa-join.c:848
+#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:679
+#: ipa-client/ipa-join.c:732
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:689
+#: ipa-client/ipa-join.c:741
+#, c-format
+msgid "Error getting default Kerberos realm: %s.\n"
+msgstr ""
+
+#: ipa-client/ipa-join.c:759
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:707
+#: ipa-client/ipa-join.c:777
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:718
+#: ipa-client/ipa-join.c:788
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:726
+#: ipa-client/ipa-join.c:796
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:769
+#: ipa-client/ipa-join.c:846
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:772
+#: ipa-client/ipa-join.c:849
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:854
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:855
+#: ipa-client/ipa-join.c:932
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:863
+#: ipa-client/ipa-join.c:940
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not "
"provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:877
+#: ipa-client/ipa-join.c:954
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:906
+#: ipa-client/ipa-join.c:983
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:909
+#: ipa-client/ipa-join.c:986
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:912
+#: ipa-client/ipa-join.c:989
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:924
+#: ipa-client/ipa-join.c:1001
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:930
+#: ipa-client/ipa-join.c:1007
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "Print the raw XML-RPC output"
+#: ipa-client/ipa-join.c:1042
+msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "XML-RPC debugging Output"
+#: ipa-client/ipa-join.c:1044
+msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:967
-msgid "Unenroll this host"
-msgstr ""
-
-#: ipa-client/ipa-join.c:967
+#: ipa-client/ipa-join.c:1046
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Use this hostname instead of the node name"
+#: ipa-client/ipa-join.c:1048
+msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Host Name"
+#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:971
+#: ipa-client/ipa-join.c:1050
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:971
-msgid "IPA Server Name"
+#: ipa-client/ipa-join.c:1052
+msgid "Specifies where to store keytab information."
+msgstr ""
+
+#: ipa-client/ipa-join.c:1052
+msgid "filename"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1054
+msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:44
+#: ipa-client/ipa-join.c:1054
+msgid "password"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:46
+#: ipa-client/ipa-rmkeytab.c:45
#, c-format
msgid "krb5_parse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:56
+#: ipa-client/ipa-rmkeytab.c:55
#, c-format
msgid "Removing principal %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:69
+#: ipa-client/ipa-rmkeytab.c:68
#, c-format
msgid "Failed to open keytab\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:73
+#: ipa-client/ipa-rmkeytab.c:72
#, c-format
msgid "principal not found\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:75
+#: ipa-client/ipa-rmkeytab.c:74
#, c-format
msgid "krb5_kt_get_entry %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:83
+#: ipa-client/ipa-rmkeytab.c:82
#, c-format
msgid "Unable to remove entry\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:85
+#: ipa-client/ipa-rmkeytab.c:84
#, c-format
msgid "kvno %d\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:86
+#: ipa-client/ipa-rmkeytab.c:85
#, c-format
msgid "krb5_kt_remove_entry %d: %s\n"
msgstr ""
@@ -2579,33 +7842,38 @@ msgstr ""
msgid "krb5_unparse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:143
+#, c-format
+msgid "realm not found\n"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Print debugging information"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Debugging output"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Remove all principals in this realm"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Realm name"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:241
+#: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237
#, c-format
-msgid "Failed to open keytab '%s'\n"
+msgid "Failed to open keytab '%s': %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:255
+#: ipa-client/ipa-rmkeytab.c:253
#, c-format
msgid "Closing keytab failed\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:257
+#: ipa-client/ipa-rmkeytab.c:255
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
diff --git a/install/po/pt_BR.po b/install/po/pt_BR.po
index 3256f41c8..cd0831a19 100644
--- a/install/po/pt_BR.po
+++ b/install/po/pt_BR.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: ipa\n"
"Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/"
"newticket\n"
-"POT-Creation-Date: 2010-10-13 14:22-0400\n"
+"POT-Creation-Date: 2011-06-06 13:27-0400\n"
"PO-Revision-Date: 2010-03-16 17:21-0400\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -18,1507 +18,4745 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: ipalib/cli.py:507
-#, python-format
-msgid "Enter %(label)s again to verify: "
+#: ipalib/plugins/__init__.py:20
+msgid ""
+"\n"
+"Sub-package containing all core plugins.\n"
msgstr ""
-#: ipalib/cli.py:511 ipa-client/ipa-getkeytab.c:730
-#, c-format
-msgid "Passwords do not match!"
+#: ipalib/plugins/aci.py:20
+msgid ""
+"\n"
+"Directory Server Access Control Instructions (ACIs)\n"
+"\n"
+"ACIs are used to allow or deny access to information. This module is\n"
+"currently designed to allow, not deny, access.\n"
+"\n"
+"The aci commands are designed to grant permissions that allow updating\n"
+"existing entries or adding or deleting new ones. The goal of the ACIs\n"
+"that ship with IPA is to provide a set of low-level permissions that\n"
+"grant access to special groups called taskgroups. These low-level\n"
+"permissions can be combined into roles that grant broader access. These\n"
+"roles are another type of group, roles.\n"
+"\n"
+"For example, if you have taskgroups that allow adding and modifying users "
+"you\n"
+"could create a role, useradmin. You would assign users to the useradmin\n"
+"role to allow them to do the operations defined by the taskgroups.\n"
+"\n"
+"You can create ACIs that delegate permission so users in group A can write\n"
+"attributes on group B.\n"
+"\n"
+"The type option is a map that applies to all entries in the users, groups "
+"or\n"
+"host location. It is primarily designed to be used when granting add\n"
+"permissions (to write new entries).\n"
+"\n"
+"An ACI consists of three parts:\n"
+"1. target\n"
+"2. permissions\n"
+"3. bind rules\n"
+"\n"
+"The target is a set of rules that define which LDAP objects are being\n"
+"targeted. This can include a list of attributes, an area of that LDAP\n"
+"tree or an LDAP filter.\n"
+"\n"
+"The targets include:\n"
+"- attrs: list of attributes affected\n"
+"- type: an object type (user, group, host, service, etc)\n"
+"- memberof: members of a group\n"
+"- targetgroup: grant access to modify a specific group. This is primarily\n"
+" designed to enable users to add or remove members of a specific group.\n"
+"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
+"- subtree: Used to apply a rule across an entire set of objects. For "
+"example,\n"
+" to allow adding users you need to grant \"add\" permission to the subtree\n"
+" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
+" is a fail-safe for objects that may not be covered by the type option.\n"
+"\n"
+"The permissions define what the the ACI is allowed to do, and are one or\n"
+"more of:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
+"allows this to be any valid LDAP entry but we encourage the use of\n"
+"taskgroups so that the rights can be easily shared through roles.\n"
+"\n"
+"For a more thorough description of access controls see\n"
+"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control."
+"html\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
+"demonstrate how the various options work but this is done via the "
+"permission\n"
+"command-line now (see last example).\n"
+"\n"
+" Add an ACI so that the group \"secretaries\" can update the address on any "
+"user:\n"
+" ipa group-add --desc=\"Office secretaries\" secretaries\n"
+" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries "
+"--permissions=write --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Show the new ACI:\n"
+" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Add an ACI that allows members of the \"addusers\" permission to add new "
+"users:\n"
+" ipa aci-add --type=user --permission=addusers --permissions=add --"
+"prefix=none \"Add new users\"\n"
+"\n"
+" Add an ACI that allows members of the editors manage members of the admins "
+"group:\n"
+" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --"
+"group=editors --prefix=none \"Editors manage admins\"\n"
+"\n"
+" Add an ACI that allows members of the admin group to manage the street and "
+"zip code of those in the editors group:\n"
+" ipa aci-add --permissions=write --memberof=editors --group=admins --"
+"attrs=street,postalcode --prefix=none \"admins edit the address of editors"
+"\"\n"
+"\n"
+" Add an ACI that allows the admins group manage the street and zipcode of "
+"those who work for the boss:\n"
+" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode "
+"--filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --"
+"prefix=none \"Edit the address of those who work for the boss\"\n"
+"\n"
+" Add an entirely new kind of record to IPA that isn't covered by any of the "
+"--type options, creating a permission:\n"
+" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,"
+"cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
+"\n"
+"\n"
+"The show command shows the raw 389-ds ACI.\n"
+"\n"
+"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
+"must include all existing attributes as well. When doing an aci-mod the\n"
+"targetattr REPLACES the current attributes, it does not add to them.\n"
+"\n"
msgstr ""
-#: ipalib/cli.py:516
-msgid "Cancelled."
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
-#: ipalib/errors.py:297
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+#: ipalib/plugins/aci.py:172
+msgid ""
+"\n"
+" Given a name and a prefix construct an ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:315
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
+#: ipalib/plugins/aci.py:181
+msgid ""
+"\n"
+" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
+" and the actual ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:331
-msgid "an internal error has occurred"
+#: ipalib/plugins/aci.py:193
+msgid ""
+"\n"
+" Pull the group name out of a memberOf filter\n"
+" "
msgstr ""
-#: ipalib/errors.py:353
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
+#: ipalib/plugins/aci.py:204
+msgid ""
+"\n"
+" Given a name and a set of keywords construct an ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:369
-#, python-format
-msgid "unknown command %(name)r"
+#: ipalib/plugins/aci.py:215
+msgid "type, filter, subtree and targetgroup are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:386 ipalib/errors.py:411
-#, python-format
-msgid "error on server %(server)r: %(error)s"
+#: ipalib/plugins/aci.py:218
+msgid "ACI prefix is required"
msgstr ""
-#: ipalib/errors.py:402
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+#: ipalib/plugins/aci.py:221
+msgid ""
+"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
+"required"
msgstr ""
-#: ipalib/errors.py:420
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
+#: ipalib/plugins/aci.py:224
+msgid "filter and memberof are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:448
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
+#: ipalib/plugins/aci.py:230
+msgid "group, permission and self are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:465
-msgid "did not receive Kerberos credentials"
+#: ipalib/plugins/aci.py:232
+msgid "One of group, permission or self is required"
msgstr ""
-#: ipalib/errors.py:481
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
+#: ipalib/plugins/aci.py:251
+msgid "Group '%s' does not exist"
msgstr ""
-#: ipalib/errors.py:497
-msgid "No credentials cache found"
+#: ipalib/plugins/aci.py:273
+msgid "empty filter"
msgstr ""
-#: ipalib/errors.py:513
-msgid "Ticket expired"
+#: ipalib/plugins/aci.py:294
+msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/errors.py:529
-msgid "Credentials cache permissions incorrect"
+#: ipalib/plugins/aci.py:299
+msgid ""
+"Convert an ACI into its equivalent keywords.\n"
+"\n"
+" This is used for the modify operation so we can merge the\n"
+" incoming kw and existing ACI and pass the result to\n"
+" _make_aci().\n"
+" "
msgstr ""
-#: ipalib/errors.py:545
-msgid "Bad format in credentials cache"
+#: ipalib/plugins/aci.py:379
+msgid "ACI with name \"%s\" not found"
msgstr ""
-#: ipalib/errors.py:561
-msgid "Cannot resolve KDC for requested realm"
+#: ipalib/plugins/aci.py:400
+msgid "ACI prefix"
msgstr ""
-#: ipalib/errors.py:580
-#, python-format
-msgid "Insufficient access: %(info)s"
+#: ipalib/plugins/aci.py:401
+msgid ""
+"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
+"none)"
msgstr ""
-#: ipalib/errors.py:624
-#, python-format
-msgid "command %(name)r takes no arguments"
+#: ipalib/plugins/aci.py:407
+msgid ""
+"\n"
+" ACI object.\n"
+" "
msgstr ""
-#: ipalib/errors.py:644
-#, python-format
-msgid "command %(name)r takes at most %(count)d argument"
-msgid_plural "command %(name)r takes at most %(count)d arguments"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/aci.py:412
+msgid "ACIs"
+msgstr ""
-#: ipalib/errors.py:674
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
+#: ipalib/plugins/aci.py:417
+msgid "ACI name"
msgstr ""
-#: ipalib/errors.py:690
-#, python-format
-msgid "%(name)r is required"
+#: ipalib/plugins/aci.py:422
+msgid "Permission"
msgstr ""
-#: ipalib/errors.py:706 ipalib/errors.py:722
-#, python-format
-msgid "invalid %(name)r: %(error)s"
+#: ipalib/plugins/aci.py:423
+msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/errors.py:738
-#, python-format
-msgid "api has no such namespace: %(name)r"
+#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+msgid "User group"
msgstr ""
-#: ipalib/errors.py:747
-msgid "Passwords do not match"
+#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/errors.py:755
-msgid "Command not implemented"
+#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
+#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
+#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+msgid "Permissions"
msgstr ""
-#: ipalib/errors.py:783 ipalib/errors.py:1023 ipalib/errors.py:1254
-#, python-format
-msgid "%(reason)s"
+#: ipalib/plugins/aci.py:433
+msgid ""
+"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/errors.py:799
-msgid "This entry already exists"
+#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
+#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+msgid "Attributes"
msgstr ""
-#: ipalib/errors.py:815
-msgid "You must enroll a host in order to create a host service"
+#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
+#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/errors.py:831
-#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
+#: ipalib/plugins/permission.py:131
+msgid "Type"
msgstr ""
-#: ipalib/errors.py:847
-msgid ""
-"The realm for the principal does not match the realm for this IPA server"
+#: ipalib/plugins/aci.py:445
+msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/errors.py:863
-msgid "This command requires root access"
+#: ipalib/plugins/aci.py:450
+msgid "Member of"
msgstr ""
-#: ipalib/errors.py:879
-msgid "This is already a posix group"
+#: ipalib/plugins/aci.py:451
+msgid "Member of a group"
msgstr ""
-#: ipalib/errors.py:895
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
+#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
+#: ipalib/plugins/permission.py:144
+msgid "Filter"
msgstr ""
-#: ipalib/errors.py:911
-msgid "This entry is already unlocked"
+#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/errors.py:927
-msgid "This entry is already locked"
+#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+msgid "Subtree"
msgstr ""
-#: ipalib/errors.py:943
-msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
+#: ipalib/plugins/aci.py:461
+msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/errors.py:959
-msgid "This entry is not a member of the group"
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+msgid "Target group"
msgstr ""
-#: ipalib/errors.py:975
-msgid "A group may not be a member of itself"
+#: ipalib/plugins/aci.py:466
+msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/errors.py:991
-msgid "This entry is already a member of the group"
+#: ipalib/plugins/aci.py:470
+msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/errors.py:1007
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
+#: ipalib/plugins/aci.py:471
+msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/errors.py:1039
-msgid "A group may not be added as a member of itself"
+#: ipalib/plugins/aci.py:478
+msgid ""
+"\n"
+" Create new ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1055
-msgid "The default users group cannot be removed"
+#: ipalib/plugins/aci.py:482
+msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1071
-msgid "Host does not have corresponding DNS A record"
+#: ipalib/plugins/aci.py:487
+msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/errors.py:1086
-msgid "Deleting a managed group is not allowed. It must be detached first."
+#: ipalib/plugins/aci.py:493
+msgid ""
+"\n"
+" Execute the aci-create operation.\n"
+"\n"
+" Returns the entry as it will be created in LDAP.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: Keyword arguments for the other LDAP attributes.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1109
-#, python-format
-msgid "no command nor help topic %(topic)r"
+#: ipalib/plugins/aci.py:533
+msgid ""
+"\n"
+" Delete ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1133
-msgid "change collided with another change"
+#: ipalib/plugins/aci.py:538
+msgid "Deleted ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1149
-msgid "no modifications to be performed"
+#: ipalib/plugins/aci.py:543
+msgid ""
+"\n"
+" Execute the aci-delete operation.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/errors.py:1165
-#, python-format
-msgid "%(desc)s:%(info)s"
+#: ipalib/plugins/aci.py:576
+msgid ""
+"\n"
+" Modify ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1181
-msgid "limits exceeded for this query"
+#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
+#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
+#: ipalib/plugins/selfservice.py:212
+msgid "ACI"
msgstr ""
-#: ipalib/errors.py:1196
-#, python-format
-msgid "%(info)s"
+#: ipalib/plugins/aci.py:588
+msgid "Modified ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1221
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
+#: ipalib/plugins/aci.py:633
+msgid ""
+"\n"
+" Search for ACIs.\n"
+"\n"
+" Returns a list of ACIs\n"
+"\n"
+" EXAMPLES:\n"
+"\n"
+" To find all ACIs that apply directly to members of the group ipausers:\n"
+" ipa aci-find --memberof=ipausers\n"
+"\n"
+" To find all ACIs that grant add access:\n"
+" ipa aci-find --permissions=add\n"
+"\n"
+" Note that the find command only looks for the given text in the set of\n"
+" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
+" For example, searching on memberof=ipausers will find all ACIs that\n"
+" have ipausers as a memberof. There may be other ACIs that apply to\n"
+" members of that group indirectly.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:653
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/aci.py:823
+msgid ""
+"\n"
+" Display a single ACI given an ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1237
-#, python-format
-msgid "Certificate format error: %(error)s"
+#: ipalib/plugins/aci.py:837
+msgid ""
+"\n"
+" Execute the aci-show operation.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param uid: The login name of the user to retrieve.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/frontend.py:380
-msgid "Results are truncated, try a more specific search"
+#: ipalib/plugins/aci.py:865
+msgid ""
+"\n"
+" Rename an ACI.\n"
+" "
msgstr ""
-#: ipalib/frontend.py:797 ipalib/plugins/misc.py:47
-msgid "retrieve all attributes"
+#: ipalib/plugins/aci.py:878
+msgid "New ACI name"
msgstr ""
-#: ipalib/frontend.py:803
-msgid "print entries as stored on the server"
+#: ipalib/plugins/aci.py:882
+msgid "Renamed ACI to \"%(value)s\""
msgstr ""
-#: ipalib/frontend.py:940
-msgid "Forward to server instead of running locally"
+#: ipalib/plugins/automount.py:20
+msgid ""
+"\n"
+"Automount\n"
+"\n"
+"Stores automount(8) configuration for autofs(8) in IPA.\n"
+"\n"
+"The base of an automount configuration is the configuration file auto."
+"master.\n"
+"This is also the base location in IPA. Multiple auto.master configurations\n"
+"can be stored in separate locations. A location is implementation-specific\n"
+"with the default being a location named 'default'. For example, you can "
+"have\n"
+"locations by geographic region, by floor, by type, etc.\n"
+"\n"
+"Automount has three basic object types: locations, maps and keys.\n"
+"\n"
+"A location defines a set of maps anchored in auto.master. This allows you\n"
+"to store multiple automount configurations. A location in itself isn't\n"
+"very interesting, it is just a point to start a new automount map.\n"
+"\n"
+"A map is roughly equivalent to a discrete automount file and provides\n"
+"storage for keys.\n"
+"\n"
+"A key is a mount point associated with a map.\n"
+"\n"
+"When a new location is created, two maps are automatically created for\n"
+"it: auto.master and auto.direct. auto.master is the root map for all\n"
+"automount maps for the location. auto.direct is the default map for\n"
+"direct mounts and is mounted on /-.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"Locations:\n"
+"\n"
+" Create a named location, \"Baltimore\":\n"
+" ipa automountlocation-add baltimore\n"
+"\n"
+" Display the new location:\n"
+" ipa automountlocation-show baltimore\n"
+"\n"
+" Find available locations:\n"
+" ipa automountlocation-find\n"
+"\n"
+" Remove a named automount location:\n"
+" ipa automountlocation-del baltimore\n"
+"\n"
+" Show what the automount maps would look like if they were in the "
+"filesystem:\n"
+" ipa automountlocation-tofiles baltimore\n"
+"\n"
+" Import an existing configuration into a location:\n"
+" ipa automountlocation-import baltimore /etc/auto.master\n"
+"\n"
+" The import will fail if any duplicate entries are found. For\n"
+" continuous operation where errors are ignored, use the --continue\n"
+" option.\n"
+"\n"
+"Maps:\n"
+"\n"
+" Create a new map, \"auto.share\":\n"
+" ipa automountmap-add baltimore auto.share\n"
+"\n"
+" Display the new map:\n"
+" ipa automountmap-show baltimore auto.share\n"
+"\n"
+" Find maps in the location baltimore:\n"
+" ipa automountmap-find baltimore\n"
+"\n"
+" Remove the auto.share map:\n"
+" ipa automountmap-del baltimore auto.share\n"
+"\n"
+"Keys:\n"
+"\n"
+" Create a new key for the auto.share map in location baltimore. This ties\n"
+" the map we previously created to auto.master:\n"
+" ipa automountkey-add baltimore auto.master --key=/share --info=auto."
+"share\n"
+"\n"
+" Create a new key for our auto.share map, an NFS mount for man pages:\n"
+" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,"
+"rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n"
+"\n"
+" Find all keys for the auto.share map:\n"
+" ipa automountkey-find baltimore auto.share\n"
+"\n"
+" Find all direct automount keys:\n"
+" ipa automountkey-find baltimore --key=/-\n"
+"\n"
+" Remove the man key from the auto.share map:\n"
+" ipa automountkey-del baltimore auto.share --key=man\n"
+msgstr ""
+
+#: ipalib/plugins/automount.py:182
+msgid ""
+"\n"
+" Location container for automount maps.\n"
+" "
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
+#: ipalib/plugins/automount.py:190
+msgid "Automount Locations"
msgstr ""
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
+#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+msgid "Location"
msgstr ""
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
+#: ipalib/plugins/automount.py:197
+msgid "Automount location name."
msgstr ""
-#: ipalib/parameters.py:295
-msgid "incorrect type"
+#: ipalib/plugins/automount.py:206
+msgid ""
+"\n"
+" Create a new automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:298
-msgid "Only one value is allowed"
+#: ipalib/plugins/automount.py:221
+msgid ""
+"\n"
+" Delete an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:877
-msgid "must be True or False"
+#: ipalib/plugins/automount.py:229
+msgid ""
+"\n"
+" Display an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:978
-msgid "must be an integer"
+#: ipalib/plugins/automount.py:237
+msgid ""
+"\n"
+" Search for an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1029
-#, python-format
-msgid "must be at least %(minvalue)d"
+#: ipalib/plugins/automount.py:245
+msgid ""
+"\n"
+" Generate automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1039
-#, python-format
-msgid "can be at most %(maxvalue)d"
+#: ipalib/plugins/automount.py:308
+msgid ""
+"\n"
+" Import automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1049
-msgid "must be a decimal number"
+#: ipalib/plugins/automount.py:314
+msgid "Master file"
msgstr ""
-#: ipalib/parameters.py:1071
-#, python-format
-msgid "must be at least %(minvalue)f"
+#: ipalib/plugins/automount.py:315
+msgid "Automount master file."
msgstr ""
-#: ipalib/parameters.py:1081
-#, python-format
-msgid "can be at most %(maxvalue)f"
+#: ipalib/plugins/automount.py:322
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/parameters.py:1145
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
+#: ipalib/plugins/automount.py:334
+msgid "File %(file)s not found"
msgstr ""
-#: ipalib/parameters.py:1163
-msgid "must be binary data"
+#: ipalib/plugins/automount.py:341
+msgid ""
+"\n"
+" The basic idea is to read the master file and create all the maps\n"
+" we need, then read each map file and add all the keys for the map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1179
-#, python-format
-msgid "must be at least %(minlength)d bytes"
+#: ipalib/plugins/automount.py:492
+msgid ""
+"\n"
+" Automount map object.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1189
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
+#: ipalib/plugins/automount.py:505
+msgid "Map"
msgstr ""
-#: ipalib/parameters.py:1199
-#, python-format
-msgid "must be exactly %(length)d bytes"
+#: ipalib/plugins/automount.py:506
+msgid "Automount map name."
msgstr ""
-#: ipalib/parameters.py:1217
-msgid "must be Unicode text"
+#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
+#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
+#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
+#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
+#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
+#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
+#: ipalib/plugins/sudorule.py:78
+msgid "Description"
msgstr ""
-#: ipalib/parameters.py:1248
-#, python-format
-msgid "must be at least %(minlength)d characters"
+#: ipalib/plugins/automount.py:515
+msgid "Automount Maps"
msgstr ""
-#: ipalib/parameters.py:1258
-#, python-format
-msgid "can be at most %(maxlength)d characters"
+#: ipalib/plugins/automount.py:521
+msgid ""
+"\n"
+" Create a new automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1268
-#, python-format
-msgid "must be exactly %(length)d characters"
+#: ipalib/plugins/automount.py:529
+msgid ""
+"\n"
+" Delete an automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1307
-#, python-format
-msgid "must be one of %(values)r"
+#: ipalib/plugins/automount.py:548
+msgid ""
+"\n"
+" Modify an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:111
-msgid "A list of ACI values"
+#: ipalib/plugins/automount.py:556
+msgid ""
+"\n"
+" Search for an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:142
-msgid "type, filter, subtree and targetgroup are mutually exclusive"
+#: ipalib/plugins/automount.py:564
+msgid ""
+"\n"
+" Display an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:145
+#: ipalib/plugins/automount.py:572
msgid ""
-"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
-"required"
+"\n"
+" Automount key object.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:151
-msgid "group, taskgroup and self are mutually exclusive"
+#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
+#: ipalib/plugins/automount.py:850
+msgid "Key"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "One of group, taskgroup or self is required"
+#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
+#: ipalib/plugins/automount.py:851
+msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/aci.py:172
-#, python-format
-msgid "Group '%s' does not exist"
+#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
+#: ipalib/plugins/automount.py:855
+msgid "Mount information"
msgstr ""
-#: ipalib/plugins/aci.py:269
-#, python-format
-msgid "ACI with name \"%s\" not found"
+#: ipalib/plugins/automount.py:597
+msgid "description"
msgstr ""
-#: ipalib/plugins/aci.py:286
-msgid "ACIs"
+#: ipalib/plugins/automount.py:606
+msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/aci.py:291
-msgid "ACI name"
+#: ipalib/plugins/automount.py:607
+msgid ""
+"The key,info pair must be unique. A key named %(key)s with info %(info)s "
+"already exists"
msgstr ""
-#: ipalib/plugins/aci.py:296
-msgid "Taskgroup"
+#: ipalib/plugins/automount.py:608
+msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/aci.py:297
-msgid "Taskgroup ACI grants access to"
+#: ipalib/plugins/automount.py:609
+msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/aci.py:301
-msgid "User group"
+#: ipalib/plugins/automount.py:659
+msgid ""
+"More than one entry with key %(key)s found, use --info to select specific "
+"entry."
msgstr ""
-#: ipalib/plugins/aci.py:302
-msgid "User group ACI grants access to"
+#: ipalib/plugins/automount.py:717
+msgid ""
+"\n"
+" Create a new automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:306
-msgid "Permissions"
+#: ipalib/plugins/automount.py:742
+msgid ""
+"\n"
+" Create a new indirect mount point.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:748
+msgid "Mount point"
+msgstr ""
+
+#: ipalib/plugins/automount.py:752
+msgid "Parent map"
msgstr ""
-#: ipalib/plugins/aci.py:307
+#: ipalib/plugins/automount.py:753
+msgid "Name of parent automount map (default: auto.master)."
+msgstr ""
+
+#: ipalib/plugins/automount.py:772
msgid ""
-"comma-separated list of permissions to grant(read, write, add, delete, all)"
+"\n"
+" Delete an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:313
-msgid "Attributes"
+#: ipalib/plugins/automount.py:803
+msgid ""
+"\n"
+" Modify an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:314
-msgid "Comma-separated list of attributes"
+#: ipalib/plugins/automount.py:809
+msgid "New mount information"
msgstr ""
-#: ipalib/plugins/aci.py:318
-msgid "Type"
+#: ipalib/plugins/automount.py:836
+msgid ""
+"\n"
+" Search for an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:319
-msgid "type of IPA object (user, group, host)"
+#: ipalib/plugins/automount.py:844
+msgid ""
+"\n"
+" Display an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:324
-msgid "Member of"
+#: ipalib/plugins/baseldap.py:19
+msgid ""
+"\n"
+"Base classes for LDAP plugins.\n"
msgstr ""
-#: ipalib/plugins/aci.py:325
-msgid "Member of a group"
+#: ipalib/plugins/baseldap.py:39
+msgid "Failed members"
msgstr ""
-#: ipalib/plugins/aci.py:329
-msgid "Filter"
+#: ipalib/plugins/baseldap.py:42
+msgid "Member users"
msgstr ""
-#: ipalib/plugins/aci.py:330
-msgid "Legal LDAP filter (e.g. ou=Engineering)"
+#: ipalib/plugins/baseldap.py:45
+msgid "Member groups"
msgstr ""
-#: ipalib/plugins/aci.py:334
-msgid "Subtree"
+#: ipalib/plugins/baseldap.py:48
+msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/aci.py:335
-msgid "Subtree to apply ACI to"
+#: ipalib/plugins/baseldap.py:51
+msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/aci.py:339
-msgid "Target group"
+#: ipalib/plugins/baseldap.py:54
+msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:340
-msgid "Group to apply ACI to"
+#: ipalib/plugins/baseldap.py:57
+msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:344
-msgid "Target your own entry (self)"
+#: ipalib/plugins/baseldap.py:66
+msgid "Roles"
msgstr ""
-#: ipalib/plugins/aci.py:345
-msgid "Apply ACI to your own entry (self)"
+#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
+#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
+#: ipalib/plugins/sudorule.py:143
+msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/aci.py:357
-#, python-format
-msgid "Created ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:75
+msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/aci.py:407
-#, python-format
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:78
+msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:447
-#, python-format
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:81
+msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:519
-#, python-format
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/baseldap.py:84
+msgid "Member services"
+msgstr ""
-#: ipalib/plugins/automount.py:103
-msgid "Automount"
+#: ipalib/plugins/baseldap.py:87
+msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/automount.py:109 ipalib/plugins/host.py:134
-msgid "Location"
+#: ipalib/plugins/baseldap.py:93
+msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/automount.py:110
-msgid "Automount location name"
+#: ipalib/plugins/baseldap.py:102
+msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/automount.py:226
-msgid "Map"
+#: ipalib/plugins/baseldap.py:105
+msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/automount.py:227
-msgid "Automount map name"
+#: ipalib/plugins/baseldap.py:108
+msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/automount.py:232 ipalib/plugins/group.py:108
-#: ipalib/plugins/hbac.py:151 ipalib/plugins/hbacsvc.py:72
-#: ipalib/plugins/hbacsvcgroup.py:77 ipalib/plugins/host.py:124
-#: ipalib/plugins/hostgroup.py:81 ipalib/plugins/netgroup.py:96
-#: ipalib/plugins/rolegroup.py:90 ipalib/plugins/sudocmd.py:71
-#: ipalib/plugins/sudocmdgroup.py:77 ipalib/plugins/sudorule.py:58
-#: ipalib/plugins/taskgroup.py:62
-msgid "Description"
+#: ipalib/plugins/baseldap.py:111
+msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/automount.py:236
-msgid "Automount Maps"
+#: ipalib/plugins/baseldap.py:114
+msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid "Key"
+#: ipalib/plugins/baseldap.py:117
+msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/automount.py:309
-msgid "Automount key name"
+#: ipalib/plugins/baseldap.py:120
+msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/automount.py:314
-msgid "Mount information"
+#: ipalib/plugins/baseldap.py:123
+msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/automount.py:318
-msgid "description"
+#: ipalib/plugins/baseldap.py:126
+msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/automount.py:322
-msgid "Automount Keys"
+#: ipalib/plugins/baseldap.py:141
+msgid "External host"
msgstr ""
-#: ipalib/plugins/automount.py:342
-msgid "Mount point"
+#: ipalib/plugins/baseldap.py:144
+msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/automount.py:346
-msgid "Parent map"
+#: ipalib/plugins/baseldap.py:147
+msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/automount.py:347
-msgid "Name of parent automount map (default: auto.master)"
+#: ipalib/plugins/baseldap.py:150
+msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:79
-#, python-format
+#: ipalib/plugins/baseldap.py:153
+msgid "Failed to remove"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:171
+msgid ""
+"\n"
+" Given a list of values in the form name=value, return a list of name.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:197
+msgid ""
+"\n"
+" When adding or removing reverse members we are faking an update to\n"
+" object A by updating the member attribute in object B. The memberof\n"
+" plugin makes this work by adding or removing the memberof attribute\n"
+" to/from object A, it just takes a little bit of time.\n"
+"\n"
+" This will loop for 6+ seconds, retrieving object A so we can see\n"
+" if all the memberof attributes have been updated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:241
+msgid ""
+"\n"
+" Object representing a LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:281
+msgid "Entry"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:283
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:80
-#, python-format
+#: ipalib/plugins/baseldap.py:284
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
-#, python-format
+#: ipalib/plugins/baseldap.py:285
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
-msgid "Add an attribute/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:286
+msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:155
-msgid "Set an attribute to an name/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:415
+msgid ""
+"Add an attribute/value pair. Format is attr=value. The attribute must be "
+"part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:359
+#: ipalib/plugins/baseldap.py:420
+msgid ""
+"Set an attribute to a name/value pair. Format is attr=value.\n"
+"For multi-valued attributes, the command replaces the values already present."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:444
+msgid ""
+"\n"
+" If the set of objectclasses is limited enforce that only those\n"
+" are updated in entry_attrs (plus dn)\n"
+"\n"
+" allow_only tells us what mode to check in:\n"
+"\n"
+" If True then we enforce that the attributes must be in the list of\n"
+" allowed.\n"
+"\n"
+" If False then those attributes are not allowed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:474
+msgid ""
+"\n"
+" Callback registration interface\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:561
+msgid ""
+"\n"
+" Create a new entry in LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:703
+msgid ""
+"\n"
+" Base class for commands that need to retrieve an existing entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:727
+msgid ""
+"\n"
+" Base class for commands that need to retrieve one or more existing "
+"entries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:733
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:517
+#: ipalib/plugins/baseldap.py:750
+msgid ""
+"\n"
+" Retrieve an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
+#: ipalib/plugins/internal.py:232
+msgid "Rights"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+msgid ""
+"Display the access rights of this entry (requires --all). See ipa man page "
+"for details."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:821
+msgid ""
+"\n"
+" Update an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:837
+msgid "Rename"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:838
+msgid "Rename the %(ldap_obj_name)s object"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:957
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:674
+#: ipalib/plugins/baseldap.py:988
+msgid ""
+"\n"
+" Delete an LDAP entry and all of its direct subentries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1078
+msgid ""
+"\n"
+" Base class for member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1120
+msgid ""
+"\n"
+" Add other LDAP entries to members.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
+#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
+#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
msgid "Members that could not be added"
msgstr ""
-#: ipalib/plugins/baseldap.py:678
+#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:684 ipalib/plugins/baseldap.py:789
-msgid "Failed members"
+#: ipalib/plugins/baseldap.py:1226
+msgid ""
+"\n"
+" Remove LDAP entries from members.\n"
+" "
msgstr ""
-#: ipalib/plugins/baseldap.py:779
+#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:783
+#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:880
+#: ipalib/plugins/baseldap.py:1335
+msgid ""
+"\n"
+" Retrieve all LDAP entries matching the given criteria.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1344
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:881
+#: ipalib/plugins/baseldap.py:1345
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:887
+#: ipalib/plugins/baseldap.py:1351
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:888
+#: ipalib/plugins/baseldap.py:1352
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/cert.py:93
+#: ipalib/plugins/baseldap.py:1552
+msgid ""
+"\n"
+" Base class for reverse member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1574
+msgid ""
+"\n"
+" Add other LDAP entries to members in reverse.\n"
+"\n"
+" The call looks like \"add A to B\" but in fact executes\n"
+" add B to A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1654
+msgid "added"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1687
+msgid ""
+"\n"
+" Remove other LDAP entries from members in reverse.\n"
+"\n"
+" The call looks like \"remove A from B\" but in fact executes\n"
+" remove B from A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1767
+msgid "removed"
+msgstr ""
+
+#: ipalib/plugins/batch.py:21
+msgid ""
+"\n"
+"Plugin to make multiple ipa calls via one remote procedure call\n"
+"\n"
+"To run this code in the lite-server\n"
+"\n"
+"curl -H \"Content-Type:application/json\" -H \"Accept:application/"
+"json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /"
+"etc/ipa/ca.crt -d @batch_request.json -X POST http://"
+"localhost:8888/ipa/json\n"
+"\n"
+"where the contents of the file batch_request.json follow the below example\n"
+"\n"
+"{\"method\":\"batch\",\"params\":[[\n"
+" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
+" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all"
+"\":\"true\"}]},\n"
+" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
+" ],{}],\"id\":1}\n"
+"\n"
+"The format of the response is nested the same way. At the top you will see\n"
+" \"error\": null,\n"
+" \"id\": 1,\n"
+" \"result\": {\n"
+" \"count\": 3,\n"
+" \"results\": [\n"
+"\n"
+"\n"
+"And then a nested response for each IPA command method sent in the request\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/batch.py:61
+msgid "Nested Methods to execute"
+msgstr ""
+
+#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/plugins/cert.py:22
+msgid ""
+"\n"
+"IPA certificate operations\n"
+"\n"
+"Implements a set of commands for managing server SSL certificates.\n"
+"\n"
+"Certificate requests exist in the form of a Certificate Signing Request "
+"(CSR)\n"
+"in PEM format.\n"
+"\n"
+"If using the selfsign back end then the subject in the CSR needs to match\n"
+"the subject configured in the server. The dogtag CA uses just the CN\n"
+"value of the CSR and forces the rest of the subject.\n"
+"\n"
+"A certificate is stored with a service principal and a service principal\n"
+"needs a host.\n"
+"\n"
+"In order to request a certificate:\n"
+"\n"
+"* The host must exist\n"
+"* The service must exist (or you use the --add option to automatically add "
+"it)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Request a new certificate and add the principal:\n"
+" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n"
+"\n"
+" Retrieve an existing certificate:\n"
+" ipa cert-show 1032\n"
+"\n"
+" Revoke a certificate (see RFC 5280 for reason details):\n"
+" ipa cert-revoke --revocation-reason=6 1032\n"
+"\n"
+" Remove a certificate from revocation hold status:\n"
+" ipa cert-remove-hold 1032\n"
+"\n"
+" Check the status of a signing request:\n"
+" ipa cert-status 10\n"
+"\n"
+"IPA currently immediately issues (or declines) all certificate requests so\n"
+"the status of a request is not normally useful. This is for future use\n"
+"or the case where a CA does not immediately issue a certificate.\n"
+"\n"
+"The following revocation reasons are supported:\n"
+"\n"
+" * 0 - unspecified\n"
+" * 1 - keyCompromise\n"
+" * 2 - cACompromise\n"
+" * 3 - affiliationChanged\n"
+" * 4 - superseded\n"
+" * 5 - cessationOfOperation\n"
+" * 6 - certificateHold\n"
+" * 8 - removeFromCRL\n"
+" * 9 - privilegeWithdrawn\n"
+" * 10 - aACompromise\n"
+"\n"
+"Note that reason code 7 is not used. See RFC 5280 for more details:\n"
+"\n"
+"http://www.ietf.org/rfc/rfc5280.txt\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/cert.py:104
+msgid ""
+"\n"
+" Return the value of CN in the subject of the request or None\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:106 ipalib/plugins/cert.py:118
+#: ipalib/plugins/cert.py:115
+msgid ""
+"\n"
+" Return the first value of the subject alt name, if any\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:120
-#, python-format
+#: ipalib/plugins/cert.py:128
+msgid ""
+"\n"
+" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
+" parser.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:139
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:171 ipalib/plugins/service.py:197
+#: ipalib/plugins/cert.py:142
+msgid ""
+"\n"
+" Strip any leading and trailing cruft around the BEGIN/END block\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:162
+msgid ""
+"\n"
+" Convert a SN given in decimal or hexadecimal.\n"
+" Returns the number or None if conversion fails.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:188
+msgid ""
+"\n"
+" Given a principal with or without a realm return the\n"
+" host portion.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:202
+msgid ""
+"\n"
+" Submit a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:172
+#: ipalib/plugins/cert.py:217
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:179
+#: ipalib/plugins/cert.py:224
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:187 ipalib/plugins/cert.py:392
-#: ipalib/plugins/host.py:154 ipalib/plugins/service.py:204
+#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
+#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
+#: ipalib/plugins/service.py:232
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:191 ipalib/plugins/cert.py:395
+#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:195 ipalib/plugins/cert.py:398
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:199 ipalib/plugins/cert.py:401
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:203 ipalib/plugins/cert.py:404
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:207 ipalib/plugins/cert.py:407
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:211 ipalib/plugins/cert.py:410
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:215 ipalib/plugins/cert.py:379
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:223 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:357
+#: ipalib/plugins/cert.py:396
+msgid ""
+"\n"
+" Check the status of a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:402
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:363
+#: ipalib/plugins/cert.py:408
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:380
+#: ipalib/plugins/cert.py:426
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:413
+#: ipalib/plugins/cert.py:431
+msgid ""
+"\n"
+" Retrieve an existing certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
+#: ipalib/plugins/service.py:114
msgid "Revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:458
+#: ipalib/plugins/cert.py:466
+msgid "Output filename"
+msgstr ""
+
+#: ipalib/plugins/cert.py:467
+msgid "File to store the certificate in."
+msgstr ""
+
+#: ipalib/plugins/cert.py:518
+msgid ""
+"\n"
+" Revoke a certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:526
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:466
+#: ipalib/plugins/cert.py:534
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:467
+#: ipalib/plugins/cert.py:535
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:502
+#: ipalib/plugins/cert.py:562
+msgid ""
+"\n"
+" Take a revoked certificate off hold.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:570
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:505
+#: ipalib/plugins/cert.py:573
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:73
+#: ipalib/plugins/config.py:20
+msgid ""
+"\n"
+"Manage the IPA configuration\n"
+"\n"
+"Manage the default values that IPA uses and some of its tuning parameters.\n"
+"\n"
+" To show the current configuration:\n"
+" ipa config-show\n"
+"\n"
+" To modify the configuration:\n"
+" ipa config-mod --maxusername=99\n"
+"\n"
+"The available options are:\n"
+"\n"
+"User management options:\n"
+"\n"
+" --maxusername=INT Max. username length when creating/modifying a user\n"
+" --homedirectory=STR Default location of home directories (default /"
+"home)\n"
+" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
+" --defaultgroup=STR Default group for new users (default ipausers). The\n"
+" group must exist, or adding new users will fail.\n"
+" --emaildomain=STR Default e-mail domain for new users\n"
+"\n"
+"Search tuning options. These impact how much data is searched through and\n"
+"how many records may be returned on a given search.\n"
+"\n"
+" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 "
+"for\n"
+" unlimited)\n"
+" --searchrecordslimit=INT Max. number of records to search (-1 is "
+"unlimited)\n"
+"\n"
+"Server Configuration.\n"
+"\n"
+" --enable-migration=BOOL Enable migration mode\n"
+" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+"\n"
+"The password notification value is stored here so it will be replicated.\n"
+"It is not currently used to notify users in advance of an expiring\n"
+"password.\n"
+"\n"
+"Some attributes are read-only, provided only for information purposes. "
+"These\n"
+"include:\n"
+"\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
+msgstr ""
+
+#: ipalib/plugins/config.py:76
+msgid "searchtimelimit must be -1 or > 1."
+msgstr ""
+
+#: ipalib/plugins/config.py:80
+msgid ""
+"\n"
+" IPA configuration object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:78
-msgid "Max username length"
+#: ipalib/plugins/config.py:96
+msgid "Max. username length"
msgstr ""
-#: ipalib/plugins/config.py:83
+#: ipalib/plugins/config.py:101
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:84
-msgid "Default location of home directories"
+#: ipalib/plugins/config.py:102
+msgid "Default location of home directories."
msgstr ""
-#: ipalib/plugins/config.py:88
+#: ipalib/plugins/config.py:106
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:89
-msgid "Default shell for new users"
+#: ipalib/plugins/config.py:107
+msgid "Default shell for new users."
msgstr ""
-#: ipalib/plugins/config.py:93
+#: ipalib/plugins/config.py:111
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:94
-msgid "Default group for new users"
+#: ipalib/plugins/config.py:112
+msgid "Default group for new users."
msgstr ""
-#: ipalib/plugins/config.py:98
-msgid "Default e-mail domain"
+#: ipalib/plugins/config.py:116
+msgid "Default e-mail domain for new users"
msgstr ""
-#: ipalib/plugins/config.py:99
-msgid "Default e-mail domain new users"
+#: ipalib/plugins/config.py:117
+msgid "Default e-mail domain new users."
msgstr ""
-#: ipalib/plugins/config.py:103
+#: ipalib/plugins/config.py:121
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:104
-msgid "Max. amount of time (sec.) for a search (-1 is unlimited)"
+#: ipalib/plugins/config.py:122
+msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:109
+#: ipalib/plugins/config.py:127
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:110
-msgid "Max. number of records to search (-1 is unlimited)"
+#: ipalib/plugins/config.py:128
+msgid "Max. number of records to search (-1 is unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:115
+#: ipalib/plugins/config.py:133
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:116
-msgid "A comma-separated list of fields to search when searching for users"
+#: ipalib/plugins/config.py:134
+msgid "A comma-separated list of fields to search when searching for users."
msgstr ""
-#: ipalib/plugins/config.py:121
-msgid "A comma-separated list of fields to search when searching for groups"
+#: ipalib/plugins/config.py:139
+msgid "A comma-separated list of fields to search when searching for groups."
msgstr ""
-#: ipalib/plugins/config.py:125
+#: ipalib/plugins/config.py:143
msgid "Migration mode"
msgstr ""
-#: ipalib/plugins/config.py:126
-msgid "Enable migration mode"
+#: ipalib/plugins/config.py:144
+msgid "Enable migration mode."
msgstr ""
-#: ipalib/plugins/config.py:130
+#: ipalib/plugins/config.py:148
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:131
-msgid "Base for certificate subjects (OU=Test,O=Example)"
+#: ipalib/plugins/config.py:149
+msgid "Base for certificate subjects (OU=Test,O=Example)."
msgstr ""
-#: ipalib/plugins/dns.py:131
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:155
+msgid "Default group objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:159
+msgid "Default user objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:160
+msgid "Default user objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:164
+msgid "Password Expiration Notification"
+msgstr ""
+
+#: ipalib/plugins/config.py:165
+msgid "Number of days's notice of impending password expiration."
+msgstr ""
+
+#: ipalib/plugins/config.py:170
+msgid "Password plugin features"
+msgstr ""
+
+#: ipalib/plugins/config.py:171
+msgid "Extra hashes to generate in password plug-in."
+msgstr ""
+
+#: ipalib/plugins/config.py:183
+msgid ""
+"\n"
+" Modify configuration options.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:220
+msgid ""
+"\n"
+" Show the current configuration.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:19
+msgid ""
+"\n"
+"Group to Group Delegation\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"Group to Group Delegations grants the members of one group to update a set\n"
+"of attributes of members of another group.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a delegation rule to allow editors to edit admin's addresses:\n"
+" ipa delegation-add --attrs=street --membergroup=admins --group=editors "
+"'editors edit admins street'\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add postalCode to the list:\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --"
+"group=editors 'editors edit admins street'\n"
+"\n"
+" Display our updated rule:\n"
+" ipa delegation-show 'editors edit admins street'\n"
+"\n"
+" Delete a rule:\n"
+" ipa delegation-del 'editors edit admins street'\n"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:56
+msgid ""
+"\n"
+" memberOf is in filter but we want to pull out the group for easier\n"
+" displaying.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+msgid "Delegation '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:70
+msgid "Error retrieving member group %(group)s: %(error)s"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:79
+msgid ""
+"\n"
+" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a delegation ACI, adding a new attribute\n"
+" membergroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:95
+msgid ""
+"\n"
+" Delegation object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:102
+msgid "Delegation"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+msgid "Delegation name"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+msgid ""
+"Comma-separated list of permissions to grant (read, write). Default is write."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:125
+msgid "Member user group"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:126
+msgid "User group to apply delegation to"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:152
+msgid ""
+"\n"
+" Add a new delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:156
+msgid "Added delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:176
+msgid ""
+"\n"
+" Delete a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:181
+msgid "Deleted delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:197
+msgid ""
+"\n"
+" Modify a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:201
+msgid "Modified delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:219
+msgid ""
+"\n"
+" Search for delegations.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:223
+msgid "%(count)d delegation matched"
+msgid_plural "%(count)d delegations matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/delegation.py:250
+msgid ""
+"\n"
+" Display information about a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:20
+msgid ""
+"\n"
+"Domain Name System (DNS)\n"
+"\n"
+"Manage DNS zone and resource records.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add new zone:\n"
+" ipa dnszone-add example.com --name-server nameserver.example.com\n"
+" --admin-email admin@example.com\n"
+"\n"
+" Add second nameserver for example.com:\n"
+" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add a mail server for example.com:\n"
+" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n"
+"\n"
+" Delete previously added nameserver from example.com:\n"
+" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add new A record for www.example.com: (random IP)\n"
+" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n"
+"\n"
+" Add new PTR record for www.example.com\n"
+" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n"
+"\n"
+" Add new SRV records for LDAP servers. Three quarters of the requests\n"
+" should go to fast.example.com, one quarter to slow.example.com. If neither\n"
+" is available, switch to backup.example.com.\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup."
+"example.com\"\n"
+"\n"
+" When dnsrecord-add command is executed with no option to add a specific "
+"record\n"
+" an interactive mode is started. The mode interactively prompts for the "
+"most\n"
+" typical record types for the respective zone:\n"
+" ipa dnsrecord-add example.com www\n"
+" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random "
+"IPs)\n"
+" [AAAA record]: (no AAAA address entered)\n"
+" Record name: www\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" The interactive mode can also be used for deleting the DNS records:\n"
+" ipa dnsrecord-del example.com www\n"
+" No option to delete specific record provided.\n"
+" Delete all? Yes/No (default No): (do not delete all records)\n"
+" Current DNS record contents:\n"
+"\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
+" Record name: www\n"
+" A record: 1.2.3.4 (A record 11.22.33.44 has been "
+"deleted)\n"
+"\n"
+" Show zone example.com:\n"
+" ipa dnszone-show example.com\n"
+"\n"
+" Find zone with \"example\" in its domain name:\n"
+" ipa dnszone-find example\n"
+"\n"
+" Find records for resources with \"www\" in their name in zone example.com:\n"
+" ipa dnsrecord-find example.com www\n"
+"\n"
+" Find A records with value 10.10.0.1 in zone example.com\n"
+" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n"
+"\n"
+" Show records for resource www in zone example.com\n"
+" ipa dnsrecord-show example.com www\n"
+"\n"
+" Delete zone example.com with all resource records:\n"
+" ipa dnszone-del example.com\n"
+"\n"
+" Resolve a host name to see if it exists (will add default IPA domain\n"
+" if one is not included):\n"
+" ipa dns-resolve www.example.com\n"
+" ipa dns-resolve www\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:140
+msgid "Generate serial number for zones."
+msgstr ""
+
+#: ipalib/plugins/dns.py:189
+msgid "see RFC 2915 "
+msgstr ""
+
+#: ipalib/plugins/dns.py:249
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:272
+msgid ""
+"\n"
+" DNS Zone, container for resource records.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:284
msgid "DNS"
msgstr ""
-#: ipalib/plugins/dns.py:136
-msgid "Zone"
+#: ipalib/plugins/dns.py:289
+msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:137
+#: ipalib/plugins/dns.py:290
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:143
-msgid "Authoritative name server"
+#: ipalib/plugins/dns.py:296
+msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:147
-msgid "administrator e-mail address"
+#: ipalib/plugins/dns.py:297
+msgid "Authoritative nameserver."
msgstr ""
-#: ipalib/plugins/dns.py:153
+#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+msgid "Administrator e-mail address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:308
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:157
+#: ipalib/plugins/dns.py:309
+msgid "SOA record serial number"
+msgstr ""
+
+#: ipalib/plugins/dns.py:316
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:161
+#: ipalib/plugins/dns.py:317
+msgid "SOA record refresh time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:324
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:165
+#: ipalib/plugins/dns.py:325
+msgid "SOA record retry time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:169
+#: ipalib/plugins/dns.py:333
+msgid "SOA record expire time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:173
+#: ipalib/plugins/dns.py:341
+msgid "How long should negative responses be cached"
+msgstr ""
+
+#: ipalib/plugins/dns.py:349
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:177
+#: ipalib/plugins/dns.py:350
+msgid "SOA record time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:354
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:182
-msgid "allow dynamic update?"
+#: ipalib/plugins/dns.py:355
+msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:186
+#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:426 ipalib/plugins/dns.py:460
-#: ipalib/plugins/dns.py:495 ipalib/plugins/dns.py:610
-#: ipalib/plugins/dns.py:695 ipalib/plugins/dns.py:819
-msgid "Zone name"
+#: ipalib/plugins/dns.py:365
+msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:500
-msgid "resource name"
+#: ipalib/plugins/dns.py:366
+msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:505 ipalib/plugins/dns.py:620
-#: ipalib/plugins/dns.py:711
-msgid "Record type"
+#: ipalib/plugins/dns.py:372
+msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:509 ipalib/plugins/dns.py:624
-msgid "Data"
+#: ipalib/plugins/dns.py:373
+msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:510 ipalib/plugins/dns.py:625
-msgid "Type-specific data"
+#: ipalib/plugins/dns.py:382
+msgid ""
+"\n"
+" Create new DNS zone (SOA record).\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:517
-msgid "Time to live"
+#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
+#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+msgid "Force"
+msgstr ""
+
+#: ipalib/plugins/dns.py:388
+msgid "Force DNS zone creation even if nameserver not in DNS."
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+msgid "Add the nameserver to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:397
+msgid "DNS is not configured"
+msgstr ""
+
+#: ipalib/plugins/dns.py:431
+msgid ""
+"\n"
+" Delete DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"\n"
+" Modify DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:452
+msgid ""
+"\n"
+" Search for DNS zones (SOA records).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:460
+msgid ""
+"\n"
+" Display information about a DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+msgid ""
+"\n"
+" Disable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:472
+msgid "Disabled DNS zone \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:490
+msgid ""
+"\n"
+" Enable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:494
+msgid "Enabled DNS zone \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:512
+msgid ""
+"\n"
+" DNS record.\n"
+" "
msgstr ""
#: ipalib/plugins/dns.py:522
+msgid "DNS resource record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
+msgid "Record name"
+msgstr ""
+
+#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
+msgid "Time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:538
msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:615 ipalib/plugins/dns.py:707
-#: ipalib/plugins/dns.py:824
-msgid "Resource name"
+#: ipalib/plugins/dns.py:539
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:700
-msgid "Search criteria"
+#: ipalib/plugins/dns.py:566
+msgid ""
+"\n"
+" Base class for DNS record commands with record options.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:715
-msgid "type-specific data"
+#: ipalib/plugins/dns.py:610
+msgid ""
+"\n"
+" Base class for adding/removing records from DNS resource entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:865
-#, python-format
+#: ipalib/plugins/dns.py:674
+msgid ""
+"\n"
+" Add records to DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:690
+msgid ""
+"\n"
+" Add new DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:699
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:735
+msgid ""
+"Reverse zone for PTR record should be a sub-zone of one the following fully "
+"qualified domains: %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:740
+msgid "Reverse zone %s requires exactly %d IP address components, %d given"
+msgstr ""
+
+#: ipalib/plugins/dns.py:746
+msgid "PTR record '%s' is not fully qualified (check traling '.')"
+msgstr ""
+
+#: ipalib/plugins/dns.py:789
+msgid ""
+"\n"
+" Delete DNS record entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:792
+msgid "Deleted record \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:799
+msgid ""
+"\n"
+" Delete DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:802
+msgid ""
+"Neither --del-all nor options to delete a specific record provided.\n"
+"Command help may be consulted for all supported record types."
+msgstr ""
+
+#: ipalib/plugins/dns.py:807
+msgid "Delete all associated records"
+msgstr ""
+
+#: ipalib/plugins/dns.py:834
+msgid "No option to delete specific record provided."
+msgstr ""
+
+#: ipalib/plugins/dns.py:835
+msgid "Delete all?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:845
+msgid "Current DNS record contents:\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:875
+msgid "%s record with value %s not found"
+msgstr ""
+
+#: ipalib/plugins/dns.py:889
+msgid ""
+"\n"
+" Display DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:905
+msgid ""
+"\n"
+" Search for DNS resources.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:932
+msgid ""
+"\n"
+" Resolve a host name in DNS\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:936
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:869
+#: ipalib/plugins/dns.py:940
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:882
-#, python-format
+#: ipalib/plugins/dns.py:962
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/group.py:94
+#: ipalib/plugins/dns.py:970
+msgid ""
+"\n"
+" Checks if any of the servers has the DNS service enabled.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:19
+msgid ""
+"\n"
+"Entitlements\n"
+"\n"
+"Manage entitlements for client machines\n"
+"\n"
+"Entitlements can be managed either by registering with an entitlement\n"
+"server with a username and password or by manually importing entitlement\n"
+"certificates. An entitlement certificate contains embedded information\n"
+"such as the product being entitled, the quantity and the validity dates.\n"
+"\n"
+"An entitlement server manages the number of client entitlements available.\n"
+"To mark these entitlements as used by the IPA server you provide a quantity\n"
+"and they are marked as consumed on the entitlement server.\n"
+"\n"
+" Register with an entitlement server:\n"
+" ipa entitle-register consumer\n"
+"\n"
+" Import an entitlement certificate:\n"
+" ipa entitle-import /home/user/ipaclient.pem\n"
+"\n"
+" Display current entitlements:\n"
+" ipa entitle-status\n"
+"\n"
+" Retrieve details on entitlement certificates:\n"
+" ipa entitle-get\n"
+"\n"
+" Consume some entitlements from the entitlement server:\n"
+" ipa entitle-consume 50\n"
+"\n"
+"The registration ID is a Unique Identifier (UUID). This ID will be\n"
+"IMPORTED if you have used entitle-import.\n"
+"\n"
+"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:106
+msgid ""
+"\n"
+" Get our entitlement pool. Assume there is only one pool.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:129
+msgid ""
+"\n"
+" Retrieve our UUID, certificate and key from LDAP.\n"
+"\n"
+" Except on error the caller is responsible for removing temporary files\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:178
+msgid ""
+"\n"
+" Entitlement object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:189
+msgid "Entitlements"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:206
+msgid ""
+"\n"
+" Display current entitlements\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+msgid "UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
+#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
+#: ipalib/plugins/entitle.py:690
+msgid "Product"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
+#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
+#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+msgid "Quantity"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
+#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+msgid "Consumed"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:276
+msgid ""
+"\n"
+" Consume an entitlement\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:282
+msgid "Consumed %(value)s entitlement(s)."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:314
+msgid ""
+"\n"
+" Override this so we can set value to the number of entitlements\n"
+" consumed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
+msgid ""
+"\n"
+" Returning the certificates isn't very interesting. Return the\n"
+" status of entitlements instead.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:380
+msgid ""
+"\n"
+" Retrieve the entitlement certs\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:394
+msgid "Start"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:397
+msgid "End"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
+#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+msgid "Serial Number"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
+#: ipalib/plugins/entitle.py:628
+msgid "Not an entitlement certificate"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:460
+msgid ""
+"\n"
+" Search for entitlement accounts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:473
+msgid ""
+"\n"
+" Register to the entitlement system\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:479
+msgid "Registered to entitlement server."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:483
+msgid "Username"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
+msgid "Enrollment UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
+#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
+msgid "Password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:495
+msgid "Registration password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:569
+msgid ""
+"\n"
+" Import an entitlement certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:646
+msgid ""
+"\n"
+" If we are adding the first entry there are no updates so "
+"EmptyModlist\n"
+" will get thrown. Ignore it.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:667
+msgid ""
+"\n"
+" Re-sync the local entitlement cache with the entitlement server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:673
+msgid "Entitlement(s) synchronized."
+msgstr ""
+
+#: ipalib/plugins/group.py:20
+msgid ""
+"\n"
+"Groups of users\n"
+"\n"
+"Manage groups of users. By default, new groups are POSIX groups. You\n"
+"can add the --nonposix option to the group-add command to mark a new group\n"
+"as non-POSIX, and you can use the same argument to the group-mod command\n"
+"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"converted to non-POSIX groups.\n"
+"\n"
+"Every group must have a description.\n"
+"\n"
+"POSIX groups must have a Group ID (GID) number. Changing a GID is\n"
+"supported but can have an impact on your file permissions. It is not "
+"necessary\n"
+"to supply a GID when creating a group. IPA will generate one automatically\n"
+"if it is not provided.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new group:\n"
+" ipa group-add --desc='local administrators' localadmins\n"
+"\n"
+" Add a new non-POSIX group:\n"
+" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n"
+"\n"
+" Convert a non-POSIX group to posix:\n"
+" ipa group-mod --posix remoteadmins\n"
+"\n"
+" Add a new POSIX group with a specific Group ID number:\n"
+" ipa group-add --gid=500 --desc='unix admins' unixadmins\n"
+"\n"
+" Add a new POSIX group and let IPA assign a Group ID number:\n"
+" ipa group-add --desc='printer admins' printeradmins\n"
+"\n"
+" Remove a group:\n"
+" ipa group-del unixadmins\n"
+"\n"
+" To add the \"remoteadmins\" group to the \"localadmins\" group:\n"
+" ipa group-add-member --groups=remoteadmins localadmins\n"
+"\n"
+" Add a list of users to the \"localadmins\" group:\n"
+" ipa group-add-member --users=test1,test2 localadmins\n"
+"\n"
+" Remove a user from the \"localadmins\" group:\n"
+" ipa group-remove-member --users=test2 localadmins\n"
+"\n"
+" Display information about a named group.\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/group.py:76
+msgid ""
+"\n"
+" Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:100
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:102
+#: ipalib/plugins/group.py:108
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:109 ipalib/plugins/sudocmdgroup.py:78
+#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:113
+#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:114
+#: ipalib/plugins/group.py:120
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:117 ipalib/plugins/rolegroup.py:94
-#: ipalib/plugins/taskgroup.py:66
-msgid "Member groups"
+#: ipalib/plugins/group.py:128
+msgid ""
+"\n"
+" Create a new group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:121 ipalib/plugins/rolegroup.py:98
-#: ipalib/plugins/taskgroup.py:70
-msgid "Member users"
+#: ipalib/plugins/group.py:132
+msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:134
-#, python-format
-msgid "Added group \"%(value)s\""
+#: ipalib/plugins/group.py:137
+msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:139
-msgid "Create as a non-POSIX group?"
+#: ipalib/plugins/group.py:154
+msgid ""
+"\n"
+" Delete group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:160
-#, python-format
+#: ipalib/plugins/group.py:158
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:191
-#, python-format
+#: ipalib/plugins/group.py:186
+msgid ""
+"\n"
+" Modify a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:189
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:196
+#: ipalib/plugins/group.py:194
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:222 ipalib/plugins/hbacsvcgroup.py:129
-#, python-format
+#: ipalib/plugins/group.py:215
+msgid ""
+"\n"
+" Search for groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:220
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
+#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+msgid "search for private groups"
+msgstr ""
+
#: ipalib/plugins/group.py:257
-#, python-format
-msgid "Detached group \"%(value)s\" from user \"%(value)s\""
+msgid ""
+"\n"
+" Display information about a named group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:265
+msgid ""
+"\n"
+" Add members to a group.\n"
+" "
msgstr ""
#: ipalib/plugins/group.py:273
+msgid ""
+"\n"
+" Remove members from a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:281
+msgid ""
+"\n"
+" Detach a managed group from a user\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:285
+msgid "Detached group \"%(value)s\" from user \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/group.py:288
+msgid ""
+"\n"
+" This requires updating both the user and the group. We first need "
+"to\n"
+" verify that both the user and group can be updated, then we go\n"
+" about our work. We don't want a situation where only the user or\n"
+" group can be modified and we're left in a bad state.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:306
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:277
+#: ipalib/plugins/group.py:312
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:284 ipalib/plugins/group.py:295
+#: ipalib/plugins/group.py:331
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbac.py:106
-msgid "HBAC"
+#: ipalib/plugins/hbacrule.py:19
+msgid ""
+"\n"
+"Host-based access control\n"
+"\n"
+"Control who can access what services on what hosts and from where. You\n"
+"can use HBAC to control which users or groups on a source host can\n"
+"access a service, or group of services, on a target host.\n"
+"\n"
+"You can also specify a category of users, target hosts, and source\n"
+"hosts. This is currently limited to \"all\", but might be expanded in the\n"
+"future.\n"
+"\n"
+"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n"
+"\n"
+"The available services and groups of services are controlled by the\n"
+"hbacsvc and hbacsvcgroup plug-ins respectively.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a rule, \"test1\", that grants all users access to the host \"server"
+"\" from\n"
+" anywhere:\n"
+" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add-host --hosts=server.example.com test1\n"
+"\n"
+" Display the properties of a named HBAC rule:\n"
+" ipa hbacrule-show test1\n"
+"\n"
+" Create a rule for a specific service. This lets the user john access\n"
+" the sshd service on any machine from any machine:\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add-user --users=john john_sshd\n"
+" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
+"\n"
+" Create a rule for a new service group. This lets the user john access\n"
+" the FTP service on any machine from any machine:\n"
+" ipa hbacsvcgroup-add ftpers\n"
+" ipa hbacsvc-add sftp\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add-user --users=john john_ftp\n"
+" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
+"\n"
+" Disable a named HBAC rule:\n"
+" ipa hbacrule-disable test1\n"
+"\n"
+" Remove a named HBAC rule:\n"
+" ipa hbacrule-del allow_server\n"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:91
+msgid ""
+"\n"
+" See if options[attribute] is lower-case 'all' in a safe way.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:103
+msgid ""
+"\n"
+" HBAC object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbac.py:111 ipalib/plugins/sudorule.py:53
+#: ipalib/plugins/hbacrule.py:126
+msgid "HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbac.py:116
+#: ipalib/plugins/hbacrule.py:136
msgid "Rule type (allow or deny)"
msgstr ""
-#: ipalib/plugins/hbac.py:117
+#: ipalib/plugins/hbacrule.py:137
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbac.py:123
+#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
+#: ipalib/plugins/sudorule.py:86
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbac.py:124
+#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
+#: ipalib/plugins/sudorule.py:87
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:129
+#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
+#: ipalib/plugins/sudorule.py:92
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbac.py:130
+#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
+#: ipalib/plugins/sudorule.py:93
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:135
+#: ipalib/plugins/hbacrule.py:155
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbac.py:136
+#: ipalib/plugins/hbacrule.py:156
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:141
+#: ipalib/plugins/hbacrule.py:161
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbac.py:142
+#: ipalib/plugins/hbacrule.py:162
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:147 ipalib/plugins/hbac.py:325
-#: ipalib/plugins/hbac.py:363
-msgid "Access time"
-msgstr ""
-
-#: ipalib/plugins/hbac.py:154
+#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbac.py:158 ipalib/plugins/sudorule.py:61
-#: ipalib/plugins/user.py:76
+#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
+#: ipalib/plugins/user.py:108
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbac.py:162 ipalib/plugins/host.py:113
-#: ipalib/plugins/sudorule.py:65
+#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
+#: ipalib/plugins/sudorule.py:119
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
+#: ipalib/plugins/sudorule.py:123
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:166 ipalib/plugins/hostgroup.py:69
-#: ipalib/plugins/sudorule.py:69
+#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
+#: ipalib/plugins/sudorule.py:127
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbac.py:170
+#: ipalib/plugins/hbacrule.py:194
msgid "Source hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:174 ipalib/plugins/hbacsvc.py:60
-#: ipalib/plugins/service.py:192
+#: ipalib/plugins/hbacrule.py:198
+msgid "Source host groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
+#: ipalib/plugins/service.py:220
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbac.py:178
+#: ipalib/plugins/hbacrule.py:206
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:65
-msgid "Service name"
+#: ipalib/plugins/hbacrule.py:215
+msgid ""
+"\n"
+" Create a new HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:219
+msgid "Added HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:230
+msgid ""
+"\n"
+" Delete an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:234
+msgid "Deleted HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:240
+msgid ""
+"\n"
+" Modify an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:244
+msgid "Modified HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:266
+msgid ""
+"\n"
+" Search for HBAC rules.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:270
+msgid "%(count)d HBAC rule matched"
+msgid_plural "%(count)d HBAC rules matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/hbacrule.py:278
+msgid ""
+"\n"
+" Display the properties of an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:286
+msgid ""
+"\n"
+" Enable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:290
+msgid "Enabled HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:315
+msgid ""
+"\n"
+" Disable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:319
+msgid "Disabled HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:344
+msgid ""
+"\n"
+" Add an access time to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+msgid "Access time"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:385
+msgid ""
+"\n"
+" Remove access time to HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:425
+msgid ""
+"\n"
+" Add users and groups to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:442
+msgid ""
+"\n"
+" Remove users and groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:452
+msgid ""
+"\n"
+" Add target hosts and hostgroups to an HBAC rule\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:469
+msgid ""
+"\n"
+" Remove target hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:479
+msgid ""
+"\n"
+" Add source hosts and hostgroups from a HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:496
+msgid ""
+"\n"
+" Remove source hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:506
+msgid ""
+"\n"
+" Add services to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:523
+msgid ""
+"\n"
+" Remove service and service groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:19
+msgid ""
+"\n"
+"HBAC Services\n"
+"\n"
+"The PAM services that HBAC can control access to. The name used here\n"
+"must match the service name that PAM is evaluating.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service:\n"
+" ipa hbacsvc-add tftp\n"
+"\n"
+" Modify an existing HBAC service:\n"
+" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n"
+"\n"
+" Search for HBAC services. This example will return two results, the FTP\n"
+" service and the newly-added tftp service:\n"
+" ipa hbacsvc-find ftp\n"
+"\n"
+" Delete an HBAC service:\n"
+" ipa hbacsvc-del tftp\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:51
+msgid ""
+"\n"
+" HBAC Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:61
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "HBAC Service"
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:73
-msgid "Description of service"
+#: ipalib/plugins/hbacsvc.py:67
+msgid "HBAC service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:84 ipalib/plugins/service.py:216
-#, python-format
-msgid "Added service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:74
+msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:93 ipalib/plugins/service.py:255
-#, python-format
-msgid "Deleted service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:82
+msgid ""
+"\n"
+" Add a new HBAC service.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:66
-msgid "HBAC Service Groups"
+#: ipalib/plugins/hbacsvc.py:85
+msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:71
+#: ipalib/plugins/hbacsvc.py:91
+msgid ""
+"\n"
+" Delete an existing HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:94
+msgid "Deleted HBAC service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:100
+msgid ""
+"\n"
+" Modify an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modified HBAC service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:110
+msgid ""
+"\n"
+" Search for HBAC services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:114
+msgid "%(count)d HBAC service matched"
+msgid_plural "%(count)d HBAC services matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/hbacsvc.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:19
+msgid ""
+"\n"
+"HBAC Service Groups\n"
+"\n"
+"HBAC service groups can contain any number of individual services,\n"
+"or \"members\". Every group must have a description.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service group:\n"
+" ipa hbacsvcgroup-add --desc=\"login services\" login\n"
+"\n"
+" Add members to an HBAC service group:\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n"
+"\n"
+" Display information about a named group:\n"
+" ipa hbacsvcgroup-show login\n"
+"\n"
+" Add a new group to the \"login\" group:\n"
+" ipa hbacsvcgroup-add --desc=\"switch users\" login\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n"
+"\n"
+" Delete an HBAC service group:\n"
+" ipa hbacsvcgroup-del login\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:51
+msgid ""
+"\n"
+" HBAC service group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:64
+msgid "HBAC service Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:69
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:78
+#: ipalib/plugins/hbacsvcgroup.py:76
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:81
-msgid "Member services"
+#: ipalib/plugins/hbacsvcgroup.py:84
+msgid ""
+"\n"
+" Add a new HBAC service group.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:85
-msgid "Member service groups"
+#: ipalib/plugins/hbacsvcgroup.py:87
+msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:101
-#, python-format
-msgid "Added HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:93
+msgid ""
+"\n"
+" Delete an HBAC service group.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:110
-#, python-format
-msgid "Deleted HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:96
+msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:119
-#, python-format
-msgid "Modified HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:102
+msgid ""
+"\n"
+" Modify an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:105
+msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:86
+#: ipalib/plugins/hbacsvcgroup.py:111
+msgid ""
+"\n"
+" Search for an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:114
+msgid "%(count)d HBAC service group matched"
+msgid_plural "%(count)d HBAC service groups matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/hbacsvcgroup.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:130
+msgid ""
+"\n"
+" Add members to an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:138
+msgid ""
+"\n"
+" Remove members from an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:20
+msgid ""
+"\n"
+"Hosts/Machines\n"
+"\n"
+"A host represents a machine. It can be used in a number of contexts:\n"
+"- service entries are associated with a host\n"
+"- a host stores the host/ service principal\n"
+"- a host can be used in Host-based Access Control (HBAC) rules\n"
+"- every enrolled client generates a host entry\n"
+"\n"
+"ENROLLMENT:\n"
+"\n"
+"There are three enrollment scenarios when enrolling a new client:\n"
+"\n"
+"1. You are enrolling as a full administrator. The host entry may exist\n"
+" or not. A full administrator is a member of the hostadmin role\n"
+" or the admins group.\n"
+"2. You are enrolling as a limited administrator. The host must already\n"
+" exist. A limited administrator is a member a role with the\n"
+" Host Enrollment privilege.\n"
+"3. The host has been created with a one-time password.\n"
+"\n"
+"A host can only be enrolled once. If a client has enrolled and needs to\n"
+"be re-enrolled, the host entry must be removed and re-created. Note that\n"
+"re-creating the host entry will result in all services for the host being\n"
+"removed, and all SSL certificates associated with those services being\n"
+"revoked.\n"
+"\n"
+"A host can optionally store information such as where it is located,\n"
+"the OS that it runs, etc.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host:\n"
+" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example."
+"com\n"
+"\n"
+" Delete a host:\n"
+" ipa host-del test.example.com\n"
+"\n"
+" Add a new host with a one-time password:\n"
+" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n"
+"\n"
+" Add a new host with a random one-time password:\n"
+" ipa host-add --os='Fedora 12' --random test.example.com\n"
+"\n"
+" Modify information about a host:\n"
+" ipa host-mod --os='Fedora 12' test.example.com\n"
+"\n"
+" Disable the host Kerberos key, SSL certificate and all of its services:\n"
+" ipa host-disable test.example.com\n"
+"\n"
+" Add a host that can manage this host's keytab and certificate:\n"
+" ipa host-add-managedby --hosts=test2 test\n"
+msgstr ""
+
+#: ipalib/plugins/host.py:97
+msgid ""
+"\n"
+" Require at least one dot in the hostname (to support localhost."
+"localdomain)\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:118
+#: ipalib/plugins/host.py:129
+msgid "DNS reverse zone for IP address %(addr)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+msgid "Keytab"
+msgstr ""
+
+#: ipalib/plugins/host.py:185
+msgid ""
+"\n"
+" Verify that we have either an IPv4 or IPv6 address.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:189
+msgid "invalid IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:194
+msgid ""
+"\n"
+" Host object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:231
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:125
+#: ipalib/plugins/host.py:238
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:242
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:130
+#: ipalib/plugins/host.py:243
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:135
+#: ipalib/plugins/host.py:248
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:139
+#: ipalib/plugins/host.py:252
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:140
+#: ipalib/plugins/host.py:253
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:144
+#: ipalib/plugins/host.py:257
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:145
+#: ipalib/plugins/host.py:258
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:149
+#: ipalib/plugins/host.py:262
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:150
+#: ipalib/plugins/host.py:263
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:155 ipalib/plugins/service.py:205
-msgid "Base-64 encoded server certificate"
+#: ipalib/plugins/host.py:266
+msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:158 ipalib/plugins/host.py:274
-msgid "Principal name"
+#: ipalib/plugins/host.py:271
+msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:162 ipalib/plugins/hostgroup.py:93
-msgid "Member of host-groups"
+#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:166
-msgid "Member of net-groups"
+#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:170
-msgid "Member of role-groups"
+#: ipalib/plugins/host.py:306
+msgid ""
+"\n"
+" Add a new host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:199
-#, python-format
+#: ipalib/plugins/host.py:311
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:202
+#: ipalib/plugins/host.py:316
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:235
-#, python-format
+#: ipalib/plugins/host.py:319
+msgid "skip reverse DNS detection"
+msgstr ""
+
+#: ipalib/plugins/host.py:322
+msgid "Add the host to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+msgid "DNS zone %(zone)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:413
+msgid "The host was added but the DNS update failed with: %(exc)s"
+msgstr ""
+
+#: ipalib/plugins/host.py:422
+msgid ""
+"\n"
+" Delete a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:426
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:269
-#, python-format
+#: ipalib/plugins/host.py:431
+msgid "Remove entries from DNS"
+msgstr ""
+
+#: ipalib/plugins/host.py:537
+msgid ""
+"\n"
+" Modify information about a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:542
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:275
+#: ipalib/plugins/host.py:549
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:319
-#, python-format
+#: ipalib/plugins/host.py:618
+msgid ""
+"\n"
+" Search for hosts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:623
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:337 ipalib/plugins/service.py:84
-msgid "Keytab"
+#: ipalib/plugins/host.py:643
+msgid ""
+"\n"
+" Display information about a host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:359 ipalib/plugins/service.py:399
-#, python-format
-msgid "Removed kerberos key from \"%(value)s\""
+#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+msgid "file to store certificate in"
+msgstr ""
+
+#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+msgid "Certificate stored in file '%(file)s'"
+msgstr ""
+
+#: ipalib/plugins/host.py:684
+msgid ""
+"\n"
+" Disable the Kerberos key, SSL certificate and all services of a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:688
+msgid "Disabled host \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/host.py:770
+msgid ""
+"\n"
+" Add hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:781
+msgid ""
+"\n"
+" Remove hosts that can manage this host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:368
-msgid "Host principal has no kerberos key"
+#: ipalib/plugins/hostgroup.py:20
+msgid ""
+"\n"
+"Groups of hosts.\n"
+"\n"
+"Manage groups of hosts. This is useful for applying access control to a\n"
+"number of hosts by using Host-based Access Control.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host group:\n"
+" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n"
+"\n"
+" Add another new host group:\n"
+" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n"
+"\n"
+" Add members to the hostgroup:\n"
+" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n"
+"\n"
+" Add a hostgroup as a member of another hostgroup:\n"
+" ipa hostgroup-add-member --hostgroups=baltimore maryland\n"
+"\n"
+" Remove a host from the hostgroup:\n"
+" ipa hostgroup-remove-member --hosts=box2 baltimore\n"
+"\n"
+" Display a host group:\n"
+" ipa hostgroup-show baltimore\n"
+"\n"
+" Delete a hostgroup:\n"
+" ipa hostgroup-del baltimore\n"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:55
+msgid ""
+"\n"
+" Hostgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/hostgroup.py:78
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:75
+#: ipalib/plugins/hostgroup.py:79
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:82
+#: ipalib/plugins/hostgroup.py:86
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:85
-msgid "Member hosts"
+#: ipalib/plugins/hostgroup.py:94
+msgid ""
+"\n"
+" Add a new hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:89
-msgid "Member host-groups"
+#: ipalib/plugins/hostgroup.py:98
+msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:106
-#, python-format
-msgid "Added hostgroup \"%(value)s\""
+#: ipalib/plugins/hostgroup.py:104
+msgid ""
+"\n"
+" Delete a hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:116
-#, python-format
+#: ipalib/plugins/hostgroup.py:108
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:126
-#, python-format
+#: ipalib/plugins/hostgroup.py:114
+msgid ""
+"\n"
+" Modify a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:118
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:137
-#, python-format
+#: ipalib/plugins/hostgroup.py:124
+msgid ""
+"\n"
+" Search for hostgroups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:128
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/internal.py:39
+#: ipalib/plugins/hostgroup.py:136
+msgid ""
+"\n"
+" Display information about a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:144
+msgid ""
+"\n"
+" Add members to a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:152
+msgid ""
+"\n"
+" Remove members from a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:22
+msgid ""
+"\n"
+"Plugins not accessible directly through the CLI, commands used internally\n"
+msgstr ""
+
+#: ipalib/plugins/internal.py:36
+msgid ""
+"\n"
+" Export plugin meta-data for the webUI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:44
+msgid "Name of object to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:47
+msgid "Name of method to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:52
+msgid "Dict of JSON encoded IPA Objects"
+msgstr ""
+
+#: ipalib/plugins/internal.py:53
+msgid "Dict of JSON encoded IPA Methods"
+msgstr ""
+
+#: ipalib/plugins/internal.py:96
msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:41
+#: ipalib/plugins/internal.py:99
+msgid "Attribute"
+msgstr ""
+
+#: ipalib/plugins/internal.py:102
+msgid "Add Automount Location"
+msgstr ""
+
+#: ipalib/plugins/internal.py:103
+msgid "Automount Location Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:106
+msgid "Add Automount Map"
+msgstr ""
+
+#: ipalib/plugins/internal.py:109
+msgid "Add Automount Key"
+msgstr ""
+
+#: ipalib/plugins/internal.py:112
+msgid "Unspecified"
+msgstr ""
+
+#: ipalib/plugins/internal.py:113
+msgid "Key Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:114
+msgid "CA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:115
+msgid "Affiliation Changed"
+msgstr ""
+
+#: ipalib/plugins/internal.py:116
+msgid "Superseded"
+msgstr ""
+
+#: ipalib/plugins/internal.py:117
+msgid "Cessation of Operation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:118
+msgid "Certificate Hold"
+msgstr ""
+
+#: ipalib/plugins/internal.py:119
+msgid "Remove from CRL"
+msgstr ""
+
+#: ipalib/plugins/internal.py:120
+msgid "Privilege Withdrawn"
+msgstr ""
+
+#: ipalib/plugins/internal.py:121
+msgid "AA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:122
+msgid ""
+"To confirm your intention to revoke this certificate, select a reason from "
+"the pull-down list, and click the \"Revoke\" button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:124
+msgid "Note"
+msgstr ""
+
+#: ipalib/plugins/internal.py:125
+msgid "Reason for Revocation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:126
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\" "
+"button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:128
+msgid "Issued To"
+msgstr ""
+
+#: ipalib/plugins/internal.py:129
+msgid "Common Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:130
+msgid "Organization"
+msgstr ""
+
+#: ipalib/plugins/internal.py:131
+msgid "Organizational Unit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:133
+msgid "Issued By"
+msgstr ""
+
+#: ipalib/plugins/internal.py:134
+msgid "Validity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:135
+msgid "Issued On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:136
+msgid "Expires On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:137
+msgid "Fingerprints"
+msgstr ""
+
+#: ipalib/plugins/internal.py:138
+msgid "SHA1 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:139
+msgid "MD5 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:140
+msgid "Enter the Base64-encoded CSR below"
+msgstr ""
+
+#: ipalib/plugins/internal.py:141
+msgid "Valid Certificate Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:142
+msgid "New Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:143
+msgid "Certificate Revoked"
+msgstr ""
+
+#: ipalib/plugins/internal.py:144
+msgid "No Valid Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:145
+msgid "Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:146
+msgid "Issue New Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:147
+msgid "Revoke Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:148
+msgid "Restore Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:152
+msgid "Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:155
+msgid "Add Delegation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:158
+msgid "Add DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:159
+msgid "DNS Zone Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:162
+msgid "Add DNS Resource Record"
+msgstr ""
+
+#: ipalib/plugins/internal.py:163
+msgid "Resource"
+msgstr ""
+
+#: ipalib/plugins/internal.py:165
+msgid "Data"
+msgstr ""
+
+#: ipalib/plugins/internal.py:166
+msgid "Records for DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:169
+msgid "Add Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:170
+msgid "Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
+msgid "Is this a POSIX group?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:174
+msgid "Add HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:306
+msgid "Active"
+msgstr ""
+
+#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:308
+msgid "Inactive"
+msgstr ""
+
+#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
+msgid "Rule status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
+msgid "Who"
+msgstr ""
+
+#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
+msgid "Anyone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
+msgid "Specified Users and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:183
+msgid "Accessing"
+msgstr ""
+
+#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
+msgid "Any Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
+msgid "Specified Hosts and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:186
+msgid "Via Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:187
+msgid "Any Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:188
+msgid "Specified Services and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:189
+msgid "From"
+msgstr ""
+
+#: ipalib/plugins/internal.py:192
+msgid "Add HBAC Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:195
+msgid "Add HBAC Service Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:199
+msgid "Add Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:200
+msgid "Host Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:202
+msgid "Host Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:203
+msgid "Enrolled?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:204
+msgid "Enrollment"
+msgstr ""
+
+#: ipalib/plugins/internal.py:205
+msgid "Fully Qualified Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
+msgid "Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:208
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
+msgid "Delete Key, Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:211
+msgid "Enroll via One-Time-Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:212
+msgid "Set OTP"
+msgstr ""
+
+#: ipalib/plugins/internal.py:213
+msgid "One-Time-Password has been set."
+msgstr ""
+
+#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
+msgid "Unprovisioning ${entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:215
+msgid "Are you sure you want to unprovision this host?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
+msgid "Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:219
+msgid "Add Host Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:220
+msgid "Host Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:223
+msgid "Kerberos ticket policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:226
+msgid "Add Netgroup"
+msgstr ""
+
+#: ipalib/plugins/internal.py:227
+msgid "Netgroup Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:230
+msgid "Add Permission"
+msgstr ""
+
+#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
+msgid "Identity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:233
+msgid "Target"
+msgstr ""
+
+#: ipalib/plugins/internal.py:235
+msgid "By Subtree"
+msgstr ""
+
+#: ipalib/plugins/internal.py:236
+msgid "Target Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:237
+msgid "Object By Type"
+msgstr ""
+
+#: ipalib/plugins/internal.py:238
+msgid "Permission with invalid target specification"
+msgstr ""
+
+#: ipalib/plugins/internal.py:241
+msgid "Add Privilege"
+msgstr ""
+
+#: ipalib/plugins/internal.py:242
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:245
+msgid "Add Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:249
+msgid "Add Role"
+msgstr ""
+
+#: ipalib/plugins/internal.py:250
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:253
+msgid "Add Self Service Definition"
+msgstr ""
+
+#: ipalib/plugins/internal.py:256
+msgid "Add Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:257
+msgid "Service Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:258
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:260
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:261
+msgid "Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:263
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:267
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:271
+msgid "Add Sudo Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:275
+msgid "Add Sudo Command Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:279
+msgid "Add Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:287
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:290
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:291
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:292
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:293
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:294
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:295
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:297
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:300
+msgid "Add User"
+msgstr ""
+
+#: ipalib/plugins/internal.py:301
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:302
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:303
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:304
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:305
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:307
+msgid "Click to Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:309
+msgid "Click to Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:310
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:311
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:312
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:313
+msgid "Repeat Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:314
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:315
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:319
msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:42
+#: ipalib/plugins/internal.py:320
+msgid "Add and Add Another"
+msgstr ""
+
+#: ipalib/plugins/internal.py:321
+msgid "Add and Edit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:322
+msgid "Add and Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:323
+msgid "Add Many"
+msgstr ""
+
+#: ipalib/plugins/internal.py:324
+msgid "Back to List"
+msgstr ""
+
+#: ipalib/plugins/internal.py:325
+msgid "Cancel"
+msgstr ""
+
+#: ipalib/plugins/internal.py:326
+msgid "Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:327
+msgid "Enroll"
+msgstr ""
+
+#: ipalib/plugins/internal.py:328
msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:43
+#: ipalib/plugins/internal.py:329
+msgid "Get"
+msgstr ""
+
+#: ipalib/plugins/internal.py:330
+msgid "Issue"
+msgstr ""
+
+#: ipalib/plugins/internal.py:331
+msgid "OK"
+msgstr ""
+
+#: ipalib/plugins/internal.py:332
msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:333
+msgid "Delete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:334
+msgid "Restore"
+msgstr ""
+
+#: ipalib/plugins/internal.py:335
+msgid "Retry"
+msgstr ""
+
+#: ipalib/plugins/internal.py:336
+msgid "Revoke"
+msgstr ""
+
+#: ipalib/plugins/internal.py:337
msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:45
-msgid "Enroll"
+#: ipalib/plugins/internal.py:338
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:46
-msgid "Delete"
+#: ipalib/plugins/internal.py:341
+msgid "Available"
+msgstr ""
+
+#: ipalib/plugins/internal.py:342
+msgid "This page has unsaved changes. Please save or revert."
+msgstr ""
+
+#: ipalib/plugins/internal.py:343
+msgid "Dirty"
msgstr ""
-#: ipalib/plugins/internal.py:49
+#: ipalib/plugins/internal.py:344
+msgid "Hide already enrolled."
+msgstr ""
+
+#: ipalib/plugins/internal.py:345
+msgid "Select ${entity} to be removed."
+msgstr ""
+
+#: ipalib/plugins/internal.py:346
+msgid "Remove ${entity}."
+msgstr ""
+
+#: ipalib/plugins/internal.py:347
+msgid "Prospective"
+msgstr ""
+
+#: ipalib/plugins/internal.py:350
+msgid "Managed by"
+msgstr ""
+
+#: ipalib/plugins/internal.py:351
+msgid "Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:352
+msgid "Indirect Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:353
+msgid "Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:354
+msgid "Indirect Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
+msgid "Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:358
+msgid "Search"
+msgstr ""
+
+#: ipalib/plugins/internal.py:362
msgid "Quick Links"
msgstr ""
-#: ipalib/plugins/internal.py:50
+#: ipalib/plugins/internal.py:363
msgid "Select All"
msgstr ""
-#: ipalib/plugins/internal.py:51
+#: ipalib/plugins/internal.py:364
msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Do you really want to delete the selected entries?"
+#: ipalib/plugins/internal.py:365
+msgid "Are you sure you want to delete selected entries?"
msgstr ""
-#: ipalib/plugins/internal.py:55
-msgid "Identity Details"
+#: ipalib/plugins/internal.py:366
+msgid ""
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
msgstr ""
-#: ipalib/plugins/internal.py:56
-msgid "Account Details"
+#: ipalib/plugins/internal.py:370
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:57
-msgid "Contact Details"
+#: ipalib/plugins/internal.py:371
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:58
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:372
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:59
-msgid " Employee Information"
+#: ipalib/plugins/internal.py:373
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:60
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:377
+msgid "Policy"
msgstr ""
-#: ipalib/plugins/internal.py:61
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:378
+msgid "Audit"
msgstr ""
-#: ipalib/plugins/internal.py:66
-msgid "Name of object to export"
+#: ipalib/plugins/internal.py:379
+msgid "IPA Server"
msgstr ""
-#: ipalib/plugins/internal.py:71
-msgid "Dict of JSON encoded IPA Objects"
+#: ipalib/plugins/internal.py:380
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:381
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:382
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:383
+msgid "Automount"
msgstr ""
-#: ipalib/plugins/internal.py:72
+#: ipalib/plugins/internal.py:386
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:387
+msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:388
+msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:389
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:392
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:395
+msgid ""
+"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."
+msgstr ""
+
+#: ipalib/plugins/internal.py:399
msgid "Dict of I18N messages"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:59
+#: ipalib/plugins/kerberos.py:20
+msgid ""
+"\n"
+"Backend plugin for Kerberos.\n"
+"\n"
+"This wraps the python-kerberos and python-krbV bindings.\n"
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:35
+msgid ""
+"\n"
+" Kerberos backend plugin.\n"
+"\n"
+" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
+" bindings also). Importantly, this plugin does correct Unicode\n"
+" encoding/decoding of values going-to/coming-from the bindings.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:44
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:50
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:56
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:62
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:68
+msgid ""
+"\n"
+" Return the default ccache file name.\n"
+"\n"
+" This will return something like '/tmp/krb5cc_500'.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:79
+msgid ""
+"\n"
+" Return the principal name in default credential cache.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'. If no "
+"credential\n"
+" cache exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:91
+msgid ""
+"\n"
+" Return the realm from the default credential cache.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'. If no credential "
+"cache\n"
+" exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:103
+msgid ""
+"\n"
+" Return the principal from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:111
+msgid ""
+"\n"
+" Return the realm from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:19
+msgid ""
+"\n"
+"Kerberos ticket policy\n"
+"\n"
+"There is a single Kerberos ticket policy. This policy defines the\n"
+"maximum ticket lifetime and the maximum renewal age, the period during\n"
+"which the ticket is renewable.\n"
+"\n"
+"You can also create a per-user ticket policy by specifying the user login.\n"
+"\n"
+"For changes to the global policy to take effect, restarting the KDC service\n"
+"is required, which can be achieved using:\n"
+"\n"
+"service krb5kdc restart\n"
+"\n"
+"Changes to per-user policies take effect immediately for newly requested\n"
+"tickets (e.g. when the user next runs kinit).\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Display the current Kerberos ticket policy:\n"
+" ipa krbtpolicy-show\n"
+"\n"
+" Reset the policy to the default:\n"
+" ipa krbtpolicy-reset\n"
+"\n"
+" Modify the policy to 8 hours max life, 1-day max renewal:\n"
+" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n"
+"\n"
+" Display effective Kerberos ticket policy for user 'admin':\n"
+" ipa krbtpolicy-show admin\n"
+"\n"
+" Reset per-user policy for user 'admin':\n"
+" ipa krbtpolicy-reset admin\n"
+"\n"
+" Modify per-user policy for user 'admin':\n"
+" ipa krbtpolicy-mod admin --maxlife=3600\n"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:71
+msgid ""
+"\n"
+" Kerberos Ticket Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:79
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:64 ipalib/plugins/passwd.py:52
+#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
msgid "User name"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:65
+#: ipalib/plugins/krbtpolicy.py:85
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:70
+#: ipalib/plugins/krbtpolicy.py:90
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:75
+#: ipalib/plugins/krbtpolicy.py:96
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:76
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/migration.py:44
-#, python-format
+#: ipalib/plugins/krbtpolicy.py:111
+msgid ""
+"\n"
+" Modify Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:125
+msgid ""
+"\n"
+" Display the current Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:149
+msgid ""
+"\n"
+" Reset Kerberos ticket policy to the default values.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:19
+msgid ""
+"\n"
+"Migration to IPA\n"
+"\n"
+"Migrate users and groups from an LDAP server to IPA.\n"
+"\n"
+"This performs an LDAP query against the remote server searching for\n"
+"users and groups in a container. In order to migrate passwords you need\n"
+"to bind as a user that can read the userPassword attribute on the remote\n"
+"server. This is generally restricted to high-level admins such as\n"
+"cn=Directory Manager in 389-ds (this is the default bind user).\n"
+"\n"
+"The default user container is ou=People.\n"
+"\n"
+"The default group container is ou=Groups.\n"
+"\n"
+"Users and groups that already exist on the IPA server are skipped.\n"
+"\n"
+"Two LDAP schemas define how group members are stored: RFC2307 and\n"
+"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n"
+"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n"
+"\n"
+"Migrated users do not have Kerberos credentials, they have only their\n"
+"LDAP password. To complete the migration process, users need to go\n"
+"to http://ipa.example.com/ipa/migration and authenticate using their\n"
+"LDAP password in order to generate their Kerberos credentials.\n"
+"\n"
+"Migration is disabled by default. Use the command ipa config-mod to\n"
+"enable it:\n"
+"\n"
+" ipa config-mod --enable-migration=TRUE\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" The simplest migration, accepting all defaults:\n"
+" ipa migrate-ds ldap://ds.example.com:389\n"
+"\n"
+" Specify the user and group container. This can be used to migrate user and\n"
+" group data from an IPA v1 server:\n"
+" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-"
+"container='cn=groups,cn=accounts' ldap://ds.example.com:389\n"
+msgstr ""
+
+#: ipalib/plugins/migration.py:78
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:45
+#: ipalib/plugins/migration.py:79
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:169
+#: ipalib/plugins/migration.py:175
+msgid ""
+"\n"
+" Convert usernames in member attributes to work in IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:220
+msgid "Invalid LDAP URI."
+msgstr ""
+
+#: ipalib/plugins/migration.py:225
+msgid ""
+"\n"
+" Migrate users and groups from DS to IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:266
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:170
+#: ipalib/plugins/migration.py:267
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:174
+#: ipalib/plugins/migration.py:272
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:181
+#: ipalib/plugins/migration.py:279
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:187
+#: ipalib/plugins/migration.py:285
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:188
+#: ipalib/plugins/migration.py:286
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:194
+#: ipalib/plugins/migration.py:292
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:195
+#: ipalib/plugins/migration.py:293
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:200
-msgid "Continous operation mode. Errors are reported but the process continues"
+#: ipalib/plugins/migration.py:299
+msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:208
+#: ipalib/plugins/migration.py:300
+msgid ""
+"Comma-separated list of objectclasses used to search for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:306
+msgid "Group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:307
+msgid ""
+"Comma-separated list of objectclasses used to search for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:313
+msgid "LDAP schema"
+msgstr ""
+
+#: ipalib/plugins/migration.py:314
+msgid ""
+"The schema used on the LDAP server. Supported values are RFC2307 and "
+"RFC2307bis. The default is RFC2307bis"
+msgstr ""
+
+#: ipalib/plugins/migration.py:320
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues"
+msgstr ""
+
+#: ipalib/plugins/migration.py:328
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:212
+#: ipalib/plugins/migration.py:332
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:216
+#: ipalib/plugins/migration.py:336
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:220
-#, python-format
+#: ipalib/plugins/migration.py:340
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:222
+#: ipalib/plugins/migration.py:342
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
-"migration process might be uncomplete\n"
+"migration process might be incomplete\n"
msgstr ""
-#: ipalib/plugins/migration.py:227
+#: ipalib/plugins/migration.py:347
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:230
+#: ipalib/plugins/migration.py:350
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -1527,16 +4765,55 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:297
-#, python-format
+#: ipalib/plugins/migration.py:358
+msgid ""
+"\n"
+" Call get_options of the baseclass and add \"exclude\" options\n"
+" for each type of object being migrated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:375
+msgid ""
+"\n"
+" Convert all \"exclude\" option values to lower-case.\n"
+"\n"
+" Also, empty List parameters are converted to None, but the "
+"migration\n"
+" plugin doesn't like that - convert back to empty lists.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:399
+msgid ""
+"\n"
+" Migrate objects from DS to LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:425
msgid "Container for %(container)s not found"
msgstr ""
+#: ipalib/plugins/misc.py:20
+msgid ""
+"\n"
+"Misc plug-ins\n"
+msgstr ""
+
+#: ipalib/plugins/misc.py:36
+msgid "Show environment variables"
+msgstr ""
+
#: ipalib/plugins/misc.py:38
-#, python-format
msgid "%(count)d variables"
msgstr ""
+#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115
+msgid ""
+"retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
#: ipalib/plugins/misc.py:61
msgid "Total number of variables env (>= count)"
msgstr ""
@@ -1545,435 +4822,2391 @@ msgstr ""
msgid "Number of variables returned (<= total)"
msgstr ""
-#: ipalib/plugins/misc.py:109
-#, python-format
+#: ipalib/plugins/misc.py:106
+msgid "Show all loaded plugins"
+msgstr ""
+
+#: ipalib/plugins/misc.py:108
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/misc.py:116
+#: ipalib/plugins/misc.py:126
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:57
+#: ipalib/plugins/netgroup.py:20
+msgid ""
+"\n"
+"Netgroups\n"
+"\n"
+"A netgroup is a group used for permission checking. It can contain both\n"
+"user and host values.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new netgroup:\n"
+" ipa netgroup-add --desc=\"NFS admins\" admins\n"
+"\n"
+" Add members to the netgroup:\n"
+" ipa netgroup-add-member --users=tuser1,tuser2 admins\n"
+"\n"
+" Remove a member from the netgroup:\n"
+" ipa netgroup-remove-member --users=tuser2 admins\n"
+"\n"
+" Display information about a netgroup:\n"
+" ipa netgroup-show admins\n"
+"\n"
+" Delete a netgroup:\n"
+" ipa netgroup-del admins\n"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:59
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:63
-msgid "External host"
+#: ipalib/plugins/netgroup.py:67
+msgid ""
+"\n"
+" Netgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/netgroup.py:85
-msgid "Net Groups"
+#: ipalib/plugins/netgroup.py:98
+msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:90
+#: ipalib/plugins/netgroup.py:103
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:97
+#: ipalib/plugins/netgroup.py:110
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:101
+#: ipalib/plugins/netgroup.py:114
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:106
+#: ipalib/plugins/netgroup.py:119
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:84
-#, python-format
+#: ipalib/plugins/netgroup.py:140
+msgid ""
+"\n"
+" Add a new netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:144
+msgid "Added netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:153
+msgid ""
+"\n"
+" Delete a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:156
+msgid "Deleted netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:162
+msgid ""
+"\n"
+" Modify a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:166
+msgid "Modified netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:180
+msgid ""
+"\n"
+" Search for a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:185
+msgid "%(count)d netgroup matched"
+msgid_plural "%(count)d netgroups matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/netgroup.py:213
+msgid ""
+"\n"
+" Display information about a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:222
+msgid ""
+"\n"
+" Add members to a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:258
+msgid ""
+"\n"
+" Remove members from a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:19
+msgid ""
+"\n"
+"Set a user's password\n"
+"\n"
+"If someone other than a user changes that user's password (e.g., Helpdesk\n"
+"resets it) then the password will need to be changed the first time it\n"
+"is used. This is so the end-user is the only one who knows the password.\n"
+"\n"
+"The IPA password policy controls how often a password may be changed,\n"
+"what strength requirements exist, and the length of the password history.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" To reset your own password:\n"
+" ipa passwd\n"
+"\n"
+" To change another user's password:\n"
+" ipa passwd tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/passwd.py:46
+msgid ""
+"\n"
+" Set a user's password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:64
+msgid "Changed password for \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/passwd.py:67
+msgid ""
+"\n"
+" Execute the passwd operation.\n"
+"\n"
+" The dn should not be passed as a keyword argument as it is "
+"constructed\n"
+" by this method.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param principal: The login name or principal of the user\n"
+" :param password: the new password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:19
+msgid ""
+"\n"
+"Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of rights. A permission is\n"
+"a human-readable form of a 389-ds Access Control Rule, or instruction "
+"(ACI).\n"
+"A permission grants the right to perform a specific task such as adding a\n"
+"user, modifying a group, etc.\n"
+"\n"
+"A permission may not contain other permissions.\n"
+"\n"
+"* A permission grants access to read, write, add or delete.\n"
+"* A privilege combines similar permissions (for example all the permissions\n"
+" needed to add a user).\n"
+"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n"
+"\n"
+"A permission is made up of a number of different parts:\n"
+"\n"
+"1. The name of the permission.\n"
+"2. The target of the permission.\n"
+"3. The rights granted by the permission.\n"
+"\n"
+"Rights define what operations are allowed, and may be one or more\n"
+"of the following:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Read permission is granted for most attributes by default so the read\n"
+"permission is not expected to be used very often.\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"There are a number of allowed targets:\n"
+"1. type: a type of object (user, group, etc).\n"
+"2. memberof: a member of a group or hostgroup\n"
+"3. filter: an LDAP filter\n"
+"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n"
+" super-set of the \"type\" target.\n"
+"5. targetgroup: grant access to modify a specific group (such as granting\n"
+" the rights to manage group membership)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a permission that grants the creation of users:\n"
+" ipa permission-add --type=user --permissions=add \"Add Users\"\n"
+"\n"
+" Add a permission that grants the ability to manage group membership:\n"
+" ipa permission-add --attrs=member --permissions=write --type=group "
+"\"Manage Group Members\"\n"
+msgstr ""
+
+#: ipalib/plugins/permission.py:84
+msgid "Permission Type"
+msgstr ""
+
+#: ipalib/plugins/permission.py:89
+msgid ""
+"\n"
+" Permission object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:112
+msgid "Permission name"
+msgstr ""
+
+#: ipalib/plugins/permission.py:119
+msgid ""
+"Comma-separated list of permissions to grant (read, write, add, delete, all)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:132
+msgid ""
+"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:138
+msgid "Member of group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:139
+msgid "Target members of a group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:151
+msgid "Subtree to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:157
+msgid "User group to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:177
+msgid ""
+"\n"
+" Add a new permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:181
+msgid "Added permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:236
+msgid ""
+"\n"
+" Delete a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:240
+msgid "Deleted permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:256
+msgid ""
+"\n"
+" Modify a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:260
+msgid "Modified permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:352
+msgid ""
+"\n"
+" Search for permissions.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:356
+msgid "%(count)d permission matched"
+msgid_plural "%(count)d permissions matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/permission.py:405
+msgid ""
+"\n"
+" Display information about a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:428
+msgid ""
+"\n"
+" Add members to a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:437
+msgid ""
+"\n"
+" Remove members from a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:19
+msgid ""
+"\n"
+"Ping the remote IPA server\n"
+msgstr ""
+
+#: ipalib/plugins/ping.py:29
+msgid ""
+"\n"
+" ping a remote server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:37
+msgid ""
+"\n"
+" A possible enhancement would be to take an argument and echo it\n"
+" back but a fixed value works for now.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:19
+msgid ""
+"\n"
+"Kerberos pkinit options\n"
+"\n"
+"Enable or disable anonymous pkinit using the principal\n"
+"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n"
+"pkinit support.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Enable anonymous pkinit:\n"
+" ipa pkinit-anonymous enable\n"
+"\n"
+" Disable anonymous pkinit:\n"
+" ipa pkinit-anonymous disable\n"
+"\n"
+"For more information on anonymous pkinit see:\n"
+"\n"
+"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:46
+msgid ""
+"\n"
+" PKINIT Options\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:51
+msgid "PKINIT"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:56
+msgid ""
+"\n"
+" Accepts only Enable/Disable.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:67
+msgid ""
+"\n"
+" Enable or Disable Anonymous PKINIT\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:19
+msgid ""
+"\n"
+"Privileges\n"
+"\n"
+"A privilege combines permissions into a logical task. A permission provides\n"
+"the rights to do a single task. There are some IPA operations that require\n"
+"multiple permissions to succeed. A privilege is where permissions are\n"
+"combined in order to perform a specific task.\n"
+"\n"
+"For example, adding a user requires the following permissions:\n"
+" * Creating a new user entry\n"
+" * Resetting a user password\n"
+" * Adding the new user to the default IPA users group\n"
+"\n"
+"Combining these three low-level tasks into a higher level task in the\n"
+"form of a privilege named \"Add User\" makes it easier to manage Roles.\n"
+"\n"
+"A privilege may not contain other privileges.\n"
+"\n"
+"See role and permission for additional information.\n"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:45
+msgid ""
+"\n"
+" Privilege object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:65
+msgid "Privileges"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:70
+msgid "Privilege name"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:77
+msgid "Privilege description"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:85
+msgid ""
+"\n"
+" Add a new privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:89
+msgid "Added privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:95
+msgid ""
+"\n"
+" Delete a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:99
+msgid "Deleted privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:105
+msgid ""
+"\n"
+" Modify a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:109
+msgid "Modified privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:115
+msgid ""
+"\n"
+" Search for privileges.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:119
+msgid "%(count)d privilege matched"
+msgid_plural "%(count)d privileges matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/privilege.py:127
+msgid ""
+"\n"
+" Display information about a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:135
+msgid ""
+"\n"
+" Add members to a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:144
+msgid ""
+"\n"
+" Remove members from a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:153
+msgid ""
+"\n"
+" Add permissions to a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:169
+msgid "Number of permissions added"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:177
+msgid ""
+"\n"
+" Remove permissions from a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:195
+msgid "Number of permissions removed"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:20
+msgid ""
+"\n"
+"Password policy\n"
+"\n"
+"A password policy sets limitations on IPA passwords, including maximum\n"
+"lifetime, minimum lifetime, the number of passwords to save in\n"
+"history, the number of character classes required (for stronger passwords)\n"
+"and the minimum password length.\n"
+"\n"
+"By default there is a single, global policy for all users. You can also\n"
+"create a password policy to apply to a group. Each user is only subject\n"
+"to one password policy, either the group policy or the global policy. A\n"
+"group policy stands alone; it is not a super-set of the global policy plus\n"
+"custom settings.\n"
+"\n"
+"Each group password policy requires a unique priority setting. If a user\n"
+"is in multiple groups that have password policies, this priority determines\n"
+"which password policy is applied. A lower value indicates a higher priority\n"
+"policy.\n"
+"\n"
+"Group password policies are automatically removed when the groups they\n"
+"are associated with are removed.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Modify the global policy:\n"
+" ipa pwpolicy-mod --minlength=10\n"
+"\n"
+" Add a new group password policy:\n"
+" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --"
+"minlength=8 --priority=10 localadmins\n"
+"\n"
+" Display the global password policy:\n"
+" ipa pwpolicy-show\n"
+"\n"
+" Display a group password policy:\n"
+" ipa pwpolicy-show localadmins\n"
+"\n"
+" Display the policy that would be applied to a given user:\n"
+" ipa pwpolicy-show --user=tuser1\n"
+"\n"
+" Modify a group password policy:\n"
+" ipa pwpolicy-mod --minclasses=2 localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:72
+msgid ""
+"\n"
+" Class of Service object used for linking policies with groups\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:87
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:170
-msgid "Password Policy"
+#: ipalib/plugins/pwpolicy.py:172
+msgid ""
+"\n"
+" Password Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:201
+msgid "Max failures"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:202
+msgid "Consecutive failures before lockout"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:207
+msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:175
+#: ipalib/plugins/pwpolicy.py:208
+msgid "Period after which failure count will be reset (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:213
+msgid "Lockout duration"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:214
+msgid "Period for which lockout is enforced (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:224
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:176
+#: ipalib/plugins/pwpolicy.py:225
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:181
+#: ipalib/plugins/pwpolicy.py:230
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:182
+#: ipalib/plugins/pwpolicy.py:231
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:187
+#: ipalib/plugins/pwpolicy.py:236
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:188
+#: ipalib/plugins/pwpolicy.py:237
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:193
+#: ipalib/plugins/pwpolicy.py:242
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:194
+#: ipalib/plugins/pwpolicy.py:243
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:199
+#: ipalib/plugins/pwpolicy.py:248
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:200
+#: ipalib/plugins/pwpolicy.py:249
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:206
+#: ipalib/plugins/pwpolicy.py:255
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:256
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:212
+#: ipalib/plugins/pwpolicy.py:261
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:262
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:265
+#: ipalib/plugins/pwpolicy.py:294
+msgid ""
+"\n"
+" Ensure that the maximum lifetime is greater than the minimum.\n"
+" If there is no minimum lifetime set then don't return an error.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:314
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:330
+#: ipalib/plugins/pwpolicy.py:333
+msgid ""
+"\n"
+" Add a new group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:361
+msgid ""
+"\n"
+" Delete a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:380
+msgid ""
+"\n"
+" Modify a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:391
msgid "priority cannot be set on global policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:369
+#: ipalib/plugins/pwpolicy.py:423
+msgid ""
+"\n"
+" Display information about password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:428
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:370
+#: ipalib/plugins/pwpolicy.py:429
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/rolegroup.py:79
-msgid "Role Groups"
+#: ipalib/plugins/pwpolicy.py:452
+msgid ""
+"\n"
+" Search for group password policies.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:84
-msgid "Role-group name"
+#: ipalib/plugins/role.py:20
+msgid ""
+"\n"
+"Roles\n"
+"\n"
+"A role is used for fine-grained delegation. A permission grants the ability\n"
+"to perform given low-level tasks (add a user, modify a group, etc.). A\n"
+"privilege combines one or more permissions into a higher-level abstraction\n"
+"such as useradmin. A useradmin would be able to add, delete and modify "
+"users.\n"
+"\n"
+"Privileges are assigned to Roles.\n"
+"\n"
+"Users, groups, hosts and hostgroups may be members of a Role.\n"
+"\n"
+"Roles can not contain other roles.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new role:\n"
+" ipa role-add --desc=\"Junior-level admin\" junioradmin\n"
+"\n"
+" Add some privileges to this role:\n"
+" ipa role-add-privilege --privileges=addusers junioradmin\n"
+" ipa role-add-privilege --privileges=change_password junioradmin\n"
+" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n"
+"\n"
+" Add a group of users to this role:\n"
+" ipa group-add --desc=\"User admins\" useradmins\n"
+" ipa role-add-member --groups=useradmins junioradmin\n"
+"\n"
+" Display information about a role:\n"
+" ipa role-show junioradmin\n"
+"\n"
+" The result of this is that any users in the group 'useradmins' can\n"
+" add users, reset passwords or add a user to the default IPA user group.\n"
+msgstr ""
+
+#: ipalib/plugins/role.py:62
+msgid ""
+"\n"
+" Role object.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:91
+#: ipalib/plugins/role.py:81
+msgid "Role"
+msgstr ""
+
+#: ipalib/plugins/role.py:86
+msgid "Role name"
+msgstr ""
+
+#: ipalib/plugins/role.py:93
msgid "A description of this role-group"
msgstr ""
-#: ipalib/plugins/rolegroup.py:102
-msgid "Member of task-groups"
+#: ipalib/plugins/role.py:101
+msgid ""
+"\n"
+" Add a new role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:115
-#, python-format
-msgid "Added rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:105
+msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/rolegroup.py:125
-#, python-format
-msgid "Deleted rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:111
+msgid ""
+"\n"
+" Delete a role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:135
-#, python-format
-msgid "Modified rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:115
+msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/rolegroup.py:146
-#, python-format
-msgid "%(count)d rolegroup matched"
-msgid_plural "%(count)d rolegroups matched"
+#: ipalib/plugins/role.py:121
+msgid ""
+"\n"
+" Modify a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:125
+msgid "Modified role \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/role.py:131
+msgid ""
+"\n"
+" Search for roles.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:135
+msgid "%(count)d role matched"
+msgid_plural "%(count)d roles matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:198
+#: ipalib/plugins/role.py:143
+msgid ""
+"\n"
+" Display information about a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:151
+msgid ""
+"\n"
+" Add members to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:159
+msgid ""
+"\n"
+" Remove members from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:167
+msgid ""
+"\n"
+" Add privileges to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:183
+msgid "Number of privileges added"
+msgstr ""
+
+#: ipalib/plugins/role.py:191
+msgid ""
+"\n"
+" Remove privileges from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:207
+msgid "Number of privileges removed"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:19
+msgid ""
+"\n"
+"Self-service Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"A Self-service permission defines what an object can change in its own "
+"entry.\n"
+"\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a self-service rule to allow users to manage their address:\n"
+" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st "
+"\"Users manage their own address\"\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add telephoneNumber to the list:\n"
+" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber "
+"\"Users manage their own address\"\n"
+"\n"
+" Display our updated rule:\n"
+" ipa selfservice-show \"Users manage their own address\"\n"
+"\n"
+" Delete a rule:\n"
+" ipa selfservice-del \"Users manage their own address\"\n"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:56
+msgid ""
+"\n"
+" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a self-service ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:64
+msgid "Self-service permission '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:68
+msgid ""
+"\n"
+" Selfservice object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:75
+msgid "Self Service Permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
+msgid "Self-service name"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:114
+msgid ""
+"\n"
+" Add a new self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:118
+msgid "Added selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:137
+msgid ""
+"\n"
+" Delete a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:142
+msgid "Deleted selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:158
+msgid ""
+"\n"
+" Modify a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:162
+msgid "Modified selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:181
+msgid ""
+"\n"
+" Search for a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:185
+msgid "%(count)d selfservice matched"
+msgid_plural "%(count)d selfservices matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/selfservice.py:207
+msgid ""
+"\n"
+" Display information about a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:21
+msgid ""
+"\n"
+"Services\n"
+"\n"
+"A IPA service represents a service that runs on a host. The IPA service\n"
+"record can store a Kerberos principal, an SSL certificate, or both.\n"
+"\n"
+"An IPA service can be managed directly from a machine, provided that\n"
+"machine has been given the correct permission. This is true even for\n"
+"machines other than the one the service is associated with. For example,\n"
+"requesting an SSL certificate using the host service principal credentials\n"
+"of the host. To manage a service using host credentials you need to\n"
+"kinit as the host:\n"
+"\n"
+" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n"
+"\n"
+"Adding an IPA service allows the associated service to request an SSL\n"
+"certificate or keytab, but this is performed as a separate step; they\n"
+"are not produced as a result of adding the service.\n"
+"\n"
+"Only the public aspect of a certificate is stored in a service record;\n"
+"the private key is not stored.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new IPA service:\n"
+" ipa service-add HTTP/web.example.com\n"
+"\n"
+" Allow a host to manage an IPA service certificate:\n"
+" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n"
+" ipa role-add-member --hosts=web.example.com certadmin\n"
+"\n"
+" Delete an IPA service:\n"
+" ipa service-del HTTP/web.example.com\n"
+"\n"
+" Find all IPA services associated with a host:\n"
+" ipa service-find web.example.com\n"
+"\n"
+" Find all HTTP services:\n"
+" ipa service-find HTTP\n"
+"\n"
+" Disable the service Kerberos key and SSL certificate:\n"
+" ipa service-disable HTTP/web.example.com\n"
+"\n"
+" Request a certificate for an IPA service:\n"
+" ipa cert-request --principal=HTTP/web.example.com example.csr\n"
+"\n"
+" Generate and retrieve a keytab for an IPA service:\n"
+" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/"
+"httpd.keytab\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/service.py:162
+msgid ""
+"\n"
+" For now just verify that it is properly base64-encoded.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:175
+msgid ""
+"\n"
+" Set individual attributes from some values from a certificate.\n"
+"\n"
+" entry_attrs is a dict of an entry\n"
+"\n"
+" returns nothing\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:199
+msgid ""
+"\n"
+" Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:226
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:221
+#: ipalib/plugins/service.py:242
+msgid ""
+"\n"
+" Add a new IPA new service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:245
+msgid "Added service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/service.py:251
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:292
-#, python-format
+#: ipalib/plugins/service.py:284
+msgid ""
+"\n"
+" Delete an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:287
+msgid "Deleted service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/service.py:321
+msgid ""
+"\n"
+" Modify an existing IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:324
msgid "Modified service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:323
-#, python-format
+#: ipalib/plugins/service.py:356
+msgid ""
+"\n"
+" Search for IPA services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:359
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:409
-msgid "Service principal has no kerberos key"
+#: ipalib/plugins/service.py:394
+msgid ""
+"\n"
+" Display information about an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:432
+msgid ""
+"\n"
+" Add hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:442
+msgid ""
+"\n"
+" Remove hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:452
+msgid ""
+"\n"
+" Disable the Kerberos key and SSL certificate of a service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:456
+msgid "Disabled service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:19
+msgid ""
+"\n"
+"Sudo Commands\n"
+"\n"
+"Commands used as building blocks for sudo\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a new command\n"
+" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n"
+"\n"
+" Remove a command\n"
+" ipa sudocmd-del /usr/bin/less\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:46
+msgid ""
+"\n"
+" Sudo Command object.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmd.py:60
-msgid "SudoCmds"
+#: ipalib/plugins/sudocmd.py:64
+msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:65
+#: ipalib/plugins/sudocmd.py:69
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:72
+#: ipalib/plugins/sudocmd.py:75
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:99
-#, python-format
+#: ipalib/plugins/sudocmd.py:98
+msgid ""
+"\n"
+" Create new sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:102
msgid "Added sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:108
-#, python-format
+#: ipalib/plugins/sudocmd.py:107
+msgid ""
+"\n"
+" Delete sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:111
msgid "Deleted sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:117
-#, python-format
+#: ipalib/plugins/sudocmd.py:116
+msgid ""
+"\n"
+" Modify command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:120
msgid "Modified sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:127
-#, python-format
+#: ipalib/plugins/sudocmd.py:125
+msgid ""
+"\n"
+" Search for commands.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:129
msgid "%(count)d sudo command matched"
msgid_plural "%(count)d sudo command matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmdgroup.py:66 ipalib/plugins/sudocmdgroup.py:85
-#: ipalib/plugins/sudorule.py:81 ipalib/plugins/sudorule.py:85
-msgid "Sudo Command Groups"
+#: ipalib/plugins/sudocmd.py:136
+msgid ""
+"\n"
+" Display sudo command.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:71
+#: ipalib/plugins/sudocmdgroup.py:19
+msgid ""
+"\n"
+"Groups of Sudo commands\n"
+"\n"
+"Manage groups of Sudo commands.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new Sudo command group:\n"
+" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
+"\n"
+" Remove a Sudo command group:\n"
+" ipa sudocmdgroup-del admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim "
+"admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
+"\n"
+" Show a Sudo command group:\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:50
+msgid ""
+"\n"
+" Sudo Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:70
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:81
-msgid "Commands"
+#: ipalib/plugins/sudocmdgroup.py:93
+msgid ""
+"\n"
+" Create new sudo command group.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:98
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:97
msgid "Added sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:108
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:103
+msgid ""
+"\n"
+" Delete sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:107
msgid "Deleted sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:118
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:113
+msgid ""
+"\n"
+" Modify group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:117
msgid "Modified sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:129
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:123
+msgid ""
+"\n"
+" Search for sudo command groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:127
msgid "%(count)d sudo command group matched"
msgid_plural "%(count)d sudo command groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudorule.py:48
-msgid "SudoRule"
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid ""
+"\n"
+" Display sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:144
+msgid ""
+"\n"
+" Add members to sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:152
+msgid ""
+"\n"
+" Remove members from sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:19
+msgid ""
+"\n"
+"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
+"give certain users (or groups of users) the ability to run some (or all)\n"
+"commands as root or another user while providing an audit trail of the\n"
+"commands and their arguments.\n"
+"\n"
+"FreeIPA provides a designated binddn to use with Sudo located at:\n"
+"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
+"\n"
+"To enable the binddn run the following command to set the password:\n"
+"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -"
+"ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,"
+"dc=com\n"
+"\n"
+"For more information, see the FreeIPA Documentation to Sudo.\n"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:44
+msgid ""
+"\n"
+" Sudo Rule management\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:68
+msgid "Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:98
+msgid "Command category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:99
+msgid "Command category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:104
+msgid "Run As User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/sudorule.py:105
+msgid "Run As User category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:110
+msgid "Run As Group category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:111
+msgid "Run As Group category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:131
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:77
+#: ipalib/plugins/sudorule.py:135
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:109
-#, python-format
+#: ipalib/plugins/sudorule.py:147
+msgid "Run As User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:151
+msgid "Run As Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:156
+msgid "External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:157
+msgid "External User the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:161
+msgid "RunAs External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:162
+msgid "External User the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:166
+msgid "RunAs External Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:167
+msgid "External Group the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:175
+msgid ""
+"\n"
+" Create new Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "Added sudo rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/taskgroup.py:51
-msgid "Task Groups"
+#: ipalib/plugins/sudorule.py:189
+msgid ""
+"\n"
+" Delete Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:197
+msgid ""
+"\n"
+" Modify Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:56
-msgid "Task-group name"
+#: ipalib/plugins/sudorule.py:205
+msgid ""
+"\n"
+" Search for Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:63
-msgid "Task-group description"
+#: ipalib/plugins/sudorule.py:213
+msgid ""
+"\n"
+" Display Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:74
-msgid "Member role-groups"
+#: ipalib/plugins/sudorule.py:221
+msgid ""
+"\n"
+" Enable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:87
-#, python-format
-msgid "Added taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:247
+msgid ""
+"\n"
+" Disable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:97
-#, python-format
-msgid "Deleted taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
+msgid ""
+"\n"
+" Add commands and sudo command groups affected by Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:107
-#, python-format
-msgid "Modified taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
+msgid ""
+"\n"
+" Remove commands and sudo command groups affected by Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:118
-#, python-format
-msgid "%(count)d taskgroup matched"
-msgid_plural "%(count)d taskgroups matched"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/sudorule.py:313
+msgid ""
+"\n"
+" Add users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:349
+msgid ""
+"\n"
+" Remove users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:383
+msgid ""
+"\n"
+" Add hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:419
+msgid ""
+"\n"
+" Remove hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:453
+msgid ""
+"\n"
+" Add user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:489
+msgid ""
+"\n"
+" Remove user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:523
+msgid ""
+"\n"
+" Add group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:559
+msgid ""
+"\n"
+" Remove group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:593
+msgid ""
+"\n"
+" Add an option to the Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
+msgid "Sudo Option"
+msgstr ""
-#: ipalib/plugins/user.py:84
+#: ipalib/plugins/sudorule.py:635
+msgid ""
+"\n"
+" Remove an option from Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:20
+msgid ""
+"\n"
+"Users\n"
+"\n"
+"Manage user entries. All users are POSIX users.\n"
+"\n"
+"IPA supports a wide range of username formats, but you need to be aware of "
+"any\n"
+"restrictions that may apply to your particular environment. For example,\n"
+"usernames that start with a digit or usernames that exceed a certain length\n"
+"may cause problems for some UNIX systems.\n"
+"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n"
+"\n"
+"Disabling a user account prevents that user from obtaining new Kerberos\n"
+"credentials. It does not invalidate any credentials that have already\n"
+"been issued.\n"
+"\n"
+"Password management is not a part of this module. For more information\n"
+"about this topic please see: ipa help passwd\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1\n"
+"\n"
+" Find all users whose entries include the string \"Tim\":\n"
+" ipa user-find Tim\n"
+"\n"
+" Find all users with \"Tim\" as the first name:\n"
+" ipa user-find --first=Tim\n"
+"\n"
+" Disable a user account:\n"
+" ipa user-disable tuser1\n"
+"\n"
+" Enable a user account:\n"
+" ipa user-enable tuser1\n"
+"\n"
+" Delete a user:\n"
+" ipa user-del tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/user.py:79
+msgid ""
+"\n"
+" User object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:116
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:91
+#: ipalib/plugins/user.py:123
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:95
+#: ipalib/plugins/user.py:127
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:103
+#: ipalib/plugins/user.py:130
+msgid "Full name"
+msgstr ""
+
+#: ipalib/plugins/user.py:135
+msgid "Display name"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "Initials"
+msgstr ""
+
+#: ipalib/plugins/user.py:146
+msgid "Home directory"
+msgstr ""
+
+#: ipalib/plugins/user.py:150
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:109
+#: ipalib/plugins/user.py:156
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:114
+#: ipalib/plugins/user.py:161
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:120
+#: ipalib/plugins/user.py:168
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:124
-msgid "Password"
-msgstr ""
-
-#: ipalib/plugins/user.py:125
-msgid "Set the user password"
+#: ipalib/plugins/user.py:173
+msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:132
+#: ipalib/plugins/user.py:180
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:133
+#: ipalib/plugins/user.py:181
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:139
-msgid "Street address"
+#: ipalib/plugins/user.py:188
+msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:142
-msgid "Groups"
+#: ipalib/plugins/user.py:193
+msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:146
-msgid "Netgroups"
+#: ipalib/plugins/user.py:197
+msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:150
-msgid "Rolegroups"
+#: ipalib/plugins/user.py:201
+msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:154
-msgid "Taskgroups"
+#: ipalib/plugins/user.py:204
+msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:159
+#: ipalib/plugins/user.py:208
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:211
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:163
+#: ipalib/plugins/user.py:214
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:166
+#: ipalib/plugins/user.py:218
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:177
-#, python-format
+#: ipalib/plugins/user.py:222
+msgid "Org. Unit"
+msgstr ""
+
+#: ipalib/plugins/user.py:225
+msgid "Job Title"
+msgstr ""
+
+#: ipalib/plugins/user.py:228
+msgid "Manager"
+msgstr ""
+
+#: ipalib/plugins/user.py:231
+msgid "Car License"
+msgstr ""
+
+#: ipalib/plugins/user.py:234
+msgid "Account disabled"
+msgstr ""
+
+#: ipalib/plugins/user.py:258
+msgid ""
+"\n"
+" Given a userid verify the user's existence and return the dn.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:276
+msgid "manager %(manager)s not found"
+msgstr ""
+
+#: ipalib/plugins/user.py:281
+msgid ""
+"\n"
+" Convert a manager dn into a userid\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:295
+msgid ""
+"\n"
+" Add a new user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:298
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:226
-#, python-format
+#: ipalib/plugins/user.py:303
+msgid "Don't create user private group"
+msgstr ""
+
+#: ipalib/plugins/user.py:333
+msgid "can be at most %(len)d characters"
+msgstr ""
+
+#: ipalib/plugins/user.py:400
+msgid ""
+"\n"
+" Delete a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:404
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:240
-#, python-format
+#: ipalib/plugins/user.py:413
+msgid ""
+"\n"
+" Modify a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:417
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:252
+#: ipalib/plugins/user.py:437
+msgid ""
+"\n"
+" Search for users.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:444
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:253
+#: ipalib/plugins/user.py:445
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:263
-#, python-format
+#: ipalib/plugins/user.py:463
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:283
-#, python-format
+#: ipalib/plugins/user.py:471
+msgid ""
+"\n"
+" Display information about a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:484
+msgid ""
+"\n"
+" Disable a user account.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:489
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:309
-#, python-format
+#: ipalib/plugins/user.py:507
+msgid ""
+"\n"
+" Enable a user account.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:512
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipaserver/install/certs.py:599 ipaserver/plugins/dogtag.py:1313
-#: ipaserver/plugins/dogtag.py:1398 ipaserver/plugins/dogtag.py:1463
-#: ipaserver/plugins/dogtag.py:1543 ipaserver/plugins/dogtag.py:1602
+#: ipalib/plugins/user.py:529
+msgid ""
+"\n"
+" Unlock a user account\n"
+"\n"
+" An account may become locked if the password is entered incorrectly too\n"
+" many times within a specific time period as controlled by password\n"
+" policy. A locked account is a temporary condition and may be unlocked "
+"by\n"
+" an administrator.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:538
+msgid "Unlocked account \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/virtual.py:20
+msgid ""
+"\n"
+"Base classes for non-LDAP backend plugins.\n"
+msgstr ""
+
+#: ipalib/plugins/virtual.py:28
+msgid ""
+"\n"
+" A command that doesn't use the LDAP backend but wants to use the\n"
+" LDAP access control system to make authorization decisions.\n"
+"\n"
+" The class variable operation is the commonName attribute of the\n"
+" entry to be tested against.\n"
+"\n"
+" In advance, you need to create an entry of the form:\n"
+" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
+"\n"
+" Ex.\n"
+" cn=request certificate, cn=virtual operations,cn=etc, dc=example, "
+"dc=com\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/virtual.py:44
+msgid ""
+"\n"
+" Perform an LDAP query to determine authorization.\n"
+"\n"
+" This should be executed before any actual work is done.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/xmlclient.py:21
+msgid ""
+"\n"
+"XML-RPC client plugin.\n"
+msgstr ""
+
+#: ipalib/cli.py:581
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:590
+msgid "Cancelled."
+msgstr ""
+
+#: ipalib/cli.py:819
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1117
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:300
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:318
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:334
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:356
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:372
+#, python-format
+msgid "unknown command %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:389 ipalib/errors.py:414
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:405
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:423
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:439
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:465
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:482
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:498
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:514
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:530
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:546
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:562
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:578
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:597
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:641
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:661
+#, python-format
+msgid "command %(name)r takes at most %(count)d argument"
+msgid_plural "command %(name)r takes at most %(count)d arguments"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/errors.py:691
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:707
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:723 ipalib/errors.py:739
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:755
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:764
+msgid "Passwords do not match"
+msgstr ""
+
+#: ipalib/errors.py:773
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:782
+msgid "Client is not configured. Run ipa-client-install."
+msgstr ""
+
+#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
+#: ipalib/errors.py:1424 ipalib/errors.py:1441
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:826
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:842
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:858
+#, python-format
+msgid ""
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:874
+msgid ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr ""
+
+#: ipalib/errors.py:890
+msgid "This command requires root access"
+msgstr ""
+
+#: ipalib/errors.py:906
+msgid "This is already a posix group"
+msgstr ""
+
+#: ipalib/errors.py:922
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:938
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:954
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:970
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:986
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1002
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1018
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1034
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1066
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1082
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1098
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1113
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1128
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1160
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1176
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1192
+#, python-format
+msgid ""
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1216
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1240
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1256
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1272
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1288
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1303
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1318
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1334
+#, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr ""
+
+#: ipalib/errors.py:1350
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1366
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1391
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1407
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1458
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1474
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:398
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:850
+msgid ""
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:856
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:985
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:296
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:299
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:901
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1002
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1054
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1064
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1074
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1097
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1107
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1174
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1192
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1208
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1218
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1228
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1246
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1277
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1287
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1297
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1315
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1355
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/util.py:200
+#, python-format
+msgid "Permission denied: %(file)s"
+msgstr ""
+
+#: ipalib/x509.py:174
+#, python-format
+msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
+msgstr ""
+
+#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
+#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
+#: ipaserver/plugins/dogtag.py:1600
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -1994,27 +7227,27 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
-#: ipaserver/plugins/selfsign.py:98
+#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
"Request subject \"%(request_subject)s\" does not match the form "
"\"%(subject_base)s\""
msgstr ""
-#: ipaserver/plugins/selfsign.py:103
+#: ipaserver/plugins/selfsign.py:104
#, python-format
msgid "unable to decode csr: %s"
msgstr ""
-#: ipaserver/plugins/selfsign.py:124 ipaserver/plugins/selfsign.py:139
+#: ipaserver/plugins/selfsign.py:125 ipaserver/plugins/selfsign.py:140
msgid "file operation"
msgstr ""
-#: ipaserver/plugins/selfsign.py:153
+#: ipaserver/plugins/selfsign.py:154
msgid "cannot obtain next serial number"
msgstr ""
-#: ipaserver/plugins/selfsign.py:188
+#: ipaserver/plugins/selfsign.py:189
msgid "certutil failure"
msgstr ""
@@ -2028,543 +7261,573 @@ msgstr ""
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:75
+#: ipa-client/config.c:68
+#, c-format
+msgid "out of memory\n"
+msgstr ""
+
+#: ipa-client/config.c:79
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:138 ipa-client/ipa-getkeytab.c:838
+#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
+#: ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:146
+#: ipa-client/ipa-getkeytab.c:155
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:164 ipa-client/ipa-getkeytab.c:179
+#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:194
+#: ipa-client/ipa-getkeytab.c:203
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:209
+#: ipa-client/ipa-getkeytab.c:218
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:235
+#: ipa-client/ipa-getkeytab.c:245
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:297
+#: ipa-client/ipa-getkeytab.c:307
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:310 ipa-client/ipa-getkeytab.c:327
-#: ipa-client/ipa-getkeytab.c:335 ipa-client/ipa-getkeytab.c:372
+#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
+#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:317 ipa-client/ipa-getkeytab.c:350
+#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
+#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
+#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
+#: ipa-client/ipa-join.c:819
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:361
+#: ipa-client/ipa-getkeytab.c:371
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:481
+#: ipa-client/ipa-getkeytab.c:492
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:496
+#: ipa-client/ipa-getkeytab.c:507
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:534
+#: ipa-client/ipa-getkeytab.c:545
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:541
+#: ipa-client/ipa-getkeytab.c:552
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:565
+#: ipa-client/ipa-getkeytab.c:576
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:572
+#: ipa-client/ipa-getkeytab.c:583
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:579
+#: ipa-client/ipa-getkeytab.c:596
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:589
+#: ipa-client/ipa-getkeytab.c:606
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:605 ipa-client/ipa-getkeytab.c:618
-#: ipa-client/ipa-getkeytab.c:625 ipa-client/ipa-getkeytab.c:632
+#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
+#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:638 ipa-client/ipa-getkeytab.c:648
+#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655
+#: ipa-client/ipa-getkeytab.c:672
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:674
+#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:715
+#: ipa-client/ipa-getkeytab.c:736
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:721
+#: ipa-client/ipa-getkeytab.c:742
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781
+#: ipa-client/ipa-getkeytab.c:778
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782
+#: ipa-client/ipa-getkeytab.c:779
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:189
+#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:787
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:788
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:790
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:794
+#: ipa-client/ipa-getkeytab.c:791
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:796
+#: ipa-client/ipa-getkeytab.c:793
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:825 ipa-client/ipa-rmkeytab.c:207
-#, c-format
-msgid "Kerberos context initialization failed\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:837
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:845
+#: ipa-client/ipa-getkeytab.c:841
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:864
+#: ipa-client/ipa-getkeytab.c:860
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:877
+#: ipa-client/ipa-getkeytab.c:873
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. -P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:889
+#: ipa-client/ipa-getkeytab.c:885
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:897
+#: ipa-client/ipa-getkeytab.c:893
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:905
+#: ipa-client/ipa-getkeytab.c:901
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:913
+#: ipa-client/ipa-getkeytab.c:909
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:920
+#: ipa-client/ipa-getkeytab.c:916
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:939
+#: ipa-client/ipa-getkeytab.c:935
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:948
+#: ipa-client/ipa-getkeytab.c:944
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:954
+#: ipa-client/ipa-getkeytab.c:950
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:67
+#: ipa-client/ipa-join.c:65
#, c-format
msgid "No permission to join this host to the IPA domain.\n"
msgstr ""
-#: ipa-client/ipa-join.c:104 ipa-client/ipa-join.c:116
+#: ipa-client/ipa-join.c:94 ipa-client/ipa-join.c:106
#, c-format
msgid "No write permissions on keytab file '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:121
+#: ipa-client/ipa-join.c:111
#, c-format
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:200
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#, c-format
+msgid "Out of memory!"
+msgstr ""
+
+#: ipa-client/ipa-join.c:204
+#, c-format
+msgid "Unable to initialize connection to ldap server: %s"
+msgstr ""
+
+#: ipa-client/ipa-join.c:210
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:206
+#: ipa-client/ipa-join.c:216
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:236
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:249
+#: ipa-client/ipa-join.c:269
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:259 ipa-client/ipa-join.c:311
+#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:302
+#: ipa-client/ipa-join.c:322
#, c-format
msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:368
+#: ipa-client/ipa-join.c:390
#, c-format
msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:377
+#: ipa-client/ipa-join.c:399
#, c-format
msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:385
+#: ipa-client/ipa-join.c:407
#, c-format
msgid "Unable to make an LDAP connection to %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:394
+#: ipa-client/ipa-join.c:432
#, c-format
msgid "Searching with %s in %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:400
+#: ipa-client/ipa-join.c:438
#, c-format
msgid "ldap_search_ext_s: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:408
+#: ipa-client/ipa-join.c:446
#, c-format
msgid "Unable to find host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:415
+#: ipa-client/ipa-join.c:453
#, c-format
msgid "Unable to get binddn for host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:428
+#: ipa-client/ipa-join.c:466
#, c-format
msgid "Host already has principal, trying bind anyway\n"
msgstr ""
-#: ipa-client/ipa-join.c:442 ipa-client/ipa-join.c:579
+#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:484
#, c-format
msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:457
+#: ipa-client/ipa-join.c:495
#, c-format
msgid "principal not found in host entry\n"
msgstr ""
-#: ipa-client/ipa-join.c:564
+#: ipa-client/ipa-join.c:618
#, c-format
msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:646 ipa-client/ipa-join.c:823
+#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:662 ipa-client/ipa-join.c:838
+#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:671 ipa-client/ipa-join.c:848
+#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:679
+#: ipa-client/ipa-join.c:732
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:689
+#: ipa-client/ipa-join.c:741
+#, c-format
+msgid "Error getting default Kerberos realm: %s.\n"
+msgstr ""
+
+#: ipa-client/ipa-join.c:759
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:707
+#: ipa-client/ipa-join.c:777
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:718
+#: ipa-client/ipa-join.c:788
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:726
+#: ipa-client/ipa-join.c:796
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:769
+#: ipa-client/ipa-join.c:846
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:772
+#: ipa-client/ipa-join.c:849
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:854
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:855
+#: ipa-client/ipa-join.c:932
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:863
+#: ipa-client/ipa-join.c:940
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not "
"provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:877
+#: ipa-client/ipa-join.c:954
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:906
+#: ipa-client/ipa-join.c:983
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:909
+#: ipa-client/ipa-join.c:986
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:912
+#: ipa-client/ipa-join.c:989
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:924
+#: ipa-client/ipa-join.c:1001
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:930
+#: ipa-client/ipa-join.c:1007
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "Print the raw XML-RPC output"
+#: ipa-client/ipa-join.c:1042
+msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "XML-RPC debugging Output"
+#: ipa-client/ipa-join.c:1044
+msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:967
-msgid "Unenroll this host"
-msgstr ""
-
-#: ipa-client/ipa-join.c:967
+#: ipa-client/ipa-join.c:1046
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Use this hostname instead of the node name"
+#: ipa-client/ipa-join.c:1048
+msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Host Name"
+#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:971
+#: ipa-client/ipa-join.c:1050
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:971
-msgid "IPA Server Name"
+#: ipa-client/ipa-join.c:1052
+msgid "Specifies where to store keytab information."
+msgstr ""
+
+#: ipa-client/ipa-join.c:1052
+msgid "filename"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1054
+msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:44
+#: ipa-client/ipa-join.c:1054
+msgid "password"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:46
+#: ipa-client/ipa-rmkeytab.c:45
#, c-format
msgid "krb5_parse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:56
+#: ipa-client/ipa-rmkeytab.c:55
#, c-format
msgid "Removing principal %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:69
+#: ipa-client/ipa-rmkeytab.c:68
#, c-format
msgid "Failed to open keytab\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:73
+#: ipa-client/ipa-rmkeytab.c:72
#, c-format
msgid "principal not found\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:75
+#: ipa-client/ipa-rmkeytab.c:74
#, c-format
msgid "krb5_kt_get_entry %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:83
+#: ipa-client/ipa-rmkeytab.c:82
#, c-format
msgid "Unable to remove entry\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:85
+#: ipa-client/ipa-rmkeytab.c:84
#, c-format
msgid "kvno %d\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:86
+#: ipa-client/ipa-rmkeytab.c:85
#, c-format
msgid "krb5_kt_remove_entry %d: %s\n"
msgstr ""
@@ -2579,33 +7842,38 @@ msgstr ""
msgid "krb5_unparse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:143
+#, c-format
+msgid "realm not found\n"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Print debugging information"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Debugging output"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Remove all principals in this realm"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Realm name"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:241
+#: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237
#, c-format
-msgid "Failed to open keytab '%s'\n"
+msgid "Failed to open keytab '%s': %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:255
+#: ipa-client/ipa-rmkeytab.c:253
#, c-format
msgid "Closing keytab failed\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:257
+#: ipa-client/ipa-rmkeytab.c:255
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
diff --git a/install/po/ru.po b/install/po/ru.po
index f1d916ff8..44be75f9b 100644
--- a/install/po/ru.po
+++ b/install/po/ru.po
@@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: ipa\n"
"Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/"
"newticket\n"
-"POT-Creation-Date: 2010-10-13 14:22-0400\n"
+"POT-Creation-Date: 2011-06-06 13:27-0400\n"
"PO-Revision-Date: 2010-02-12 16:31+0000\n"
"Last-Translator: Andrew Martynov <andrewm@inventa.ru>\n"
"Language-Team: Russian <trans-ru@fedoraproject.org>\n"
@@ -19,1530 +19,4815 @@ msgstr ""
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
"X-Generator: Lokalize 1.0\n"
-#: ipalib/cli.py:507
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr "Повторно введите %(label)s для проверки: "
+#: ipalib/plugins/__init__.py:20
+msgid ""
+"\n"
+"Sub-package containing all core plugins.\n"
+msgstr ""
-#: ipalib/cli.py:511 ipa-client/ipa-getkeytab.c:730
-#, c-format
-msgid "Passwords do not match!"
-msgstr "Пароли не совпадают!"
+#: ipalib/plugins/aci.py:20
+msgid ""
+"\n"
+"Directory Server Access Control Instructions (ACIs)\n"
+"\n"
+"ACIs are used to allow or deny access to information. This module is\n"
+"currently designed to allow, not deny, access.\n"
+"\n"
+"The aci commands are designed to grant permissions that allow updating\n"
+"existing entries or adding or deleting new ones. The goal of the ACIs\n"
+"that ship with IPA is to provide a set of low-level permissions that\n"
+"grant access to special groups called taskgroups. These low-level\n"
+"permissions can be combined into roles that grant broader access. These\n"
+"roles are another type of group, roles.\n"
+"\n"
+"For example, if you have taskgroups that allow adding and modifying users "
+"you\n"
+"could create a role, useradmin. You would assign users to the useradmin\n"
+"role to allow them to do the operations defined by the taskgroups.\n"
+"\n"
+"You can create ACIs that delegate permission so users in group A can write\n"
+"attributes on group B.\n"
+"\n"
+"The type option is a map that applies to all entries in the users, groups "
+"or\n"
+"host location. It is primarily designed to be used when granting add\n"
+"permissions (to write new entries).\n"
+"\n"
+"An ACI consists of three parts:\n"
+"1. target\n"
+"2. permissions\n"
+"3. bind rules\n"
+"\n"
+"The target is a set of rules that define which LDAP objects are being\n"
+"targeted. This can include a list of attributes, an area of that LDAP\n"
+"tree or an LDAP filter.\n"
+"\n"
+"The targets include:\n"
+"- attrs: list of attributes affected\n"
+"- type: an object type (user, group, host, service, etc)\n"
+"- memberof: members of a group\n"
+"- targetgroup: grant access to modify a specific group. This is primarily\n"
+" designed to enable users to add or remove members of a specific group.\n"
+"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
+"- subtree: Used to apply a rule across an entire set of objects. For "
+"example,\n"
+" to allow adding users you need to grant \"add\" permission to the subtree\n"
+" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
+" is a fail-safe for objects that may not be covered by the type option.\n"
+"\n"
+"The permissions define what the the ACI is allowed to do, and are one or\n"
+"more of:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
+"allows this to be any valid LDAP entry but we encourage the use of\n"
+"taskgroups so that the rights can be easily shared through roles.\n"
+"\n"
+"For a more thorough description of access controls see\n"
+"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control."
+"html\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
+"demonstrate how the various options work but this is done via the "
+"permission\n"
+"command-line now (see last example).\n"
+"\n"
+" Add an ACI so that the group \"secretaries\" can update the address on any "
+"user:\n"
+" ipa group-add --desc=\"Office secretaries\" secretaries\n"
+" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries "
+"--permissions=write --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Show the new ACI:\n"
+" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Add an ACI that allows members of the \"addusers\" permission to add new "
+"users:\n"
+" ipa aci-add --type=user --permission=addusers --permissions=add --"
+"prefix=none \"Add new users\"\n"
+"\n"
+" Add an ACI that allows members of the editors manage members of the admins "
+"group:\n"
+" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --"
+"group=editors --prefix=none \"Editors manage admins\"\n"
+"\n"
+" Add an ACI that allows members of the admin group to manage the street and "
+"zip code of those in the editors group:\n"
+" ipa aci-add --permissions=write --memberof=editors --group=admins --"
+"attrs=street,postalcode --prefix=none \"admins edit the address of editors"
+"\"\n"
+"\n"
+" Add an ACI that allows the admins group manage the street and zipcode of "
+"those who work for the boss:\n"
+" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode "
+"--filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --"
+"prefix=none \"Edit the address of those who work for the boss\"\n"
+"\n"
+" Add an entirely new kind of record to IPA that isn't covered by any of the "
+"--type options, creating a permission:\n"
+" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,"
+"cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
+"\n"
+"\n"
+"The show command shows the raw 389-ds ACI.\n"
+"\n"
+"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
+"must include all existing attributes as well. When doing an aci-mod the\n"
+"targetattr REPLACES the current attributes, it does not add to them.\n"
+"\n"
+msgstr ""
-#: ipalib/cli.py:516
-msgid "Cancelled."
-msgstr "Отменено."
+#: ipalib/plugins/aci.py:153
+#, fuzzy
+msgid "A list of ACI values"
+msgstr "Удален ACI \"%(value)s\""
-#: ipalib/errors.py:297
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr "%(cver)s клиент не совместим с %(sver)s сервером на %(server)r"
+#: ipalib/plugins/aci.py:172
+msgid ""
+"\n"
+" Given a name and a prefix construct an ACI name.\n"
+" "
+msgstr ""
-#: ipalib/errors.py:315
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr "получена неизвестная ошибка %(code)d от %(server)s: %(error)s"
+#: ipalib/plugins/aci.py:181
+msgid ""
+"\n"
+" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
+" and the actual ACI name.\n"
+" "
+msgstr ""
-#: ipalib/errors.py:331
-msgid "an internal error has occurred"
-msgstr "произошла внутренняя ошибка"
+#: ipalib/plugins/aci.py:193
+msgid ""
+"\n"
+" Pull the group name out of a memberOf filter\n"
+" "
+msgstr ""
-#: ipalib/errors.py:353
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr "произошла внутренняя ошибка на сервере %(server)r"
+#: ipalib/plugins/aci.py:204
+msgid ""
+"\n"
+" Given a name and a set of keywords construct an ACI.\n"
+" "
+msgstr ""
-#: ipalib/errors.py:369
-#, python-format
-msgid "unknown command %(name)r"
-msgstr "неизвестная команда %(name)r"
+#: ipalib/plugins/aci.py:215
+msgid "type, filter, subtree and targetgroup are mutually exclusive"
+msgstr "type, filter, subtree и targetgroup являются взаимоисключающими"
-#: ipalib/errors.py:386 ipalib/errors.py:411
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr "ошибка на сервере %(server)r: %(error)s"
+#: ipalib/plugins/aci.py:218
+#, fuzzy
+msgid "ACI prefix is required"
+msgstr "требуется %(name)r"
-#: ipalib/errors.py:402
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
-msgstr "невозможно подключиться к %(uri)r: %(error)s"
+#: ipalib/plugins/aci.py:221
+msgid ""
+"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
+"required"
+msgstr ""
+"требуется как минимум одно из: type, filter, subtree, targetgroup, attrs или "
+"memberof"
-#: ipalib/errors.py:420
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr "Неверный JSON-RPC запрос: %(error)s"
+#: ipalib/plugins/aci.py:224
+#, fuzzy
+msgid "filter and memberof are mutually exclusive"
+msgstr "type, filter, subtree и targetgroup являются взаимоисключающими"
-#: ipalib/errors.py:448
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr "Ошибка Kerberos: %(major)s/%(minor)s"
+#: ipalib/plugins/aci.py:230
+#, fuzzy
+msgid "group, permission and self are mutually exclusive"
+msgstr "group и taskgroup являются взаимоисключающими"
-#: ipalib/errors.py:465
-msgid "did not receive Kerberos credentials"
-msgstr "не получены регистрационные данные Kerberos"
+#: ipalib/plugins/aci.py:232
+#, fuzzy
+msgid "One of group, permission or self is required"
+msgstr "Требуется одно из: group или taskgroup"
-#: ipalib/errors.py:481
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr "Служба %(service)r не найдена в базе данных Kerberos"
+#: ipalib/plugins/aci.py:251
+msgid "Group '%s' does not exist"
+msgstr "Группа '%s' не существует"
-#: ipalib/errors.py:497
-msgid "No credentials cache found"
-msgstr "Кэш регистрационных данных не найден"
+#: ipalib/plugins/aci.py:273
+msgid "empty filter"
+msgstr ""
-#: ipalib/errors.py:513
-msgid "Ticket expired"
-msgstr "Срок действия билета истек"
+#: ipalib/plugins/aci.py:294
+#, fuzzy
+msgid "Syntax Error: %(error)s"
+msgstr "Операция с сертификатом не может быть завершена: %(error)s"
-#: ipalib/errors.py:529
-msgid "Credentials cache permissions incorrect"
-msgstr "Права доступа на кэш регистрационных данных неверны"
+#: ipalib/plugins/aci.py:299
+msgid ""
+"Convert an ACI into its equivalent keywords.\n"
+"\n"
+" This is used for the modify operation so we can merge the\n"
+" incoming kw and existing ACI and pass the result to\n"
+" _make_aci().\n"
+" "
+msgstr ""
-#: ipalib/errors.py:545
-msgid "Bad format in credentials cache"
-msgstr "Ошибочный формат в кэше регистрационных данных "
+#: ipalib/plugins/aci.py:379
+msgid "ACI with name \"%s\" not found"
+msgstr "ACI с именем \"%s\" не найден"
-#: ipalib/errors.py:561
-msgid "Cannot resolve KDC for requested realm"
-msgstr "Не могу определить KDC для запрошенной области (realm)"
+#: ipalib/plugins/aci.py:400
+msgid "ACI prefix"
+msgstr ""
-#: ipalib/errors.py:580
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr "Недостаточно прав для доступа: %(info)s"
+#: ipalib/plugins/aci.py:401
+msgid ""
+"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
+"none)"
+msgstr ""
-#: ipalib/errors.py:624
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr "команде %(name)r не требуются параметры"
+#: ipalib/plugins/aci.py:407
+msgid ""
+"\n"
+" ACI object.\n"
+" "
+msgstr ""
-#: ipalib/errors.py:644
-#, python-format
-msgid "command %(name)r takes at most %(count)d argument"
-msgid_plural "command %(name)r takes at most %(count)d arguments"
-msgstr[0] "команда %(name)r принимает не более %(count)d аргумента"
-msgstr[1] "команда %(name)r принимает не более %(count)d аргументов"
-msgstr[2] "команда %(name)r принимает не более %(count)d аргументов"
+#: ipalib/plugins/aci.py:412
+msgid "ACIs"
+msgstr ""
-#: ipalib/errors.py:674
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr "наложение аргументов и параметров: %(names)r"
+#: ipalib/plugins/aci.py:417
+msgid "ACI name"
+msgstr ""
-#: ipalib/errors.py:690
-#, python-format
-msgid "%(name)r is required"
-msgstr "требуется %(name)r"
+#: ipalib/plugins/aci.py:422
+msgid "Permission"
+msgstr ""
-#: ipalib/errors.py:706 ipalib/errors.py:722
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr "неверный(ое) %(name)r: %(error)s"
+#: ipalib/plugins/aci.py:423
+msgid "Permission ACI grants access to"
+msgstr ""
-#: ipalib/errors.py:738
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr "api не предоставляет такого пространства имен (namespace): %(name)r"
+#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+msgid "User group"
+msgstr ""
-#: ipalib/errors.py:747
-msgid "Passwords do not match"
-msgstr "Пароли не совпадают"
+#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+msgid "User group ACI grants access to"
+msgstr ""
-#: ipalib/errors.py:755
-msgid "Command not implemented"
-msgstr "Команда пока не реализована"
+#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
+#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
+#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+msgid "Permissions"
+msgstr ""
-#: ipalib/errors.py:783 ipalib/errors.py:1023 ipalib/errors.py:1254
-#, python-format
-msgid "%(reason)s"
-msgstr "%(reason)s"
+#: ipalib/plugins/aci.py:433
+msgid ""
+"comma-separated list of permissions to grant(read, write, add, delete, all)"
+msgstr ""
-#: ipalib/errors.py:799
-msgid "This entry already exists"
-msgstr "Такая запись уже существует"
+#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
+#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+msgid "Attributes"
+msgstr ""
-#: ipalib/errors.py:815
-msgid "You must enroll a host in order to create a host service"
+#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
+#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+msgid "Comma-separated list of attributes"
msgstr ""
-"Для того чтобы создать службу для узла, вам необходимо зарегистрировать этот "
-"узел"
-#: ipalib/errors.py:831
-#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
+#: ipalib/plugins/permission.py:131
+msgid "Type"
msgstr ""
-"Учетная запись службы не представлена в форме: служба/полностью-определенное-"
-"имя: %(reason)s"
-#: ipalib/errors.py:847
-msgid ""
-"The realm for the principal does not match the realm for this IPA server"
-msgstr "Область (realm) для учетной записи не совпадает с областью IPA сервера"
+#: ipalib/plugins/aci.py:445
+msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
+msgstr ""
-#: ipalib/errors.py:863
-msgid "This command requires root access"
-msgstr "Этой команде требуются права администратора"
+#: ipalib/plugins/aci.py:450
+msgid "Member of"
+msgstr ""
-#: ipalib/errors.py:879
-msgid "This is already a posix group"
-msgstr "Уже является posix группой"
+#: ipalib/plugins/aci.py:451
+msgid "Member of a group"
+msgstr ""
-#: ipalib/errors.py:895
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
-msgstr "Учетная запись задана в форме отличной от user@REALM: %(principal)r"
+#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
+#: ipalib/plugins/permission.py:144
+msgid "Filter"
+msgstr ""
-#: ipalib/errors.py:911
-msgid "This entry is already unlocked"
-msgstr "Эта запись уже разблокирована"
+#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+msgid "Legal LDAP filter (e.g. ou=Engineering)"
+msgstr ""
-#: ipalib/errors.py:927
-msgid "This entry is already locked"
-msgstr "Эта запись уже заблокирована"
+#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+msgid "Subtree"
+msgstr ""
-#: ipalib/errors.py:943
-msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
+#: ipalib/plugins/aci.py:461
+msgid "Subtree to apply ACI to"
msgstr ""
-"Для этой записи установлен атрибут nsAccountLock, поэтому она не может быть "
-"заблокирована или разблокирована"
-#: ipalib/errors.py:959
-msgid "This entry is not a member of the group"
-msgstr "Эта запись не является членом группы"
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+msgid "Target group"
+msgstr ""
-#: ipalib/errors.py:975
-msgid "A group may not be a member of itself"
-msgstr "Группа не может входить в состав самой себя"
+#: ipalib/plugins/aci.py:466
+msgid "Group to apply ACI to"
+msgstr ""
-#: ipalib/errors.py:991
-msgid "This entry is already a member of the group"
-msgstr "Эта запись уже является членом группы"
+#: ipalib/plugins/aci.py:470
+msgid "Target your own entry (self)"
+msgstr ""
-#: ipalib/errors.py:1007
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr "Декодирование Base64 прошло с ошибкой: %(reason)s"
+#: ipalib/plugins/aci.py:471
+msgid "Apply ACI to your own entry (self)"
+msgstr ""
-#: ipalib/errors.py:1039
-msgid "A group may not be added as a member of itself"
-msgstr "Группа не может быть добавлена сама в себя"
+#: ipalib/plugins/aci.py:478
+msgid ""
+"\n"
+" Create new ACI.\n"
+" "
+msgstr ""
-#: ipalib/errors.py:1055
-msgid "The default users group cannot be removed"
-msgstr "Группа по умолчанию для пользователя не может быть удалена"
+#: ipalib/plugins/aci.py:482
+msgid "Created ACI \"%(value)s\""
+msgstr "Создан ACI \"%(value)s\""
-#: ipalib/errors.py:1071
-msgid "Host does not have corresponding DNS A record"
+#: ipalib/plugins/aci.py:487
+msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/errors.py:1086
-msgid "Deleting a managed group is not allowed. It must be detached first."
+#: ipalib/plugins/aci.py:493
+msgid ""
+"\n"
+" Execute the aci-create operation.\n"
+"\n"
+" Returns the entry as it will be created in LDAP.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: Keyword arguments for the other LDAP attributes.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1109
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr "нет команды или раздела справки для %(topic)r"
+#: ipalib/plugins/aci.py:533
+msgid ""
+"\n"
+" Delete ACI.\n"
+" "
+msgstr ""
-#: ipalib/errors.py:1133
-msgid "change collided with another change"
-msgstr "изменение противоречит другому сделанному изменению"
+#: ipalib/plugins/aci.py:538
+msgid "Deleted ACI \"%(value)s\""
+msgstr "Удален ACI \"%(value)s\""
-#: ipalib/errors.py:1149
-msgid "no modifications to be performed"
-msgstr "изменения не внесены"
+#: ipalib/plugins/aci.py:543
+msgid ""
+"\n"
+" Execute the aci-delete operation.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: unused\n"
+" "
+msgstr ""
-#: ipalib/errors.py:1165
-#, python-format
-msgid "%(desc)s:%(info)s"
-msgstr "%(desc)s:%(info)s"
+#: ipalib/plugins/aci.py:576
+msgid ""
+"\n"
+" Modify ACI.\n"
+" "
+msgstr ""
-#: ipalib/errors.py:1181
-msgid "limits exceeded for this query"
-msgstr "для этого запроса превышены ограничения"
+#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
+#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
+#: ipalib/plugins/selfservice.py:212
+msgid "ACI"
+msgstr ""
-#: ipalib/errors.py:1196
-#, python-format
-msgid "%(info)s"
-msgstr "%(info)s"
+#: ipalib/plugins/aci.py:588
+msgid "Modified ACI \"%(value)s\""
+msgstr "Изменен ACI \"%(value)s\""
-#: ipalib/errors.py:1221
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr "Операция с сертификатом не может быть завершена: %(error)s"
+#: ipalib/plugins/aci.py:633
+msgid ""
+"\n"
+" Search for ACIs.\n"
+"\n"
+" Returns a list of ACIs\n"
+"\n"
+" EXAMPLES:\n"
+"\n"
+" To find all ACIs that apply directly to members of the group ipausers:\n"
+" ipa aci-find --memberof=ipausers\n"
+"\n"
+" To find all ACIs that grant add access:\n"
+" ipa aci-find --permissions=add\n"
+"\n"
+" Note that the find command only looks for the given text in the set of\n"
+" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
+" For example, searching on memberof=ipausers will find all ACIs that\n"
+" have ipausers as a memberof. There may be other ACIs that apply to\n"
+" members of that group indirectly.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:653
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] "совпадает %(count)d ACI"
+msgstr[1] "совпадают %(count)d ACI"
+msgstr[2] "совпадают %(count)d ACI"
-#: ipalib/errors.py:1237
-#, fuzzy, python-format
-msgid "Certificate format error: %(error)s"
-msgstr "Операция с сертификатом не может быть завершена: %(error)s"
+#: ipalib/plugins/aci.py:823
+msgid ""
+"\n"
+" Display a single ACI given an ACI name.\n"
+" "
+msgstr ""
-#: ipalib/frontend.py:380
-msgid "Results are truncated, try a more specific search"
-msgstr "Результаты усечены. Попробуйте задать более точные условия поиска"
+#: ipalib/plugins/aci.py:837
+msgid ""
+"\n"
+" Execute the aci-show operation.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param uid: The login name of the user to retrieve.\n"
+" :param kw: unused\n"
+" "
+msgstr ""
-#: ipalib/frontend.py:797 ipalib/plugins/misc.py:47
-msgid "retrieve all attributes"
+#: ipalib/plugins/aci.py:865
+msgid ""
+"\n"
+" Rename an ACI.\n"
+" "
msgstr ""
-#: ipalib/frontend.py:803
-msgid "print entries as stored on the server"
+#: ipalib/plugins/aci.py:878
+msgid "New ACI name"
msgstr ""
-#: ipalib/frontend.py:940
-msgid "Forward to server instead of running locally"
+#: ipalib/plugins/aci.py:882
+#, fuzzy
+msgid "Renamed ACI to \"%(value)s\""
+msgstr "Создан ACI \"%(value)s\""
+
+#: ipalib/plugins/automount.py:20
+msgid ""
+"\n"
+"Automount\n"
+"\n"
+"Stores automount(8) configuration for autofs(8) in IPA.\n"
+"\n"
+"The base of an automount configuration is the configuration file auto."
+"master.\n"
+"This is also the base location in IPA. Multiple auto.master configurations\n"
+"can be stored in separate locations. A location is implementation-specific\n"
+"with the default being a location named 'default'. For example, you can "
+"have\n"
+"locations by geographic region, by floor, by type, etc.\n"
+"\n"
+"Automount has three basic object types: locations, maps and keys.\n"
+"\n"
+"A location defines a set of maps anchored in auto.master. This allows you\n"
+"to store multiple automount configurations. A location in itself isn't\n"
+"very interesting, it is just a point to start a new automount map.\n"
+"\n"
+"A map is roughly equivalent to a discrete automount file and provides\n"
+"storage for keys.\n"
+"\n"
+"A key is a mount point associated with a map.\n"
+"\n"
+"When a new location is created, two maps are automatically created for\n"
+"it: auto.master and auto.direct. auto.master is the root map for all\n"
+"automount maps for the location. auto.direct is the default map for\n"
+"direct mounts and is mounted on /-.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"Locations:\n"
+"\n"
+" Create a named location, \"Baltimore\":\n"
+" ipa automountlocation-add baltimore\n"
+"\n"
+" Display the new location:\n"
+" ipa automountlocation-show baltimore\n"
+"\n"
+" Find available locations:\n"
+" ipa automountlocation-find\n"
+"\n"
+" Remove a named automount location:\n"
+" ipa automountlocation-del baltimore\n"
+"\n"
+" Show what the automount maps would look like if they were in the "
+"filesystem:\n"
+" ipa automountlocation-tofiles baltimore\n"
+"\n"
+" Import an existing configuration into a location:\n"
+" ipa automountlocation-import baltimore /etc/auto.master\n"
+"\n"
+" The import will fail if any duplicate entries are found. For\n"
+" continuous operation where errors are ignored, use the --continue\n"
+" option.\n"
+"\n"
+"Maps:\n"
+"\n"
+" Create a new map, \"auto.share\":\n"
+" ipa automountmap-add baltimore auto.share\n"
+"\n"
+" Display the new map:\n"
+" ipa automountmap-show baltimore auto.share\n"
+"\n"
+" Find maps in the location baltimore:\n"
+" ipa automountmap-find baltimore\n"
+"\n"
+" Remove the auto.share map:\n"
+" ipa automountmap-del baltimore auto.share\n"
+"\n"
+"Keys:\n"
+"\n"
+" Create a new key for the auto.share map in location baltimore. This ties\n"
+" the map we previously created to auto.master:\n"
+" ipa automountkey-add baltimore auto.master --key=/share --info=auto."
+"share\n"
+"\n"
+" Create a new key for our auto.share map, an NFS mount for man pages:\n"
+" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,"
+"rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n"
+"\n"
+" Find all keys for the auto.share map:\n"
+" ipa automountkey-find baltimore auto.share\n"
+"\n"
+" Find all direct automount keys:\n"
+" ipa automountkey-find baltimore --key=/-\n"
+"\n"
+" Remove the man key from the auto.share map:\n"
+" ipa automountkey-del baltimore auto.share --key=man\n"
+msgstr ""
+
+#: ipalib/plugins/automount.py:182
+msgid ""
+"\n"
+" Location container for automount maps.\n"
+" "
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
+#: ipalib/plugins/automount.py:190
+msgid "Automount Locations"
msgstr ""
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
+#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+msgid "Location"
msgstr ""
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
+#: ipalib/plugins/automount.py:197
+msgid "Automount location name."
msgstr ""
-#: ipalib/parameters.py:295
-msgid "incorrect type"
-msgstr "неверный тип"
+#: ipalib/plugins/automount.py:206
+msgid ""
+"\n"
+" Create a new automount location.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:298
-msgid "Only one value is allowed"
-msgstr "Допускается только одно значение"
+#: ipalib/plugins/automount.py:221
+msgid ""
+"\n"
+" Delete an automount location.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:877
-msgid "must be True or False"
-msgstr "должно быть либо True, либо False"
+#: ipalib/plugins/automount.py:229
+msgid ""
+"\n"
+" Display an automount location.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:978
-msgid "must be an integer"
-msgstr "должно быть целое"
+#: ipalib/plugins/automount.py:237
+msgid ""
+"\n"
+" Search for an automount location.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:1029
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr "должно быть не менее %(minvalue)d"
+#: ipalib/plugins/automount.py:245
+msgid ""
+"\n"
+" Generate automount files for a specific location.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:1039
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr "может быть не более %(maxvalue)d"
+#: ipalib/plugins/automount.py:308
+msgid ""
+"\n"
+" Import automount files for a specific location.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:1049
-msgid "must be a decimal number"
-msgstr "должно быть десятичным числом"
+#: ipalib/plugins/automount.py:314
+msgid "Master file"
+msgstr ""
-#: ipalib/parameters.py:1071
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr "должно быть не менее %(minvalue)f"
+#: ipalib/plugins/automount.py:315
+msgid "Automount master file."
+msgstr ""
-#: ipalib/parameters.py:1081
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr "может быть не более %(maxvalue)f"
+#: ipalib/plugins/automount.py:322
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues."
+msgstr ""
-#: ipalib/parameters.py:1145
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr "должно совпадать с шаблоном \"%(pattern)s\""
+#: ipalib/plugins/automount.py:334
+msgid "File %(file)s not found"
+msgstr ""
-#: ipalib/parameters.py:1163
-msgid "must be binary data"
-msgstr "должно являться двоичными данными"
+#: ipalib/plugins/automount.py:341
+msgid ""
+"\n"
+" The basic idea is to read the master file and create all the maps\n"
+" we need, then read each map file and add all the keys for the map.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:1179
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr "должно содержать не менее %(minlength)d байт"
+#: ipalib/plugins/automount.py:492
+msgid ""
+"\n"
+" Automount map object.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:1189
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr "может содержать не более %(maxlength)d байт"
+#: ipalib/plugins/automount.py:505
+msgid "Map"
+msgstr ""
-#: ipalib/parameters.py:1199
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr "должно содержать точно %(length)d байт"
+#: ipalib/plugins/automount.py:506
+msgid "Automount map name."
+msgstr ""
-#: ipalib/parameters.py:1217
-msgid "must be Unicode text"
-msgstr "должно являться текстом Unicode"
+#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
+#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
+#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
+#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
+#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
+#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
+#: ipalib/plugins/sudorule.py:78
+msgid "Description"
+msgstr ""
-#: ipalib/parameters.py:1248
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr "должно быть не короче %(minlength)d символов"
+#: ipalib/plugins/automount.py:515
+msgid "Automount Maps"
+msgstr ""
-#: ipalib/parameters.py:1258
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr "может быть не длиннее %(maxlength)d символов"
+#: ipalib/plugins/automount.py:521
+msgid ""
+"\n"
+" Create a new automount map.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:1268
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr "должно быть точно %(length)d символов длинной"
+#: ipalib/plugins/automount.py:529
+msgid ""
+"\n"
+" Delete an automount map.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:1307
-#, python-format
-msgid "must be one of %(values)r"
-msgstr "должно являться одним из %(values)r"
+#: ipalib/plugins/automount.py:548
+msgid ""
+"\n"
+" Modify an automount map.\n"
+" "
+msgstr ""
-#: ipalib/plugins/aci.py:111
-#, fuzzy
-msgid "A list of ACI values"
-msgstr "Удален ACI \"%(value)s\""
+#: ipalib/plugins/automount.py:556
+msgid ""
+"\n"
+" Search for an automount map.\n"
+" "
+msgstr ""
-#: ipalib/plugins/aci.py:142
-msgid "type, filter, subtree and targetgroup are mutually exclusive"
-msgstr "type, filter, subtree и targetgroup являются взаимоисключающими"
+#: ipalib/plugins/automount.py:564
+msgid ""
+"\n"
+" Display an automount map.\n"
+" "
+msgstr ""
-#: ipalib/plugins/aci.py:145
+#: ipalib/plugins/automount.py:572
msgid ""
-"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
-"required"
+"\n"
+" Automount key object.\n"
+" "
msgstr ""
-"требуется как минимум одно из: type, filter, subtree, targetgroup, attrs или "
-"memberof"
-#: ipalib/plugins/aci.py:151
-#, fuzzy
-msgid "group, taskgroup and self are mutually exclusive"
-msgstr "group и taskgroup являются взаимоисключающими"
+#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
+#: ipalib/plugins/automount.py:850
+msgid "Key"
+msgstr ""
-#: ipalib/plugins/aci.py:153
-#, fuzzy
-msgid "One of group, taskgroup or self is required"
-msgstr "Требуется одно из: group или taskgroup"
+#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
+#: ipalib/plugins/automount.py:851
+msgid "Automount key name."
+msgstr ""
-#: ipalib/plugins/aci.py:172
-#, python-format
-msgid "Group '%s' does not exist"
-msgstr "Группа '%s' не существует"
+#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
+#: ipalib/plugins/automount.py:855
+msgid "Mount information"
+msgstr ""
-#: ipalib/plugins/aci.py:269
-#, python-format
-msgid "ACI with name \"%s\" not found"
-msgstr "ACI с именем \"%s\" не найден"
+#: ipalib/plugins/automount.py:597
+msgid "description"
+msgstr ""
-#: ipalib/plugins/aci.py:286
-msgid "ACIs"
+#: ipalib/plugins/automount.py:606
+msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/aci.py:291
-msgid "ACI name"
+#: ipalib/plugins/automount.py:607
+msgid ""
+"The key,info pair must be unique. A key named %(key)s with info %(info)s "
+"already exists"
msgstr ""
-#: ipalib/plugins/aci.py:296
-msgid "Taskgroup"
+#: ipalib/plugins/automount.py:608
+#, fuzzy
+msgid "key named %(key)s already exists"
+msgstr "Такая запись уже существует"
+
+#: ipalib/plugins/automount.py:609
+msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/aci.py:297
-msgid "Taskgroup ACI grants access to"
+#: ipalib/plugins/automount.py:659
+msgid ""
+"More than one entry with key %(key)s found, use --info to select specific "
+"entry."
msgstr ""
-#: ipalib/plugins/aci.py:301
-msgid "User group"
+#: ipalib/plugins/automount.py:717
+msgid ""
+"\n"
+" Create a new automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:302
-msgid "User group ACI grants access to"
+#: ipalib/plugins/automount.py:742
+msgid ""
+"\n"
+" Create a new indirect mount point.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:306
-msgid "Permissions"
+#: ipalib/plugins/automount.py:748
+msgid "Mount point"
+msgstr ""
+
+#: ipalib/plugins/automount.py:752
+msgid "Parent map"
msgstr ""
-#: ipalib/plugins/aci.py:307
+#: ipalib/plugins/automount.py:753
+msgid "Name of parent automount map (default: auto.master)."
+msgstr ""
+
+#: ipalib/plugins/automount.py:772
msgid ""
-"comma-separated list of permissions to grant(read, write, add, delete, all)"
+"\n"
+" Delete an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:313
-msgid "Attributes"
+#: ipalib/plugins/automount.py:803
+msgid ""
+"\n"
+" Modify an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:314
-msgid "Comma-separated list of attributes"
+#: ipalib/plugins/automount.py:809
+msgid "New mount information"
msgstr ""
-#: ipalib/plugins/aci.py:318
-msgid "Type"
+#: ipalib/plugins/automount.py:836
+msgid ""
+"\n"
+" Search for an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:319
-msgid "type of IPA object (user, group, host)"
+#: ipalib/plugins/automount.py:844
+msgid ""
+"\n"
+" Display an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:324
-msgid "Member of"
+#: ipalib/plugins/baseldap.py:19
+msgid ""
+"\n"
+"Base classes for LDAP plugins.\n"
msgstr ""
-#: ipalib/plugins/aci.py:325
-msgid "Member of a group"
+#: ipalib/plugins/baseldap.py:39
+msgid "Failed members"
msgstr ""
-#: ipalib/plugins/aci.py:329
-msgid "Filter"
+#: ipalib/plugins/baseldap.py:42
+msgid "Member users"
msgstr ""
-#: ipalib/plugins/aci.py:330
-msgid "Legal LDAP filter (e.g. ou=Engineering)"
+#: ipalib/plugins/baseldap.py:45
+msgid "Member groups"
msgstr ""
-#: ipalib/plugins/aci.py:334
-msgid "Subtree"
+#: ipalib/plugins/baseldap.py:48
+msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/aci.py:335
-msgid "Subtree to apply ACI to"
+#: ipalib/plugins/baseldap.py:51
+msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/aci.py:339
-msgid "Target group"
+#: ipalib/plugins/baseldap.py:54
+msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:340
-msgid "Group to apply ACI to"
+#: ipalib/plugins/baseldap.py:57
+msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:344
-msgid "Target your own entry (self)"
+#: ipalib/plugins/baseldap.py:66
+msgid "Roles"
msgstr ""
-#: ipalib/plugins/aci.py:345
-msgid "Apply ACI to your own entry (self)"
+#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
+#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
+#: ipalib/plugins/sudorule.py:143
+msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/aci.py:357
-#, python-format
-msgid "Created ACI \"%(value)s\""
-msgstr "Создан ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:75
+msgid "Granting privilege to roles"
+msgstr ""
-#: ipalib/plugins/aci.py:407
-#, python-format
-msgid "Deleted ACI \"%(value)s\""
-msgstr "Удален ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:78
+msgid "Member netgroups"
+msgstr ""
-#: ipalib/plugins/aci.py:447
-#, python-format
-msgid "Modified ACI \"%(value)s\""
-msgstr "Изменен ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:81
+msgid "Member of netgroups"
+msgstr ""
-#: ipalib/plugins/aci.py:519
-#, python-format
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
-msgstr[0] "совпадает %(count)d ACI"
-msgstr[1] "совпадают %(count)d ACI"
-msgstr[2] "совпадают %(count)d ACI"
+#: ipalib/plugins/baseldap.py:84
+msgid "Member services"
+msgstr ""
-#: ipalib/plugins/automount.py:103
-msgid "Automount"
+#: ipalib/plugins/baseldap.py:87
+msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/automount.py:109 ipalib/plugins/host.py:134
-msgid "Location"
+#: ipalib/plugins/baseldap.py:93
+#, fuzzy
+msgid "Member HBAC service groups"
+msgstr "Удалена rolegroup \"%(value)s\""
+
+#: ipalib/plugins/baseldap.py:102
+msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/automount.py:110
-msgid "Automount location name"
+#: ipalib/plugins/baseldap.py:105
+msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/automount.py:226
-msgid "Map"
+#: ipalib/plugins/baseldap.py:108
+msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/automount.py:227
-msgid "Automount map name"
+#: ipalib/plugins/baseldap.py:111
+msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/automount.py:232 ipalib/plugins/group.py:108
-#: ipalib/plugins/hbac.py:151 ipalib/plugins/hbacsvc.py:72
-#: ipalib/plugins/hbacsvcgroup.py:77 ipalib/plugins/host.py:124
-#: ipalib/plugins/hostgroup.py:81 ipalib/plugins/netgroup.py:96
-#: ipalib/plugins/rolegroup.py:90 ipalib/plugins/sudocmd.py:71
-#: ipalib/plugins/sudocmdgroup.py:77 ipalib/plugins/sudorule.py:58
-#: ipalib/plugins/taskgroup.py:62
-msgid "Description"
+#: ipalib/plugins/baseldap.py:114
+msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/automount.py:236
-msgid "Automount Maps"
+#: ipalib/plugins/baseldap.py:117
+msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid "Key"
+#: ipalib/plugins/baseldap.py:120
+msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/automount.py:309
-msgid "Automount key name"
+#: ipalib/plugins/baseldap.py:123
+msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/automount.py:314
-msgid "Mount information"
+#: ipalib/plugins/baseldap.py:126
+msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/automount.py:318
-msgid "description"
+#: ipalib/plugins/baseldap.py:141
+msgid "External host"
msgstr ""
-#: ipalib/plugins/automount.py:322
-msgid "Automount Keys"
+#: ipalib/plugins/baseldap.py:144
+msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/automount.py:342
-msgid "Mount point"
+#: ipalib/plugins/baseldap.py:147
+#, fuzzy
+msgid "Failed users/groups"
+msgstr "Группа по умолчанию для пользователя не может быть удалена"
+
+#: ipalib/plugins/baseldap.py:150
+msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/automount.py:346
-msgid "Parent map"
+#: ipalib/plugins/baseldap.py:153
+#, fuzzy
+msgid "Failed to remove"
+msgstr "Невозможно декодировать сертификат в записи"
+
+#: ipalib/plugins/baseldap.py:171
+msgid ""
+"\n"
+" Given a list of values in the form name=value, return a list of name.\n"
+" "
msgstr ""
-#: ipalib/plugins/automount.py:347
-msgid "Name of parent automount map (default: auto.master)"
+#: ipalib/plugins/baseldap.py:197
+msgid ""
+"\n"
+" When adding or removing reverse members we are faking an update to\n"
+" object A by updating the member attribute in object B. The memberof\n"
+" plugin makes this work by adding or removing the memberof attribute\n"
+" to/from object A, it just takes a little bit of time.\n"
+"\n"
+" This will loop for 6+ seconds, retrieving object A so we can see\n"
+" if all the memberof attributes have been updated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:241
+msgid ""
+"\n"
+" Object representing a LDAP entry.\n"
+" "
msgstr ""
-#: ipalib/plugins/baseldap.py:79
-#, python-format
+#: ipalib/plugins/baseldap.py:281
+msgid "Entry"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:283
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:80
-#, python-format
+#: ipalib/plugins/baseldap.py:284
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
-#, python-format
+#: ipalib/plugins/baseldap.py:285
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
-msgid "Add an attribute/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:286
+msgid "%(oname)s with name \"%(pkey)s\" already exists"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:415
+msgid ""
+"Add an attribute/value pair. Format is attr=value. The attribute must be "
+"part of the schema."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:420
+msgid ""
+"Set an attribute to a name/value pair. Format is attr=value.\n"
+"For multi-valued attributes, the command replaces the values already present."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:444
+msgid ""
+"\n"
+" If the set of objectclasses is limited enforce that only those\n"
+" are updated in entry_attrs (plus dn)\n"
+"\n"
+" allow_only tells us what mode to check in:\n"
+"\n"
+" If True then we enforce that the attributes must be in the list of\n"
+" allowed.\n"
+"\n"
+" If False then those attributes are not allowed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:474
+msgid ""
+"\n"
+" Callback registration interface\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:561
+msgid ""
+"\n"
+" Create a new entry in LDAP.\n"
+" "
msgstr ""
-#: ipalib/plugins/baseldap.py:155
-msgid "Set an attribute to an name/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:703
+msgid ""
+"\n"
+" Base class for commands that need to retrieve an existing entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:727
+msgid ""
+"\n"
+" Base class for commands that need to retrieve one or more existing "
+"entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/baseldap.py:359
+#: ipalib/plugins/baseldap.py:733
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:517
+#: ipalib/plugins/baseldap.py:750
+msgid ""
+"\n"
+" Retrieve an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
+#: ipalib/plugins/internal.py:232
+msgid "Rights"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+msgid ""
+"Display the access rights of this entry (requires --all). See ipa man page "
+"for details."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:821
+msgid ""
+"\n"
+" Update an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:837
+msgid "Rename"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:838
+msgid "Rename the %(ldap_obj_name)s object"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:957
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:674
+#: ipalib/plugins/baseldap.py:988
+msgid ""
+"\n"
+" Delete an LDAP entry and all of its direct subentries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1078
+msgid ""
+"\n"
+" Base class for member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1120
+msgid ""
+"\n"
+" Add other LDAP entries to members.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
+#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
+#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
msgid "Members that could not be added"
msgstr ""
-#: ipalib/plugins/baseldap.py:678
+#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:684 ipalib/plugins/baseldap.py:789
-msgid "Failed members"
+#: ipalib/plugins/baseldap.py:1226
+msgid ""
+"\n"
+" Remove LDAP entries from members.\n"
+" "
msgstr ""
-#: ipalib/plugins/baseldap.py:779
+#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:783
+#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:880
+#: ipalib/plugins/baseldap.py:1335
+msgid ""
+"\n"
+" Retrieve all LDAP entries matching the given criteria.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1344
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:881
+#: ipalib/plugins/baseldap.py:1345
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:887
+#: ipalib/plugins/baseldap.py:1351
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:888
+#: ipalib/plugins/baseldap.py:1352
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/cert.py:93
+#: ipalib/plugins/baseldap.py:1552
+msgid ""
+"\n"
+" Base class for reverse member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1574
+msgid ""
+"\n"
+" Add other LDAP entries to members in reverse.\n"
+"\n"
+" The call looks like \"add A to B\" but in fact executes\n"
+" add B to A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1654
+msgid "added"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1687
+msgid ""
+"\n"
+" Remove other LDAP entries from members in reverse.\n"
+"\n"
+" The call looks like \"remove A from B\" but in fact executes\n"
+" remove B from A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1767
+msgid "removed"
+msgstr ""
+
+#: ipalib/plugins/batch.py:21
+msgid ""
+"\n"
+"Plugin to make multiple ipa calls via one remote procedure call\n"
+"\n"
+"To run this code in the lite-server\n"
+"\n"
+"curl -H \"Content-Type:application/json\" -H \"Accept:application/"
+"json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /"
+"etc/ipa/ca.crt -d @batch_request.json -X POST http://"
+"localhost:8888/ipa/json\n"
+"\n"
+"where the contents of the file batch_request.json follow the below example\n"
+"\n"
+"{\"method\":\"batch\",\"params\":[[\n"
+" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
+" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all"
+"\":\"true\"}]},\n"
+" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
+" ],{}],\"id\":1}\n"
+"\n"
+"The format of the response is nested the same way. At the top you will see\n"
+" \"error\": null,\n"
+" \"id\": 1,\n"
+" \"result\": {\n"
+" \"count\": 3,\n"
+" \"results\": [\n"
+"\n"
+"\n"
+"And then a nested response for each IPA command method sent in the request\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/batch.py:61
+msgid "Nested Methods to execute"
+msgstr ""
+
+#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/plugins/cert.py:22
+msgid ""
+"\n"
+"IPA certificate operations\n"
+"\n"
+"Implements a set of commands for managing server SSL certificates.\n"
+"\n"
+"Certificate requests exist in the form of a Certificate Signing Request "
+"(CSR)\n"
+"in PEM format.\n"
+"\n"
+"If using the selfsign back end then the subject in the CSR needs to match\n"
+"the subject configured in the server. The dogtag CA uses just the CN\n"
+"value of the CSR and forces the rest of the subject.\n"
+"\n"
+"A certificate is stored with a service principal and a service principal\n"
+"needs a host.\n"
+"\n"
+"In order to request a certificate:\n"
+"\n"
+"* The host must exist\n"
+"* The service must exist (or you use the --add option to automatically add "
+"it)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Request a new certificate and add the principal:\n"
+" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n"
+"\n"
+" Retrieve an existing certificate:\n"
+" ipa cert-show 1032\n"
+"\n"
+" Revoke a certificate (see RFC 5280 for reason details):\n"
+" ipa cert-revoke --revocation-reason=6 1032\n"
+"\n"
+" Remove a certificate from revocation hold status:\n"
+" ipa cert-remove-hold 1032\n"
+"\n"
+" Check the status of a signing request:\n"
+" ipa cert-status 10\n"
+"\n"
+"IPA currently immediately issues (or declines) all certificate requests so\n"
+"the status of a request is not normally useful. This is for future use\n"
+"or the case where a CA does not immediately issue a certificate.\n"
+"\n"
+"The following revocation reasons are supported:\n"
+"\n"
+" * 0 - unspecified\n"
+" * 1 - keyCompromise\n"
+" * 2 - cACompromise\n"
+" * 3 - affiliationChanged\n"
+" * 4 - superseded\n"
+" * 5 - cessationOfOperation\n"
+" * 6 - certificateHold\n"
+" * 8 - removeFromCRL\n"
+" * 9 - privilegeWithdrawn\n"
+" * 10 - aACompromise\n"
+"\n"
+"Note that reason code 7 is not used. See RFC 5280 for more details:\n"
+"\n"
+"http://www.ietf.org/rfc/rfc5280.txt\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/cert.py:104
+msgid ""
+"\n"
+" Return the value of CN in the subject of the request or None\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:112
#, fuzzy
msgid "Failure decoding Certificate Signing Request:"
msgstr "Сбой при декодировании Certificate Signing Request"
-#: ipalib/plugins/cert.py:106 ipalib/plugins/cert.py:118
+#: ipalib/plugins/cert.py:115
+msgid ""
+"\n"
+" Return the first value of the subject alt name, if any\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
msgid "Failure decoding Certificate Signing Request"
msgstr "Сбой при декодировании Certificate Signing Request"
-#: ipalib/plugins/cert.py:120
-#, python-format
+#: ipalib/plugins/cert.py:128
+msgid ""
+"\n"
+" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
+" parser.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:139
msgid "Failure decoding Certificate Signing Request: %s"
msgstr "Сбой при декодировании Certificate Signing Request: %s"
-#: ipalib/plugins/cert.py:171 ipalib/plugins/service.py:197
+#: ipalib/plugins/cert.py:142
+msgid ""
+"\n"
+" Strip any leading and trailing cruft around the BEGIN/END block\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:162
+msgid ""
+"\n"
+" Convert a SN given in decimal or hexadecimal.\n"
+" Returns the number or None if conversion fails.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:188
+msgid ""
+"\n"
+" Given a principal with or without a realm return the\n"
+" host portion.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:202
+msgid ""
+"\n"
+" Submit a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:172
+#: ipalib/plugins/cert.py:217
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:179
+#: ipalib/plugins/cert.py:224
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:187 ipalib/plugins/cert.py:392
-#: ipalib/plugins/host.py:154 ipalib/plugins/service.py:204
+#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
+#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
+#: ipalib/plugins/service.py:232
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:191 ipalib/plugins/cert.py:395
+#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:195 ipalib/plugins/cert.py:398
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:199 ipalib/plugins/cert.py:401
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:203 ipalib/plugins/cert.py:404
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:207 ipalib/plugins/cert.py:407
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:211 ipalib/plugins/cert.py:410
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:215 ipalib/plugins/cert.py:379
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:223 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:357
+#: ipalib/plugins/cert.py:396
+msgid ""
+"\n"
+" Check the status of a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:402
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:363
+#: ipalib/plugins/cert.py:408
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:380
+#: ipalib/plugins/cert.py:426
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:413
+#: ipalib/plugins/cert.py:431
+msgid ""
+"\n"
+" Retrieve an existing certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
+#: ipalib/plugins/service.py:114
msgid "Revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:458
+#: ipalib/plugins/cert.py:466
+msgid "Output filename"
+msgstr ""
+
+#: ipalib/plugins/cert.py:467
+msgid "File to store the certificate in."
+msgstr ""
+
+#: ipalib/plugins/cert.py:518
+msgid ""
+"\n"
+" Revoke a certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:526
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:466
+#: ipalib/plugins/cert.py:534
#, fuzzy
msgid "Reason"
msgstr "%(reason)s"
-#: ipalib/plugins/cert.py:467
+#: ipalib/plugins/cert.py:535
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:502
+#: ipalib/plugins/cert.py:562
+msgid ""
+"\n"
+" Take a revoked certificate off hold.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:570
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:505
+#: ipalib/plugins/cert.py:573
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:73
+#: ipalib/plugins/config.py:20
+msgid ""
+"\n"
+"Manage the IPA configuration\n"
+"\n"
+"Manage the default values that IPA uses and some of its tuning parameters.\n"
+"\n"
+" To show the current configuration:\n"
+" ipa config-show\n"
+"\n"
+" To modify the configuration:\n"
+" ipa config-mod --maxusername=99\n"
+"\n"
+"The available options are:\n"
+"\n"
+"User management options:\n"
+"\n"
+" --maxusername=INT Max. username length when creating/modifying a user\n"
+" --homedirectory=STR Default location of home directories (default /"
+"home)\n"
+" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
+" --defaultgroup=STR Default group for new users (default ipausers). The\n"
+" group must exist, or adding new users will fail.\n"
+" --emaildomain=STR Default e-mail domain for new users\n"
+"\n"
+"Search tuning options. These impact how much data is searched through and\n"
+"how many records may be returned on a given search.\n"
+"\n"
+" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 "
+"for\n"
+" unlimited)\n"
+" --searchrecordslimit=INT Max. number of records to search (-1 is "
+"unlimited)\n"
+"\n"
+"Server Configuration.\n"
+"\n"
+" --enable-migration=BOOL Enable migration mode\n"
+" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+"\n"
+"The password notification value is stored here so it will be replicated.\n"
+"It is not currently used to notify users in advance of an expiring\n"
+"password.\n"
+"\n"
+"Some attributes are read-only, provided only for information purposes. "
+"These\n"
+"include:\n"
+"\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
+msgstr ""
+
+#: ipalib/plugins/config.py:76
+msgid "searchtimelimit must be -1 or > 1."
+msgstr ""
+
+#: ipalib/plugins/config.py:80
+msgid ""
+"\n"
+" IPA configuration object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:78
-msgid "Max username length"
+#: ipalib/plugins/config.py:96
+msgid "Max. username length"
msgstr ""
-#: ipalib/plugins/config.py:83
+#: ipalib/plugins/config.py:101
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:84
-msgid "Default location of home directories"
+#: ipalib/plugins/config.py:102
+msgid "Default location of home directories."
msgstr ""
-#: ipalib/plugins/config.py:88
+#: ipalib/plugins/config.py:106
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:89
-msgid "Default shell for new users"
+#: ipalib/plugins/config.py:107
+msgid "Default shell for new users."
msgstr ""
-#: ipalib/plugins/config.py:93
+#: ipalib/plugins/config.py:111
#, fuzzy
msgid "Default users group"
msgstr "Группа по умолчанию для пользователя не может быть удалена"
-#: ipalib/plugins/config.py:94
-msgid "Default group for new users"
+#: ipalib/plugins/config.py:112
+msgid "Default group for new users."
msgstr ""
-#: ipalib/plugins/config.py:98
-msgid "Default e-mail domain"
+#: ipalib/plugins/config.py:116
+msgid "Default e-mail domain for new users"
msgstr ""
-#: ipalib/plugins/config.py:99
-msgid "Default e-mail domain new users"
+#: ipalib/plugins/config.py:117
+msgid "Default e-mail domain new users."
msgstr ""
-#: ipalib/plugins/config.py:103
+#: ipalib/plugins/config.py:121
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:104
-msgid "Max. amount of time (sec.) for a search (-1 is unlimited)"
+#: ipalib/plugins/config.py:122
+msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:109
+#: ipalib/plugins/config.py:127
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:110
-msgid "Max. number of records to search (-1 is unlimited)"
+#: ipalib/plugins/config.py:128
+msgid "Max. number of records to search (-1 is unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:115
+#: ipalib/plugins/config.py:133
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:116
-msgid "A comma-separated list of fields to search when searching for users"
+#: ipalib/plugins/config.py:134
+msgid "A comma-separated list of fields to search when searching for users."
msgstr ""
-#: ipalib/plugins/config.py:121
-msgid "A comma-separated list of fields to search when searching for groups"
+#: ipalib/plugins/config.py:139
+msgid "A comma-separated list of fields to search when searching for groups."
msgstr ""
-#: ipalib/plugins/config.py:125
+#: ipalib/plugins/config.py:143
msgid "Migration mode"
msgstr ""
-#: ipalib/plugins/config.py:126
-msgid "Enable migration mode"
+#: ipalib/plugins/config.py:144
+msgid "Enable migration mode."
msgstr ""
-#: ipalib/plugins/config.py:130
+#: ipalib/plugins/config.py:148
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:131
-msgid "Base for certificate subjects (OU=Test,O=Example)"
+#: ipalib/plugins/config.py:149
+msgid "Base for certificate subjects (OU=Test,O=Example)."
+msgstr ""
+
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:155
+msgid "Default group objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:159
+#, fuzzy
+msgid "Default user objectclasses"
+msgstr "Группа по умолчанию для пользователя не может быть удалена"
+
+#: ipalib/plugins/config.py:160
+msgid "Default user objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:164
+msgid "Password Expiration Notification"
+msgstr ""
+
+#: ipalib/plugins/config.py:165
+msgid "Number of days's notice of impending password expiration."
msgstr ""
-#: ipalib/plugins/dns.py:131
+#: ipalib/plugins/config.py:170
+msgid "Password plugin features"
+msgstr ""
+
+#: ipalib/plugins/config.py:171
+msgid "Extra hashes to generate in password plug-in."
+msgstr ""
+
+#: ipalib/plugins/config.py:183
+msgid ""
+"\n"
+" Modify configuration options.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:220
+msgid ""
+"\n"
+" Show the current configuration.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:19
+msgid ""
+"\n"
+"Group to Group Delegation\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"Group to Group Delegations grants the members of one group to update a set\n"
+"of attributes of members of another group.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a delegation rule to allow editors to edit admin's addresses:\n"
+" ipa delegation-add --attrs=street --membergroup=admins --group=editors "
+"'editors edit admins street'\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add postalCode to the list:\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --"
+"group=editors 'editors edit admins street'\n"
+"\n"
+" Display our updated rule:\n"
+" ipa delegation-show 'editors edit admins street'\n"
+"\n"
+" Delete a rule:\n"
+" ipa delegation-del 'editors edit admins street'\n"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:56
+msgid ""
+"\n"
+" memberOf is in filter but we want to pull out the group for easier\n"
+" displaying.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+msgid "Delegation '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:70
+msgid "Error retrieving member group %(group)s: %(error)s"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:79
+msgid ""
+"\n"
+" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a delegation ACI, adding a new attribute\n"
+" membergroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:95
+msgid ""
+"\n"
+" Delegation object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:102
+msgid "Delegation"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+msgid "Delegation name"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+msgid ""
+"Comma-separated list of permissions to grant (read, write). Default is write."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:125
+#, fuzzy
+msgid "Member user group"
+msgstr "Группа по умолчанию для пользователя не может быть удалена"
+
+#: ipalib/plugins/delegation.py:126
+msgid "User group to apply delegation to"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:152
+msgid ""
+"\n"
+" Add a new delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:156
+#, fuzzy
+msgid "Added delegation \"%(value)s\""
+msgstr "Добавлена rolegroup \"%(value)s\""
+
+#: ipalib/plugins/delegation.py:176
+msgid ""
+"\n"
+" Delete a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:181
+#, fuzzy
+msgid "Deleted delegation \"%(value)s\""
+msgstr "Удалена rolegroup \"%(value)s\""
+
+#: ipalib/plugins/delegation.py:197
+msgid ""
+"\n"
+" Modify a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:201
+#, fuzzy
+msgid "Modified delegation \"%(value)s\""
+msgstr "Изменена rolegroup \"%(value)s\""
+
+#: ipalib/plugins/delegation.py:219
+msgid ""
+"\n"
+" Search for delegations.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:223
+#, fuzzy
+msgid "%(count)d delegation matched"
+msgid_plural "%(count)d delegations matched"
+msgstr[0] "совпадает %(count)d rolegroup"
+msgstr[1] "совпадают %(count)d rolegroup"
+msgstr[2] "совпадают %(count)d rolegroup"
+
+#: ipalib/plugins/delegation.py:250
+msgid ""
+"\n"
+" Display information about a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:20
+msgid ""
+"\n"
+"Domain Name System (DNS)\n"
+"\n"
+"Manage DNS zone and resource records.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add new zone:\n"
+" ipa dnszone-add example.com --name-server nameserver.example.com\n"
+" --admin-email admin@example.com\n"
+"\n"
+" Add second nameserver for example.com:\n"
+" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add a mail server for example.com:\n"
+" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n"
+"\n"
+" Delete previously added nameserver from example.com:\n"
+" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add new A record for www.example.com: (random IP)\n"
+" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n"
+"\n"
+" Add new PTR record for www.example.com\n"
+" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n"
+"\n"
+" Add new SRV records for LDAP servers. Three quarters of the requests\n"
+" should go to fast.example.com, one quarter to slow.example.com. If neither\n"
+" is available, switch to backup.example.com.\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup."
+"example.com\"\n"
+"\n"
+" When dnsrecord-add command is executed with no option to add a specific "
+"record\n"
+" an interactive mode is started. The mode interactively prompts for the "
+"most\n"
+" typical record types for the respective zone:\n"
+" ipa dnsrecord-add example.com www\n"
+" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random "
+"IPs)\n"
+" [AAAA record]: (no AAAA address entered)\n"
+" Record name: www\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" The interactive mode can also be used for deleting the DNS records:\n"
+" ipa dnsrecord-del example.com www\n"
+" No option to delete specific record provided.\n"
+" Delete all? Yes/No (default No): (do not delete all records)\n"
+" Current DNS record contents:\n"
+"\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
+" Record name: www\n"
+" A record: 1.2.3.4 (A record 11.22.33.44 has been "
+"deleted)\n"
+"\n"
+" Show zone example.com:\n"
+" ipa dnszone-show example.com\n"
+"\n"
+" Find zone with \"example\" in its domain name:\n"
+" ipa dnszone-find example\n"
+"\n"
+" Find records for resources with \"www\" in their name in zone example.com:\n"
+" ipa dnsrecord-find example.com www\n"
+"\n"
+" Find A records with value 10.10.0.1 in zone example.com\n"
+" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n"
+"\n"
+" Show records for resource www in zone example.com\n"
+" ipa dnsrecord-show example.com www\n"
+"\n"
+" Delete zone example.com with all resource records:\n"
+" ipa dnszone-del example.com\n"
+"\n"
+" Resolve a host name to see if it exists (will add default IPA domain\n"
+" if one is not included):\n"
+" ipa dns-resolve www.example.com\n"
+" ipa dns-resolve www\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:140
+msgid "Generate serial number for zones."
+msgstr ""
+
+#: ipalib/plugins/dns.py:189
+msgid "see RFC 2915 "
+msgstr ""
+
+#: ipalib/plugins/dns.py:249
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:272
+msgid ""
+"\n"
+" DNS Zone, container for resource records.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:284
msgid "DNS"
msgstr ""
-#: ipalib/plugins/dns.py:136
-msgid "Zone"
+#: ipalib/plugins/dns.py:289
+msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:137
+#: ipalib/plugins/dns.py:290
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:143
-msgid "Authoritative name server"
+#: ipalib/plugins/dns.py:296
+msgid "Authoritative nameserver"
+msgstr ""
+
+#: ipalib/plugins/dns.py:297
+msgid "Authoritative nameserver."
msgstr ""
-#: ipalib/plugins/dns.py:147
-msgid "administrator e-mail address"
+#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:153
+#: ipalib/plugins/dns.py:308
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:157
+#: ipalib/plugins/dns.py:309
+msgid "SOA record serial number"
+msgstr ""
+
+#: ipalib/plugins/dns.py:316
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:161
+#: ipalib/plugins/dns.py:317
+msgid "SOA record refresh time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:324
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:165
+#: ipalib/plugins/dns.py:325
+msgid "SOA record retry time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:169
+#: ipalib/plugins/dns.py:333
+msgid "SOA record expire time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:173
+#: ipalib/plugins/dns.py:341
+msgid "How long should negative responses be cached"
+msgstr ""
+
+#: ipalib/plugins/dns.py:349
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:177
+#: ipalib/plugins/dns.py:350
+msgid "SOA record time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:354
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:182
-msgid "allow dynamic update?"
+#: ipalib/plugins/dns.py:355
+msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:186
+#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:426 ipalib/plugins/dns.py:460
-#: ipalib/plugins/dns.py:495 ipalib/plugins/dns.py:610
-#: ipalib/plugins/dns.py:695 ipalib/plugins/dns.py:819
-msgid "Zone name"
+#: ipalib/plugins/dns.py:365
+msgid "Active zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:366
+msgid "Is zone active?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:372
+msgid "Dynamic update"
+msgstr ""
+
+#: ipalib/plugins/dns.py:373
+msgid "Allow dynamic updates."
+msgstr ""
+
+#: ipalib/plugins/dns.py:382
+msgid ""
+"\n"
+" Create new DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
+#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+msgid "Force"
+msgstr ""
+
+#: ipalib/plugins/dns.py:388
+msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:500
-msgid "resource name"
+#: ipalib/plugins/dns.py:391
+msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:505 ipalib/plugins/dns.py:620
-#: ipalib/plugins/dns.py:711
+#: ipalib/plugins/dns.py:397
+msgid "DNS is not configured"
+msgstr ""
+
+#: ipalib/plugins/dns.py:431
+msgid ""
+"\n"
+" Delete DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"\n"
+" Modify DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:452
+msgid ""
+"\n"
+" Search for DNS zones (SOA records).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:460
+msgid ""
+"\n"
+" Display information about a DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+msgid ""
+"\n"
+" Disable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:472
#, fuzzy
-msgid "Record type"
-msgstr "неверный тип"
+msgid "Disabled DNS zone \"%(value)s\""
+msgstr "Удален пользователь \"%(value)s\""
-#: ipalib/plugins/dns.py:509 ipalib/plugins/dns.py:624
-msgid "Data"
+#: ipalib/plugins/dns.py:490
+msgid ""
+"\n"
+" Enable DNS Zone.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:510 ipalib/plugins/dns.py:625
-msgid "Type-specific data"
+#: ipalib/plugins/dns.py:494
+#, fuzzy
+msgid "Enabled DNS zone \"%(value)s\""
+msgstr "Разблокирован пользователь \"%(value)s\""
+
+#: ipalib/plugins/dns.py:512
+msgid ""
+"\n"
+" DNS record.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:517
+#: ipalib/plugins/dns.py:522
+msgid "DNS resource record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
+#, fuzzy
+msgid "Record name"
+msgstr "неверный тип"
+
+#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:522
+#: ipalib/plugins/dns.py:538
msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:615 ipalib/plugins/dns.py:707
-#: ipalib/plugins/dns.py:824
-msgid "Resource name"
+#: ipalib/plugins/dns.py:539
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:700
-msgid "Search criteria"
+#: ipalib/plugins/dns.py:566
+msgid ""
+"\n"
+" Base class for DNS record commands with record options.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:715
-msgid "type-specific data"
+#: ipalib/plugins/dns.py:610
+msgid ""
+"\n"
+" Base class for adding/removing records from DNS resource entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:865
-#, fuzzy, python-format
+#: ipalib/plugins/dns.py:674
+msgid ""
+"\n"
+" Add records to DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:690
+msgid ""
+"\n"
+" Add new DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:699
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:735
+msgid ""
+"Reverse zone for PTR record should be a sub-zone of one the following fully "
+"qualified domains: %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:740
+msgid "Reverse zone %s requires exactly %d IP address components, %d given"
+msgstr ""
+
+#: ipalib/plugins/dns.py:746
+msgid "PTR record '%s' is not fully qualified (check traling '.')"
+msgstr ""
+
+#: ipalib/plugins/dns.py:789
+msgid ""
+"\n"
+" Delete DNS record entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:792
+#, fuzzy
+msgid "Deleted record \"%(value)s\""
+msgstr "Удален пользователь \"%(value)s\""
+
+#: ipalib/plugins/dns.py:799
+msgid ""
+"\n"
+" Delete DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:802
+msgid ""
+"Neither --del-all nor options to delete a specific record provided.\n"
+"Command help may be consulted for all supported record types."
+msgstr ""
+
+#: ipalib/plugins/dns.py:807
+msgid "Delete all associated records"
+msgstr ""
+
+#: ipalib/plugins/dns.py:834
+msgid "No option to delete specific record provided."
+msgstr ""
+
+#: ipalib/plugins/dns.py:835
+msgid "Delete all?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:845
+msgid "Current DNS record contents:\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:875
+#, fuzzy
+msgid "%s record with value %s not found"
+msgstr "ACI с именем \"%s\" не найден"
+
+#: ipalib/plugins/dns.py:889
+msgid ""
+"\n"
+" Display DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:905
+msgid ""
+"\n"
+" Search for DNS resources.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:932
+msgid ""
+"\n"
+" Resolve a host name in DNS\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:936
+#, fuzzy
msgid "Found '%(value)s'"
msgstr "Добавлена группа \"%(value)s\""
-#: ipalib/plugins/dns.py:869
+#: ipalib/plugins/dns.py:940
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:882
-#, python-format
+#: ipalib/plugins/dns.py:962
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/group.py:94
+#: ipalib/plugins/dns.py:970
+msgid ""
+"\n"
+" Checks if any of the servers has the DNS service enabled.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:19
+msgid ""
+"\n"
+"Entitlements\n"
+"\n"
+"Manage entitlements for client machines\n"
+"\n"
+"Entitlements can be managed either by registering with an entitlement\n"
+"server with a username and password or by manually importing entitlement\n"
+"certificates. An entitlement certificate contains embedded information\n"
+"such as the product being entitled, the quantity and the validity dates.\n"
+"\n"
+"An entitlement server manages the number of client entitlements available.\n"
+"To mark these entitlements as used by the IPA server you provide a quantity\n"
+"and they are marked as consumed on the entitlement server.\n"
+"\n"
+" Register with an entitlement server:\n"
+" ipa entitle-register consumer\n"
+"\n"
+" Import an entitlement certificate:\n"
+" ipa entitle-import /home/user/ipaclient.pem\n"
+"\n"
+" Display current entitlements:\n"
+" ipa entitle-status\n"
+"\n"
+" Retrieve details on entitlement certificates:\n"
+" ipa entitle-get\n"
+"\n"
+" Consume some entitlements from the entitlement server:\n"
+" ipa entitle-consume 50\n"
+"\n"
+"The registration ID is a Unique Identifier (UUID). This ID will be\n"
+"IMPORTED if you have used entitle-import.\n"
+"\n"
+"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:106
+msgid ""
+"\n"
+" Get our entitlement pool. Assume there is only one pool.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:129
+msgid ""
+"\n"
+" Retrieve our UUID, certificate and key from LDAP.\n"
+"\n"
+" Except on error the caller is responsible for removing temporary files\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:178
+msgid ""
+"\n"
+" Entitlement object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:189
+msgid "Entitlements"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:206
+msgid ""
+"\n"
+" Display current entitlements\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+msgid "UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
+#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
+#: ipalib/plugins/entitle.py:690
+msgid "Product"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
+#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
+#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+msgid "Quantity"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
+#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+msgid "Consumed"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:276
+msgid ""
+"\n"
+" Consume an entitlement\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:282
+msgid "Consumed %(value)s entitlement(s)."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:314
+msgid ""
+"\n"
+" Override this so we can set value to the number of entitlements\n"
+" consumed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
+msgid ""
+"\n"
+" Returning the certificates isn't very interesting. Return the\n"
+" status of entitlements instead.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:380
+msgid ""
+"\n"
+" Retrieve the entitlement certs\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:394
+msgid "Start"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:397
+msgid "End"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
+#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+msgid "Serial Number"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
+#: ipalib/plugins/entitle.py:628
+msgid "Not an entitlement certificate"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:460
+msgid ""
+"\n"
+" Search for entitlement accounts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:473
+msgid ""
+"\n"
+" Register to the entitlement system\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:479
+msgid "Registered to entitlement server."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:483
+msgid "Username"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
+msgid "Enrollment UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
+#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
+msgid "Password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:495
+msgid "Registration password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:569
+msgid ""
+"\n"
+" Import an entitlement certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:646
+msgid ""
+"\n"
+" If we are adding the first entry there are no updates so "
+"EmptyModlist\n"
+" will get thrown. Ignore it.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:667
+msgid ""
+"\n"
+" Re-sync the local entitlement cache with the entitlement server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:673
+msgid "Entitlement(s) synchronized."
+msgstr ""
+
+#: ipalib/plugins/group.py:20
+msgid ""
+"\n"
+"Groups of users\n"
+"\n"
+"Manage groups of users. By default, new groups are POSIX groups. You\n"
+"can add the --nonposix option to the group-add command to mark a new group\n"
+"as non-POSIX, and you can use the same argument to the group-mod command\n"
+"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"converted to non-POSIX groups.\n"
+"\n"
+"Every group must have a description.\n"
+"\n"
+"POSIX groups must have a Group ID (GID) number. Changing a GID is\n"
+"supported but can have an impact on your file permissions. It is not "
+"necessary\n"
+"to supply a GID when creating a group. IPA will generate one automatically\n"
+"if it is not provided.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new group:\n"
+" ipa group-add --desc='local administrators' localadmins\n"
+"\n"
+" Add a new non-POSIX group:\n"
+" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n"
+"\n"
+" Convert a non-POSIX group to posix:\n"
+" ipa group-mod --posix remoteadmins\n"
+"\n"
+" Add a new POSIX group with a specific Group ID number:\n"
+" ipa group-add --gid=500 --desc='unix admins' unixadmins\n"
+"\n"
+" Add a new POSIX group and let IPA assign a Group ID number:\n"
+" ipa group-add --desc='printer admins' printeradmins\n"
+"\n"
+" Remove a group:\n"
+" ipa group-del unixadmins\n"
+"\n"
+" To add the \"remoteadmins\" group to the \"localadmins\" group:\n"
+" ipa group-add-member --groups=remoteadmins localadmins\n"
+"\n"
+" Add a list of users to the \"localadmins\" group:\n"
+" ipa group-add-member --users=test1,test2 localadmins\n"
+"\n"
+" Remove a user from the \"localadmins\" group:\n"
+" ipa group-remove-member --users=test2 localadmins\n"
+"\n"
+" Display information about a named group.\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/group.py:76
+msgid ""
+"\n"
+" Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:100
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:102
+#: ipalib/plugins/group.py:108
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:109 ipalib/plugins/sudocmdgroup.py:78
+#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:113
+#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:114
+#: ipalib/plugins/group.py:120
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:117 ipalib/plugins/rolegroup.py:94
-#: ipalib/plugins/taskgroup.py:66
-msgid "Member groups"
-msgstr ""
-
-#: ipalib/plugins/group.py:121 ipalib/plugins/rolegroup.py:98
-#: ipalib/plugins/taskgroup.py:70
-msgid "Member users"
+#: ipalib/plugins/group.py:128
+msgid ""
+"\n"
+" Create a new group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:134
-#, python-format
+#: ipalib/plugins/group.py:132
msgid "Added group \"%(value)s\""
msgstr "Добавлена группа \"%(value)s\""
-#: ipalib/plugins/group.py:139
+#: ipalib/plugins/group.py:137
#, fuzzy
-msgid "Create as a non-POSIX group?"
+msgid "Create as a non-POSIX group"
msgstr "Уже является posix группой"
-#: ipalib/plugins/group.py:160
-#, python-format
+#: ipalib/plugins/group.py:154
+msgid ""
+"\n"
+" Delete group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:158
msgid "Deleted group \"%(value)s\""
msgstr "Удалена группа \"%(value)s\""
-#: ipalib/plugins/group.py:191
-#, python-format
+#: ipalib/plugins/group.py:186
+msgid ""
+"\n"
+" Modify a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:189
msgid "Modified group \"%(value)s\""
msgstr "Изменена группа \"%(value)s\""
-#: ipalib/plugins/group.py:196
+#: ipalib/plugins/group.py:194
#, fuzzy
msgid "change to a POSIX group"
msgstr "Уже является posix группой"
-#: ipalib/plugins/group.py:222 ipalib/plugins/hbacsvcgroup.py:129
-#, python-format
+#: ipalib/plugins/group.py:215
+msgid ""
+"\n"
+" Search for groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:220
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] "совпадает %(count)d группа"
msgstr[1] "совпадают %(count)d группы"
msgstr[2] "совпадают %(count)d групп"
+#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+msgid "search for private groups"
+msgstr ""
+
#: ipalib/plugins/group.py:257
-#, fuzzy, python-format
+msgid ""
+"\n"
+" Display information about a named group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:265
+msgid ""
+"\n"
+" Add members to a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:273
+msgid ""
+"\n"
+" Remove members from a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:281
+msgid ""
+"\n"
+" Detach a managed group from a user\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:285
+#, fuzzy
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr "Удалена rolegroup \"%(value)s\""
-#: ipalib/plugins/group.py:273
+#: ipalib/plugins/group.py:288
+msgid ""
+"\n"
+" This requires updating both the user and the group. We first need "
+"to\n"
+" verify that both the user and group can be updated, then we go\n"
+" about our work. We don't want a situation where only the user or\n"
+" group can be modified and we're left in a bad state.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:306
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:277
+#: ipalib/plugins/group.py:312
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:284 ipalib/plugins/group.py:295
+#: ipalib/plugins/group.py:331
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbac.py:106
-msgid "HBAC"
+#: ipalib/plugins/hbacrule.py:19
+msgid ""
+"\n"
+"Host-based access control\n"
+"\n"
+"Control who can access what services on what hosts and from where. You\n"
+"can use HBAC to control which users or groups on a source host can\n"
+"access a service, or group of services, on a target host.\n"
+"\n"
+"You can also specify a category of users, target hosts, and source\n"
+"hosts. This is currently limited to \"all\", but might be expanded in the\n"
+"future.\n"
+"\n"
+"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n"
+"\n"
+"The available services and groups of services are controlled by the\n"
+"hbacsvc and hbacsvcgroup plug-ins respectively.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a rule, \"test1\", that grants all users access to the host \"server"
+"\" from\n"
+" anywhere:\n"
+" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add-host --hosts=server.example.com test1\n"
+"\n"
+" Display the properties of a named HBAC rule:\n"
+" ipa hbacrule-show test1\n"
+"\n"
+" Create a rule for a specific service. This lets the user john access\n"
+" the sshd service on any machine from any machine:\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add-user --users=john john_sshd\n"
+" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
+"\n"
+" Create a rule for a new service group. This lets the user john access\n"
+" the FTP service on any machine from any machine:\n"
+" ipa hbacsvcgroup-add ftpers\n"
+" ipa hbacsvc-add sftp\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add-user --users=john john_ftp\n"
+" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
+"\n"
+" Disable a named HBAC rule:\n"
+" ipa hbacrule-disable test1\n"
+"\n"
+" Remove a named HBAC rule:\n"
+" ipa hbacrule-del allow_server\n"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:91
+msgid ""
+"\n"
+" See if options[attribute] is lower-case 'all' in a safe way.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:103
+msgid ""
+"\n"
+" HBAC object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbac.py:111 ipalib/plugins/sudorule.py:53
+#: ipalib/plugins/hbacrule.py:126
+msgid "HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbac.py:116
+#: ipalib/plugins/hbacrule.py:136
msgid "Rule type (allow or deny)"
msgstr ""
-#: ipalib/plugins/hbac.py:117
+#: ipalib/plugins/hbacrule.py:137
#, fuzzy
msgid "Rule type"
msgstr "неверный тип"
-#: ipalib/plugins/hbac.py:123
+#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
+#: ipalib/plugins/sudorule.py:86
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbac.py:124
+#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
+#: ipalib/plugins/sudorule.py:87
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:129
+#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
+#: ipalib/plugins/sudorule.py:92
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbac.py:130
+#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
+#: ipalib/plugins/sudorule.py:93
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:135
+#: ipalib/plugins/hbacrule.py:155
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbac.py:136
+#: ipalib/plugins/hbacrule.py:156
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:141
+#: ipalib/plugins/hbacrule.py:161
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbac.py:142
+#: ipalib/plugins/hbacrule.py:162
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:147 ipalib/plugins/hbac.py:325
-#: ipalib/plugins/hbac.py:363
-msgid "Access time"
-msgstr ""
-
-#: ipalib/plugins/hbac.py:154
+#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbac.py:158 ipalib/plugins/sudorule.py:61
-#: ipalib/plugins/user.py:76
+#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
+#: ipalib/plugins/user.py:108
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbac.py:162 ipalib/plugins/host.py:113
-#: ipalib/plugins/sudorule.py:65
+#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
+#: ipalib/plugins/sudorule.py:119
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
+#: ipalib/plugins/sudorule.py:123
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:166 ipalib/plugins/hostgroup.py:69
-#: ipalib/plugins/sudorule.py:69
+#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
+#: ipalib/plugins/sudorule.py:127
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbac.py:170
+#: ipalib/plugins/hbacrule.py:194
msgid "Source hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:174 ipalib/plugins/hbacsvc.py:60
-#: ipalib/plugins/service.py:192
+#: ipalib/plugins/hbacrule.py:198
+msgid "Source host groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
+#: ipalib/plugins/service.py:220
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbac.py:178
+#: ipalib/plugins/hbacrule.py:206
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:65
-msgid "Service name"
+#: ipalib/plugins/hbacrule.py:215
+msgid ""
+"\n"
+" Create a new HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:219
+#, fuzzy
+msgid "Added HBAC rule \"%(value)s\""
+msgstr "Добавлен пользователь \"%(value)s\""
+
+#: ipalib/plugins/hbacrule.py:230
+msgid ""
+"\n"
+" Delete an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:234
+#, fuzzy
+msgid "Deleted HBAC rule \"%(value)s\""
+msgstr "Удален ACI \"%(value)s\""
+
+#: ipalib/plugins/hbacrule.py:240
+msgid ""
+"\n"
+" Modify an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:244
+#, fuzzy
+msgid "Modified HBAC rule \"%(value)s\""
+msgstr "Изменен ACI \"%(value)s\""
+
+#: ipalib/plugins/hbacrule.py:266
+msgid ""
+"\n"
+" Search for HBAC rules.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:270
+#, fuzzy
+msgid "%(count)d HBAC rule matched"
+msgid_plural "%(count)d HBAC rules matched"
+msgstr[0] "совпадает %(count)d ACI"
+msgstr[1] "совпадают %(count)d ACI"
+msgstr[2] "совпадают %(count)d ACI"
+
+#: ipalib/plugins/hbacrule.py:278
+msgid ""
+"\n"
+" Display the properties of an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:286
+msgid ""
+"\n"
+" Enable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:290
+#, fuzzy
+msgid "Enabled HBAC rule \"%(value)s\""
+msgstr "Разблокирован пользователь \"%(value)s\""
+
+#: ipalib/plugins/hbacrule.py:315
+msgid ""
+"\n"
+" Disable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:319
+#, fuzzy
+msgid "Disabled HBAC rule \"%(value)s\""
+msgstr "Удален пользователь \"%(value)s\""
+
+#: ipalib/plugins/hbacrule.py:344
+msgid ""
+"\n"
+" Add an access time to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+msgid "Access time"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:385
+msgid ""
+"\n"
+" Remove access time to HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:425
+msgid ""
+"\n"
+" Add users and groups to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:442
+msgid ""
+"\n"
+" Remove users and groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:452
+msgid ""
+"\n"
+" Add target hosts and hostgroups to an HBAC rule\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:469
+msgid ""
+"\n"
+" Remove target hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:479
+msgid ""
+"\n"
+" Add source hosts and hostgroups from a HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:496
+msgid ""
+"\n"
+" Remove source hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:506
+msgid ""
+"\n"
+" Add services to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:523
+msgid ""
+"\n"
+" Remove service and service groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:19
+msgid ""
+"\n"
+"HBAC Services\n"
+"\n"
+"The PAM services that HBAC can control access to. The name used here\n"
+"must match the service name that PAM is evaluating.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service:\n"
+" ipa hbacsvc-add tftp\n"
+"\n"
+" Modify an existing HBAC service:\n"
+" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n"
+"\n"
+" Search for HBAC services. This example will return two results, the FTP\n"
+" service and the newly-added tftp service:\n"
+" ipa hbacsvc-find ftp\n"
+"\n"
+" Delete an HBAC service:\n"
+" ipa hbacsvc-del tftp\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:51
+msgid ""
+"\n"
+" HBAC Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:61
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "HBAC Service"
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:73
-msgid "Description of service"
+#: ipalib/plugins/hbacsvc.py:67
+msgid "HBAC service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:84 ipalib/plugins/service.py:216
-#, fuzzy, python-format
-msgid "Added service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:74
+msgid "HBAC service description"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:82
+msgid ""
+"\n"
+" Add a new HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:85
+#, fuzzy
+msgid "Added HBAC service \"%(value)s\""
msgstr "Добавлен пользователь \"%(value)s\""
-#: ipalib/plugins/hbacsvc.py:93 ipalib/plugins/service.py:255
-#, fuzzy, python-format
-msgid "Deleted service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:91
+msgid ""
+"\n"
+" Delete an existing HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:94
+#, fuzzy
+msgid "Deleted HBAC service \"%(value)s\""
msgstr "Удален пользователь \"%(value)s\""
-#: ipalib/plugins/hbacsvcgroup.py:66
-msgid "HBAC Service Groups"
+#: ipalib/plugins/hbacsvc.py:100
+msgid ""
+"\n"
+" Modify an HBAC service.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:71
-msgid "Service group name"
+#: ipalib/plugins/hbacsvc.py:104
+#, fuzzy
+msgid "Modified HBAC service \"%(value)s\""
+msgstr "Изменен пользователь \"%(value)s\""
+
+#: ipalib/plugins/hbacsvc.py:110
+msgid ""
+"\n"
+" Search for HBAC services.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:78
-msgid "HBAC service group description"
+#: ipalib/plugins/hbacsvc.py:114
+#, fuzzy
+msgid "%(count)d HBAC service matched"
+msgid_plural "%(count)d HBAC services matched"
+msgstr[0] "совпадает %(count)d пользователь"
+msgstr[1] "совпадают %(count)d пользователя"
+msgstr[2] "совпадают %(count)d пользователей"
+
+#: ipalib/plugins/hbacsvc.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:81
-msgid "Member services"
+#: ipalib/plugins/hbacsvcgroup.py:19
+msgid ""
+"\n"
+"HBAC Service Groups\n"
+"\n"
+"HBAC service groups can contain any number of individual services,\n"
+"or \"members\". Every group must have a description.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service group:\n"
+" ipa hbacsvcgroup-add --desc=\"login services\" login\n"
+"\n"
+" Add members to an HBAC service group:\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n"
+"\n"
+" Display information about a named group:\n"
+" ipa hbacsvcgroup-show login\n"
+"\n"
+" Add a new group to the \"login\" group:\n"
+" ipa hbacsvcgroup-add --desc=\"switch users\" login\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n"
+"\n"
+" Delete an HBAC service group:\n"
+" ipa hbacsvcgroup-del login\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:51
+msgid ""
+"\n"
+" HBAC service group object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:85
-msgid "Member service groups"
+#: ipalib/plugins/hbacsvcgroup.py:64
+#, fuzzy
+msgid "HBAC service Groups"
+msgstr "Добавлена rolegroup \"%(value)s\""
+
+#: ipalib/plugins/hbacsvcgroup.py:69
+msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:101
-#, fuzzy, python-format
-msgid "Added HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:76
+msgid "HBAC service group description"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:84
+#, fuzzy
+msgid ""
+"\n"
+" Add a new HBAC service group.\n"
+" "
msgstr "Добавлена rolegroup \"%(value)s\""
-#: ipalib/plugins/hbacsvcgroup.py:110
-#, fuzzy, python-format
-msgid "Deleted HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:87
+#, fuzzy
+msgid "Added HBAC service group \"%(value)s\""
+msgstr "Добавлена rolegroup \"%(value)s\""
+
+#: ipalib/plugins/hbacsvcgroup.py:93
+#, fuzzy
+msgid ""
+"\n"
+" Delete an HBAC service group.\n"
+" "
msgstr "Удалена rolegroup \"%(value)s\""
-#: ipalib/plugins/hbacsvcgroup.py:119
-#, fuzzy, python-format
-msgid "Modified HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:96
+#, fuzzy
+msgid "Deleted HBAC service group \"%(value)s\""
+msgstr "Удалена rolegroup \"%(value)s\""
+
+#: ipalib/plugins/hbacsvcgroup.py:102
+#, fuzzy
+msgid ""
+"\n"
+" Modify an HBAC service group.\n"
+" "
msgstr "Изменена rolegroup \"%(value)s\""
-#: ipalib/plugins/host.py:86
+#: ipalib/plugins/hbacsvcgroup.py:105
+#, fuzzy
+msgid "Modified HBAC service group \"%(value)s\""
+msgstr "Изменена rolegroup \"%(value)s\""
+
+#: ipalib/plugins/hbacsvcgroup.py:111
+msgid ""
+"\n"
+" Search for an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:114
+#, fuzzy
+msgid "%(count)d HBAC service group matched"
+msgid_plural "%(count)d HBAC service groups matched"
+msgstr[0] "совпадает %(count)d пользователь"
+msgstr[1] "совпадают %(count)d пользователя"
+msgstr[2] "совпадают %(count)d пользователей"
+
+#: ipalib/plugins/hbacsvcgroup.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:130
+msgid ""
+"\n"
+" Add members to an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:138
+msgid ""
+"\n"
+" Remove members from an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:20
+msgid ""
+"\n"
+"Hosts/Machines\n"
+"\n"
+"A host represents a machine. It can be used in a number of contexts:\n"
+"- service entries are associated with a host\n"
+"- a host stores the host/ service principal\n"
+"- a host can be used in Host-based Access Control (HBAC) rules\n"
+"- every enrolled client generates a host entry\n"
+"\n"
+"ENROLLMENT:\n"
+"\n"
+"There are three enrollment scenarios when enrolling a new client:\n"
+"\n"
+"1. You are enrolling as a full administrator. The host entry may exist\n"
+" or not. A full administrator is a member of the hostadmin role\n"
+" or the admins group.\n"
+"2. You are enrolling as a limited administrator. The host must already\n"
+" exist. A limited administrator is a member a role with the\n"
+" Host Enrollment privilege.\n"
+"3. The host has been created with a one-time password.\n"
+"\n"
+"A host can only be enrolled once. If a client has enrolled and needs to\n"
+"be re-enrolled, the host entry must be removed and re-created. Note that\n"
+"re-creating the host entry will result in all services for the host being\n"
+"removed, and all SSL certificates associated with those services being\n"
+"revoked.\n"
+"\n"
+"A host can optionally store information such as where it is located,\n"
+"the OS that it runs, etc.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host:\n"
+" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example."
+"com\n"
+"\n"
+" Delete a host:\n"
+" ipa host-del test.example.com\n"
+"\n"
+" Add a new host with a one-time password:\n"
+" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n"
+"\n"
+" Add a new host with a random one-time password:\n"
+" ipa host-add --os='Fedora 12' --random test.example.com\n"
+"\n"
+" Modify information about a host:\n"
+" ipa host-mod --os='Fedora 12' test.example.com\n"
+"\n"
+" Disable the host Kerberos key, SSL certificate and all of its services:\n"
+" ipa host-disable test.example.com\n"
+"\n"
+" Add a host that can manage this host's keytab and certificate:\n"
+" ipa host-add-managedby --hosts=test2 test\n"
+msgstr ""
+
+#: ipalib/plugins/host.py:97
+msgid ""
+"\n"
+" Require at least one dot in the hostname (to support localhost."
+"localdomain)\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:118
+#: ipalib/plugins/host.py:129
+msgid "DNS reverse zone for IP address %(addr)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+msgid "Keytab"
+msgstr ""
+
+#: ipalib/plugins/host.py:185
+msgid ""
+"\n"
+" Verify that we have either an IPv4 or IPv6 address.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:189
+msgid "invalid IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:194
+msgid ""
+"\n"
+" Host object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:231
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:125
+#: ipalib/plugins/host.py:238
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:242
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:130
+#: ipalib/plugins/host.py:243
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:135
+#: ipalib/plugins/host.py:248
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:139
+#: ipalib/plugins/host.py:252
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:140
+#: ipalib/plugins/host.py:253
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:144
+#: ipalib/plugins/host.py:257
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:145
+#: ipalib/plugins/host.py:258
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:149
+#: ipalib/plugins/host.py:262
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:150
+#: ipalib/plugins/host.py:263
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:155 ipalib/plugins/service.py:205
-msgid "Base-64 encoded server certificate"
+#: ipalib/plugins/host.py:266
+msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:158 ipalib/plugins/host.py:274
-msgid "Principal name"
+#: ipalib/plugins/host.py:271
+msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:162 ipalib/plugins/hostgroup.py:93
-msgid "Member of host-groups"
+#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:166
-msgid "Member of net-groups"
+#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:170
-msgid "Member of role-groups"
+#: ipalib/plugins/host.py:306
+msgid ""
+"\n"
+" Add a new host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:199
-#, python-format
+#: ipalib/plugins/host.py:311
msgid "Added host \"%(value)s\""
msgstr "Добавлен узел \"%(value)s\""
-#: ipalib/plugins/host.py:202
+#: ipalib/plugins/host.py:316
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:235
-#, python-format
+#: ipalib/plugins/host.py:319
+msgid "skip reverse DNS detection"
+msgstr ""
+
+#: ipalib/plugins/host.py:322
+msgid "Add the host to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+msgid "DNS zone %(zone)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:413
+msgid "The host was added but the DNS update failed with: %(exc)s"
+msgstr ""
+
+#: ipalib/plugins/host.py:422
+msgid ""
+"\n"
+" Delete a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:426
msgid "Deleted host \"%(value)s\""
msgstr "Удален узел \"%(value)s\""
-#: ipalib/plugins/host.py:269
-#, python-format
+#: ipalib/plugins/host.py:431
+msgid "Remove entries from DNS"
+msgstr ""
+
+#: ipalib/plugins/host.py:537
+msgid ""
+"\n"
+" Modify information about a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:542
msgid "Modified host \"%(value)s\""
msgstr "Изменен узел \"%(value)s\""
-#: ipalib/plugins/host.py:275
+#: ipalib/plugins/host.py:549
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:319
-#, python-format
+#: ipalib/plugins/host.py:618
+msgid ""
+"\n"
+" Search for hosts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:623
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] "совпадает %(count)d узел"
msgstr[1] "совпадает %(count)d узла"
msgstr[2] "совпадает %(count)d узлов"
-#: ipalib/plugins/host.py:337 ipalib/plugins/service.py:84
-msgid "Keytab"
+#: ipalib/plugins/host.py:643
+msgid ""
+"\n"
+" Display information about a host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:359 ipalib/plugins/service.py:399
-#, fuzzy, python-format
-msgid "Removed kerberos key from \"%(value)s\""
-msgstr "Удалена rolegroup \"%(value)s\""
+#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+msgid "file to store certificate in"
+msgstr ""
+
+#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#, fuzzy
+msgid "Certificate stored in file '%(file)s'"
+msgstr "Операция с сертификатом не может быть завершена: %(error)s"
-#: ipalib/plugins/host.py:368
-msgid "Host principal has no kerberos key"
+#: ipalib/plugins/host.py:684
+msgid ""
+"\n"
+" Disable the Kerberos key, SSL certificate and all services of a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:688
+#, fuzzy
+msgid "Disabled host \"%(value)s\""
+msgstr "Удален узел \"%(value)s\""
+
+#: ipalib/plugins/host.py:770
+msgid ""
+"\n"
+" Add hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:781
+msgid ""
+"\n"
+" Remove hosts that can manage this host.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/hostgroup.py:20
+msgid ""
+"\n"
+"Groups of hosts.\n"
+"\n"
+"Manage groups of hosts. This is useful for applying access control to a\n"
+"number of hosts by using Host-based Access Control.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host group:\n"
+" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n"
+"\n"
+" Add another new host group:\n"
+" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n"
+"\n"
+" Add members to the hostgroup:\n"
+" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n"
+"\n"
+" Add a hostgroup as a member of another hostgroup:\n"
+" ipa hostgroup-add-member --hostgroups=baltimore maryland\n"
+"\n"
+" Remove a host from the hostgroup:\n"
+" ipa hostgroup-remove-member --hosts=box2 baltimore\n"
+"\n"
+" Display a host group:\n"
+" ipa hostgroup-show baltimore\n"
+"\n"
+" Delete a hostgroup:\n"
+" ipa hostgroup-del baltimore\n"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:55
+msgid ""
+"\n"
+" Hostgroup object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:78
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:75
+#: ipalib/plugins/hostgroup.py:79
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:82
+#: ipalib/plugins/hostgroup.py:86
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:85
-msgid "Member hosts"
-msgstr ""
-
-#: ipalib/plugins/hostgroup.py:89
-msgid "Member host-groups"
+#: ipalib/plugins/hostgroup.py:94
+msgid ""
+"\n"
+" Add a new hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:106
-#, python-format
+#: ipalib/plugins/hostgroup.py:98
msgid "Added hostgroup \"%(value)s\""
msgstr "Добавлена hostgroup \"%(value)s\""
-#: ipalib/plugins/hostgroup.py:116
-#, python-format
+#: ipalib/plugins/hostgroup.py:104
+msgid ""
+"\n"
+" Delete a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:108
msgid "Deleted hostgroup \"%(value)s\""
msgstr "Удалена hostgroup \"%(value)s\""
-#: ipalib/plugins/hostgroup.py:126
-#, python-format
+#: ipalib/plugins/hostgroup.py:114
+msgid ""
+"\n"
+" Modify a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:118
msgid "Modified hostgroup \"%(value)s\""
msgstr "Изменена hostgroup \"%(value)s\""
-#: ipalib/plugins/hostgroup.py:137
-#, python-format
+#: ipalib/plugins/hostgroup.py:124
+msgid ""
+"\n"
+" Search for hostgroups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:128
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] "совпадает %(count)d hostgroup"
msgstr[1] "совпадают %(count)d hostgroup"
msgstr[2] "совпадают %(count)d hostgroup"
-#: ipalib/plugins/internal.py:39
+#: ipalib/plugins/hostgroup.py:136
+msgid ""
+"\n"
+" Display information about a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:144
+msgid ""
+"\n"
+" Add members to a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:152
+msgid ""
+"\n"
+" Remove members from a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:22
+msgid ""
+"\n"
+"Plugins not accessible directly through the CLI, commands used internally\n"
+msgstr ""
+
+#: ipalib/plugins/internal.py:36
+msgid ""
+"\n"
+" Export plugin meta-data for the webUI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:44
+msgid "Name of object to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:47
+msgid "Name of method to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:52
+msgid "Dict of JSON encoded IPA Objects"
+msgstr ""
+
+#: ipalib/plugins/internal.py:53
+msgid "Dict of JSON encoded IPA Methods"
+msgstr ""
+
+#: ipalib/plugins/internal.py:96
msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:41
+#: ipalib/plugins/internal.py:99
+msgid "Attribute"
+msgstr ""
+
+#: ipalib/plugins/internal.py:102
+msgid "Add Automount Location"
+msgstr ""
+
+#: ipalib/plugins/internal.py:103
+msgid "Automount Location Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:106
+msgid "Add Automount Map"
+msgstr ""
+
+#: ipalib/plugins/internal.py:109
+msgid "Add Automount Key"
+msgstr ""
+
+#: ipalib/plugins/internal.py:112
+msgid "Unspecified"
+msgstr ""
+
+#: ipalib/plugins/internal.py:113
+msgid "Key Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:114
+msgid "CA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:115
+msgid "Affiliation Changed"
+msgstr ""
+
+#: ipalib/plugins/internal.py:116
+msgid "Superseded"
+msgstr ""
+
+#: ipalib/plugins/internal.py:117
+#, fuzzy
+msgid "Cessation of Operation"
+msgstr "операция над файлом"
+
+#: ipalib/plugins/internal.py:118
+msgid "Certificate Hold"
+msgstr ""
+
+#: ipalib/plugins/internal.py:119
+msgid "Remove from CRL"
+msgstr ""
+
+#: ipalib/plugins/internal.py:120
+msgid "Privilege Withdrawn"
+msgstr ""
+
+#: ipalib/plugins/internal.py:121
+msgid "AA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:122
+msgid ""
+"To confirm your intention to revoke this certificate, select a reason from "
+"the pull-down list, and click the \"Revoke\" button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:124
+msgid "Note"
+msgstr ""
+
+#: ipalib/plugins/internal.py:125
+msgid "Reason for Revocation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:126
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\" "
+"button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:128
+msgid "Issued To"
+msgstr ""
+
+#: ipalib/plugins/internal.py:129
+msgid "Common Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:130
+msgid "Organization"
+msgstr ""
+
+#: ipalib/plugins/internal.py:131
+msgid "Organizational Unit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:133
+msgid "Issued By"
+msgstr ""
+
+#: ipalib/plugins/internal.py:134
+msgid "Validity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:135
+msgid "Issued On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:136
+msgid "Expires On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:137
+msgid "Fingerprints"
+msgstr ""
+
+#: ipalib/plugins/internal.py:138
+msgid "SHA1 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:139
+msgid "MD5 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:140
+msgid "Enter the Base64-encoded CSR below"
+msgstr ""
+
+#: ipalib/plugins/internal.py:141
+msgid "Valid Certificate Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:142
+msgid "New Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:143
+msgid "Certificate Revoked"
+msgstr ""
+
+#: ipalib/plugins/internal.py:144
+msgid "No Valid Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:145
+msgid "Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:146
+msgid "Issue New Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:147
+msgid "Revoke Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:148
+msgid "Restore Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:152
+msgid "Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:155
+msgid "Add Delegation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:158
+msgid "Add DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:159
+msgid "DNS Zone Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:162
+msgid "Add DNS Resource Record"
+msgstr ""
+
+#: ipalib/plugins/internal.py:163
+msgid "Resource"
+msgstr ""
+
+#: ipalib/plugins/internal.py:165
+msgid "Data"
+msgstr ""
+
+#: ipalib/plugins/internal.py:166
+msgid "Records for DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:169
+msgid "Add Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:170
+msgid "Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
+#, fuzzy
+msgid "Is this a POSIX group?"
+msgstr "Уже является posix группой"
+
+#: ipalib/plugins/internal.py:174
+msgid "Add HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:306
+msgid "Active"
+msgstr ""
+
+#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:308
+msgid "Inactive"
+msgstr ""
+
+#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
+#, fuzzy
+msgid "Rule status"
+msgstr "неверный тип"
+
+#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
+msgid "Who"
+msgstr ""
+
+#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
+msgid "Anyone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
+msgid "Specified Users and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:183
+msgid "Accessing"
+msgstr ""
+
+#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
+msgid "Any Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
+msgid "Specified Hosts and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:186
+msgid "Via Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:187
+msgid "Any Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:188
+msgid "Specified Services and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:189
+msgid "From"
+msgstr ""
+
+#: ipalib/plugins/internal.py:192
+#, fuzzy
+msgid "Add HBAC Service"
+msgstr "Добавлена rolegroup \"%(value)s\""
+
+#: ipalib/plugins/internal.py:195
+#, fuzzy
+msgid "Add HBAC Service Group"
+msgstr "Добавлена rolegroup \"%(value)s\""
+
+#: ipalib/plugins/internal.py:199
+msgid "Add Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:200
+msgid "Host Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:202
+msgid "Host Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:203
+msgid "Enrolled?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:204
+msgid "Enrollment"
+msgstr ""
+
+#: ipalib/plugins/internal.py:205
+msgid "Fully Qualified Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
+msgid "Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:208
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
+msgid "Delete Key, Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:211
+msgid "Enroll via One-Time-Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:212
+msgid "Set OTP"
+msgstr ""
+
+#: ipalib/plugins/internal.py:213
+msgid "One-Time-Password has been set."
+msgstr ""
+
+#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
+msgid "Unprovisioning ${entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:215
+msgid "Are you sure you want to unprovision this host?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
+msgid "Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:219
+msgid "Add Host Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:220
+msgid "Host Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:223
+msgid "Kerberos ticket policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:226
+msgid "Add Netgroup"
+msgstr ""
+
+#: ipalib/plugins/internal.py:227
+msgid "Netgroup Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:230
+msgid "Add Permission"
+msgstr ""
+
+#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
+msgid "Identity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:233
+msgid "Target"
+msgstr ""
+
+#: ipalib/plugins/internal.py:235
+msgid "By Subtree"
+msgstr ""
+
+#: ipalib/plugins/internal.py:236
+msgid "Target Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:237
+msgid "Object By Type"
+msgstr ""
+
+#: ipalib/plugins/internal.py:238
+msgid "Permission with invalid target specification"
+msgstr ""
+
+#: ipalib/plugins/internal.py:241
+msgid "Add Privilege"
+msgstr ""
+
+#: ipalib/plugins/internal.py:242
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:245
+msgid "Add Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:249
+msgid "Add Role"
+msgstr ""
+
+#: ipalib/plugins/internal.py:250
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:253
+msgid "Add Self Service Definition"
+msgstr ""
+
+#: ipalib/plugins/internal.py:256
+msgid "Add Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:257
+msgid "Service Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:258
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:260
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:261
+msgid "Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:263
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:267
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:271
+#, fuzzy
+msgid "Add Sudo Command"
+msgstr "Добавлен узел \"%(value)s\""
+
+#: ipalib/plugins/internal.py:275
+#, fuzzy
+msgid "Add Sudo Command Group"
+msgstr "Добавлена группа \"%(value)s\""
+
+#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:279
+msgid "Add Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:287
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:290
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:291
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:292
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:293
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:294
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:295
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:297
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:300
+msgid "Add User"
+msgstr ""
+
+#: ipalib/plugins/internal.py:301
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:302
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:303
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:304
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:305
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:307
+msgid "Click to Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:309
+msgid "Click to Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:310
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:311
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:312
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:313
+msgid "Repeat Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:314
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:315
+#, fuzzy
+msgid "Passwords must match"
+msgstr "Пароли не совпадают"
+
+#: ipalib/plugins/internal.py:319
msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:42
+#: ipalib/plugins/internal.py:320
+msgid "Add and Add Another"
+msgstr ""
+
+#: ipalib/plugins/internal.py:321
+msgid "Add and Edit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:322
+msgid "Add and Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:323
+msgid "Add Many"
+msgstr ""
+
+#: ipalib/plugins/internal.py:324
+msgid "Back to List"
+msgstr ""
+
+#: ipalib/plugins/internal.py:325
+#, fuzzy
+msgid "Cancel"
+msgstr "Отменено."
+
+#: ipalib/plugins/internal.py:326
+msgid "Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:327
+msgid "Enroll"
+msgstr ""
+
+#: ipalib/plugins/internal.py:328
msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:43
+#: ipalib/plugins/internal.py:329
+msgid "Get"
+msgstr ""
+
+#: ipalib/plugins/internal.py:330
+msgid "Issue"
+msgstr ""
+
+#: ipalib/plugins/internal.py:331
+msgid "OK"
+msgstr ""
+
+#: ipalib/plugins/internal.py:332
msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:333
+msgid "Delete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:334
+msgid "Restore"
+msgstr ""
+
+#: ipalib/plugins/internal.py:335
+msgid "Retry"
+msgstr ""
+
+#: ipalib/plugins/internal.py:336
+msgid "Revoke"
+msgstr ""
+
+#: ipalib/plugins/internal.py:337
msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:45
-msgid "Enroll"
+#: ipalib/plugins/internal.py:338
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:46
-msgid "Delete"
+#: ipalib/plugins/internal.py:341
+msgid "Available"
+msgstr ""
+
+#: ipalib/plugins/internal.py:342
+msgid "This page has unsaved changes. Please save or revert."
+msgstr ""
+
+#: ipalib/plugins/internal.py:343
+msgid "Dirty"
+msgstr ""
+
+#: ipalib/plugins/internal.py:344
+#, fuzzy
+msgid "Hide already enrolled."
+msgstr "Эта запись уже заблокирована"
+
+#: ipalib/plugins/internal.py:345
+msgid "Select ${entity} to be removed."
+msgstr ""
+
+#: ipalib/plugins/internal.py:346
+msgid "Remove ${entity}."
+msgstr ""
+
+#: ipalib/plugins/internal.py:347
+msgid "Prospective"
+msgstr ""
+
+#: ipalib/plugins/internal.py:350
+msgid "Managed by"
+msgstr ""
+
+#: ipalib/plugins/internal.py:351
+msgid "Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:352
+msgid "Indirect Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:353
+msgid "Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:354
+msgid "Indirect Member Of"
msgstr ""
-#: ipalib/plugins/internal.py:49
+#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
+msgid "Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:358
+msgid "Search"
+msgstr ""
+
+#: ipalib/plugins/internal.py:362
msgid "Quick Links"
msgstr ""
-#: ipalib/plugins/internal.py:50
+#: ipalib/plugins/internal.py:363
msgid "Select All"
msgstr ""
-#: ipalib/plugins/internal.py:51
+#: ipalib/plugins/internal.py:364
msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Do you really want to delete the selected entries?"
+#: ipalib/plugins/internal.py:365
+msgid "Are you sure you want to delete selected entries?"
msgstr ""
-#: ipalib/plugins/internal.py:55
-msgid "Identity Details"
+#: ipalib/plugins/internal.py:366
+msgid ""
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
msgstr ""
-#: ipalib/plugins/internal.py:56
-msgid "Account Details"
+#: ipalib/plugins/internal.py:370
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:57
-msgid "Contact Details"
+#: ipalib/plugins/internal.py:371
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:58
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:372
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:59
-msgid " Employee Information"
+#: ipalib/plugins/internal.py:373
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:60
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:377
+msgid "Policy"
msgstr ""
-#: ipalib/plugins/internal.py:61
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:378
+msgid "Audit"
msgstr ""
-#: ipalib/plugins/internal.py:66
-msgid "Name of object to export"
+#: ipalib/plugins/internal.py:379
+msgid "IPA Server"
msgstr ""
-#: ipalib/plugins/internal.py:71
-msgid "Dict of JSON encoded IPA Objects"
+#: ipalib/plugins/internal.py:380
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:381
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:382
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:383
+msgid "Automount"
+msgstr ""
+
+#: ipalib/plugins/internal.py:386
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:387
+msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:388
+msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:389
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:392
+msgid "Text does not match field pattern"
msgstr ""
-#: ipalib/plugins/internal.py:72
+#: ipalib/plugins/internal.py:395
+msgid ""
+"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."
+msgstr ""
+
+#: ipalib/plugins/internal.py:399
msgid "Dict of I18N messages"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:59
+#: ipalib/plugins/kerberos.py:20
+msgid ""
+"\n"
+"Backend plugin for Kerberos.\n"
+"\n"
+"This wraps the python-kerberos and python-krbV bindings.\n"
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:35
+msgid ""
+"\n"
+" Kerberos backend plugin.\n"
+"\n"
+" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
+" bindings also). Importantly, this plugin does correct Unicode\n"
+" encoding/decoding of values going-to/coming-from the bindings.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:44
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:50
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:56
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:62
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:68
+msgid ""
+"\n"
+" Return the default ccache file name.\n"
+"\n"
+" This will return something like '/tmp/krb5cc_500'.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:79
+msgid ""
+"\n"
+" Return the principal name in default credential cache.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'. If no "
+"credential\n"
+" cache exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:91
+msgid ""
+"\n"
+" Return the realm from the default credential cache.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'. If no credential "
+"cache\n"
+" exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:103
+msgid ""
+"\n"
+" Return the principal from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:111
+msgid ""
+"\n"
+" Return the realm from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:19
+msgid ""
+"\n"
+"Kerberos ticket policy\n"
+"\n"
+"There is a single Kerberos ticket policy. This policy defines the\n"
+"maximum ticket lifetime and the maximum renewal age, the period during\n"
+"which the ticket is renewable.\n"
+"\n"
+"You can also create a per-user ticket policy by specifying the user login.\n"
+"\n"
+"For changes to the global policy to take effect, restarting the KDC service\n"
+"is required, which can be achieved using:\n"
+"\n"
+"service krb5kdc restart\n"
+"\n"
+"Changes to per-user policies take effect immediately for newly requested\n"
+"tickets (e.g. when the user next runs kinit).\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Display the current Kerberos ticket policy:\n"
+" ipa krbtpolicy-show\n"
+"\n"
+" Reset the policy to the default:\n"
+" ipa krbtpolicy-reset\n"
+"\n"
+" Modify the policy to 8 hours max life, 1-day max renewal:\n"
+" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n"
+"\n"
+" Display effective Kerberos ticket policy for user 'admin':\n"
+" ipa krbtpolicy-show admin\n"
+"\n"
+" Reset per-user policy for user 'admin':\n"
+" ipa krbtpolicy-reset admin\n"
+"\n"
+" Modify per-user policy for user 'admin':\n"
+" ipa krbtpolicy-mod admin --maxlife=3600\n"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:71
+msgid ""
+"\n"
+" Kerberos Ticket Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:79
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:64 ipalib/plugins/passwd.py:52
+#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
msgid "User name"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:65
+#: ipalib/plugins/krbtpolicy.py:85
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:70
+#: ipalib/plugins/krbtpolicy.py:90
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:75
+#: ipalib/plugins/krbtpolicy.py:96
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:76
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/migration.py:44
-#, python-format
+#: ipalib/plugins/krbtpolicy.py:111
+msgid ""
+"\n"
+" Modify Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:125
+msgid ""
+"\n"
+" Display the current Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:149
+msgid ""
+"\n"
+" Reset Kerberos ticket policy to the default values.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:19
+msgid ""
+"\n"
+"Migration to IPA\n"
+"\n"
+"Migrate users and groups from an LDAP server to IPA.\n"
+"\n"
+"This performs an LDAP query against the remote server searching for\n"
+"users and groups in a container. In order to migrate passwords you need\n"
+"to bind as a user that can read the userPassword attribute on the remote\n"
+"server. This is generally restricted to high-level admins such as\n"
+"cn=Directory Manager in 389-ds (this is the default bind user).\n"
+"\n"
+"The default user container is ou=People.\n"
+"\n"
+"The default group container is ou=Groups.\n"
+"\n"
+"Users and groups that already exist on the IPA server are skipped.\n"
+"\n"
+"Two LDAP schemas define how group members are stored: RFC2307 and\n"
+"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n"
+"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n"
+"\n"
+"Migrated users do not have Kerberos credentials, they have only their\n"
+"LDAP password. To complete the migration process, users need to go\n"
+"to http://ipa.example.com/ipa/migration and authenticate using their\n"
+"LDAP password in order to generate their Kerberos credentials.\n"
+"\n"
+"Migration is disabled by default. Use the command ipa config-mod to\n"
+"enable it:\n"
+"\n"
+" ipa config-mod --enable-migration=TRUE\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" The simplest migration, accepting all defaults:\n"
+" ipa migrate-ds ldap://ds.example.com:389\n"
+"\n"
+" Specify the user and group container. This can be used to migrate user and\n"
+" group data from an IPA v1 server:\n"
+" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-"
+"container='cn=groups,cn=accounts' ldap://ds.example.com:389\n"
+msgstr ""
+
+#: ipalib/plugins/migration.py:78
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:45
+#: ipalib/plugins/migration.py:79
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:169
+#: ipalib/plugins/migration.py:175
+msgid ""
+"\n"
+" Convert usernames in member attributes to work in IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:220
+msgid "Invalid LDAP URI."
+msgstr ""
+
+#: ipalib/plugins/migration.py:225
+msgid ""
+"\n"
+" Migrate users and groups from DS to IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:266
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:170
+#: ipalib/plugins/migration.py:267
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:174
+#: ipalib/plugins/migration.py:272
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:181
+#: ipalib/plugins/migration.py:279
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:187
+#: ipalib/plugins/migration.py:285
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:188
+#: ipalib/plugins/migration.py:286
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:194
+#: ipalib/plugins/migration.py:292
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:195
+#: ipalib/plugins/migration.py:293
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:200
-msgid "Continous operation mode. Errors are reported but the process continues"
+#: ipalib/plugins/migration.py:299
+msgid "User object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:300
+msgid ""
+"Comma-separated list of objectclasses used to search for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:306
+msgid "Group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:307
+msgid ""
+"Comma-separated list of objectclasses used to search for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:313
+msgid "LDAP schema"
+msgstr ""
+
+#: ipalib/plugins/migration.py:314
+msgid ""
+"The schema used on the LDAP server. Supported values are RFC2307 and "
+"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:208
+#: ipalib/plugins/migration.py:320
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues"
+msgstr ""
+
+#: ipalib/plugins/migration.py:328
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:212
+#: ipalib/plugins/migration.py:332
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:216
+#: ipalib/plugins/migration.py:336
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:220
-#, python-format
+#: ipalib/plugins/migration.py:340
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:222
+#: ipalib/plugins/migration.py:342
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
-"migration process might be uncomplete\n"
+"migration process might be incomplete\n"
msgstr ""
-#: ipalib/plugins/migration.py:227
+#: ipalib/plugins/migration.py:347
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:230
+#: ipalib/plugins/migration.py:350
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -1551,16 +4836,55 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:297
-#, python-format
+#: ipalib/plugins/migration.py:358
+msgid ""
+"\n"
+" Call get_options of the baseclass and add \"exclude\" options\n"
+" for each type of object being migrated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:375
+msgid ""
+"\n"
+" Convert all \"exclude\" option values to lower-case.\n"
+"\n"
+" Also, empty List parameters are converted to None, but the "
+"migration\n"
+" plugin doesn't like that - convert back to empty lists.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:399
+msgid ""
+"\n"
+" Migrate objects from DS to LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:425
msgid "Container for %(container)s not found"
msgstr ""
+#: ipalib/plugins/misc.py:20
+msgid ""
+"\n"
+"Misc plug-ins\n"
+msgstr ""
+
+#: ipalib/plugins/misc.py:36
+msgid "Show environment variables"
+msgstr ""
+
#: ipalib/plugins/misc.py:38
-#, python-format
msgid "%(count)d variables"
msgstr "%(count)d переменных"
+#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115
+msgid ""
+"retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
#: ipalib/plugins/misc.py:61
msgid "Total number of variables env (>= count)"
msgstr ""
@@ -1569,443 +4893,2463 @@ msgstr ""
msgid "Number of variables returned (<= total)"
msgstr ""
-#: ipalib/plugins/misc.py:109
-#, python-format
+#: ipalib/plugins/misc.py:106
+msgid "Show all loaded plugins"
+msgstr ""
+
+#: ipalib/plugins/misc.py:108
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] "загружен %(count)d подключаемый модуль"
msgstr[1] "загружено %(count)d подключаемых модуля"
msgstr[2] "загружено %(count)d подключаемых модулей"
-#: ipalib/plugins/misc.py:116
+#: ipalib/plugins/misc.py:126
#, fuzzy
msgid "Number of plugins loaded"
msgstr "загружен %(count)d подключаемый модуль"
-#: ipalib/plugins/netgroup.py:57
+#: ipalib/plugins/netgroup.py:20
+msgid ""
+"\n"
+"Netgroups\n"
+"\n"
+"A netgroup is a group used for permission checking. It can contain both\n"
+"user and host values.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new netgroup:\n"
+" ipa netgroup-add --desc=\"NFS admins\" admins\n"
+"\n"
+" Add members to the netgroup:\n"
+" ipa netgroup-add-member --users=tuser1,tuser2 admins\n"
+"\n"
+" Remove a member from the netgroup:\n"
+" ipa netgroup-remove-member --users=tuser2 admins\n"
+"\n"
+" Display information about a netgroup:\n"
+" ipa netgroup-show admins\n"
+"\n"
+" Delete a netgroup:\n"
+" ipa netgroup-del admins\n"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:59
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:63
-msgid "External host"
+#: ipalib/plugins/netgroup.py:67
+msgid ""
+"\n"
+" Netgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/netgroup.py:85
-msgid "Net Groups"
+#: ipalib/plugins/netgroup.py:98
+msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:90
+#: ipalib/plugins/netgroup.py:103
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:97
+#: ipalib/plugins/netgroup.py:110
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:101
+#: ipalib/plugins/netgroup.py:114
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:106
+#: ipalib/plugins/netgroup.py:119
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:84
-#, python-format
+#: ipalib/plugins/netgroup.py:140
+msgid ""
+"\n"
+" Add a new netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:144
+#, fuzzy
+msgid "Added netgroup \"%(value)s\""
+msgstr "Добавлена группа \"%(value)s\""
+
+#: ipalib/plugins/netgroup.py:153
+msgid ""
+"\n"
+" Delete a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:156
+#, fuzzy
+msgid "Deleted netgroup \"%(value)s\""
+msgstr "Удалена группа \"%(value)s\""
+
+#: ipalib/plugins/netgroup.py:162
+msgid ""
+"\n"
+" Modify a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:166
+#, fuzzy
+msgid "Modified netgroup \"%(value)s\""
+msgstr "Изменена группа \"%(value)s\""
+
+#: ipalib/plugins/netgroup.py:180
+msgid ""
+"\n"
+" Search for a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:185
+#, fuzzy
+msgid "%(count)d netgroup matched"
+msgid_plural "%(count)d netgroups matched"
+msgstr[0] "совпадает %(count)d группа"
+msgstr[1] "совпадают %(count)d группы"
+msgstr[2] "совпадают %(count)d групп"
+
+#: ipalib/plugins/netgroup.py:213
+msgid ""
+"\n"
+" Display information about a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:222
+msgid ""
+"\n"
+" Add members to a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:258
+msgid ""
+"\n"
+" Remove members from a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:19
+msgid ""
+"\n"
+"Set a user's password\n"
+"\n"
+"If someone other than a user changes that user's password (e.g., Helpdesk\n"
+"resets it) then the password will need to be changed the first time it\n"
+"is used. This is so the end-user is the only one who knows the password.\n"
+"\n"
+"The IPA password policy controls how often a password may be changed,\n"
+"what strength requirements exist, and the length of the password history.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" To reset your own password:\n"
+" ipa passwd\n"
+"\n"
+" To change another user's password:\n"
+" ipa passwd tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/passwd.py:46
+msgid ""
+"\n"
+" Set a user's password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:64
+#, fuzzy
+msgid "Changed password for \"%(value)s\""
+msgstr "Добавлен пользователь \"%(value)s\""
+
+#: ipalib/plugins/passwd.py:67
+msgid ""
+"\n"
+" Execute the passwd operation.\n"
+"\n"
+" The dn should not be passed as a keyword argument as it is "
+"constructed\n"
+" by this method.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param principal: The login name or principal of the user\n"
+" :param password: the new password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:19
+msgid ""
+"\n"
+"Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of rights. A permission is\n"
+"a human-readable form of a 389-ds Access Control Rule, or instruction "
+"(ACI).\n"
+"A permission grants the right to perform a specific task such as adding a\n"
+"user, modifying a group, etc.\n"
+"\n"
+"A permission may not contain other permissions.\n"
+"\n"
+"* A permission grants access to read, write, add or delete.\n"
+"* A privilege combines similar permissions (for example all the permissions\n"
+" needed to add a user).\n"
+"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n"
+"\n"
+"A permission is made up of a number of different parts:\n"
+"\n"
+"1. The name of the permission.\n"
+"2. The target of the permission.\n"
+"3. The rights granted by the permission.\n"
+"\n"
+"Rights define what operations are allowed, and may be one or more\n"
+"of the following:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Read permission is granted for most attributes by default so the read\n"
+"permission is not expected to be used very often.\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"There are a number of allowed targets:\n"
+"1. type: a type of object (user, group, etc).\n"
+"2. memberof: a member of a group or hostgroup\n"
+"3. filter: an LDAP filter\n"
+"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n"
+" super-set of the \"type\" target.\n"
+"5. targetgroup: grant access to modify a specific group (such as granting\n"
+" the rights to manage group membership)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a permission that grants the creation of users:\n"
+" ipa permission-add --type=user --permissions=add \"Add Users\"\n"
+"\n"
+" Add a permission that grants the ability to manage group membership:\n"
+" ipa permission-add --attrs=member --permissions=write --type=group "
+"\"Manage Group Members\"\n"
+msgstr ""
+
+#: ipalib/plugins/permission.py:84
+msgid "Permission Type"
+msgstr ""
+
+#: ipalib/plugins/permission.py:89
+msgid ""
+"\n"
+" Permission object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:112
+msgid "Permission name"
+msgstr ""
+
+#: ipalib/plugins/permission.py:119
+msgid ""
+"Comma-separated list of permissions to grant (read, write, add, delete, all)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:132
+msgid ""
+"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:138
+msgid "Member of group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:139
+#, fuzzy
+msgid "Target members of a group"
+msgstr "Эта запись не является членом группы"
+
+#: ipalib/plugins/permission.py:151
+msgid "Subtree to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:157
+msgid "User group to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:177
+msgid ""
+"\n"
+" Add a new permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:181
+#, fuzzy
+msgid "Added permission \"%(value)s\""
+msgstr "Добавлен пользователь \"%(value)s\""
+
+#: ipalib/plugins/permission.py:236
+msgid ""
+"\n"
+" Delete a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:240
+#, fuzzy
+msgid "Deleted permission \"%(value)s\""
+msgstr "Удален пользователь \"%(value)s\""
+
+#: ipalib/plugins/permission.py:256
+msgid ""
+"\n"
+" Modify a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:260
+#, fuzzy
+msgid "Modified permission \"%(value)s\""
+msgstr "Изменен пользователь \"%(value)s\""
+
+#: ipalib/plugins/permission.py:352
+msgid ""
+"\n"
+" Search for permissions.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:356
+#, fuzzy
+msgid "%(count)d permission matched"
+msgid_plural "%(count)d permissions matched"
+msgstr[0] "совпадает %(count)d пользователь"
+msgstr[1] "совпадают %(count)d пользователя"
+msgstr[2] "совпадают %(count)d пользователей"
+
+#: ipalib/plugins/permission.py:405
+msgid ""
+"\n"
+" Display information about a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:428
+msgid ""
+"\n"
+" Add members to a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:437
+msgid ""
+"\n"
+" Remove members from a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:19
+msgid ""
+"\n"
+"Ping the remote IPA server\n"
+msgstr ""
+
+#: ipalib/plugins/ping.py:29
+msgid ""
+"\n"
+" ping a remote server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:37
+msgid ""
+"\n"
+" A possible enhancement would be to take an argument and echo it\n"
+" back but a fixed value works for now.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:19
+msgid ""
+"\n"
+"Kerberos pkinit options\n"
+"\n"
+"Enable or disable anonymous pkinit using the principal\n"
+"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n"
+"pkinit support.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Enable anonymous pkinit:\n"
+" ipa pkinit-anonymous enable\n"
+"\n"
+" Disable anonymous pkinit:\n"
+" ipa pkinit-anonymous disable\n"
+"\n"
+"For more information on anonymous pkinit see:\n"
+"\n"
+"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:46
+msgid ""
+"\n"
+" PKINIT Options\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:51
+msgid "PKINIT"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:56
+msgid ""
+"\n"
+" Accepts only Enable/Disable.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:67
+msgid ""
+"\n"
+" Enable or Disable Anonymous PKINIT\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:19
+msgid ""
+"\n"
+"Privileges\n"
+"\n"
+"A privilege combines permissions into a logical task. A permission provides\n"
+"the rights to do a single task. There are some IPA operations that require\n"
+"multiple permissions to succeed. A privilege is where permissions are\n"
+"combined in order to perform a specific task.\n"
+"\n"
+"For example, adding a user requires the following permissions:\n"
+" * Creating a new user entry\n"
+" * Resetting a user password\n"
+" * Adding the new user to the default IPA users group\n"
+"\n"
+"Combining these three low-level tasks into a higher level task in the\n"
+"form of a privilege named \"Add User\" makes it easier to manage Roles.\n"
+"\n"
+"A privilege may not contain other privileges.\n"
+"\n"
+"See role and permission for additional information.\n"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:45
+msgid ""
+"\n"
+" Privilege object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:65
+msgid "Privileges"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:70
+msgid "Privilege name"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:77
+msgid "Privilege description"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:85
+msgid ""
+"\n"
+" Add a new privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:89
+#, fuzzy
+msgid "Added privilege \"%(value)s\""
+msgstr "Добавлен пользователь \"%(value)s\""
+
+#: ipalib/plugins/privilege.py:95
+msgid ""
+"\n"
+" Delete a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:99
+#, fuzzy
+msgid "Deleted privilege \"%(value)s\""
+msgstr "Удален пользователь \"%(value)s\""
+
+#: ipalib/plugins/privilege.py:105
+msgid ""
+"\n"
+" Modify a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:109
+#, fuzzy
+msgid "Modified privilege \"%(value)s\""
+msgstr "Изменен пользователь \"%(value)s\""
+
+#: ipalib/plugins/privilege.py:115
+msgid ""
+"\n"
+" Search for privileges.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:119
+#, fuzzy
+msgid "%(count)d privilege matched"
+msgid_plural "%(count)d privileges matched"
+msgstr[0] "совпадает %(count)d пользователь"
+msgstr[1] "совпадают %(count)d пользователя"
+msgstr[2] "совпадают %(count)d пользователей"
+
+#: ipalib/plugins/privilege.py:127
+msgid ""
+"\n"
+" Display information about a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:135
+msgid ""
+"\n"
+" Add members to a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:144
+msgid ""
+"\n"
+" Remove members from a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:153
+msgid ""
+"\n"
+" Add permissions to a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:169
+#, fuzzy
+msgid "Number of permissions added"
+msgstr "загружен %(count)d подключаемый модуль"
+
+#: ipalib/plugins/privilege.py:177
+msgid ""
+"\n"
+" Remove permissions from a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:195
+#, fuzzy
+msgid "Number of permissions removed"
+msgstr "загружен %(count)d подключаемый модуль"
+
+#: ipalib/plugins/pwpolicy.py:20
+msgid ""
+"\n"
+"Password policy\n"
+"\n"
+"A password policy sets limitations on IPA passwords, including maximum\n"
+"lifetime, minimum lifetime, the number of passwords to save in\n"
+"history, the number of character classes required (for stronger passwords)\n"
+"and the minimum password length.\n"
+"\n"
+"By default there is a single, global policy for all users. You can also\n"
+"create a password policy to apply to a group. Each user is only subject\n"
+"to one password policy, either the group policy or the global policy. A\n"
+"group policy stands alone; it is not a super-set of the global policy plus\n"
+"custom settings.\n"
+"\n"
+"Each group password policy requires a unique priority setting. If a user\n"
+"is in multiple groups that have password policies, this priority determines\n"
+"which password policy is applied. A lower value indicates a higher priority\n"
+"policy.\n"
+"\n"
+"Group password policies are automatically removed when the groups they\n"
+"are associated with are removed.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Modify the global policy:\n"
+" ipa pwpolicy-mod --minlength=10\n"
+"\n"
+" Add a new group password policy:\n"
+" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --"
+"minlength=8 --priority=10 localadmins\n"
+"\n"
+" Display the global password policy:\n"
+" ipa pwpolicy-show\n"
+"\n"
+" Display a group password policy:\n"
+" ipa pwpolicy-show localadmins\n"
+"\n"
+" Display the policy that would be applied to a given user:\n"
+" ipa pwpolicy-show --user=tuser1\n"
+"\n"
+" Modify a group password policy:\n"
+" ipa pwpolicy-mod --minclasses=2 localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:72
+msgid ""
+"\n"
+" Class of Service object used for linking policies with groups\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:87
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:170
-msgid "Password Policy"
+#: ipalib/plugins/pwpolicy.py:172
+msgid ""
+"\n"
+" Password Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:201
+msgid "Max failures"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:202
+msgid "Consecutive failures before lockout"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:207
+msgid "Failure reset interval"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:208
+msgid "Period after which failure count will be reset (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:213
+msgid "Lockout duration"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:214
+msgid "Period for which lockout is enforced (seconds)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:175
+#: ipalib/plugins/pwpolicy.py:224
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:176
+#: ipalib/plugins/pwpolicy.py:225
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:181
+#: ipalib/plugins/pwpolicy.py:230
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:182
+#: ipalib/plugins/pwpolicy.py:231
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:187
+#: ipalib/plugins/pwpolicy.py:236
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:188
+#: ipalib/plugins/pwpolicy.py:237
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:193
+#: ipalib/plugins/pwpolicy.py:242
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:194
+#: ipalib/plugins/pwpolicy.py:243
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:199
+#: ipalib/plugins/pwpolicy.py:248
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:200
+#: ipalib/plugins/pwpolicy.py:249
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:206
+#: ipalib/plugins/pwpolicy.py:255
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:256
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:212
+#: ipalib/plugins/pwpolicy.py:261
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:262
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:265
+#: ipalib/plugins/pwpolicy.py:294
+msgid ""
+"\n"
+" Ensure that the maximum lifetime is greater than the minimum.\n"
+" If there is no minimum lifetime set then don't return an error.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:314
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:330
+#: ipalib/plugins/pwpolicy.py:333
+msgid ""
+"\n"
+" Add a new group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:361
+msgid ""
+"\n"
+" Delete a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:380
+msgid ""
+"\n"
+" Modify a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:391
msgid "priority cannot be set on global policy"
msgstr "приоритет не может быть задан для глобальной политики"
-#: ipalib/plugins/pwpolicy.py:369
+#: ipalib/plugins/pwpolicy.py:423
+msgid ""
+"\n"
+" Display information about password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:428
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:370
+#: ipalib/plugins/pwpolicy.py:429
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/rolegroup.py:79
-msgid "Role Groups"
+#: ipalib/plugins/pwpolicy.py:452
+msgid ""
+"\n"
+" Search for group password policies.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:84
-msgid "Role-group name"
+#: ipalib/plugins/role.py:20
+msgid ""
+"\n"
+"Roles\n"
+"\n"
+"A role is used for fine-grained delegation. A permission grants the ability\n"
+"to perform given low-level tasks (add a user, modify a group, etc.). A\n"
+"privilege combines one or more permissions into a higher-level abstraction\n"
+"such as useradmin. A useradmin would be able to add, delete and modify "
+"users.\n"
+"\n"
+"Privileges are assigned to Roles.\n"
+"\n"
+"Users, groups, hosts and hostgroups may be members of a Role.\n"
+"\n"
+"Roles can not contain other roles.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new role:\n"
+" ipa role-add --desc=\"Junior-level admin\" junioradmin\n"
+"\n"
+" Add some privileges to this role:\n"
+" ipa role-add-privilege --privileges=addusers junioradmin\n"
+" ipa role-add-privilege --privileges=change_password junioradmin\n"
+" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n"
+"\n"
+" Add a group of users to this role:\n"
+" ipa group-add --desc=\"User admins\" useradmins\n"
+" ipa role-add-member --groups=useradmins junioradmin\n"
+"\n"
+" Display information about a role:\n"
+" ipa role-show junioradmin\n"
+"\n"
+" The result of this is that any users in the group 'useradmins' can\n"
+" add users, reset passwords or add a user to the default IPA user group.\n"
+msgstr ""
+
+#: ipalib/plugins/role.py:62
+msgid ""
+"\n"
+" Role object.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:91
+#: ipalib/plugins/role.py:81
+msgid "Role"
+msgstr ""
+
+#: ipalib/plugins/role.py:86
+msgid "Role name"
+msgstr ""
+
+#: ipalib/plugins/role.py:93
msgid "A description of this role-group"
msgstr ""
-#: ipalib/plugins/rolegroup.py:102
-msgid "Member of task-groups"
+#: ipalib/plugins/role.py:101
+msgid ""
+"\n"
+" Add a new role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:115
-#, python-format
-msgid "Added rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:105
+#, fuzzy
+msgid "Added role \"%(value)s\""
msgstr "Добавлена rolegroup \"%(value)s\""
-#: ipalib/plugins/rolegroup.py:125
-#, python-format
-msgid "Deleted rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:111
+msgid ""
+"\n"
+" Delete a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:115
+#, fuzzy
+msgid "Deleted role \"%(value)s\""
msgstr "Удалена rolegroup \"%(value)s\""
-#: ipalib/plugins/rolegroup.py:135
-#, python-format
-msgid "Modified rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:121
+msgid ""
+"\n"
+" Modify a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:125
+#, fuzzy
+msgid "Modified role \"%(value)s\""
msgstr "Изменена rolegroup \"%(value)s\""
-#: ipalib/plugins/rolegroup.py:146
-#, python-format
-msgid "%(count)d rolegroup matched"
-msgid_plural "%(count)d rolegroups matched"
+#: ipalib/plugins/role.py:131
+msgid ""
+"\n"
+" Search for roles.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:135
+#, fuzzy
+msgid "%(count)d role matched"
+msgid_plural "%(count)d roles matched"
msgstr[0] "совпадает %(count)d rolegroup"
msgstr[1] "совпадают %(count)d rolegroup"
msgstr[2] "совпадают %(count)d rolegroup"
-#: ipalib/plugins/service.py:198
+#: ipalib/plugins/role.py:143
+msgid ""
+"\n"
+" Display information about a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:151
+msgid ""
+"\n"
+" Add members to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:159
+msgid ""
+"\n"
+" Remove members from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:167
+msgid ""
+"\n"
+" Add privileges to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:183
+#, fuzzy
+msgid "Number of privileges added"
+msgstr "загружен %(count)d подключаемый модуль"
+
+#: ipalib/plugins/role.py:191
+msgid ""
+"\n"
+" Remove privileges from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:207
+#, fuzzy
+msgid "Number of privileges removed"
+msgstr "загружен %(count)d подключаемый модуль"
+
+#: ipalib/plugins/selfservice.py:19
+msgid ""
+"\n"
+"Self-service Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"A Self-service permission defines what an object can change in its own "
+"entry.\n"
+"\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a self-service rule to allow users to manage their address:\n"
+" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st "
+"\"Users manage their own address\"\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add telephoneNumber to the list:\n"
+" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber "
+"\"Users manage their own address\"\n"
+"\n"
+" Display our updated rule:\n"
+" ipa selfservice-show \"Users manage their own address\"\n"
+"\n"
+" Delete a rule:\n"
+" ipa selfservice-del \"Users manage their own address\"\n"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:56
+msgid ""
+"\n"
+" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a self-service ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:64
+msgid "Self-service permission '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:68
+msgid ""
+"\n"
+" Selfservice object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:75
+msgid "Self Service Permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
+msgid "Self-service name"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:114
+msgid ""
+"\n"
+" Add a new self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:118
+#, fuzzy
+msgid "Added selfservice \"%(value)s\""
+msgstr "Добавлен пользователь \"%(value)s\""
+
+#: ipalib/plugins/selfservice.py:137
+msgid ""
+"\n"
+" Delete a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:142
+#, fuzzy
+msgid "Deleted selfservice \"%(value)s\""
+msgstr "Удален пользователь \"%(value)s\""
+
+#: ipalib/plugins/selfservice.py:158
+msgid ""
+"\n"
+" Modify a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:162
+#, fuzzy
+msgid "Modified selfservice \"%(value)s\""
+msgstr "Изменен пользователь \"%(value)s\""
+
+#: ipalib/plugins/selfservice.py:181
+msgid ""
+"\n"
+" Search for a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:185
+#, fuzzy
+msgid "%(count)d selfservice matched"
+msgid_plural "%(count)d selfservices matched"
+msgstr[0] "совпадает %(count)d пользователь"
+msgstr[1] "совпадают %(count)d пользователя"
+msgstr[2] "совпадают %(count)d пользователей"
+
+#: ipalib/plugins/selfservice.py:207
+msgid ""
+"\n"
+" Display information about a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:21
+msgid ""
+"\n"
+"Services\n"
+"\n"
+"A IPA service represents a service that runs on a host. The IPA service\n"
+"record can store a Kerberos principal, an SSL certificate, or both.\n"
+"\n"
+"An IPA service can be managed directly from a machine, provided that\n"
+"machine has been given the correct permission. This is true even for\n"
+"machines other than the one the service is associated with. For example,\n"
+"requesting an SSL certificate using the host service principal credentials\n"
+"of the host. To manage a service using host credentials you need to\n"
+"kinit as the host:\n"
+"\n"
+" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n"
+"\n"
+"Adding an IPA service allows the associated service to request an SSL\n"
+"certificate or keytab, but this is performed as a separate step; they\n"
+"are not produced as a result of adding the service.\n"
+"\n"
+"Only the public aspect of a certificate is stored in a service record;\n"
+"the private key is not stored.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new IPA service:\n"
+" ipa service-add HTTP/web.example.com\n"
+"\n"
+" Allow a host to manage an IPA service certificate:\n"
+" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n"
+" ipa role-add-member --hosts=web.example.com certadmin\n"
+"\n"
+" Delete an IPA service:\n"
+" ipa service-del HTTP/web.example.com\n"
+"\n"
+" Find all IPA services associated with a host:\n"
+" ipa service-find web.example.com\n"
+"\n"
+" Find all HTTP services:\n"
+" ipa service-find HTTP\n"
+"\n"
+" Disable the service Kerberos key and SSL certificate:\n"
+" ipa service-disable HTTP/web.example.com\n"
+"\n"
+" Request a certificate for an IPA service:\n"
+" ipa cert-request --principal=HTTP/web.example.com example.csr\n"
+"\n"
+" Generate and retrieve a keytab for an IPA service:\n"
+" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/"
+"httpd.keytab\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/service.py:162
+msgid ""
+"\n"
+" For now just verify that it is properly base64-encoded.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:175
+msgid ""
+"\n"
+" Set individual attributes from some values from a certificate.\n"
+"\n"
+" entry_attrs is a dict of an entry\n"
+"\n"
+" returns nothing\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:199
+msgid ""
+"\n"
+" Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:226
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:221
+#: ipalib/plugins/service.py:242
+msgid ""
+"\n"
+" Add a new IPA new service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:245
+#, fuzzy
+msgid "Added service \"%(value)s\""
+msgstr "Добавлен пользователь \"%(value)s\""
+
+#: ipalib/plugins/service.py:251
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:292
-#, fuzzy, python-format
+#: ipalib/plugins/service.py:284
+msgid ""
+"\n"
+" Delete an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:287
+#, fuzzy
+msgid "Deleted service \"%(value)s\""
+msgstr "Удален пользователь \"%(value)s\""
+
+#: ipalib/plugins/service.py:321
+msgid ""
+"\n"
+" Modify an existing IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:324
+#, fuzzy
msgid "Modified service \"%(value)s\""
msgstr "Изменен пользователь \"%(value)s\""
-#: ipalib/plugins/service.py:323
-#, fuzzy, python-format
+#: ipalib/plugins/service.py:356
+msgid ""
+"\n"
+" Search for IPA services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:359
+#, fuzzy
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] "совпадает %(count)d пользователь"
msgstr[1] "совпадают %(count)d пользователя"
msgstr[2] "совпадают %(count)d пользователей"
-#: ipalib/plugins/service.py:409
-msgid "Service principal has no kerberos key"
+#: ipalib/plugins/service.py:394
+msgid ""
+"\n"
+" Display information about an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:432
+msgid ""
+"\n"
+" Add hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:442
+msgid ""
+"\n"
+" Remove hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:452
+msgid ""
+"\n"
+" Disable the Kerberos key and SSL certificate of a service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:456
+#, fuzzy
+msgid "Disabled service \"%(value)s\""
+msgstr "Удален пользователь \"%(value)s\""
+
+#: ipalib/plugins/sudocmd.py:19
+msgid ""
+"\n"
+"Sudo Commands\n"
+"\n"
+"Commands used as building blocks for sudo\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a new command\n"
+" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n"
+"\n"
+" Remove a command\n"
+" ipa sudocmd-del /usr/bin/less\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:46
+msgid ""
+"\n"
+" Sudo Command object.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmd.py:60
-msgid "SudoCmds"
+#: ipalib/plugins/sudocmd.py:64
+msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:65
+#: ipalib/plugins/sudocmd.py:69
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:72
+#: ipalib/plugins/sudocmd.py:75
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:99
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:98
+msgid ""
+"\n"
+" Create new sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:102
+#, fuzzy
msgid "Added sudo command \"%(value)s\""
msgstr "Добавлен узел \"%(value)s\""
-#: ipalib/plugins/sudocmd.py:108
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:107
+#, fuzzy
+msgid ""
+"\n"
+" Delete sudo command.\n"
+" "
+msgstr "Удален узел \"%(value)s\""
+
+#: ipalib/plugins/sudocmd.py:111
+#, fuzzy
msgid "Deleted sudo command \"%(value)s\""
msgstr "Удален узел \"%(value)s\""
-#: ipalib/plugins/sudocmd.py:117
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:116
+msgid ""
+"\n"
+" Modify command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:120
+#, fuzzy
msgid "Modified sudo command \"%(value)s\""
msgstr "Изменен узел \"%(value)s\""
-#: ipalib/plugins/sudocmd.py:127
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:125
+msgid ""
+"\n"
+" Search for commands.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:129
+#, fuzzy
msgid "%(count)d sudo command matched"
msgid_plural "%(count)d sudo command matched"
msgstr[0] "совпадает %(count)d узел"
msgstr[1] "совпадает %(count)d узла"
msgstr[2] "совпадает %(count)d узлов"
-#: ipalib/plugins/sudocmdgroup.py:66 ipalib/plugins/sudocmdgroup.py:85
-#: ipalib/plugins/sudorule.py:81 ipalib/plugins/sudorule.py:85
-msgid "Sudo Command Groups"
+#: ipalib/plugins/sudocmd.py:136
+msgid ""
+"\n"
+" Display sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:19
+msgid ""
+"\n"
+"Groups of Sudo commands\n"
+"\n"
+"Manage groups of Sudo commands.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new Sudo command group:\n"
+" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
+"\n"
+" Remove a Sudo command group:\n"
+" ipa sudocmdgroup-del admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim "
+"admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
+"\n"
+" Show a Sudo command group:\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:50
+msgid ""
+"\n"
+" Sudo Group object.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:71
+#: ipalib/plugins/sudocmdgroup.py:70
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:81
-msgid "Commands"
+#: ipalib/plugins/sudocmdgroup.py:93
+msgid ""
+"\n"
+" Create new sudo command group.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:98
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:97
+#, fuzzy
msgid "Added sudo command group \"%(value)s\""
msgstr "Добавлена группа \"%(value)s\""
-#: ipalib/plugins/sudocmdgroup.py:108
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:103
+#, fuzzy
+msgid ""
+"\n"
+" Delete sudo command group.\n"
+" "
+msgstr "Удалена группа \"%(value)s\""
+
+#: ipalib/plugins/sudocmdgroup.py:107
+#, fuzzy
msgid "Deleted sudo command group \"%(value)s\""
msgstr "Удалена группа \"%(value)s\""
-#: ipalib/plugins/sudocmdgroup.py:118
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:113
+msgid ""
+"\n"
+" Modify group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:117
+#, fuzzy
msgid "Modified sudo command group \"%(value)s\""
msgstr "Изменена группа \"%(value)s\""
-#: ipalib/plugins/sudocmdgroup.py:129
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:123
+msgid ""
+"\n"
+" Search for sudo command groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:127
+#, fuzzy
msgid "%(count)d sudo command group matched"
msgid_plural "%(count)d sudo command groups matched"
msgstr[0] "совпадает %(count)d группа"
msgstr[1] "совпадают %(count)d группы"
msgstr[2] "совпадают %(count)d групп"
-#: ipalib/plugins/sudorule.py:48
-msgid "SudoRule"
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid ""
+"\n"
+" Display sudo command group.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/sudocmdgroup.py:144
+#, fuzzy
+msgid ""
+"\n"
+" Add members to sudo command group.\n"
+" "
+msgstr "Добавлена группа \"%(value)s\""
+
+#: ipalib/plugins/sudocmdgroup.py:152
+msgid ""
+"\n"
+" Remove members from sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:19
+msgid ""
+"\n"
+"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
+"give certain users (or groups of users) the ability to run some (or all)\n"
+"commands as root or another user while providing an audit trail of the\n"
+"commands and their arguments.\n"
+"\n"
+"FreeIPA provides a designated binddn to use with Sudo located at:\n"
+"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
+"\n"
+"To enable the binddn run the following command to set the password:\n"
+"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -"
+"ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,"
+"dc=com\n"
+"\n"
+"For more information, see the FreeIPA Documentation to Sudo.\n"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:44
+msgid ""
+"\n"
+" Sudo Rule management\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:68
+msgid "Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:98
+msgid "Command category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:99
+msgid "Command category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:104
+msgid "Run As User category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:105
+msgid "Run As User category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:110
+msgid "Run As Group category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:111
+msgid "Run As Group category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:131
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:77
+#: ipalib/plugins/sudorule.py:135
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:109
-#, fuzzy, python-format
+#: ipalib/plugins/sudorule.py:147
+msgid "Run As User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:151
+msgid "Run As Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:156
+msgid "External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:157
+msgid "External User the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:161
+msgid "RunAs External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:162
+msgid "External User the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:166
+msgid "RunAs External Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:167
+msgid "External Group the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:175
+msgid ""
+"\n"
+" Create new Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
+#, fuzzy
msgid "Added sudo rule \"%(value)s\""
msgstr "Добавлен пользователь \"%(value)s\""
-#: ipalib/plugins/taskgroup.py:51
-msgid "Task Groups"
+#: ipalib/plugins/sudorule.py:189
+msgid ""
+"\n"
+" Delete Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:56
-msgid "Task-group name"
+#: ipalib/plugins/sudorule.py:197
+msgid ""
+"\n"
+" Modify Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:63
-msgid "Task-group description"
+#: ipalib/plugins/sudorule.py:205
+msgid ""
+"\n"
+" Search for Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:74
-msgid "Member role-groups"
+#: ipalib/plugins/sudorule.py:213
+msgid ""
+"\n"
+" Display Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:87
-#, python-format
-msgid "Added taskgroup \"%(value)s\""
-msgstr "Добавлена taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:221
+msgid ""
+"\n"
+" Enable a Sudo rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:97
-#, python-format
-msgid "Deleted taskgroup \"%(value)s\""
-msgstr "Удалена taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:247
+msgid ""
+"\n"
+" Disable a Sudo rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:107
-#, python-format
-msgid "Modified taskgroup \"%(value)s\""
-msgstr "Изменена taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
+msgid ""
+"\n"
+" Add commands and sudo command groups affected by Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:118
-#, python-format
-msgid "%(count)d taskgroup matched"
-msgid_plural "%(count)d taskgroups matched"
-msgstr[0] "совпадает %(count)d taskgroup"
-msgstr[1] "совпадают %(count)d taskgroup"
-msgstr[2] "совпадают %(count)d taskgroup"
+#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
+msgid ""
+"\n"
+" Remove commands and sudo command groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:313
+msgid ""
+"\n"
+" Add users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:349
+msgid ""
+"\n"
+" Remove users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:383
+msgid ""
+"\n"
+" Add hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:419
+msgid ""
+"\n"
+" Remove hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:453
+msgid ""
+"\n"
+" Add user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:489
+msgid ""
+"\n"
+" Remove user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:523
+msgid ""
+"\n"
+" Add group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:559
+msgid ""
+"\n"
+" Remove group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:593
+msgid ""
+"\n"
+" Add an option to the Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
+msgid "Sudo Option"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:635
+msgid ""
+"\n"
+" Remove an option from Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:20
+msgid ""
+"\n"
+"Users\n"
+"\n"
+"Manage user entries. All users are POSIX users.\n"
+"\n"
+"IPA supports a wide range of username formats, but you need to be aware of "
+"any\n"
+"restrictions that may apply to your particular environment. For example,\n"
+"usernames that start with a digit or usernames that exceed a certain length\n"
+"may cause problems for some UNIX systems.\n"
+"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n"
+"\n"
+"Disabling a user account prevents that user from obtaining new Kerberos\n"
+"credentials. It does not invalidate any credentials that have already\n"
+"been issued.\n"
+"\n"
+"Password management is not a part of this module. For more information\n"
+"about this topic please see: ipa help passwd\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1\n"
+"\n"
+" Find all users whose entries include the string \"Tim\":\n"
+" ipa user-find Tim\n"
+"\n"
+" Find all users with \"Tim\" as the first name:\n"
+" ipa user-find --first=Tim\n"
+"\n"
+" Disable a user account:\n"
+" ipa user-disable tuser1\n"
+"\n"
+" Enable a user account:\n"
+" ipa user-enable tuser1\n"
+"\n"
+" Delete a user:\n"
+" ipa user-del tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/user.py:79
+msgid ""
+"\n"
+" User object.\n"
+" "
+msgstr ""
-#: ipalib/plugins/user.py:84
+#: ipalib/plugins/user.py:116
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:91
+#: ipalib/plugins/user.py:123
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:95
+#: ipalib/plugins/user.py:127
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:103
+#: ipalib/plugins/user.py:130
+msgid "Full name"
+msgstr ""
+
+#: ipalib/plugins/user.py:135
+msgid "Display name"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "Initials"
+msgstr ""
+
+#: ipalib/plugins/user.py:146
+msgid "Home directory"
+msgstr ""
+
+#: ipalib/plugins/user.py:150
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:109
+#: ipalib/plugins/user.py:156
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:114
+#: ipalib/plugins/user.py:161
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:120
+#: ipalib/plugins/user.py:168
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:124
-msgid "Password"
-msgstr ""
-
-#: ipalib/plugins/user.py:125
-msgid "Set the user password"
+#: ipalib/plugins/user.py:173
+msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:132
+#: ipalib/plugins/user.py:180
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:133
+#: ipalib/plugins/user.py:181
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:139
-msgid "Street address"
+#: ipalib/plugins/user.py:188
+msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:142
-msgid "Groups"
+#: ipalib/plugins/user.py:193
+msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:146
-msgid "Netgroups"
+#: ipalib/plugins/user.py:197
+msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:150
-msgid "Rolegroups"
+#: ipalib/plugins/user.py:201
+msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:154
-msgid "Taskgroups"
+#: ipalib/plugins/user.py:204
+msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:159
+#: ipalib/plugins/user.py:208
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:211
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:163
+#: ipalib/plugins/user.py:214
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:166
+#: ipalib/plugins/user.py:218
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:177
-#, python-format
+#: ipalib/plugins/user.py:222
+msgid "Org. Unit"
+msgstr ""
+
+#: ipalib/plugins/user.py:225
+msgid "Job Title"
+msgstr ""
+
+#: ipalib/plugins/user.py:228
+msgid "Manager"
+msgstr ""
+
+#: ipalib/plugins/user.py:231
+msgid "Car License"
+msgstr ""
+
+#: ipalib/plugins/user.py:234
+#, fuzzy
+msgid "Account disabled"
+msgstr "%(count)d переменных"
+
+#: ipalib/plugins/user.py:258
+msgid ""
+"\n"
+" Given a userid verify the user's existence and return the dn.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:276
+msgid "manager %(manager)s not found"
+msgstr ""
+
+#: ipalib/plugins/user.py:281
+msgid ""
+"\n"
+" Convert a manager dn into a userid\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:295
+msgid ""
+"\n"
+" Add a new user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:298
msgid "Added user \"%(value)s\""
msgstr "Добавлен пользователь \"%(value)s\""
-#: ipalib/plugins/user.py:226
-#, python-format
+#: ipalib/plugins/user.py:303
+#, fuzzy
+msgid "Don't create user private group"
+msgstr "Группа по умолчанию для пользователя не может быть удалена"
+
+#: ipalib/plugins/user.py:333
+#, fuzzy
+msgid "can be at most %(len)d characters"
+msgstr "может быть не длиннее %(maxlength)d символов"
+
+#: ipalib/plugins/user.py:400
+msgid ""
+"\n"
+" Delete a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:404
msgid "Deleted user \"%(value)s\""
msgstr "Удален пользователь \"%(value)s\""
-#: ipalib/plugins/user.py:240
-#, python-format
+#: ipalib/plugins/user.py:413
+msgid ""
+"\n"
+" Modify a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:417
msgid "Modified user \"%(value)s\""
msgstr "Изменен пользователь \"%(value)s\""
-#: ipalib/plugins/user.py:252
+#: ipalib/plugins/user.py:437
+msgid ""
+"\n"
+" Search for users.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:444
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:253
+#: ipalib/plugins/user.py:445
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:263
-#, python-format
+#: ipalib/plugins/user.py:463
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] "совпадает %(count)d пользователь"
msgstr[1] "совпадают %(count)d пользователя"
msgstr[2] "совпадают %(count)d пользователей"
-#: ipalib/plugins/user.py:283
-#, fuzzy, python-format
+#: ipalib/plugins/user.py:471
+msgid ""
+"\n"
+" Display information about a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:484
+#, fuzzy
+msgid ""
+"\n"
+" Disable a user account.\n"
+" "
+msgstr "Удален пользователь \"%(value)s\""
+
+#: ipalib/plugins/user.py:489
+#, fuzzy
msgid "Disabled user account \"%(value)s\""
msgstr "Удален пользователь \"%(value)s\""
-#: ipalib/plugins/user.py:309
-#, fuzzy, python-format
+#: ipalib/plugins/user.py:507
+#, fuzzy
+msgid ""
+"\n"
+" Enable a user account.\n"
+" "
+msgstr "Разблокирован пользователь \"%(value)s\""
+
+#: ipalib/plugins/user.py:512
+#, fuzzy
msgid "Enabled user account \"%(value)s\""
msgstr "Разблокирован пользователь \"%(value)s\""
-#: ipaserver/install/certs.py:599 ipaserver/plugins/dogtag.py:1313
-#: ipaserver/plugins/dogtag.py:1398 ipaserver/plugins/dogtag.py:1463
-#: ipaserver/plugins/dogtag.py:1543 ipaserver/plugins/dogtag.py:1602
+#: ipalib/plugins/user.py:529
+msgid ""
+"\n"
+" Unlock a user account\n"
+"\n"
+" An account may become locked if the password is entered incorrectly too\n"
+" many times within a specific time period as controlled by password\n"
+" policy. A locked account is a temporary condition and may be unlocked "
+"by\n"
+" an administrator.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:538
+#, fuzzy
+msgid "Unlocked account \"%(value)s\""
+msgstr "Разблокирован пользователь \"%(value)s\""
+
+#: ipalib/plugins/virtual.py:20
+msgid ""
+"\n"
+"Base classes for non-LDAP backend plugins.\n"
+msgstr ""
+
+#: ipalib/plugins/virtual.py:28
+msgid ""
+"\n"
+" A command that doesn't use the LDAP backend but wants to use the\n"
+" LDAP access control system to make authorization decisions.\n"
+"\n"
+" The class variable operation is the commonName attribute of the\n"
+" entry to be tested against.\n"
+"\n"
+" In advance, you need to create an entry of the form:\n"
+" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
+"\n"
+" Ex.\n"
+" cn=request certificate, cn=virtual operations,cn=etc, dc=example, "
+"dc=com\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/virtual.py:44
+msgid ""
+"\n"
+" Perform an LDAP query to determine authorization.\n"
+"\n"
+" This should be executed before any actual work is done.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/xmlclient.py:21
+msgid ""
+"\n"
+"XML-RPC client plugin.\n"
+msgstr ""
+
+#: ipalib/cli.py:581
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr "Повторно введите %(label)s для проверки: "
+
+#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
+#, c-format
+msgid "Passwords do not match!"
+msgstr "Пароли не совпадают!"
+
+#: ipalib/cli.py:590
+msgid "Cancelled."
+msgstr "Отменено."
+
+#: ipalib/cli.py:819
+#, fuzzy
+msgid "Command name"
+msgstr "Команда пока не реализована"
+
+#: ipalib/cli.py:1117
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:300
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr "%(cver)s клиент не совместим с %(sver)s сервером на %(server)r"
+
+#: ipalib/errors.py:318
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr "получена неизвестная ошибка %(code)d от %(server)s: %(error)s"
+
+#: ipalib/errors.py:334
+msgid "an internal error has occurred"
+msgstr "произошла внутренняя ошибка"
+
+#: ipalib/errors.py:356
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr "произошла внутренняя ошибка на сервере %(server)r"
+
+#: ipalib/errors.py:372
+#, python-format
+msgid "unknown command %(name)r"
+msgstr "неизвестная команда %(name)r"
+
+#: ipalib/errors.py:389 ipalib/errors.py:414
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr "ошибка на сервере %(server)r: %(error)s"
+
+#: ipalib/errors.py:405
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr "невозможно подключиться к %(uri)r: %(error)s"
+
+#: ipalib/errors.py:423
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr "Неверный JSON-RPC запрос: %(error)s"
+
+#: ipalib/errors.py:439
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:465
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr "Ошибка Kerberos: %(major)s/%(minor)s"
+
+#: ipalib/errors.py:482
+msgid "did not receive Kerberos credentials"
+msgstr "не получены регистрационные данные Kerberos"
+
+#: ipalib/errors.py:498
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr "Служба %(service)r не найдена в базе данных Kerberos"
+
+#: ipalib/errors.py:514
+msgid "No credentials cache found"
+msgstr "Кэш регистрационных данных не найден"
+
+#: ipalib/errors.py:530
+msgid "Ticket expired"
+msgstr "Срок действия билета истек"
+
+#: ipalib/errors.py:546
+msgid "Credentials cache permissions incorrect"
+msgstr "Права доступа на кэш регистрационных данных неверны"
+
+#: ipalib/errors.py:562
+msgid "Bad format in credentials cache"
+msgstr "Ошибочный формат в кэше регистрационных данных "
+
+#: ipalib/errors.py:578
+msgid "Cannot resolve KDC for requested realm"
+msgstr "Не могу определить KDC для запрошенной области (realm)"
+
+#: ipalib/errors.py:597
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr "Недостаточно прав для доступа: %(info)s"
+
+#: ipalib/errors.py:641
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr "команде %(name)r не требуются параметры"
+
+#: ipalib/errors.py:661
+#, python-format
+msgid "command %(name)r takes at most %(count)d argument"
+msgid_plural "command %(name)r takes at most %(count)d arguments"
+msgstr[0] "команда %(name)r принимает не более %(count)d аргумента"
+msgstr[1] "команда %(name)r принимает не более %(count)d аргументов"
+msgstr[2] "команда %(name)r принимает не более %(count)d аргументов"
+
+#: ipalib/errors.py:691
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr "наложение аргументов и параметров: %(names)r"
+
+#: ipalib/errors.py:707
+#, python-format
+msgid "%(name)r is required"
+msgstr "требуется %(name)r"
+
+#: ipalib/errors.py:723 ipalib/errors.py:739
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr "неверный(ое) %(name)r: %(error)s"
+
+#: ipalib/errors.py:755
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr "api не предоставляет такого пространства имен (namespace): %(name)r"
+
+#: ipalib/errors.py:764
+msgid "Passwords do not match"
+msgstr "Пароли не совпадают"
+
+#: ipalib/errors.py:773
+msgid "Command not implemented"
+msgstr "Команда пока не реализована"
+
+#: ipalib/errors.py:782
+msgid "Client is not configured. Run ipa-client-install."
+msgstr ""
+
+#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
+#: ipalib/errors.py:1424 ipalib/errors.py:1441
+#, python-format
+msgid "%(reason)s"
+msgstr "%(reason)s"
+
+#: ipalib/errors.py:826
+msgid "This entry already exists"
+msgstr "Такая запись уже существует"
+
+#: ipalib/errors.py:842
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+"Для того чтобы создать службу для узла, вам необходимо зарегистрировать этот "
+"узел"
+
+#: ipalib/errors.py:858
+#, python-format
+msgid ""
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr ""
+"Учетная запись службы не представлена в форме: служба/полностью-определенное-"
+"имя: %(reason)s"
+
+#: ipalib/errors.py:874
+msgid ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr "Область (realm) для учетной записи не совпадает с областью IPA сервера"
+
+#: ipalib/errors.py:890
+msgid "This command requires root access"
+msgstr "Этой команде требуются права администратора"
+
+#: ipalib/errors.py:906
+msgid "This is already a posix group"
+msgstr "Уже является posix группой"
+
+#: ipalib/errors.py:922
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr "Учетная запись задана в форме отличной от user@REALM: %(principal)r"
+
+#: ipalib/errors.py:938
+#, fuzzy
+msgid "This entry is already enabled"
+msgstr "Эта запись уже разблокирована"
+
+#: ipalib/errors.py:954
+#, fuzzy
+msgid "This entry is already disabled"
+msgstr "Эта запись уже заблокирована"
+
+#: ipalib/errors.py:970
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:986
+#, fuzzy
+msgid "This entry is not a member"
+msgstr "Эта запись не является членом группы"
+
+#: ipalib/errors.py:1002
+msgid "A group may not be a member of itself"
+msgstr "Группа не может входить в состав самой себя"
+
+#: ipalib/errors.py:1018
+#, fuzzy
+msgid "This entry is already a member"
+msgstr "Эта запись уже является членом группы"
+
+#: ipalib/errors.py:1034
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr "Декодирование Base64 прошло с ошибкой: %(reason)s"
+
+#: ipalib/errors.py:1066
+msgid "A group may not be added as a member of itself"
+msgstr "Группа не может быть добавлена сама в себя"
+
+#: ipalib/errors.py:1082
+msgid "The default users group cannot be removed"
+msgstr "Группа по умолчанию для пользователя не может быть удалена"
+
+#: ipalib/errors.py:1098
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1113
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1128
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1160
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1176
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1192
+#, python-format
+msgid ""
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1216
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr "нет команды или раздела справки для %(topic)r"
+
+#: ipalib/errors.py:1240
+msgid "change collided with another change"
+msgstr "изменение противоречит другому сделанному изменению"
+
+#: ipalib/errors.py:1256
+msgid "no modifications to be performed"
+msgstr "изменения не внесены"
+
+#: ipalib/errors.py:1272
+#, fuzzy, python-format
+msgid "%(desc)s: %(info)s"
+msgstr "%(desc)s:%(info)s"
+
+#: ipalib/errors.py:1288
+msgid "limits exceeded for this query"
+msgstr "для этого запроса превышены ограничения"
+
+#: ipalib/errors.py:1303
+#, python-format
+msgid "%(info)s"
+msgstr "%(info)s"
+
+#: ipalib/errors.py:1318
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1334
+#, fuzzy, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr "Допускается только одно значение"
+
+#: ipalib/errors.py:1350
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1366
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1391
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr "Операция с сертификатом не может быть завершена: %(error)s"
+
+#: ipalib/errors.py:1407
+#, fuzzy, python-format
+msgid "Certificate format error: %(error)s"
+msgstr "Операция с сертификатом не может быть завершена: %(error)s"
+
+#: ipalib/errors.py:1458
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1474
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:398
+msgid "Results are truncated, try a more specific search"
+msgstr "Результаты усечены. Попробуйте задать более точные условия поиска"
+
+#: ipalib/frontend.py:850
+msgid ""
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:856
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:985
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:296
+msgid "incorrect type"
+msgstr "неверный тип"
+
+#: ipalib/parameters.py:299
+msgid "Only one value is allowed"
+msgstr "Допускается только одно значение"
+
+#: ipalib/parameters.py:901
+msgid "must be True or False"
+msgstr "должно быть либо True, либо False"
+
+#: ipalib/parameters.py:1002
+msgid "must be an integer"
+msgstr "должно быть целое"
+
+#: ipalib/parameters.py:1054
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr "должно быть не менее %(minvalue)d"
+
+#: ipalib/parameters.py:1064
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr "может быть не более %(maxvalue)d"
+
+#: ipalib/parameters.py:1074
+msgid "must be a decimal number"
+msgstr "должно быть десятичным числом"
+
+#: ipalib/parameters.py:1097
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr "должно быть не менее %(minvalue)f"
+
+#: ipalib/parameters.py:1107
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr "может быть не более %(maxvalue)f"
+
+#: ipalib/parameters.py:1174
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr "должно совпадать с шаблоном \"%(pattern)s\""
+
+#: ipalib/parameters.py:1192
+msgid "must be binary data"
+msgstr "должно являться двоичными данными"
+
+#: ipalib/parameters.py:1208
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr "должно содержать не менее %(minlength)d байт"
+
+#: ipalib/parameters.py:1218
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr "может содержать не более %(maxlength)d байт"
+
+#: ipalib/parameters.py:1228
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr "должно содержать точно %(length)d байт"
+
+#: ipalib/parameters.py:1246
+msgid "must be Unicode text"
+msgstr "должно являться текстом Unicode"
+
+#: ipalib/parameters.py:1277
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr "должно быть не короче %(minlength)d символов"
+
+#: ipalib/parameters.py:1287
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr "может быть не длиннее %(maxlength)d символов"
+
+#: ipalib/parameters.py:1297
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr "должно быть точно %(length)d символов длинной"
+
+#: ipalib/parameters.py:1315
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1355
+#, python-format
+msgid "must be one of %(values)r"
+msgstr "должно являться одним из %(values)r"
+
+#: ipalib/util.py:200
+#, python-format
+msgid "Permission denied: %(file)s"
+msgstr ""
+
+#: ipalib/x509.py:174
+#, python-format
+msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
+msgstr ""
+
+#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
+#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
+#: ipaserver/plugins/dogtag.py:1600
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr "Невозможно связаться с CMS (%s)"
@@ -2026,7 +7370,7 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
-#: ipaserver/plugins/selfsign.py:98
+#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
"Request subject \"%(request_subject)s\" does not match the form "
@@ -2035,20 +7379,20 @@ msgstr ""
"Заголовок запроса \"%(request_subject)s\" не совпадает с формой "
"\"%(subject_base)s\""
-#: ipaserver/plugins/selfsign.py:103
+#: ipaserver/plugins/selfsign.py:104
#, python-format
msgid "unable to decode csr: %s"
msgstr "невозможно декодировать csr: %s"
-#: ipaserver/plugins/selfsign.py:124 ipaserver/plugins/selfsign.py:139
+#: ipaserver/plugins/selfsign.py:125 ipaserver/plugins/selfsign.py:140
msgid "file operation"
msgstr "операция над файлом"
-#: ipaserver/plugins/selfsign.py:153
+#: ipaserver/plugins/selfsign.py:154
msgid "cannot obtain next serial number"
msgstr "невозможно получить следующий порядковый номер"
-#: ipaserver/plugins/selfsign.py:188
+#: ipaserver/plugins/selfsign.py:189
msgid "certutil failure"
msgstr "ошибка certutil"
@@ -2062,543 +7406,573 @@ msgstr ""
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:75
+#: ipa-client/config.c:68
+#, c-format
+msgid "out of memory\n"
+msgstr ""
+
+#: ipa-client/config.c:79
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:138 ipa-client/ipa-getkeytab.c:838
+#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
+#: ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:146
+#: ipa-client/ipa-getkeytab.c:155
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:164 ipa-client/ipa-getkeytab.c:179
+#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:194
+#: ipa-client/ipa-getkeytab.c:203
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:209
+#: ipa-client/ipa-getkeytab.c:218
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:235
+#: ipa-client/ipa-getkeytab.c:245
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:297
+#: ipa-client/ipa-getkeytab.c:307
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:310 ipa-client/ipa-getkeytab.c:327
-#: ipa-client/ipa-getkeytab.c:335 ipa-client/ipa-getkeytab.c:372
+#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
+#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:317 ipa-client/ipa-getkeytab.c:350
+#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
+#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
+#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
+#: ipa-client/ipa-join.c:819
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:361
+#: ipa-client/ipa-getkeytab.c:371
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:481
+#: ipa-client/ipa-getkeytab.c:492
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:496
+#: ipa-client/ipa-getkeytab.c:507
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:534
+#: ipa-client/ipa-getkeytab.c:545
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:541
+#: ipa-client/ipa-getkeytab.c:552
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:565
+#: ipa-client/ipa-getkeytab.c:576
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:572
+#: ipa-client/ipa-getkeytab.c:583
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:579
+#: ipa-client/ipa-getkeytab.c:596
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:589
+#: ipa-client/ipa-getkeytab.c:606
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:605 ipa-client/ipa-getkeytab.c:618
-#: ipa-client/ipa-getkeytab.c:625 ipa-client/ipa-getkeytab.c:632
+#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
+#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:638 ipa-client/ipa-getkeytab.c:648
+#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655
+#: ipa-client/ipa-getkeytab.c:672
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:674
+#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:715
+#: ipa-client/ipa-getkeytab.c:736
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:721
+#: ipa-client/ipa-getkeytab.c:742
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781
+#: ipa-client/ipa-getkeytab.c:778
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782
+#: ipa-client/ipa-getkeytab.c:779
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:189
+#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:787
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:788
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:790
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:794
+#: ipa-client/ipa-getkeytab.c:791
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:796
+#: ipa-client/ipa-getkeytab.c:793
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:825 ipa-client/ipa-rmkeytab.c:207
-#, c-format
-msgid "Kerberos context initialization failed\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:837
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:845
+#: ipa-client/ipa-getkeytab.c:841
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:864
+#: ipa-client/ipa-getkeytab.c:860
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:877
+#: ipa-client/ipa-getkeytab.c:873
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. -P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:889
+#: ipa-client/ipa-getkeytab.c:885
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:897
+#: ipa-client/ipa-getkeytab.c:893
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:905
+#: ipa-client/ipa-getkeytab.c:901
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:913
+#: ipa-client/ipa-getkeytab.c:909
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:920
+#: ipa-client/ipa-getkeytab.c:916
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:939
+#: ipa-client/ipa-getkeytab.c:935
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:948
+#: ipa-client/ipa-getkeytab.c:944
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:954
+#: ipa-client/ipa-getkeytab.c:950
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:67
+#: ipa-client/ipa-join.c:65
#, c-format
msgid "No permission to join this host to the IPA domain.\n"
msgstr ""
-#: ipa-client/ipa-join.c:104 ipa-client/ipa-join.c:116
+#: ipa-client/ipa-join.c:94 ipa-client/ipa-join.c:106
#, c-format
msgid "No write permissions on keytab file '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:121
+#: ipa-client/ipa-join.c:111
#, c-format
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:200
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#, c-format
+msgid "Out of memory!"
+msgstr ""
+
+#: ipa-client/ipa-join.c:204
+#, c-format
+msgid "Unable to initialize connection to ldap server: %s"
+msgstr ""
+
+#: ipa-client/ipa-join.c:210
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:206
+#: ipa-client/ipa-join.c:216
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:236
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:249
+#: ipa-client/ipa-join.c:269
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:259 ipa-client/ipa-join.c:311
+#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:302
+#: ipa-client/ipa-join.c:322
#, c-format
msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:368
+#: ipa-client/ipa-join.c:390
#, c-format
msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:377
+#: ipa-client/ipa-join.c:399
#, fuzzy, c-format
msgid "Unable to determine certificate subject of %s\n"
msgstr "Невозможно декодировать сертификат в записи"
-#: ipa-client/ipa-join.c:385
+#: ipa-client/ipa-join.c:407
#, c-format
msgid "Unable to make an LDAP connection to %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:394
+#: ipa-client/ipa-join.c:432
#, c-format
msgid "Searching with %s in %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:400
+#: ipa-client/ipa-join.c:438
#, c-format
msgid "ldap_search_ext_s: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:408
+#: ipa-client/ipa-join.c:446
#, fuzzy, c-format
msgid "Unable to find host '%s'\n"
msgstr "невозможно декодировать csr: %s"
-#: ipa-client/ipa-join.c:415
+#: ipa-client/ipa-join.c:453
#, c-format
msgid "Unable to get binddn for host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:428
+#: ipa-client/ipa-join.c:466
#, c-format
msgid "Host already has principal, trying bind anyway\n"
msgstr ""
-#: ipa-client/ipa-join.c:442 ipa-client/ipa-join.c:579
+#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
#, fuzzy, c-format
msgid "Host is already joined.\n"
msgstr "Эта запись уже заблокирована"
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:484
#, c-format
msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:457
+#: ipa-client/ipa-join.c:495
#, c-format
msgid "principal not found in host entry\n"
msgstr ""
-#: ipa-client/ipa-join.c:564
+#: ipa-client/ipa-join.c:618
#, c-format
msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:646 ipa-client/ipa-join.c:823
+#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:662 ipa-client/ipa-join.c:838
+#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:671 ipa-client/ipa-join.c:848
+#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:679
+#: ipa-client/ipa-join.c:732
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:689
+#: ipa-client/ipa-join.c:741
+#, c-format
+msgid "Error getting default Kerberos realm: %s.\n"
+msgstr ""
+
+#: ipa-client/ipa-join.c:759
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:707
+#: ipa-client/ipa-join.c:777
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:718
+#: ipa-client/ipa-join.c:788
#, fuzzy, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr "не получены регистрационные данные Kerberos"
-#: ipa-client/ipa-join.c:726
+#: ipa-client/ipa-join.c:796
#, fuzzy, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr "Ошибочный формат в кэше регистрационных данных "
-#: ipa-client/ipa-join.c:769
+#: ipa-client/ipa-join.c:846
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:772
+#: ipa-client/ipa-join.c:849
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:854
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:855
+#: ipa-client/ipa-join.c:932
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:863
+#: ipa-client/ipa-join.c:940
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not "
"provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:877
+#: ipa-client/ipa-join.c:954
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:906
+#: ipa-client/ipa-join.c:983
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:909
+#: ipa-client/ipa-join.c:986
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:912
+#: ipa-client/ipa-join.c:989
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:924
+#: ipa-client/ipa-join.c:1001
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:930
+#: ipa-client/ipa-join.c:1007
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "Print the raw XML-RPC output"
-msgstr ""
-
-#: ipa-client/ipa-join.c:963
-msgid "XML-RPC debugging Output"
+#: ipa-client/ipa-join.c:1042
+msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:967
-msgid "Unenroll this host"
+#: ipa-client/ipa-join.c:1044
+msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:967
+#: ipa-client/ipa-join.c:1046
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Use this hostname instead of the node name"
+#: ipa-client/ipa-join.c:1048
+msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Host Name"
+#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:971
+#: ipa-client/ipa-join.c:1050
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:971
-msgid "IPA Server Name"
+#: ipa-client/ipa-join.c:1052
+msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:44
+#: ipa-client/ipa-join.c:1052
+msgid "filename"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1054
+msgid "LDAP password (if not using Kerberos)"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1054
+msgid "password"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:46
+#: ipa-client/ipa-rmkeytab.c:45
#, c-format
msgid "krb5_parse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:56
+#: ipa-client/ipa-rmkeytab.c:55
#, c-format
msgid "Removing principal %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:69
+#: ipa-client/ipa-rmkeytab.c:68
#, c-format
msgid "Failed to open keytab\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:73
+#: ipa-client/ipa-rmkeytab.c:72
#, c-format
msgid "principal not found\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:75
+#: ipa-client/ipa-rmkeytab.c:74
#, c-format
msgid "krb5_kt_get_entry %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:83
+#: ipa-client/ipa-rmkeytab.c:82
#, fuzzy, c-format
msgid "Unable to remove entry\n"
msgstr "Невозможно декодировать сертификат в записи"
-#: ipa-client/ipa-rmkeytab.c:85
+#: ipa-client/ipa-rmkeytab.c:84
#, c-format
msgid "kvno %d\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:86
+#: ipa-client/ipa-rmkeytab.c:85
#, c-format
msgid "krb5_kt_remove_entry %d: %s\n"
msgstr ""
@@ -2613,37 +7987,66 @@ msgstr ""
msgid "krb5_unparse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:143
+#, c-format
+msgid "realm not found\n"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Print debugging information"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Debugging output"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Remove all principals in this realm"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Realm name"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:241
+#: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237
#, c-format
-msgid "Failed to open keytab '%s'\n"
+msgid "Failed to open keytab '%s': %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:255
+#: ipa-client/ipa-rmkeytab.c:253
#, c-format
msgid "Closing keytab failed\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:257
+#: ipa-client/ipa-rmkeytab.c:255
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
+#~ msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
+#~ msgstr ""
+#~ "Для этой записи установлен атрибут nsAccountLock, поэтому она не может "
+#~ "быть заблокирована или разблокирована"
+
+#, fuzzy
+#~ msgid "Removed kerberos key from \"%(value)s\""
+#~ msgstr "Удалена rolegroup \"%(value)s\""
+
+#~ msgid "Added taskgroup \"%(value)s\""
+#~ msgstr "Добавлена taskgroup \"%(value)s\""
+
+#~ msgid "Deleted taskgroup \"%(value)s\""
+#~ msgstr "Удалена taskgroup \"%(value)s\""
+
+#~ msgid "Modified taskgroup \"%(value)s\""
+#~ msgstr "Изменена taskgroup \"%(value)s\""
+
+#~ msgid "%(count)d taskgroup matched"
+#~ msgid_plural "%(count)d taskgroups matched"
+#~ msgstr[0] "совпадает %(count)d taskgroup"
+#~ msgstr[1] "совпадают %(count)d taskgroup"
+#~ msgstr[2] "совпадают %(count)d taskgroup"
+
#~ msgid "Locked user \"%(value)s\""
#~ msgstr "Заблокирован пользователь \"%(value)s\""
diff --git a/install/po/uk.po b/install/po/uk.po
index 902bfa249..9796d8daa 100644
--- a/install/po/uk.po
+++ b/install/po/uk.po
@@ -5,407 +5,191 @@
msgid ""
msgstr ""
"Project-Id-Version: ipa\n"
-"Report-Msgid-Bugs-To: https://hosted.fedoraproject."
-"org/projects/freeipa/newticket\n"
-"POT-Creation-Date: 2010-10-13 14:22-0400\n"
+"Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/"
+"newticket\n"
+"POT-Creation-Date: 2011-06-06 13:27-0400\n"
"PO-Revision-Date: 2011-01-25 20:10+0200\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <translation@linux.org.ua>\n"
+"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: uk\n"
-"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n%"
-"10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n"
+"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Lokalize 1.2\n"
-#: ipalib/cli.py:507
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr "Введіть %(label)s ще раз для перевірки: "
-
-#: ipalib/cli.py:511 ipa-client/ipa-getkeytab.c:730
-#, c-format
-msgid "Passwords do not match!"
-msgstr "Паролі не збігаються!"
-
-#: ipalib/cli.py:516
-msgid "Cancelled."
-msgstr "Скасовано."
-
-#: ipalib/errors.py:297
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
-msgstr "Клієнт %(cver)s є несумісним з сервером %(sver)s на %(server)r"
-
-#: ipalib/errors.py:315
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
-msgstr "%(server)s повідомляє про невідому помилку %(code)d: %(error)s"
-
-#: ipalib/errors.py:331
-msgid "an internal error has occurred"
-msgstr "сталася внутрішня помилка"
-
-#: ipalib/errors.py:353
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr "на сервері %(server)r сталася внутрішня помилка"
-
-#: ipalib/errors.py:369
-#, python-format
-msgid "unknown command %(name)r"
-msgstr "невідома команда %(name)r"
-
-#: ipalib/errors.py:386 ipalib/errors.py:411
-#, python-format
-msgid "error on server %(server)r: %(error)s"
-msgstr "помилка на сервері %(server)r: %(error)s"
-
-#: ipalib/errors.py:402
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
-msgstr "не вдалося встановити з’єднання з %(uri)r: %(error)s"
-
-#: ipalib/errors.py:420
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr "некоректний запит JSON-RPC: %(error)s"
-
-#: ipalib/errors.py:448
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
-msgstr "Помилка Kerberos: %(major)s/%(minor)s"
-
-#: ipalib/errors.py:465
-msgid "did not receive Kerberos credentials"
-msgstr "не отримано реєстраційних даних Kerberos"
-
-#: ipalib/errors.py:481
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
-msgstr "У базі даних Kerberos не виявлено служби %(service)r"
-
-#: ipalib/errors.py:497
-msgid "No credentials cache found"
-msgstr "Не знайдено кешу реєстраційних даних"
-
-#: ipalib/errors.py:513
-msgid "Ticket expired"
-msgstr "Сплив строк дії квитка"
-
-#: ipalib/errors.py:529
-msgid "Credentials cache permissions incorrect"
-msgstr "Помилкові права доступу до кешу реєстраційних даних"
-
-#: ipalib/errors.py:545
-msgid "Bad format in credentials cache"
-msgstr "Помилковий формат кешу реєстраційних даних"
-
-#: ipalib/errors.py:561
-msgid "Cannot resolve KDC for requested realm"
-msgstr "Не вдалося визначити KDC для бажаної області (realm)"
-
-#: ipalib/errors.py:580
-#, python-format
-msgid "Insufficient access: %(info)s"
-msgstr "Недостатні права для доступу: %(info)s"
-
-#: ipalib/errors.py:624
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr "команда %(name)r не приймає ніяких аргументів"
-
-#: ipalib/errors.py:644
-#, python-format
-msgid "command %(name)r takes at most %(count)d argument"
-msgid_plural "command %(name)r takes at most %(count)d arguments"
-msgstr[0] "команда %(name)r приймає не більше %(count)d аргументу"
-msgstr[1] "команда %(name)r приймає не більше %(count)d аргументів"
-msgstr[2] "команда %(name)r приймає не більше %(count)d аргументів"
-msgstr[3] "команда %(name)r приймає не більше %(count)d аргументу"
-
-#: ipalib/errors.py:674
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
-msgstr "перекриття аргументів і параметрів: %(names)r"
-
-#: ipalib/errors.py:690
-#, python-format
-msgid "%(name)r is required"
-msgstr "Слід вказати %(name)r"
-
-#: ipalib/errors.py:706 ipalib/errors.py:722
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr "некоректне %(name)r: %(error)s"
-
-#: ipalib/errors.py:738
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr "api не надає такого простору назв: %(name)r"
-
-#: ipalib/errors.py:747
-msgid "Passwords do not match"
-msgstr "Паролі не збігаються"
-
-#: ipalib/errors.py:755
-msgid "Command not implemented"
-msgstr "Команду не реалізовано"
-
-#: ipalib/errors.py:783 ipalib/errors.py:1023 ipalib/errors.py:1254
-#, python-format
-msgid "%(reason)s"
-msgstr "%(reason)s"
-
-#: ipalib/errors.py:799
-msgid "This entry already exists"
-msgstr "Цей запис вже існує"
-
-#: ipalib/errors.py:815
-msgid "You must enroll a host in order to create a host service"
-msgstr "Щоб створити службу вузла, вам слід зареєструвати вузол"
-
-#: ipalib/errors.py:831
-#, python-format
+#: ipalib/plugins/__init__.py:20
msgid ""
-"Service principal is not of the form: service/fully-qualified host name: %"
-"(reason)s"
+"\n"
+"Sub-package containing all core plugins.\n"
msgstr ""
-"Реєстраційний запис служби вказано у формі, відмінній від: служба/повна "
-"назва вузла: %(reason)s"
-#: ipalib/errors.py:847
+#: ipalib/plugins/aci.py:20
msgid ""
-"The realm for the principal does not match the realm for this IPA server"
+"\n"
+"Directory Server Access Control Instructions (ACIs)\n"
+"\n"
+"ACIs are used to allow or deny access to information. This module is\n"
+"currently designed to allow, not deny, access.\n"
+"\n"
+"The aci commands are designed to grant permissions that allow updating\n"
+"existing entries or adding or deleting new ones. The goal of the ACIs\n"
+"that ship with IPA is to provide a set of low-level permissions that\n"
+"grant access to special groups called taskgroups. These low-level\n"
+"permissions can be combined into roles that grant broader access. These\n"
+"roles are another type of group, roles.\n"
+"\n"
+"For example, if you have taskgroups that allow adding and modifying users "
+"you\n"
+"could create a role, useradmin. You would assign users to the useradmin\n"
+"role to allow them to do the operations defined by the taskgroups.\n"
+"\n"
+"You can create ACIs that delegate permission so users in group A can write\n"
+"attributes on group B.\n"
+"\n"
+"The type option is a map that applies to all entries in the users, groups "
+"or\n"
+"host location. It is primarily designed to be used when granting add\n"
+"permissions (to write new entries).\n"
+"\n"
+"An ACI consists of three parts:\n"
+"1. target\n"
+"2. permissions\n"
+"3. bind rules\n"
+"\n"
+"The target is a set of rules that define which LDAP objects are being\n"
+"targeted. This can include a list of attributes, an area of that LDAP\n"
+"tree or an LDAP filter.\n"
+"\n"
+"The targets include:\n"
+"- attrs: list of attributes affected\n"
+"- type: an object type (user, group, host, service, etc)\n"
+"- memberof: members of a group\n"
+"- targetgroup: grant access to modify a specific group. This is primarily\n"
+" designed to enable users to add or remove members of a specific group.\n"
+"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
+"- subtree: Used to apply a rule across an entire set of objects. For "
+"example,\n"
+" to allow adding users you need to grant \"add\" permission to the subtree\n"
+" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
+" is a fail-safe for objects that may not be covered by the type option.\n"
+"\n"
+"The permissions define what the the ACI is allowed to do, and are one or\n"
+"more of:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
+"allows this to be any valid LDAP entry but we encourage the use of\n"
+"taskgroups so that the rights can be easily shared through roles.\n"
+"\n"
+"For a more thorough description of access controls see\n"
+"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control."
+"html\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
+"demonstrate how the various options work but this is done via the "
+"permission\n"
+"command-line now (see last example).\n"
+"\n"
+" Add an ACI so that the group \"secretaries\" can update the address on any "
+"user:\n"
+" ipa group-add --desc=\"Office secretaries\" secretaries\n"
+" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries "
+"--permissions=write --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Show the new ACI:\n"
+" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Add an ACI that allows members of the \"addusers\" permission to add new "
+"users:\n"
+" ipa aci-add --type=user --permission=addusers --permissions=add --"
+"prefix=none \"Add new users\"\n"
+"\n"
+" Add an ACI that allows members of the editors manage members of the admins "
+"group:\n"
+" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --"
+"group=editors --prefix=none \"Editors manage admins\"\n"
+"\n"
+" Add an ACI that allows members of the admin group to manage the street and "
+"zip code of those in the editors group:\n"
+" ipa aci-add --permissions=write --memberof=editors --group=admins --"
+"attrs=street,postalcode --prefix=none \"admins edit the address of editors"
+"\"\n"
+"\n"
+" Add an ACI that allows the admins group manage the street and zipcode of "
+"those who work for the boss:\n"
+" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode "
+"--filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --"
+"prefix=none \"Edit the address of those who work for the boss\"\n"
+"\n"
+" Add an entirely new kind of record to IPA that isn't covered by any of the "
+"--type options, creating a permission:\n"
+" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,"
+"cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
+"\n"
+"\n"
+"The show command shows the raw 389-ds ACI.\n"
+"\n"
+"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
+"must include all existing attributes as well. When doing an aci-mod the\n"
+"targetattr REPLACES the current attributes, it does not add to them.\n"
+"\n"
msgstr ""
-"Область дії реєстраційного запису не збігається з областю цього сервера IPA"
-#: ipalib/errors.py:863
-msgid "This command requires root access"
-msgstr "Для виконання цієї команди потрібні права доступу користувача root"
-
-#: ipalib/errors.py:879
-msgid "This is already a posix group"
-msgstr "Вже є posix-групою"
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
+msgstr "Список значень ACI"
-#: ipalib/errors.py:895
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
+#: ipalib/plugins/aci.py:172
+msgid ""
+"\n"
+" Given a name and a prefix construct an ACI name.\n"
+" "
msgstr ""
-"Реєстраційний запис вказано у формі, відмінній від користувач@ОБЛАСТЬ: %"
-"(principal)r"
-#: ipalib/errors.py:911
-msgid "This entry is already unlocked"
-msgstr "Цей запис вже розблоковано"
-
-#: ipalib/errors.py:927
-msgid "This entry is already locked"
-msgstr "Цей запис вже заблоковано"
-
-#: ipalib/errors.py:943
-msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
+#: ipalib/plugins/aci.py:181
+msgid ""
+"\n"
+" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
+" and the actual ACI name.\n"
+" "
msgstr ""
-"Для цього запису встановлено атрибут nsAccountLock, запис не можна "
-"заблокувати або розблокувати"
-
-#: ipalib/errors.py:959
-msgid "This entry is not a member of the group"
-msgstr "Цей запис не є елементом групи"
-
-#: ipalib/errors.py:975
-msgid "A group may not be a member of itself"
-msgstr "Група не може бути елементом самої себе"
-
-#: ipalib/errors.py:991
-msgid "This entry is already a member of the group"
-msgstr "Цей запис вже є елементом групи"
-
-#: ipalib/errors.py:1007
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr "Помилка декодування Base64: %(reason)s"
-
-#: ipalib/errors.py:1039
-msgid "A group may not be added as a member of itself"
-msgstr "Групу не може бути додано як елемент самої себе"
-
-#: ipalib/errors.py:1055
-msgid "The default users group cannot be removed"
-msgstr "Не можна вилучати типову групу користувачів"
-
-#: ipalib/errors.py:1071
-msgid "Host does not have corresponding DNS A record"
-msgstr "Вузол не має відповідного запису DNS A"
-
-#: ipalib/errors.py:1086
-msgid "Deleting a managed group is not allowed. It must be detached first."
-msgstr "Вилучення керованих груп заборонено. Спочатку групу слід від’єднати."
-
-#: ipalib/errors.py:1109
-#, python-format
-msgid "no command nor help topic %(topic)r"
-msgstr "не виявлено ні команди, ні запису довідки %(topic)r"
-
-#: ipalib/errors.py:1133
-msgid "change collided with another change"
-msgstr "зміна конфліктує з іншою внесеною зміною"
-
-#: ipalib/errors.py:1149
-msgid "no modifications to be performed"
-msgstr "змін не внесено"
-
-#: ipalib/errors.py:1165
-#, python-format
-msgid "%(desc)s:%(info)s"
-msgstr "%(desc)s:%(info)s"
-
-#: ipalib/errors.py:1181
-msgid "limits exceeded for this query"
-msgstr "цим запитом перевищено обмеження"
-
-#: ipalib/errors.py:1196
-#, python-format
-msgid "%(info)s"
-msgstr "%(info)s"
-
-#: ipalib/errors.py:1221
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
-msgstr "Не вдалося завершити дію з сертифікатом: %(error)s"
-
-#: ipalib/errors.py:1237
-#, python-format
-msgid "Certificate format error: %(error)s"
-msgstr "Помилка форматування сертифіката: %(error)s"
-#: ipalib/frontend.py:380
-msgid "Results are truncated, try a more specific search"
+#: ipalib/plugins/aci.py:193
+msgid ""
+"\n"
+" Pull the group name out of a memberOf filter\n"
+" "
msgstr ""
-"Список результатів обрізано. Спробуйте точніше визначити критерії пошуку."
-
-#: ipalib/frontend.py:797 ipalib/plugins/misc.py:47
-msgid "retrieve all attributes"
-msgstr "отримати всі атрибути"
-
-#: ipalib/frontend.py:803
-msgid "print entries as stored on the server"
-msgstr "вивести записи у формі, у якій вони зберігаються на сервері"
-
-#: ipalib/frontend.py:940
-msgid "Forward to server instead of running locally"
-msgstr "Переспрямувати на сервер замість локального виконання"
-
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
-msgstr "Словник, що відповідає запису LDAP"
-
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
-msgstr "Список записів LDAP"
-
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
-msgstr "Виконання всіх команд має призводити до якогось результату"
-
-#: ipalib/parameters.py:295
-msgid "incorrect type"
-msgstr "помилковий тип"
-
-#: ipalib/parameters.py:298
-msgid "Only one value is allowed"
-msgstr "Можна використовувати лише одне значення"
-
-#: ipalib/parameters.py:877
-msgid "must be True or False"
-msgstr "має дорівнювати True або False"
-
-#: ipalib/parameters.py:978
-msgid "must be an integer"
-msgstr "має бути цілим числом"
-
-#: ipalib/parameters.py:1029
-#, python-format
-msgid "must be at least %(minvalue)d"
-msgstr "має бути числом, не меншим за %(minvalue)d"
-
-#: ipalib/parameters.py:1039
-#, python-format
-msgid "can be at most %(maxvalue)d"
-msgstr "не може перевищувати %(maxvalue)d"
-
-#: ipalib/parameters.py:1049
-msgid "must be a decimal number"
-msgstr "має бути десятковим числом"
-
-#: ipalib/parameters.py:1071
-#, python-format
-msgid "must be at least %(minvalue)f"
-msgstr "має бути числом, не меншим за %(minvalue)f"
-
-#: ipalib/parameters.py:1081
-#, python-format
-msgid "can be at most %(maxvalue)f"
-msgstr "не може перевищувати %(maxvalue)f"
-
-#: ipalib/parameters.py:1145
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
-msgstr "має відповідати шаблону «%(pattern)s»"
-
-#: ipalib/parameters.py:1163
-msgid "must be binary data"
-msgstr "має бути бінарними даними"
-
-#: ipalib/parameters.py:1179
-#, python-format
-msgid "must be at least %(minlength)d bytes"
-msgstr "має бути розміром, не менше за %(minlength)d байтів"
-
-#: ipalib/parameters.py:1189
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
-msgstr "не повинне перевищувати за розміром %(maxlength)d байтів"
-
-#: ipalib/parameters.py:1199
-#, python-format
-msgid "must be exactly %(length)d bytes"
-msgstr "має бути розміром точно у %(length)d байтів"
-#: ipalib/parameters.py:1217
-msgid "must be Unicode text"
-msgstr "має бути текстом у Unicode"
-
-#: ipalib/parameters.py:1248
-#, python-format
-msgid "must be at least %(minlength)d characters"
-msgstr "має бути не меншим за %(minlength)d символів довжиною"
-
-#: ipalib/parameters.py:1258
-#, python-format
-msgid "can be at most %(maxlength)d characters"
-msgstr "не повинне перевищувати %(maxlength)d символів у довжину"
-
-#: ipalib/parameters.py:1268
-#, python-format
-msgid "must be exactly %(length)d characters"
-msgstr "має бути точно %(length)d символів у довжину"
-
-#: ipalib/parameters.py:1307
-#, python-format
-msgid "must be one of %(values)r"
-msgstr "має бути одним зі таких значень: %(values)r"
-
-#: ipalib/plugins/aci.py:111
-msgid "A list of ACI values"
-msgstr "Список значень ACI"
+#: ipalib/plugins/aci.py:204
+msgid ""
+"\n"
+" Given a name and a set of keywords construct an ACI.\n"
+" "
+msgstr ""
-#: ipalib/plugins/aci.py:142
+#: ipalib/plugins/aci.py:215
msgid "type, filter, subtree and targetgroup are mutually exclusive"
msgstr "type, filter, subtree і targetgroup є взаємовиключними"
-#: ipalib/plugins/aci.py:145
+#: ipalib/plugins/aci.py:218
+#, fuzzy
+msgid "ACI prefix is required"
+msgstr "Слід вказати %(name)r"
+
+#: ipalib/plugins/aci.py:221
msgid ""
"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
"required"
@@ -413,132 +197,255 @@ msgstr ""
"слід вказати хоча б одне з: type, filter, subtree, targetgroup, attrs або "
"memberof"
-#: ipalib/plugins/aci.py:151
-msgid "group, taskgroup and self are mutually exclusive"
+#: ipalib/plugins/aci.py:224
+#, fuzzy
+msgid "filter and memberof are mutually exclusive"
+msgstr "type, filter, subtree і targetgroup є взаємовиключними"
+
+#: ipalib/plugins/aci.py:230
+#, fuzzy
+msgid "group, permission and self are mutually exclusive"
msgstr "group, taskgroup і self є взаємовиключними"
-#: ipalib/plugins/aci.py:153
-msgid "One of group, taskgroup or self is required"
+#: ipalib/plugins/aci.py:232
+#, fuzzy
+msgid "One of group, permission or self is required"
msgstr "Слід вказати group, taskgroup або self"
-#: ipalib/plugins/aci.py:172
-#, python-format
+#: ipalib/plugins/aci.py:251
msgid "Group '%s' does not exist"
msgstr "Групи з назвою «%s» не існує"
-#: ipalib/plugins/aci.py:269
-#, python-format
+#: ipalib/plugins/aci.py:273
+msgid "empty filter"
+msgstr ""
+
+#: ipalib/plugins/aci.py:294
+#, fuzzy
+msgid "Syntax Error: %(error)s"
+msgstr "Помилка форматування сертифіката: %(error)s"
+
+#: ipalib/plugins/aci.py:299
+msgid ""
+"Convert an ACI into its equivalent keywords.\n"
+"\n"
+" This is used for the modify operation so we can merge the\n"
+" incoming kw and existing ACI and pass the result to\n"
+" _make_aci().\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:379
msgid "ACI with name \"%s\" not found"
msgstr "Не знайдено ACI з назвою «%s»"
-#: ipalib/plugins/aci.py:286
+#: ipalib/plugins/aci.py:400
+msgid "ACI prefix"
+msgstr ""
+
+#: ipalib/plugins/aci.py:401
+msgid ""
+"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
+"none)"
+msgstr ""
+
+#: ipalib/plugins/aci.py:407
+msgid ""
+"\n"
+" ACI object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:412
msgid "ACIs"
msgstr "ACI"
-#: ipalib/plugins/aci.py:291
+#: ipalib/plugins/aci.py:417
msgid "ACI name"
msgstr "Назва ACI"
-#: ipalib/plugins/aci.py:296
-msgid "Taskgroup"
-msgstr "Група завдань"
+#: ipalib/plugins/aci.py:422
+#, fuzzy
+msgid "Permission"
+msgstr "Права доступу"
-#: ipalib/plugins/aci.py:297
-msgid "Taskgroup ACI grants access to"
-msgstr "Група завдань, до якої надає доступ ACI"
+#: ipalib/plugins/aci.py:423
+#, fuzzy
+msgid "Permission ACI grants access to"
+msgstr "Група користувачів, до якої надає доступ ACI"
-#: ipalib/plugins/aci.py:301
+#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
msgid "User group"
msgstr "Група користувачів"
-#: ipalib/plugins/aci.py:302
+#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
msgid "User group ACI grants access to"
msgstr "Група користувачів, до якої надає доступ ACI"
-#: ipalib/plugins/aci.py:306
+#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
+#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
+#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
msgid "Permissions"
msgstr "Права доступу"
-#: ipalib/plugins/aci.py:307
+#: ipalib/plugins/aci.py:433
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
"відокремлений комами список прав доступу, які слід надати (read, write, add, "
"delete, all)"
-#: ipalib/plugins/aci.py:313
+#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
+#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
msgid "Attributes"
msgstr "Атрибути"
-#: ipalib/plugins/aci.py:314
+#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
+#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
msgid "Comma-separated list of attributes"
msgstr "Список атрибутів, відокремлених комами"
-#: ipalib/plugins/aci.py:318
+#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
+#: ipalib/plugins/permission.py:131
msgid "Type"
msgstr "Тип"
-#: ipalib/plugins/aci.py:319
-msgid "type of IPA object (user, group, host)"
+#: ipalib/plugins/aci.py:445
+#, fuzzy
+msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr "тип об’єкта IPA (користувач, група, вузол)"
-#: ipalib/plugins/aci.py:324
+#: ipalib/plugins/aci.py:450
msgid "Member of"
msgstr "Учасник"
-#: ipalib/plugins/aci.py:325
+#: ipalib/plugins/aci.py:451
msgid "Member of a group"
msgstr "Учасник групи"
-#: ipalib/plugins/aci.py:329
+#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
+#: ipalib/plugins/permission.py:144
msgid "Filter"
msgstr "Фільтр"
-#: ipalib/plugins/aci.py:330
+#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr "Припустимий фільтр LDAP (наприклад, ou=Engineering)"
-#: ipalib/plugins/aci.py:334
+#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
msgid "Subtree"
msgstr "Піддерево"
-#: ipalib/plugins/aci.py:335
+#: ipalib/plugins/aci.py:461
msgid "Subtree to apply ACI to"
msgstr "Піддерево, до якого слід застосувати ACI"
-#: ipalib/plugins/aci.py:339
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
msgid "Target group"
msgstr "Цільова група"
-#: ipalib/plugins/aci.py:340
+#: ipalib/plugins/aci.py:466
msgid "Group to apply ACI to"
msgstr "Група, до якої слід застосувати ACI"
-#: ipalib/plugins/aci.py:344
+#: ipalib/plugins/aci.py:470
msgid "Target your own entry (self)"
msgstr "Виконати над власним записом (self)"
-#: ipalib/plugins/aci.py:345
+#: ipalib/plugins/aci.py:471
msgid "Apply ACI to your own entry (self)"
msgstr "Застосувати ACI до вашого власного запису (self)"
-#: ipalib/plugins/aci.py:357
-#, python-format
+#: ipalib/plugins/aci.py:478
+msgid ""
+"\n"
+" Create new ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:482
msgid "Created ACI \"%(value)s\""
msgstr "Створено ACI «%(value)s»"
-#: ipalib/plugins/aci.py:407
-#, python-format
+#: ipalib/plugins/aci.py:487
+msgid "Test the ACI syntax but don't write anything"
+msgstr ""
+
+#: ipalib/plugins/aci.py:493
+msgid ""
+"\n"
+" Execute the aci-create operation.\n"
+"\n"
+" Returns the entry as it will be created in LDAP.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: Keyword arguments for the other LDAP attributes.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:533
+msgid ""
+"\n"
+" Delete ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:538
msgid "Deleted ACI \"%(value)s\""
msgstr "Вилучено ACI «%(value)s»"
-#: ipalib/plugins/aci.py:447
-#, python-format
+#: ipalib/plugins/aci.py:543
+msgid ""
+"\n"
+" Execute the aci-delete operation.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: unused\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:576
+msgid ""
+"\n"
+" Modify ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
+#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
+#: ipalib/plugins/selfservice.py:212
+#, fuzzy
+msgid "ACI"
+msgstr "ACI"
+
+#: ipalib/plugins/aci.py:588
msgid "Modified ACI \"%(value)s\""
msgstr "Змінено ACI «%(value)s»"
-#: ipalib/plugins/aci.py:519
-#, python-format
+#: ipalib/plugins/aci.py:633
+msgid ""
+"\n"
+" Search for ACIs.\n"
+"\n"
+" Returns a list of ACIs\n"
+"\n"
+" EXAMPLES:\n"
+"\n"
+" To find all ACIs that apply directly to members of the group ipausers:\n"
+" ipa aci-find --memberof=ipausers\n"
+"\n"
+" To find all ACIs that grant add access:\n"
+" ipa aci-find --permissions=add\n"
+"\n"
+" Note that the find command only looks for the given text in the set of\n"
+" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
+" For example, searching on memberof=ipausers will find all ACIs that\n"
+" have ipausers as a memberof. There may be other ACIs that apply to\n"
+" members of that group indirectly.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:653
msgid "%(count)d ACI matched"
msgid_plural "%(count)d ACIs matched"
msgstr[0] "встановлено відповідність %(count)d ACI"
@@ -546,498 +453,2268 @@ msgstr[1] "встановлено відповідність %(count)d ACI"
msgstr[2] "встановлено відповідність %(count)d ACI"
msgstr[3] "встановлено відповідність %(count)d ACI"
-#: ipalib/plugins/automount.py:103
-msgid "Automount"
-msgstr "Автоматичне монтування"
+#: ipalib/plugins/aci.py:823
+msgid ""
+"\n"
+" Display a single ACI given an ACI name.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:837
+msgid ""
+"\n"
+" Execute the aci-show operation.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param uid: The login name of the user to retrieve.\n"
+" :param kw: unused\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:865
+msgid ""
+"\n"
+" Rename an ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:878
+#, fuzzy
+msgid "New ACI name"
+msgstr "Назва ACI"
-#: ipalib/plugins/automount.py:109 ipalib/plugins/host.py:134
+#: ipalib/plugins/aci.py:882
+#, fuzzy
+msgid "Renamed ACI to \"%(value)s\""
+msgstr "Створено ACI «%(value)s»"
+
+#: ipalib/plugins/automount.py:20
+msgid ""
+"\n"
+"Automount\n"
+"\n"
+"Stores automount(8) configuration for autofs(8) in IPA.\n"
+"\n"
+"The base of an automount configuration is the configuration file auto."
+"master.\n"
+"This is also the base location in IPA. Multiple auto.master configurations\n"
+"can be stored in separate locations. A location is implementation-specific\n"
+"with the default being a location named 'default'. For example, you can "
+"have\n"
+"locations by geographic region, by floor, by type, etc.\n"
+"\n"
+"Automount has three basic object types: locations, maps and keys.\n"
+"\n"
+"A location defines a set of maps anchored in auto.master. This allows you\n"
+"to store multiple automount configurations. A location in itself isn't\n"
+"very interesting, it is just a point to start a new automount map.\n"
+"\n"
+"A map is roughly equivalent to a discrete automount file and provides\n"
+"storage for keys.\n"
+"\n"
+"A key is a mount point associated with a map.\n"
+"\n"
+"When a new location is created, two maps are automatically created for\n"
+"it: auto.master and auto.direct. auto.master is the root map for all\n"
+"automount maps for the location. auto.direct is the default map for\n"
+"direct mounts and is mounted on /-.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"Locations:\n"
+"\n"
+" Create a named location, \"Baltimore\":\n"
+" ipa automountlocation-add baltimore\n"
+"\n"
+" Display the new location:\n"
+" ipa automountlocation-show baltimore\n"
+"\n"
+" Find available locations:\n"
+" ipa automountlocation-find\n"
+"\n"
+" Remove a named automount location:\n"
+" ipa automountlocation-del baltimore\n"
+"\n"
+" Show what the automount maps would look like if they were in the "
+"filesystem:\n"
+" ipa automountlocation-tofiles baltimore\n"
+"\n"
+" Import an existing configuration into a location:\n"
+" ipa automountlocation-import baltimore /etc/auto.master\n"
+"\n"
+" The import will fail if any duplicate entries are found. For\n"
+" continuous operation where errors are ignored, use the --continue\n"
+" option.\n"
+"\n"
+"Maps:\n"
+"\n"
+" Create a new map, \"auto.share\":\n"
+" ipa automountmap-add baltimore auto.share\n"
+"\n"
+" Display the new map:\n"
+" ipa automountmap-show baltimore auto.share\n"
+"\n"
+" Find maps in the location baltimore:\n"
+" ipa automountmap-find baltimore\n"
+"\n"
+" Remove the auto.share map:\n"
+" ipa automountmap-del baltimore auto.share\n"
+"\n"
+"Keys:\n"
+"\n"
+" Create a new key for the auto.share map in location baltimore. This ties\n"
+" the map we previously created to auto.master:\n"
+" ipa automountkey-add baltimore auto.master --key=/share --info=auto."
+"share\n"
+"\n"
+" Create a new key for our auto.share map, an NFS mount for man pages:\n"
+" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,"
+"rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n"
+"\n"
+" Find all keys for the auto.share map:\n"
+" ipa automountkey-find baltimore auto.share\n"
+"\n"
+" Find all direct automount keys:\n"
+" ipa automountkey-find baltimore --key=/-\n"
+"\n"
+" Remove the man key from the auto.share map:\n"
+" ipa automountkey-del baltimore auto.share --key=man\n"
+msgstr ""
+
+#: ipalib/plugins/automount.py:182
+msgid ""
+"\n"
+" Location container for automount maps.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:190
+#, fuzzy
+msgid "Automount Locations"
+msgstr "Адреса автомонтування"
+
+#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
msgid "Location"
msgstr "Розташування"
-#: ipalib/plugins/automount.py:110
-msgid "Automount location name"
+#: ipalib/plugins/automount.py:197
+#, fuzzy
+msgid "Automount location name."
msgstr "Адреса автомонтування"
-#: ipalib/plugins/automount.py:226
+#: ipalib/plugins/automount.py:206
+msgid ""
+"\n"
+" Create a new automount location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:221
+msgid ""
+"\n"
+" Delete an automount location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:229
+msgid ""
+"\n"
+" Display an automount location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:237
+msgid ""
+"\n"
+" Search for an automount location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:245
+msgid ""
+"\n"
+" Generate automount files for a specific location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:308
+msgid ""
+"\n"
+" Import automount files for a specific location.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:314
+msgid "Master file"
+msgstr ""
+
+#: ipalib/plugins/automount.py:315
+#, fuzzy
+msgid "Automount master file."
+msgstr "Назва карти автоматичного монтування"
+
+#: ipalib/plugins/automount.py:322
+#, fuzzy
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues."
+msgstr ""
+"Режим неперервної обробки. Програма повідомляє про помилки, але продовжує "
+"обробку."
+
+#: ipalib/plugins/automount.py:334
+#, fuzzy
+msgid "File %(file)s not found"
+msgstr "%(pkey)s: не знайдено %(oname)s"
+
+#: ipalib/plugins/automount.py:341
+msgid ""
+"\n"
+" The basic idea is to read the master file and create all the maps\n"
+" we need, then read each map file and add all the keys for the map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:492
+#, fuzzy
+msgid ""
+"\n"
+" Automount map object.\n"
+" "
+msgstr "Назва карти автоматичного монтування"
+
+#: ipalib/plugins/automount.py:505
msgid "Map"
msgstr "Карта"
-#: ipalib/plugins/automount.py:227
-msgid "Automount map name"
+#: ipalib/plugins/automount.py:506
+#, fuzzy
+msgid "Automount map name."
msgstr "Назва карти автоматичного монтування"
-#: ipalib/plugins/automount.py:232 ipalib/plugins/group.py:108
-#: ipalib/plugins/hbac.py:151 ipalib/plugins/hbacsvc.py:72
-#: ipalib/plugins/hbacsvcgroup.py:77 ipalib/plugins/host.py:124
-#: ipalib/plugins/hostgroup.py:81 ipalib/plugins/netgroup.py:96
-#: ipalib/plugins/rolegroup.py:90 ipalib/plugins/sudocmd.py:71
-#: ipalib/plugins/sudocmdgroup.py:77 ipalib/plugins/sudorule.py:58
-#: ipalib/plugins/taskgroup.py:62
+#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
+#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
+#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
+#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
+#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
+#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
+#: ipalib/plugins/sudorule.py:78
msgid "Description"
msgstr "Опис"
-#: ipalib/plugins/automount.py:236
+#: ipalib/plugins/automount.py:515
msgid "Automount Maps"
msgstr "Карти автоматичного монтування"
-#: ipalib/plugins/automount.py:308
+#: ipalib/plugins/automount.py:521
+msgid ""
+"\n"
+" Create a new automount map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:529
+msgid ""
+"\n"
+" Delete an automount map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:548
+msgid ""
+"\n"
+" Modify an automount map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:556
+msgid ""
+"\n"
+" Search for an automount map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:564
+msgid ""
+"\n"
+" Display an automount map.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:572
+#, fuzzy
+msgid ""
+"\n"
+" Automount key object.\n"
+" "
+msgstr "Назва ключа автоматичного монтування"
+
+#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
+#: ipalib/plugins/automount.py:850
msgid "Key"
msgstr "Ключ"
-#: ipalib/plugins/automount.py:309
-msgid "Automount key name"
+#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
+#: ipalib/plugins/automount.py:851
+#, fuzzy
+msgid "Automount key name."
msgstr "Назва ключа автоматичного монтування"
-#: ipalib/plugins/automount.py:314
+#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
+#: ipalib/plugins/automount.py:855
msgid "Mount information"
msgstr "Інформація щодо монтування"
-#: ipalib/plugins/automount.py:318
+#: ipalib/plugins/automount.py:597
msgid "description"
msgstr "опис"
-#: ipalib/plugins/automount.py:322
+#: ipalib/plugins/automount.py:606
msgid "Automount Keys"
msgstr "Ключі автомонтування"
-#: ipalib/plugins/automount.py:342
+#: ipalib/plugins/automount.py:607
+msgid ""
+"The key,info pair must be unique. A key named %(key)s with info %(info)s "
+"already exists"
+msgstr ""
+
+#: ipalib/plugins/automount.py:608
+#, fuzzy
+msgid "key named %(key)s already exists"
+msgstr "Цей запис вже існує"
+
+#: ipalib/plugins/automount.py:609
+msgid "The automount key %(key)s with info %(info)s does not exist"
+msgstr ""
+
+#: ipalib/plugins/automount.py:659
+msgid ""
+"More than one entry with key %(key)s found, use --info to select specific "
+"entry."
+msgstr ""
+
+#: ipalib/plugins/automount.py:717
+msgid ""
+"\n"
+" Create a new automount key.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:742
+msgid ""
+"\n"
+" Create a new indirect mount point.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:748
msgid "Mount point"
msgstr "Точка монтування"
-#: ipalib/plugins/automount.py:346
+#: ipalib/plugins/automount.py:752
msgid "Parent map"
msgstr "Батьківська карта"
-#: ipalib/plugins/automount.py:347
-msgid "Name of parent automount map (default: auto.master)"
+#: ipalib/plugins/automount.py:753
+#, fuzzy
+msgid "Name of parent automount map (default: auto.master)."
msgstr "Назва батьківської карти автомонтування (типове значення: auto.master)"
-#: ipalib/plugins/baseldap.py:79
-#, python-format
+#: ipalib/plugins/automount.py:772
+msgid ""
+"\n"
+" Delete an automount key.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:803
+msgid ""
+"\n"
+" Modify an automount key.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:809
+#, fuzzy
+msgid "New mount information"
+msgstr "Інформація щодо монтування"
+
+#: ipalib/plugins/automount.py:836
+msgid ""
+"\n"
+" Search for an automount key.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:844
+msgid ""
+"\n"
+" Display an automount key.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:19
+msgid ""
+"\n"
+"Base classes for LDAP plugins.\n"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:39
+msgid "Failed members"
+msgstr "Помилкові учасники"
+
+#: ipalib/plugins/baseldap.py:42
+msgid "Member users"
+msgstr "Користувачі-учасники"
+
+#: ipalib/plugins/baseldap.py:45
+msgid "Member groups"
+msgstr "Групи-учасники"
+
+#: ipalib/plugins/baseldap.py:48
+#, fuzzy
+msgid "Member of groups"
+msgstr "Учасник групи"
+
+#: ipalib/plugins/baseldap.py:51
+msgid "Member hosts"
+msgstr "Вузли-учасники"
+
+#: ipalib/plugins/baseldap.py:54
+msgid "Member host-groups"
+msgstr "Групи вузлів-учасники"
+
+#: ipalib/plugins/baseldap.py:57
+msgid "Member of host-groups"
+msgstr "Учасник групи вузлів"
+
+#: ipalib/plugins/baseldap.py:66
+#, fuzzy
+msgid "Roles"
+msgstr "Групи ролей"
+
+#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
+#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
+#: ipalib/plugins/sudorule.py:143
+msgid "Sudo Command Groups"
+msgstr "Групи команд sudo"
+
+#: ipalib/plugins/baseldap.py:75
+msgid "Granting privilege to roles"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:78
+#, fuzzy
+msgid "Member netgroups"
+msgstr "Групи-учасники"
+
+#: ipalib/plugins/baseldap.py:81
+#, fuzzy
+msgid "Member of netgroups"
+msgstr "Учасник мережевої групи"
+
+#: ipalib/plugins/baseldap.py:84
+msgid "Member services"
+msgstr "Служби учасників"
+
+#: ipalib/plugins/baseldap.py:87
+msgid "Member service groups"
+msgstr "Групи служб учасників"
+
+#: ipalib/plugins/baseldap.py:93
+#, fuzzy
+msgid "Member HBAC service groups"
+msgstr "Групи служб учасників"
+
+#: ipalib/plugins/baseldap.py:102
+#, fuzzy
+msgid "Indirect Member users"
+msgstr "Користувачі-учасники"
+
+#: ipalib/plugins/baseldap.py:105
+#, fuzzy
+msgid "Indirect Member groups"
+msgstr "Групи-учасники"
+
+#: ipalib/plugins/baseldap.py:108
+#, fuzzy
+msgid "Indirect Member hosts"
+msgstr "Вузли-учасники"
+
+#: ipalib/plugins/baseldap.py:111
+#, fuzzy
+msgid "Indirect Member host-groups"
+msgstr "Групи вузлів-учасники"
+
+#: ipalib/plugins/baseldap.py:114
+#, fuzzy
+msgid "Indirect Member of roles"
+msgstr "Учасник групи ролей"
+
+#: ipalib/plugins/baseldap.py:117
+msgid "Indirect Member permissions"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:120
+#, fuzzy
+msgid "Indirect Member HBAC service"
+msgstr "Служби учасників"
+
+#: ipalib/plugins/baseldap.py:123
+#, fuzzy
+msgid "Indirect Member HBAC service group"
+msgstr "Групи служб учасників"
+
+#: ipalib/plugins/baseldap.py:126
+#, fuzzy
+msgid "Indirect Member netgroups"
+msgstr "Учасник мережевої групи"
+
+#: ipalib/plugins/baseldap.py:141
+msgid "External host"
+msgstr "Зовнішній вузол"
+
+#: ipalib/plugins/baseldap.py:144
+#, fuzzy
+msgid "Failed hosts/hostgroups"
+msgstr "Назва групи вузлів"
+
+#: ipalib/plugins/baseldap.py:147
+#, fuzzy
+msgid "Failed users/groups"
+msgstr "Типова група користувачів"
+
+#: ipalib/plugins/baseldap.py:150
+#, fuzzy
+msgid "Failed managedby"
+msgstr "Помилкові учасники"
+
+#: ipalib/plugins/baseldap.py:153
+#, fuzzy
+msgid "Failed to remove"
+msgstr "Не вдалося створити ключ!\n"
+
+#: ipalib/plugins/baseldap.py:171
+msgid ""
+"\n"
+" Given a list of values in the form name=value, return a list of name.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:197
+msgid ""
+"\n"
+" When adding or removing reverse members we are faking an update to\n"
+" object A by updating the member attribute in object B. The memberof\n"
+" plugin makes this work by adding or removing the memberof attribute\n"
+" to/from object A, it just takes a little bit of time.\n"
+"\n"
+" This will loop for 6+ seconds, retrieving object A so we can see\n"
+" if all the memberof attributes have been updated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:241
+#, fuzzy
+msgid ""
+"\n"
+" Object representing a LDAP entry.\n"
+" "
+msgstr "Словник, що відповідає запису LDAP"
+
+#: ipalib/plugins/baseldap.py:281
+msgid "Entry"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:283
msgid "container entry (%(container)s) not found"
msgstr "не знайдено запис контейнера (%(container)s)"
-#: ipalib/plugins/baseldap.py:80
-#, python-format
+#: ipalib/plugins/baseldap.py:284
msgid "%(parent)s: %(oname)s not found"
msgstr "%(parent)s: не знайдено %(oname)s"
-#: ipalib/plugins/baseldap.py:81
-#, python-format
+#: ipalib/plugins/baseldap.py:285
msgid "%(pkey)s: %(oname)s not found"
msgstr "%(pkey)s: не знайдено %(oname)s"
-#: ipalib/plugins/baseldap.py:150
-msgid "Add an attribute/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:286
+msgid "%(oname)s with name \"%(pkey)s\" already exists"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:415
+#, fuzzy
+msgid ""
+"Add an attribute/value pair. Format is attr=value. The attribute must be "
+"part of the schema."
msgstr "Додати пару атрибут-значення. Формат: атрибут=значення"
-#: ipalib/plugins/baseldap.py:155
-msgid "Set an attribute to an name/value pair. Format is attr=value"
-msgstr "Встановити для атрибута пару назва-значення. Формат: атрибут=значення"
+#: ipalib/plugins/baseldap.py:420
+msgid ""
+"Set an attribute to a name/value pair. Format is attr=value.\n"
+"For multi-valued attributes, the command replaces the values already present."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:444
+msgid ""
+"\n"
+" If the set of objectclasses is limited enforce that only those\n"
+" are updated in entry_attrs (plus dn)\n"
+"\n"
+" allow_only tells us what mode to check in:\n"
+"\n"
+" If True then we enforce that the attributes must be in the list of\n"
+" allowed.\n"
+"\n"
+" If False then those attributes are not allowed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:474
+msgid ""
+"\n"
+" Callback registration interface\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:561
+msgid ""
+"\n"
+" Create a new entry in LDAP.\n"
+" "
+msgstr ""
-#: ipalib/plugins/baseldap.py:359
+#: ipalib/plugins/baseldap.py:703
+msgid ""
+"\n"
+" Base class for commands that need to retrieve an existing entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:727
+msgid ""
+"\n"
+" Base class for commands that need to retrieve one or more existing "
+"entries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:733
msgid "Continuous mode: Don't stop on errors."
msgstr "Режим неперервної роботи: не зупинятися у разі помилок."
-#: ipalib/plugins/baseldap.py:517
+#: ipalib/plugins/baseldap.py:750
+msgid ""
+"\n"
+" Retrieve an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
+#: ipalib/plugins/internal.py:232
+msgid "Rights"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+msgid ""
+"Display the access rights of this entry (requires --all). See ipa man page "
+"for details."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:821
+msgid ""
+"\n"
+" Update an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:837
+#, fuzzy
+msgid "Rename"
+msgstr "Назва правила"
+
+#: ipalib/plugins/baseldap.py:838
+msgid "Rename the %(ldap_obj_name)s object"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:957
msgid "the entry was deleted while being modified"
msgstr "запис було вилучено під час внесення змін"
-#: ipalib/plugins/baseldap.py:674
+#: ipalib/plugins/baseldap.py:988
+msgid ""
+"\n"
+" Delete an LDAP entry and all of its direct subentries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1078
+msgid ""
+"\n"
+" Base class for member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1120
+msgid ""
+"\n"
+" Add other LDAP entries to members.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
+#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
+#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
msgid "Members that could not be added"
msgstr "Учасники, записи яких не вдалося додати"
-#: ipalib/plugins/baseldap.py:678
+#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596
msgid "Number of members added"
msgstr "Кількість доданих учасників"
-#: ipalib/plugins/baseldap.py:684 ipalib/plugins/baseldap.py:789
-msgid "Failed members"
-msgstr "Помилкові учасники"
+#: ipalib/plugins/baseldap.py:1226
+msgid ""
+"\n"
+" Remove LDAP entries from members.\n"
+" "
+msgstr ""
-#: ipalib/plugins/baseldap.py:779
+#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
msgid "Members that could not be removed"
msgstr "Учасники, записи яких не вдалося вилучити"
-#: ipalib/plugins/baseldap.py:783
+#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
msgid "Number of members removed"
msgstr "Кількість вилучених учасників"
-#: ipalib/plugins/baseldap.py:880
+#: ipalib/plugins/baseldap.py:1335
+msgid ""
+"\n"
+" Retrieve all LDAP entries matching the given criteria.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1344
msgid "Time Limit"
msgstr "Обмеження часу"
-#: ipalib/plugins/baseldap.py:881
+#: ipalib/plugins/baseldap.py:1345
msgid "Time limit of search in seconds"
msgstr "Обмеження часу пошуку у секундах"
-#: ipalib/plugins/baseldap.py:887
+#: ipalib/plugins/baseldap.py:1351
msgid "Size Limit"
msgstr "Обмеження розміру"
-#: ipalib/plugins/baseldap.py:888
+#: ipalib/plugins/baseldap.py:1352
msgid "Maximum number of entries returned"
msgstr "Максимальна кількість повернутих записів"
-#: ipalib/plugins/cert.py:93
+#: ipalib/plugins/baseldap.py:1552
+msgid ""
+"\n"
+" Base class for reverse member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1574
+msgid ""
+"\n"
+" Add other LDAP entries to members in reverse.\n"
+"\n"
+" The call looks like \"add A to B\" but in fact executes\n"
+" add B to A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1654
+msgid "added"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1687
+msgid ""
+"\n"
+" Remove other LDAP entries from members in reverse.\n"
+"\n"
+" The call looks like \"remove A from B\" but in fact executes\n"
+" remove B from A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1767
+msgid "removed"
+msgstr ""
+
+#: ipalib/plugins/batch.py:21
+msgid ""
+"\n"
+"Plugin to make multiple ipa calls via one remote procedure call\n"
+"\n"
+"To run this code in the lite-server\n"
+"\n"
+"curl -H \"Content-Type:application/json\" -H \"Accept:application/"
+"json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /"
+"etc/ipa/ca.crt -d @batch_request.json -X POST http://"
+"localhost:8888/ipa/json\n"
+"\n"
+"where the contents of the file batch_request.json follow the below example\n"
+"\n"
+"{\"method\":\"batch\",\"params\":[[\n"
+" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
+" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all"
+"\":\"true\"}]},\n"
+" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
+" ],{}],\"id\":1}\n"
+"\n"
+"The format of the response is nested the same way. At the top you will see\n"
+" \"error\": null,\n"
+" \"id\": 1,\n"
+" \"result\": {\n"
+" \"count\": 3,\n"
+" \"results\": [\n"
+"\n"
+"\n"
+"And then a nested response for each IPA command method sent in the request\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/batch.py:61
+msgid "Nested Methods to execute"
+msgstr ""
+
+#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/plugins/cert.py:22
+msgid ""
+"\n"
+"IPA certificate operations\n"
+"\n"
+"Implements a set of commands for managing server SSL certificates.\n"
+"\n"
+"Certificate requests exist in the form of a Certificate Signing Request "
+"(CSR)\n"
+"in PEM format.\n"
+"\n"
+"If using the selfsign back end then the subject in the CSR needs to match\n"
+"the subject configured in the server. The dogtag CA uses just the CN\n"
+"value of the CSR and forces the rest of the subject.\n"
+"\n"
+"A certificate is stored with a service principal and a service principal\n"
+"needs a host.\n"
+"\n"
+"In order to request a certificate:\n"
+"\n"
+"* The host must exist\n"
+"* The service must exist (or you use the --add option to automatically add "
+"it)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Request a new certificate and add the principal:\n"
+" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n"
+"\n"
+" Retrieve an existing certificate:\n"
+" ipa cert-show 1032\n"
+"\n"
+" Revoke a certificate (see RFC 5280 for reason details):\n"
+" ipa cert-revoke --revocation-reason=6 1032\n"
+"\n"
+" Remove a certificate from revocation hold status:\n"
+" ipa cert-remove-hold 1032\n"
+"\n"
+" Check the status of a signing request:\n"
+" ipa cert-status 10\n"
+"\n"
+"IPA currently immediately issues (or declines) all certificate requests so\n"
+"the status of a request is not normally useful. This is for future use\n"
+"or the case where a CA does not immediately issue a certificate.\n"
+"\n"
+"The following revocation reasons are supported:\n"
+"\n"
+" * 0 - unspecified\n"
+" * 1 - keyCompromise\n"
+" * 2 - cACompromise\n"
+" * 3 - affiliationChanged\n"
+" * 4 - superseded\n"
+" * 5 - cessationOfOperation\n"
+" * 6 - certificateHold\n"
+" * 8 - removeFromCRL\n"
+" * 9 - privilegeWithdrawn\n"
+" * 10 - aACompromise\n"
+"\n"
+"Note that reason code 7 is not used. See RFC 5280 for more details:\n"
+"\n"
+"http://www.ietf.org/rfc/rfc5280.txt\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/cert.py:104
+msgid ""
+"\n"
+" Return the value of CN in the subject of the request or None\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr "Помилка під час декодування запиту на підписування сертифіката (CSR):"
-#: ipalib/plugins/cert.py:106 ipalib/plugins/cert.py:118
+#: ipalib/plugins/cert.py:115
+msgid ""
+"\n"
+" Return the first value of the subject alt name, if any\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
msgid "Failure decoding Certificate Signing Request"
msgstr "Помилка під час декодування запиту на підписування сертифіката (CSR)"
-#: ipalib/plugins/cert.py:120
-#, python-format
+#: ipalib/plugins/cert.py:128
+msgid ""
+"\n"
+" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
+" parser.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:139
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
"Помилка під час декодування запиту на підписування сертифіката (CSR): %s"
-#: ipalib/plugins/cert.py:171 ipalib/plugins/service.py:197
+#: ipalib/plugins/cert.py:142
+msgid ""
+"\n"
+" Strip any leading and trailing cruft around the BEGIN/END block\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:162
+msgid ""
+"\n"
+" Convert a SN given in decimal or hexadecimal.\n"
+" Returns the number or None if conversion fails.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:188
+msgid ""
+"\n"
+" Given a principal with or without a realm return the\n"
+" host portion.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:202
+msgid ""
+"\n"
+" Submit a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
msgid "Principal"
msgstr "Реєстраційний запис"
-#: ipalib/plugins/cert.py:172
+#: ipalib/plugins/cert.py:217
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
"Реєстраційний запис служби для цього сертифіката (наприклад HTTP/test."
"example.com)"
-#: ipalib/plugins/cert.py:179
+#: ipalib/plugins/cert.py:224
msgid "automatically add the principal if it doesn't exist"
msgstr "автоматично додати реєстраційний запис, якщо його не існує"
-#: ipalib/plugins/cert.py:187 ipalib/plugins/cert.py:392
-#: ipalib/plugins/host.py:154 ipalib/plugins/service.py:204
+#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
+#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
+#: ipalib/plugins/service.py:232
msgid "Certificate"
msgstr "Сертифікат"
-#: ipalib/plugins/cert.py:191 ipalib/plugins/cert.py:395
+#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
msgid "Subject"
msgstr "Об’єкт"
-#: ipalib/plugins/cert.py:195 ipalib/plugins/cert.py:398
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
msgid "Issuer"
msgstr "Видавець"
-#: ipalib/plugins/cert.py:199 ipalib/plugins/cert.py:401
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
msgid "Not Before"
msgstr "Не раніше"
-#: ipalib/plugins/cert.py:203 ipalib/plugins/cert.py:404
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
msgid "Not After"
msgstr "Не пізніше"
-#: ipalib/plugins/cert.py:207 ipalib/plugins/cert.py:407
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
msgid "Fingerprint (MD5)"
msgstr "Відбиток (MD5)"
-#: ipalib/plugins/cert.py:211 ipalib/plugins/cert.py:410
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
msgid "Fingerprint (SHA1)"
msgstr "Відбиток (SHA1)"
-#: ipalib/plugins/cert.py:215 ipalib/plugins/cert.py:379
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
msgid "Serial number"
msgstr "Серійний номер"
-#: ipalib/plugins/cert.py:223 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr "Відображення назви змінної на значення за словником"
-#: ipalib/plugins/cert.py:357
+#: ipalib/plugins/cert.py:396
+msgid ""
+"\n"
+" Check the status of a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:402
msgid "Request id"
msgstr "Ід. запиту"
-#: ipalib/plugins/cert.py:363
+#: ipalib/plugins/cert.py:408
msgid "Request status"
msgstr "Стан запиту"
-#: ipalib/plugins/cert.py:380
+#: ipalib/plugins/cert.py:426
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr "Серійний десятковий номер або шістнадцятковий номер з префіксом 0x"
-#: ipalib/plugins/cert.py:413
+#: ipalib/plugins/cert.py:431
+msgid ""
+"\n"
+" Retrieve an existing certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
+#: ipalib/plugins/service.py:114
msgid "Revocation reason"
msgstr "Причина відкликання"
-#: ipalib/plugins/cert.py:458
+#: ipalib/plugins/cert.py:466
+#, fuzzy
+msgid "Output filename"
+msgstr "Назва ключа автоматичного монтування"
+
+#: ipalib/plugins/cert.py:467
+#, fuzzy
+msgid "File to store the certificate in."
+msgstr "Файл, у якому зберігатимуться дані таблиці ключів"
+
+#: ipalib/plugins/cert.py:518
+msgid ""
+"\n"
+" Revoke a certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:526
msgid "Revoked"
msgstr "Анульований"
-#: ipalib/plugins/cert.py:466
+#: ipalib/plugins/cert.py:534
msgid "Reason"
msgstr "Підстава"
-#: ipalib/plugins/cert.py:467
+#: ipalib/plugins/cert.py:535
msgid "Reason for revoking the certificate (0-10)"
msgstr "Причина відкликання сертифіката (0-10)"
-#: ipalib/plugins/cert.py:502
+#: ipalib/plugins/cert.py:562
+msgid ""
+"\n"
+" Take a revoked certificate off hold.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:570
msgid "Unrevoked"
msgstr "Відкликання скасовано"
-#: ipalib/plugins/cert.py:505
+#: ipalib/plugins/cert.py:573
msgid "Error"
msgstr "Помилка"
-#: ipalib/plugins/config.py:73
+#: ipalib/plugins/config.py:20
+msgid ""
+"\n"
+"Manage the IPA configuration\n"
+"\n"
+"Manage the default values that IPA uses and some of its tuning parameters.\n"
+"\n"
+" To show the current configuration:\n"
+" ipa config-show\n"
+"\n"
+" To modify the configuration:\n"
+" ipa config-mod --maxusername=99\n"
+"\n"
+"The available options are:\n"
+"\n"
+"User management options:\n"
+"\n"
+" --maxusername=INT Max. username length when creating/modifying a user\n"
+" --homedirectory=STR Default location of home directories (default /"
+"home)\n"
+" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
+" --defaultgroup=STR Default group for new users (default ipausers). The\n"
+" group must exist, or adding new users will fail.\n"
+" --emaildomain=STR Default e-mail domain for new users\n"
+"\n"
+"Search tuning options. These impact how much data is searched through and\n"
+"how many records may be returned on a given search.\n"
+"\n"
+" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 "
+"for\n"
+" unlimited)\n"
+" --searchrecordslimit=INT Max. number of records to search (-1 is "
+"unlimited)\n"
+"\n"
+"Server Configuration.\n"
+"\n"
+" --enable-migration=BOOL Enable migration mode\n"
+" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+"\n"
+"The password notification value is stored here so it will be replicated.\n"
+"It is not currently used to notify users in advance of an expiring\n"
+"password.\n"
+"\n"
+"Some attributes are read-only, provided only for information purposes. "
+"These\n"
+"include:\n"
+"\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
+msgstr ""
+
+#: ipalib/plugins/config.py:76
+msgid "searchtimelimit must be -1 or > 1."
+msgstr ""
+
+#: ipalib/plugins/config.py:80
+msgid ""
+"\n"
+" IPA configuration object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
msgid "Configuration"
msgstr "Налаштування"
-#: ipalib/plugins/config.py:78
-msgid "Max username length"
+#: ipalib/plugins/config.py:96
+#, fuzzy
+msgid "Max. username length"
msgstr "Макс. довжина імені користувача"
-#: ipalib/plugins/config.py:83
+#: ipalib/plugins/config.py:101
msgid "Home directory base"
msgstr "Адреса домашніх каталогів"
-#: ipalib/plugins/config.py:84
-msgid "Default location of home directories"
+#: ipalib/plugins/config.py:102
+#, fuzzy
+msgid "Default location of home directories."
msgstr "Типова адреса домашніх каталогів"
-#: ipalib/plugins/config.py:88
+#: ipalib/plugins/config.py:106
msgid "Default shell"
msgstr "Типова оболонка"
-#: ipalib/plugins/config.py:89
-msgid "Default shell for new users"
+#: ipalib/plugins/config.py:107
+#, fuzzy
+msgid "Default shell for new users."
msgstr "Типова оболонка для нових користувачів"
-#: ipalib/plugins/config.py:93
+#: ipalib/plugins/config.py:111
msgid "Default users group"
msgstr "Типова група користувачів"
-#: ipalib/plugins/config.py:94
-msgid "Default group for new users"
+#: ipalib/plugins/config.py:112
+#, fuzzy
+msgid "Default group for new users."
msgstr "Типова група для нових користувачів"
-#: ipalib/plugins/config.py:98
-msgid "Default e-mail domain"
-msgstr "Типовий домен ел. пошти"
+#: ipalib/plugins/config.py:116
+#, fuzzy
+msgid "Default e-mail domain for new users"
+msgstr "Типовий домен електронної пошти для нових користувачів"
-#: ipalib/plugins/config.py:99
-msgid "Default e-mail domain new users"
+#: ipalib/plugins/config.py:117
+#, fuzzy
+msgid "Default e-mail domain new users."
msgstr "Типовий домен електронної пошти для нових користувачів"
-#: ipalib/plugins/config.py:103
+#: ipalib/plugins/config.py:121
msgid "Search time limit"
msgstr "Обмеження часу пошуку"
-#: ipalib/plugins/config.py:104
-msgid "Max. amount of time (sec.) for a search (-1 is unlimited)"
+#: ipalib/plugins/config.py:122
+#, fuzzy
+msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
msgstr ""
-"Максимальний проміжок часу (у секундах) для виконання однієї дії з пошуку (-"
-"1 — без обмежень)"
+"Максимальний проміжок часу (у секундах) для виконання однієї дії з пошуку "
+"(-1 — без обмежень)"
-#: ipalib/plugins/config.py:109
+#: ipalib/plugins/config.py:127
msgid "Search size limit"
msgstr "Обмеження розміру пошуку"
-#: ipalib/plugins/config.py:110
-msgid "Max. number of records to search (-1 is unlimited)"
+#: ipalib/plugins/config.py:128
+#, fuzzy
+msgid "Max. number of records to search (-1 is unlimited)."
msgstr "Максимальна кількість записів результатів пошуку (-1 — без обмежень)"
-#: ipalib/plugins/config.py:115
+#: ipalib/plugins/config.py:133
msgid "User search fields"
msgstr "Поля пошуку користувачів"
-#: ipalib/plugins/config.py:116
-msgid "A comma-separated list of fields to search when searching for users"
+#: ipalib/plugins/config.py:134
+#, fuzzy
+msgid "A comma-separated list of fields to search when searching for users."
msgstr ""
"Відокремлений комами список полів, за якими виконуватиметься пошук "
"користувачів"
-#: ipalib/plugins/config.py:121
-msgid "A comma-separated list of fields to search when searching for groups"
+#: ipalib/plugins/config.py:139
+#, fuzzy
+msgid "A comma-separated list of fields to search when searching for groups."
msgstr ""
"Відокремлений комами список полів, за якими виконуватиметься пошук груп"
-#: ipalib/plugins/config.py:125
+#: ipalib/plugins/config.py:143
msgid "Migration mode"
msgstr "Режим міграції"
-#: ipalib/plugins/config.py:126
-msgid "Enable migration mode"
+#: ipalib/plugins/config.py:144
+#, fuzzy
+msgid "Enable migration mode."
msgstr "Увімкнути режим міграції"
-#: ipalib/plugins/config.py:130
+#: ipalib/plugins/config.py:148
msgid "Certificate Subject base"
msgstr "Базовий об’єкт сертифікації"
-#: ipalib/plugins/config.py:131
-msgid "Base for certificate subjects (OU=Test,O=Example)"
+#: ipalib/plugins/config.py:149
+#, fuzzy
+msgid "Base for certificate subjects (OU=Test,O=Example)."
msgstr "Основа для створення записів об’єктів сертифікації (OU=Test,O=Example)"
-#: ipalib/plugins/dns.py:131
+#: ipalib/plugins/config.py:154
+#, fuzzy
+msgid "Default group objectclasses"
+msgstr "Типова група для нових користувачів"
+
+#: ipalib/plugins/config.py:155
+msgid "Default group objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:159
+#, fuzzy
+msgid "Default user objectclasses"
+msgstr "Типова група користувачів"
+
+#: ipalib/plugins/config.py:160
+msgid "Default user objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:164
+msgid "Password Expiration Notification"
+msgstr ""
+
+#: ipalib/plugins/config.py:165
+msgid "Number of days's notice of impending password expiration."
+msgstr ""
+
+#: ipalib/plugins/config.py:170
+msgid "Password plugin features"
+msgstr ""
+
+#: ipalib/plugins/config.py:171
+msgid "Extra hashes to generate in password plug-in."
+msgstr ""
+
+#: ipalib/plugins/config.py:183
+msgid ""
+"\n"
+" Modify configuration options.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:220
+msgid ""
+"\n"
+" Show the current configuration.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:19
+msgid ""
+"\n"
+"Group to Group Delegation\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"Group to Group Delegations grants the members of one group to update a set\n"
+"of attributes of members of another group.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a delegation rule to allow editors to edit admin's addresses:\n"
+" ipa delegation-add --attrs=street --membergroup=admins --group=editors "
+"'editors edit admins street'\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add postalCode to the list:\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --"
+"group=editors 'editors edit admins street'\n"
+"\n"
+" Display our updated rule:\n"
+" ipa delegation-show 'editors edit admins street'\n"
+"\n"
+" Delete a rule:\n"
+" ipa delegation-del 'editors edit admins street'\n"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:56
+msgid ""
+"\n"
+" memberOf is in filter but we want to pull out the group for easier\n"
+" displaying.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+#, fuzzy
+msgid "Delegation '%(permission)s' not found"
+msgstr "Вузла «%(host)s» не знайдено"
+
+#: ipalib/plugins/delegation.py:70
+msgid "Error retrieving member group %(group)s: %(error)s"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:79
+msgid ""
+"\n"
+" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a delegation ACI, adding a new attribute\n"
+" membergroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:95
+msgid ""
+"\n"
+" Delegation object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:102
+#, fuzzy
+msgid "Delegation"
+msgstr "Вилучити"
+
+#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#, fuzzy
+msgid "Delegation name"
+msgstr "Режим міграції"
+
+#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+#, fuzzy
+msgid ""
+"Comma-separated list of permissions to grant (read, write). Default is write."
+msgstr ""
+"відокремлений комами список прав доступу, які слід надати (read, write, add, "
+"delete, all)"
+
+#: ipalib/plugins/delegation.py:125
+#, fuzzy
+msgid "Member user group"
+msgstr "Групи служб учасників"
+
+#: ipalib/plugins/delegation.py:126
+#, fuzzy
+msgid "User group to apply delegation to"
+msgstr "Група, до якої слід застосувати ACI"
+
+#: ipalib/plugins/delegation.py:152
+msgid ""
+"\n"
+" Add a new delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:156
+#, fuzzy
+msgid "Added delegation \"%(value)s\""
+msgstr "Додано групу ролей «%(value)s»"
+
+#: ipalib/plugins/delegation.py:176
+msgid ""
+"\n"
+" Delete a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:181
+#, fuzzy
+msgid "Deleted delegation \"%(value)s\""
+msgstr "Вилучено групу ролей «%(value)s»"
+
+#: ipalib/plugins/delegation.py:197
+msgid ""
+"\n"
+" Modify a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:201
+#, fuzzy
+msgid "Modified delegation \"%(value)s\""
+msgstr "Змінено групу ролей «%(value)s»"
+
+#: ipalib/plugins/delegation.py:219
+msgid ""
+"\n"
+" Search for delegations.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:223
+#, fuzzy
+msgid "%(count)d delegation matched"
+msgid_plural "%(count)d delegations matched"
+msgstr[0] "встановлено відповідність %(count)d групи ролей"
+msgstr[1] "встановлено відповідність %(count)d груп ролей"
+msgstr[2] "встановлено відповідність %(count)d груп ролей"
+msgstr[3] "встановлено відповідність %(count)d групи ролей"
+
+#: ipalib/plugins/delegation.py:250
+msgid ""
+"\n"
+" Display information about a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:20
+msgid ""
+"\n"
+"Domain Name System (DNS)\n"
+"\n"
+"Manage DNS zone and resource records.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add new zone:\n"
+" ipa dnszone-add example.com --name-server nameserver.example.com\n"
+" --admin-email admin@example.com\n"
+"\n"
+" Add second nameserver for example.com:\n"
+" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add a mail server for example.com:\n"
+" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n"
+"\n"
+" Delete previously added nameserver from example.com:\n"
+" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add new A record for www.example.com: (random IP)\n"
+" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n"
+"\n"
+" Add new PTR record for www.example.com\n"
+" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n"
+"\n"
+" Add new SRV records for LDAP servers. Three quarters of the requests\n"
+" should go to fast.example.com, one quarter to slow.example.com. If neither\n"
+" is available, switch to backup.example.com.\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup."
+"example.com\"\n"
+"\n"
+" When dnsrecord-add command is executed with no option to add a specific "
+"record\n"
+" an interactive mode is started. The mode interactively prompts for the "
+"most\n"
+" typical record types for the respective zone:\n"
+" ipa dnsrecord-add example.com www\n"
+" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random "
+"IPs)\n"
+" [AAAA record]: (no AAAA address entered)\n"
+" Record name: www\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" The interactive mode can also be used for deleting the DNS records:\n"
+" ipa dnsrecord-del example.com www\n"
+" No option to delete specific record provided.\n"
+" Delete all? Yes/No (default No): (do not delete all records)\n"
+" Current DNS record contents:\n"
+"\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
+" Record name: www\n"
+" A record: 1.2.3.4 (A record 11.22.33.44 has been "
+"deleted)\n"
+"\n"
+" Show zone example.com:\n"
+" ipa dnszone-show example.com\n"
+"\n"
+" Find zone with \"example\" in its domain name:\n"
+" ipa dnszone-find example\n"
+"\n"
+" Find records for resources with \"www\" in their name in zone example.com:\n"
+" ipa dnsrecord-find example.com www\n"
+"\n"
+" Find A records with value 10.10.0.1 in zone example.com\n"
+" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n"
+"\n"
+" Show records for resource www in zone example.com\n"
+" ipa dnsrecord-show example.com www\n"
+"\n"
+" Delete zone example.com with all resource records:\n"
+" ipa dnszone-del example.com\n"
+"\n"
+" Resolve a host name to see if it exists (will add default IPA domain\n"
+" if one is not included):\n"
+" ipa dns-resolve www.example.com\n"
+" ipa dns-resolve www\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:140
+msgid "Generate serial number for zones."
+msgstr ""
+
+#: ipalib/plugins/dns.py:189
+msgid "see RFC 2915 "
+msgstr ""
+
+#: ipalib/plugins/dns.py:249
+#, fuzzy
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr "Вузол не має відповідного запису DNS A"
+
+#: ipalib/plugins/dns.py:272
+#, fuzzy
+msgid ""
+"\n"
+" DNS Zone, container for resource records.\n"
+" "
+msgstr "RDN контейнера користувачів у DS"
+
+#: ipalib/plugins/dns.py:284
msgid "DNS"
msgstr "DNS"
-#: ipalib/plugins/dns.py:136
-msgid "Zone"
-msgstr "Зона"
+#: ipalib/plugins/dns.py:289
+msgid "Zone name"
+msgstr "Назва зони"
-#: ipalib/plugins/dns.py:137
+#: ipalib/plugins/dns.py:290
msgid "Zone name (FQDN)"
msgstr "Назва зони (FQDN)"
-#: ipalib/plugins/dns.py:143
-msgid "Authoritative name server"
+#: ipalib/plugins/dns.py:296
+#, fuzzy
+msgid "Authoritative nameserver"
+msgstr "Основний сервер назв"
+
+#: ipalib/plugins/dns.py:297
+#, fuzzy
+msgid "Authoritative nameserver."
msgstr "Основний сервер назв"
-#: ipalib/plugins/dns.py:147
-msgid "administrator e-mail address"
+#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#, fuzzy
+msgid "Administrator e-mail address"
msgstr "адреса електронної пошти адміністратора"
-#: ipalib/plugins/dns.py:153
+#: ipalib/plugins/dns.py:308
msgid "SOA serial"
msgstr "Серійний номер SOA"
-#: ipalib/plugins/dns.py:157
+#: ipalib/plugins/dns.py:309
+#, fuzzy
+msgid "SOA record serial number"
+msgstr "Серійний номер"
+
+#: ipalib/plugins/dns.py:316
msgid "SOA refresh"
msgstr "Освіження SOA"
-#: ipalib/plugins/dns.py:161
+#: ipalib/plugins/dns.py:317
+#, fuzzy
+msgid "SOA record refresh time"
+msgstr "Освіження SOA"
+
+#: ipalib/plugins/dns.py:324
msgid "SOA retry"
msgstr "Повторення спроби SOA"
-#: ipalib/plugins/dns.py:165
+#: ipalib/plugins/dns.py:325
+#, fuzzy
+msgid "SOA record retry time"
+msgstr "Повторення спроби SOA"
+
+#: ipalib/plugins/dns.py:332
msgid "SOA expire"
msgstr "Застарівання SOA"
-#: ipalib/plugins/dns.py:169
+#: ipalib/plugins/dns.py:333
+#, fuzzy
+msgid "SOA record expire time"
+msgstr "Застарівання SOA"
+
+#: ipalib/plugins/dns.py:340
msgid "SOA minimum"
msgstr "Мінімальний SOA"
-#: ipalib/plugins/dns.py:173
+#: ipalib/plugins/dns.py:341
+msgid "How long should negative responses be cached"
+msgstr ""
+
+#: ipalib/plugins/dns.py:349
msgid "SOA time to live"
msgstr "Строк дії SOA"
-#: ipalib/plugins/dns.py:177
+#: ipalib/plugins/dns.py:350
+#, fuzzy
+msgid "SOA record time to live"
+msgstr "Строк дії SOA"
+
+#: ipalib/plugins/dns.py:354
msgid "SOA class"
msgstr "Клас SOA"
-#: ipalib/plugins/dns.py:182
-msgid "allow dynamic update?"
-msgstr "дозволити динамічне оновлення?"
+#: ipalib/plugins/dns.py:355
+#, fuzzy
+msgid "SOA record class"
+msgstr "Клас SOA"
-#: ipalib/plugins/dns.py:186
+#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
msgid "BIND update policy"
msgstr "Правила оновлення BIND"
-#: ipalib/plugins/dns.py:426 ipalib/plugins/dns.py:460
-#: ipalib/plugins/dns.py:495 ipalib/plugins/dns.py:610
-#: ipalib/plugins/dns.py:695 ipalib/plugins/dns.py:819
-msgid "Zone name"
-msgstr "Назва зони"
+#: ipalib/plugins/dns.py:365
+msgid "Active zone"
+msgstr ""
-#: ipalib/plugins/dns.py:500
-msgid "resource name"
-msgstr "назва ресурсу"
+#: ipalib/plugins/dns.py:366
+msgid "Is zone active?"
+msgstr ""
-#: ipalib/plugins/dns.py:505 ipalib/plugins/dns.py:620
-#: ipalib/plugins/dns.py:711
-msgid "Record type"
-msgstr "Тип запису"
+#: ipalib/plugins/dns.py:372
+#, fuzzy
+msgid "Dynamic update"
+msgstr "дозволити динамічне оновлення?"
-#: ipalib/plugins/dns.py:509 ipalib/plugins/dns.py:624
-msgid "Data"
-msgstr "Дані"
+#: ipalib/plugins/dns.py:373
+#, fuzzy
+msgid "Allow dynamic updates."
+msgstr "дозволити динамічне оновлення?"
+
+#: ipalib/plugins/dns.py:382
+msgid ""
+"\n"
+" Create new DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
+#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+msgid "Force"
+msgstr ""
+
+#: ipalib/plugins/dns.py:388
+#, fuzzy
+msgid "Force DNS zone creation even if nameserver not in DNS."
+msgstr "примусове значення назви вузла, навіть якщо назви немає у DNS"
-#: ipalib/plugins/dns.py:510 ipalib/plugins/dns.py:625
-msgid "Type-specific data"
-msgstr "Специфічні для типу дані"
+#: ipalib/plugins/dns.py:391
+msgid "Add the nameserver to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:397
+msgid "DNS is not configured"
+msgstr ""
+
+#: ipalib/plugins/dns.py:431
+msgid ""
+"\n"
+" Delete DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"\n"
+" Modify DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:452
+msgid ""
+"\n"
+" Search for DNS zones (SOA records).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:460
+msgid ""
+"\n"
+" Display information about a DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+msgid ""
+"\n"
+" Disable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:472
+#, fuzzy
+msgid "Disabled DNS zone \"%(value)s\""
+msgstr "Вимкнено обліковий запис користувача «%(value)s»"
+
+#: ipalib/plugins/dns.py:490
+msgid ""
+"\n"
+" Enable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:494
+#, fuzzy
+msgid "Enabled DNS zone \"%(value)s\""
+msgstr "Увімкнено обліковий запис користувача «%(value)s»"
+
+#: ipalib/plugins/dns.py:512
+msgid ""
+"\n"
+" DNS record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:522
+#, fuzzy
+msgid "DNS resource record"
+msgstr "назва ресурсу"
+
+#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
+#, fuzzy
+msgid "Record name"
+msgstr "Назва ресурсу"
-#: ipalib/plugins/dns.py:517
+#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
msgid "Time to live"
msgstr "Строк дії"
-#: ipalib/plugins/dns.py:522
+#: ipalib/plugins/dns.py:538
msgid "Class"
msgstr "Клас"
-#: ipalib/plugins/dns.py:615 ipalib/plugins/dns.py:707
-#: ipalib/plugins/dns.py:824
-msgid "Resource name"
-msgstr "Назва ресурсу"
+#: ipalib/plugins/dns.py:539
+#, fuzzy
+msgid "DNS class"
+msgstr "Клас SOA"
-#: ipalib/plugins/dns.py:700
-msgid "Search criteria"
-msgstr "Критерій пошуку"
+#: ipalib/plugins/dns.py:566
+msgid ""
+"\n"
+" Base class for DNS record commands with record options.\n"
+" "
+msgstr ""
-#: ipalib/plugins/dns.py:715
-msgid "type-specific data"
-msgstr "специфічні для типу дані"
+#: ipalib/plugins/dns.py:610
+msgid ""
+"\n"
+" Base class for adding/removing records from DNS resource entries.\n"
+" "
+msgstr ""
-#: ipalib/plugins/dns.py:865
-#, python-format
+#: ipalib/plugins/dns.py:674
+msgid ""
+"\n"
+" Add records to DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:690
+msgid ""
+"\n"
+" Add new DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:699
+#, fuzzy
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr "примусове значення назви вузла, навіть якщо назви немає у DNS"
+
+#: ipalib/plugins/dns.py:735
+msgid ""
+"Reverse zone for PTR record should be a sub-zone of one the following fully "
+"qualified domains: %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:740
+msgid "Reverse zone %s requires exactly %d IP address components, %d given"
+msgstr ""
+
+#: ipalib/plugins/dns.py:746
+msgid "PTR record '%s' is not fully qualified (check traling '.')"
+msgstr ""
+
+#: ipalib/plugins/dns.py:789
+msgid ""
+"\n"
+" Delete DNS record entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:792
+#, fuzzy
+msgid "Deleted record \"%(value)s\""
+msgstr "Вилучено користувача «%(value)s»"
+
+#: ipalib/plugins/dns.py:799
+msgid ""
+"\n"
+" Delete DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:802
+msgid ""
+"Neither --del-all nor options to delete a specific record provided.\n"
+"Command help may be consulted for all supported record types."
+msgstr ""
+
+#: ipalib/plugins/dns.py:807
+msgid "Delete all associated records"
+msgstr ""
+
+#: ipalib/plugins/dns.py:834
+msgid "No option to delete specific record provided."
+msgstr ""
+
+#: ipalib/plugins/dns.py:835
+#, fuzzy
+msgid "Delete all?"
+msgstr "Вилучити"
+
+#: ipalib/plugins/dns.py:845
+msgid "Current DNS record contents:\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:875
+#, fuzzy
+msgid "%s record with value %s not found"
+msgstr "Не знайдено ACI з назвою «%s»"
+
+#: ipalib/plugins/dns.py:889
+msgid ""
+"\n"
+" Display DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:905
+msgid ""
+"\n"
+" Search for DNS resources.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:932
+msgid ""
+"\n"
+" Resolve a host name in DNS\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:936
msgid "Found '%(value)s'"
msgstr "Знайдено «%(value)s»"
-#: ipalib/plugins/dns.py:869
+#: ipalib/plugins/dns.py:940
msgid "Hostname"
msgstr "Назва вузла"
-#: ipalib/plugins/dns.py:882
-#, python-format
+#: ipalib/plugins/dns.py:962
msgid "Host '%(host)s' not found"
msgstr "Вузла «%(host)s» не знайдено"
-#: ipalib/plugins/group.py:94
+#: ipalib/plugins/dns.py:970
+msgid ""
+"\n"
+" Checks if any of the servers has the DNS service enabled.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:19
+msgid ""
+"\n"
+"Entitlements\n"
+"\n"
+"Manage entitlements for client machines\n"
+"\n"
+"Entitlements can be managed either by registering with an entitlement\n"
+"server with a username and password or by manually importing entitlement\n"
+"certificates. An entitlement certificate contains embedded information\n"
+"such as the product being entitled, the quantity and the validity dates.\n"
+"\n"
+"An entitlement server manages the number of client entitlements available.\n"
+"To mark these entitlements as used by the IPA server you provide a quantity\n"
+"and they are marked as consumed on the entitlement server.\n"
+"\n"
+" Register with an entitlement server:\n"
+" ipa entitle-register consumer\n"
+"\n"
+" Import an entitlement certificate:\n"
+" ipa entitle-import /home/user/ipaclient.pem\n"
+"\n"
+" Display current entitlements:\n"
+" ipa entitle-status\n"
+"\n"
+" Retrieve details on entitlement certificates:\n"
+" ipa entitle-get\n"
+"\n"
+" Consume some entitlements from the entitlement server:\n"
+" ipa entitle-consume 50\n"
+"\n"
+"The registration ID is a Unique Identifier (UUID). This ID will be\n"
+"IMPORTED if you have used entitle-import.\n"
+"\n"
+"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:106
+msgid ""
+"\n"
+" Get our entitlement pool. Assume there is only one pool.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:129
+msgid ""
+"\n"
+" Retrieve our UUID, certificate and key from LDAP.\n"
+"\n"
+" Except on error the caller is responsible for removing temporary files\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:178
+msgid ""
+"\n"
+" Entitlement object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:189
+msgid "Entitlements"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:206
+msgid ""
+"\n"
+" Display current entitlements\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+msgid "UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
+#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
+#: ipalib/plugins/entitle.py:690
+msgid "Product"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
+#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
+#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+msgid "Quantity"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
+#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+msgid "Consumed"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:276
+msgid ""
+"\n"
+" Consume an entitlement\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:282
+msgid "Consumed %(value)s entitlement(s)."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:314
+msgid ""
+"\n"
+" Override this so we can set value to the number of entitlements\n"
+" consumed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
+msgid ""
+"\n"
+" Returning the certificates isn't very interesting. Return the\n"
+" status of entitlements instead.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:380
+msgid ""
+"\n"
+" Retrieve the entitlement certs\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:394
+msgid "Start"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:397
+#, fuzzy
+msgid "End"
+msgstr "Увімкнено"
+
+#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
+#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#, fuzzy
+msgid "Serial Number"
+msgstr "Серійний номер"
+
+#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
+#: ipalib/plugins/entitle.py:628
+msgid "Not an entitlement certificate"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:460
+msgid ""
+"\n"
+" Search for entitlement accounts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:473
+msgid ""
+"\n"
+" Register to the entitlement system\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:479
+msgid "Registered to entitlement server."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:483
+#, fuzzy
+msgid "Username"
+msgstr "Ім'я користувача"
+
+#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
+msgid "Enrollment UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
+#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
+msgid "Password"
+msgstr "Пароль"
+
+#: ipalib/plugins/entitle.py:495
+#, fuzzy
+msgid "Registration password"
+msgstr "Пароль користувача"
+
+#: ipalib/plugins/entitle.py:569
+msgid ""
+"\n"
+" Import an entitlement certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:646
+msgid ""
+"\n"
+" If we are adding the first entry there are no updates so "
+"EmptyModlist\n"
+" will get thrown. Ignore it.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:667
+msgid ""
+"\n"
+" Re-sync the local entitlement cache with the entitlement server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:673
+msgid "Entitlement(s) synchronized."
+msgstr ""
+
+#: ipalib/plugins/group.py:20
+msgid ""
+"\n"
+"Groups of users\n"
+"\n"
+"Manage groups of users. By default, new groups are POSIX groups. You\n"
+"can add the --nonposix option to the group-add command to mark a new group\n"
+"as non-POSIX, and you can use the same argument to the group-mod command\n"
+"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"converted to non-POSIX groups.\n"
+"\n"
+"Every group must have a description.\n"
+"\n"
+"POSIX groups must have a Group ID (GID) number. Changing a GID is\n"
+"supported but can have an impact on your file permissions. It is not "
+"necessary\n"
+"to supply a GID when creating a group. IPA will generate one automatically\n"
+"if it is not provided.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new group:\n"
+" ipa group-add --desc='local administrators' localadmins\n"
+"\n"
+" Add a new non-POSIX group:\n"
+" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n"
+"\n"
+" Convert a non-POSIX group to posix:\n"
+" ipa group-mod --posix remoteadmins\n"
+"\n"
+" Add a new POSIX group with a specific Group ID number:\n"
+" ipa group-add --gid=500 --desc='unix admins' unixadmins\n"
+"\n"
+" Add a new POSIX group and let IPA assign a Group ID number:\n"
+" ipa group-add --desc='printer admins' printeradmins\n"
+"\n"
+" Remove a group:\n"
+" ipa group-del unixadmins\n"
+"\n"
+" To add the \"remoteadmins\" group to the \"localadmins\" group:\n"
+" ipa group-add-member --groups=remoteadmins localadmins\n"
+"\n"
+" Add a list of users to the \"localadmins\" group:\n"
+" ipa group-add-member --users=test1,test2 localadmins\n"
+"\n"
+" Remove a user from the \"localadmins\" group:\n"
+" ipa group-remove-member --users=test2 localadmins\n"
+"\n"
+" Display information about a named group.\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/group.py:76
+msgid ""
+"\n"
+" Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:100
msgid "User Groups"
msgstr "Групи користувачів"
-#: ipalib/plugins/group.py:102
+#: ipalib/plugins/group.py:108
msgid "Group name"
msgstr "Назва групи"
-#: ipalib/plugins/group.py:109 ipalib/plugins/sudocmdgroup.py:78
+#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
msgid "Group description"
msgstr "Опис групи"
-#: ipalib/plugins/group.py:113
+#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
msgid "GID"
msgstr "GID"
-#: ipalib/plugins/group.py:114
+#: ipalib/plugins/group.py:120
msgid "GID (use this option to set it manually)"
msgstr "GID (за допомогою цього параметра можна встановити значення вручну)"
-#: ipalib/plugins/group.py:117 ipalib/plugins/rolegroup.py:94
-#: ipalib/plugins/taskgroup.py:66
-msgid "Member groups"
-msgstr "Групи-учасники"
-
-#: ipalib/plugins/group.py:121 ipalib/plugins/rolegroup.py:98
-#: ipalib/plugins/taskgroup.py:70
-msgid "Member users"
-msgstr "Користувачі-учасники"
+#: ipalib/plugins/group.py:128
+msgid ""
+"\n"
+" Create a new group.\n"
+" "
+msgstr ""
-#: ipalib/plugins/group.py:134
-#, python-format
+#: ipalib/plugins/group.py:132
msgid "Added group \"%(value)s\""
msgstr "Додано групу «%(value)s»"
-#: ipalib/plugins/group.py:139
-msgid "Create as a non-POSIX group?"
+#: ipalib/plugins/group.py:137
+#, fuzzy
+msgid "Create as a non-POSIX group"
msgstr "Створити як групу, що не відповідає POSIX?"
-#: ipalib/plugins/group.py:160
-#, python-format
+#: ipalib/plugins/group.py:154
+msgid ""
+"\n"
+" Delete group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:158
msgid "Deleted group \"%(value)s\""
msgstr "Вилучено групу «%(value)s»"
-#: ipalib/plugins/group.py:191
-#, python-format
+#: ipalib/plugins/group.py:186
+msgid ""
+"\n"
+" Modify a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:189
msgid "Modified group \"%(value)s\""
msgstr "Змінено групу «%(value)s»"
-#: ipalib/plugins/group.py:196
+#: ipalib/plugins/group.py:194
msgid "change to a POSIX group"
msgstr "змінити на групу POSIX"
-#: ipalib/plugins/group.py:222 ipalib/plugins/hbacsvcgroup.py:129
-#, python-format
+#: ipalib/plugins/group.py:215
+msgid ""
+"\n"
+" Search for groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:220
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] "встановлено відповідність %(count)d групи"
@@ -1045,258 +2722,845 @@ msgstr[1] "встановлено відповідність %(count)d груп"
msgstr[2] "встановлено відповідність %(count)d груп"
msgstr[3] "встановлено відповідність %(count)d групи"
+#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+msgid "search for private groups"
+msgstr ""
+
#: ipalib/plugins/group.py:257
-#, python-format
+msgid ""
+"\n"
+" Display information about a named group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:265
+#, fuzzy
+msgid ""
+"\n"
+" Add members to a group.\n"
+" "
+msgstr "Учасник групи"
+
+#: ipalib/plugins/group.py:273
+msgid ""
+"\n"
+" Remove members from a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:281
+msgid ""
+"\n"
+" Detach a managed group from a user\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:285
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr "Від’єднати групу «%(value)s» від користувача «%(value)s»"
-#: ipalib/plugins/group.py:273
+#: ipalib/plugins/group.py:288
+msgid ""
+"\n"
+" This requires updating both the user and the group. We first need "
+"to\n"
+" verify that both the user and group can be updated, then we go\n"
+" about our work. We don't want a situation where only the user or\n"
+" group can be modified and we're left in a bad state.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:306
msgid "not allowed to modify user entries"
msgstr "заборонено змінювати записи користувачів"
-#: ipalib/plugins/group.py:277
+#: ipalib/plugins/group.py:312
msgid "not allowed to modify group entries"
msgstr "заборонено змінювати записи груп"
-#: ipalib/plugins/group.py:284 ipalib/plugins/group.py:295
+#: ipalib/plugins/group.py:331
msgid "Not a managed group"
msgstr "Не є керованою групою"
-#: ipalib/plugins/hbac.py:106
-msgid "HBAC"
+#: ipalib/plugins/hbacrule.py:19
+msgid ""
+"\n"
+"Host-based access control\n"
+"\n"
+"Control who can access what services on what hosts and from where. You\n"
+"can use HBAC to control which users or groups on a source host can\n"
+"access a service, or group of services, on a target host.\n"
+"\n"
+"You can also specify a category of users, target hosts, and source\n"
+"hosts. This is currently limited to \"all\", but might be expanded in the\n"
+"future.\n"
+"\n"
+"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n"
+"\n"
+"The available services and groups of services are controlled by the\n"
+"hbacsvc and hbacsvcgroup plug-ins respectively.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a rule, \"test1\", that grants all users access to the host \"server"
+"\" from\n"
+" anywhere:\n"
+" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add-host --hosts=server.example.com test1\n"
+"\n"
+" Display the properties of a named HBAC rule:\n"
+" ipa hbacrule-show test1\n"
+"\n"
+" Create a rule for a specific service. This lets the user john access\n"
+" the sshd service on any machine from any machine:\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add-user --users=john john_sshd\n"
+" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
+"\n"
+" Create a rule for a new service group. This lets the user john access\n"
+" the FTP service on any machine from any machine:\n"
+" ipa hbacsvcgroup-add ftpers\n"
+" ipa hbacsvc-add sftp\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add-user --users=john john_ftp\n"
+" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
+"\n"
+" Disable a named HBAC rule:\n"
+" ipa hbacrule-disable test1\n"
+"\n"
+" Remove a named HBAC rule:\n"
+" ipa hbacrule-del allow_server\n"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:91
+msgid ""
+"\n"
+" See if options[attribute] is lower-case 'all' in a safe way.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:103
+msgid ""
+"\n"
+" HBAC object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:126
+#, fuzzy
+msgid "HBAC Rule"
msgstr "HBAC"
-#: ipalib/plugins/hbac.py:111 ipalib/plugins/sudorule.py:53
+#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
msgid "Rule name"
msgstr "Назва правила"
-#: ipalib/plugins/hbac.py:116
+#: ipalib/plugins/hbacrule.py:136
msgid "Rule type (allow or deny)"
msgstr "Тип правила (дозволити (allow) чи заборонити (deny))"
-#: ipalib/plugins/hbac.py:117
+#: ipalib/plugins/hbacrule.py:137
msgid "Rule type"
msgstr "Тип правила"
-#: ipalib/plugins/hbac.py:123
+#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
+#: ipalib/plugins/sudorule.py:86
msgid "User category"
msgstr "Категорія користувачів"
-#: ipalib/plugins/hbac.py:124
+#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
+#: ipalib/plugins/sudorule.py:87
msgid "User category the rule applies to"
msgstr "Категорія користувачів, до якої застосовується правило"
-#: ipalib/plugins/hbac.py:129
+#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
+#: ipalib/plugins/sudorule.py:92
msgid "Host category"
msgstr "Категорія вузлів"
-#: ipalib/plugins/hbac.py:130
+#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
+#: ipalib/plugins/sudorule.py:93
msgid "Host category the rule applies to"
msgstr "Категорія вузлів, до якої застосовується правило"
-#: ipalib/plugins/hbac.py:135
+#: ipalib/plugins/hbacrule.py:155
msgid "Source host category"
msgstr "Категорія вузлів вихідних даних"
-#: ipalib/plugins/hbac.py:136
+#: ipalib/plugins/hbacrule.py:156
msgid "Source host category the rule applies to"
msgstr "Категорія вузлів вихідних даних, до якої застосовується правило"
-#: ipalib/plugins/hbac.py:141
+#: ipalib/plugins/hbacrule.py:161
msgid "Service category"
msgstr "Категорія служб"
-#: ipalib/plugins/hbac.py:142
+#: ipalib/plugins/hbacrule.py:162
msgid "Service category the rule applies to"
msgstr "Категорія служб, до якої застосовується правило"
-#: ipalib/plugins/hbac.py:147 ipalib/plugins/hbac.py:325
-#: ipalib/plugins/hbac.py:363
-msgid "Access time"
-msgstr "Час доступу"
-
-#: ipalib/plugins/hbac.py:154
+#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
msgid "Enabled"
msgstr "Увімкнено"
-#: ipalib/plugins/hbac.py:158 ipalib/plugins/sudorule.py:61
-#: ipalib/plugins/user.py:76
+#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
+#: ipalib/plugins/user.py:108
msgid "Users"
msgstr "Користувачі"
-#: ipalib/plugins/hbac.py:162 ipalib/plugins/host.py:113
-#: ipalib/plugins/sudorule.py:65
+#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
+#: ipalib/plugins/sudorule.py:119
+msgid "Groups"
+msgstr "Групи"
+
+#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
+#: ipalib/plugins/sudorule.py:123
msgid "Hosts"
msgstr "Вузли"
-#: ipalib/plugins/hbac.py:166 ipalib/plugins/hostgroup.py:69
-#: ipalib/plugins/sudorule.py:69
+#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
+#: ipalib/plugins/sudorule.py:127
msgid "Host Groups"
msgstr "Групи вузлів"
-#: ipalib/plugins/hbac.py:170
+#: ipalib/plugins/hbacrule.py:194
msgid "Source hosts"
msgstr "Вузли вихідних даних"
-#: ipalib/plugins/hbac.py:174 ipalib/plugins/hbacsvc.py:60
-#: ipalib/plugins/service.py:192
+#: ipalib/plugins/hbacrule.py:198
+#, fuzzy
+msgid "Source host groups"
+msgstr "Вузли вихідних даних"
+
+#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
+#: ipalib/plugins/service.py:220
msgid "Services"
msgstr "Служби"
-#: ipalib/plugins/hbac.py:178
+#: ipalib/plugins/hbacrule.py:206
msgid "Service Groups"
msgstr "Групи служб"
-#: ipalib/plugins/hbacsvc.py:65
+#: ipalib/plugins/hbacrule.py:215
+msgid ""
+"\n"
+" Create a new HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:219
+#, fuzzy
+msgid "Added HBAC rule \"%(value)s\""
+msgstr "Додано правило sudo «%(value)s»"
+
+#: ipalib/plugins/hbacrule.py:230
+msgid ""
+"\n"
+" Delete an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:234
+#, fuzzy
+msgid "Deleted HBAC rule \"%(value)s\""
+msgstr "Вилучено ACI «%(value)s»"
+
+#: ipalib/plugins/hbacrule.py:240
+msgid ""
+"\n"
+" Modify an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:244
+#, fuzzy
+msgid "Modified HBAC rule \"%(value)s\""
+msgstr "Змінено ACI «%(value)s»"
+
+#: ipalib/plugins/hbacrule.py:266
+msgid ""
+"\n"
+" Search for HBAC rules.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:270
+#, fuzzy
+msgid "%(count)d HBAC rule matched"
+msgid_plural "%(count)d HBAC rules matched"
+msgstr[0] "встановлено відповідність %(count)d ACI"
+msgstr[1] "встановлено відповідність %(count)d ACI"
+msgstr[2] "встановлено відповідність %(count)d ACI"
+msgstr[3] "встановлено відповідність %(count)d ACI"
+
+#: ipalib/plugins/hbacrule.py:278
+msgid ""
+"\n"
+" Display the properties of an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:286
+msgid ""
+"\n"
+" Enable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:290
+#, fuzzy
+msgid "Enabled HBAC rule \"%(value)s\""
+msgstr "Увімкнено обліковий запис користувача «%(value)s»"
+
+#: ipalib/plugins/hbacrule.py:315
+msgid ""
+"\n"
+" Disable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:319
+#, fuzzy
+msgid "Disabled HBAC rule \"%(value)s\""
+msgstr "Вимкнено обліковий запис користувача «%(value)s»"
+
+#: ipalib/plugins/hbacrule.py:344
+msgid ""
+"\n"
+" Add an access time to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+msgid "Access time"
+msgstr "Час доступу"
+
+#: ipalib/plugins/hbacrule.py:385
+msgid ""
+"\n"
+" Remove access time to HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:425
+msgid ""
+"\n"
+" Add users and groups to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:442
+msgid ""
+"\n"
+" Remove users and groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:452
+msgid ""
+"\n"
+" Add target hosts and hostgroups to an HBAC rule\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:469
+msgid ""
+"\n"
+" Remove target hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:479
+msgid ""
+"\n"
+" Add source hosts and hostgroups from a HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:496
+msgid ""
+"\n"
+" Remove source hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:506
+msgid ""
+"\n"
+" Add services to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:523
+msgid ""
+"\n"
+" Remove service and service groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:19
+msgid ""
+"\n"
+"HBAC Services\n"
+"\n"
+"The PAM services that HBAC can control access to. The name used here\n"
+"must match the service name that PAM is evaluating.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service:\n"
+" ipa hbacsvc-add tftp\n"
+"\n"
+" Modify an existing HBAC service:\n"
+" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n"
+"\n"
+" Search for HBAC services. This example will return two results, the FTP\n"
+" service and the newly-added tftp service:\n"
+" ipa hbacsvc-find ftp\n"
+"\n"
+" Delete an HBAC service:\n"
+" ipa hbacsvc-del tftp\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:51
+msgid ""
+"\n"
+" HBAC Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:61
+#, fuzzy
+msgid "HBAC Services"
+msgstr "Служба HBAC"
+
+#: ipalib/plugins/hbacsvc.py:66
msgid "Service name"
msgstr "Назва служби"
-#: ipalib/plugins/hbacsvc.py:66
-msgid "HBAC Service"
+#: ipalib/plugins/hbacsvc.py:67
+#, fuzzy
+msgid "HBAC service"
msgstr "Служба HBAC"
-#: ipalib/plugins/hbacsvc.py:73
-msgid "Description of service"
-msgstr "Опис служби"
+#: ipalib/plugins/hbacsvc.py:74
+#, fuzzy
+msgid "HBAC service description"
+msgstr "Опис групи служб HBAC"
+
+#: ipalib/plugins/hbacsvc.py:82
+msgid ""
+"\n"
+" Add a new HBAC service.\n"
+" "
+msgstr ""
-#: ipalib/plugins/hbacsvc.py:84 ipalib/plugins/service.py:216
-#, python-format
-msgid "Added service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:85
+#, fuzzy
+msgid "Added HBAC service \"%(value)s\""
msgstr "Додано службу «%(value)s»"
-#: ipalib/plugins/hbacsvc.py:93 ipalib/plugins/service.py:255
-#, python-format
-msgid "Deleted service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:91
+msgid ""
+"\n"
+" Delete an existing HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:94
+#, fuzzy
+msgid "Deleted HBAC service \"%(value)s\""
msgstr "Вилучено службу «%(value)s»"
-#: ipalib/plugins/hbacsvcgroup.py:66
-msgid "HBAC Service Groups"
+#: ipalib/plugins/hbacsvc.py:100
+msgid ""
+"\n"
+" Modify an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:104
+#, fuzzy
+msgid "Modified HBAC service \"%(value)s\""
+msgstr "Змінено службу «%(value)s»"
+
+#: ipalib/plugins/hbacsvc.py:110
+msgid ""
+"\n"
+" Search for HBAC services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:114
+#, fuzzy
+msgid "%(count)d HBAC service matched"
+msgid_plural "%(count)d HBAC services matched"
+msgstr[0] "встановлено відповідність %(count)d служби"
+msgstr[1] "встановлено відповідність %(count)d служб"
+msgstr[2] "встановлено відповідність %(count)d служб"
+msgstr[3] "встановлено відповідність %(count)d служби"
+
+#: ipalib/plugins/hbacsvc.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:19
+msgid ""
+"\n"
+"HBAC Service Groups\n"
+"\n"
+"HBAC service groups can contain any number of individual services,\n"
+"or \"members\". Every group must have a description.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service group:\n"
+" ipa hbacsvcgroup-add --desc=\"login services\" login\n"
+"\n"
+" Add members to an HBAC service group:\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n"
+"\n"
+" Display information about a named group:\n"
+" ipa hbacsvcgroup-show login\n"
+"\n"
+" Add a new group to the \"login\" group:\n"
+" ipa hbacsvcgroup-add --desc=\"switch users\" login\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n"
+"\n"
+" Delete an HBAC service group:\n"
+" ipa hbacsvcgroup-del login\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:51
+#, fuzzy
+msgid ""
+"\n"
+" HBAC service group object.\n"
+" "
+msgstr "Опис групи служб HBAC"
+
+#: ipalib/plugins/hbacsvcgroup.py:64
+#, fuzzy
+msgid "HBAC service Groups"
msgstr "Група служб HBAC"
-#: ipalib/plugins/hbacsvcgroup.py:71
+#: ipalib/plugins/hbacsvcgroup.py:69
msgid "Service group name"
msgstr "Назва групи служб"
-#: ipalib/plugins/hbacsvcgroup.py:78
+#: ipalib/plugins/hbacsvcgroup.py:76
msgid "HBAC service group description"
msgstr "Опис групи служб HBAC"
-#: ipalib/plugins/hbacsvcgroup.py:81
-msgid "Member services"
-msgstr "Служби учасників"
-
-#: ipalib/plugins/hbacsvcgroup.py:85
-msgid "Member service groups"
-msgstr "Групи служб учасників"
+#: ipalib/plugins/hbacsvcgroup.py:84
+#, fuzzy
+msgid ""
+"\n"
+" Add a new HBAC service group.\n"
+" "
+msgstr "Додано групу служб HBAC «%(value)s»"
-#: ipalib/plugins/hbacsvcgroup.py:101
-#, python-format
-msgid "Added HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:87
+#, fuzzy
+msgid "Added HBAC service group \"%(value)s\""
msgstr "Додано групу служб HBAC «%(value)s»"
-#: ipalib/plugins/hbacsvcgroup.py:110
-#, python-format
-msgid "Deleted HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:93
+#, fuzzy
+msgid ""
+"\n"
+" Delete an HBAC service group.\n"
+" "
msgstr "Вилучено групу служб HBAC «%(value)s»"
-#: ipalib/plugins/hbacsvcgroup.py:119
-#, python-format
-msgid "Modified HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:96
+#, fuzzy
+msgid "Deleted HBAC service group \"%(value)s\""
+msgstr "Вилучено групу служб HBAC «%(value)s»"
+
+#: ipalib/plugins/hbacsvcgroup.py:102
+#, fuzzy
+msgid ""
+"\n"
+" Modify an HBAC service group.\n"
+" "
+msgstr "Змінено групу служб HBAC «%(value)s»"
+
+#: ipalib/plugins/hbacsvcgroup.py:105
+#, fuzzy
+msgid "Modified HBAC service group \"%(value)s\""
msgstr "Змінено групу служб HBAC «%(value)s»"
-#: ipalib/plugins/host.py:86
+#: ipalib/plugins/hbacsvcgroup.py:111
+msgid ""
+"\n"
+" Search for an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:114
+#, fuzzy
+msgid "%(count)d HBAC service group matched"
+msgid_plural "%(count)d HBAC service groups matched"
+msgstr[0] "встановлено відповідність %(count)d служби"
+msgstr[1] "встановлено відповідність %(count)d служб"
+msgstr[2] "встановлено відповідність %(count)d служб"
+msgstr[3] "встановлено відповідність %(count)d служби"
+
+#: ipalib/plugins/hbacsvcgroup.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:130
+msgid ""
+"\n"
+" Add members to an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:138
+msgid ""
+"\n"
+" Remove members from an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:20
+msgid ""
+"\n"
+"Hosts/Machines\n"
+"\n"
+"A host represents a machine. It can be used in a number of contexts:\n"
+"- service entries are associated with a host\n"
+"- a host stores the host/ service principal\n"
+"- a host can be used in Host-based Access Control (HBAC) rules\n"
+"- every enrolled client generates a host entry\n"
+"\n"
+"ENROLLMENT:\n"
+"\n"
+"There are three enrollment scenarios when enrolling a new client:\n"
+"\n"
+"1. You are enrolling as a full administrator. The host entry may exist\n"
+" or not. A full administrator is a member of the hostadmin role\n"
+" or the admins group.\n"
+"2. You are enrolling as a limited administrator. The host must already\n"
+" exist. A limited administrator is a member a role with the\n"
+" Host Enrollment privilege.\n"
+"3. The host has been created with a one-time password.\n"
+"\n"
+"A host can only be enrolled once. If a client has enrolled and needs to\n"
+"be re-enrolled, the host entry must be removed and re-created. Note that\n"
+"re-creating the host entry will result in all services for the host being\n"
+"removed, and all SSL certificates associated with those services being\n"
+"revoked.\n"
+"\n"
+"A host can optionally store information such as where it is located,\n"
+"the OS that it runs, etc.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host:\n"
+" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example."
+"com\n"
+"\n"
+" Delete a host:\n"
+" ipa host-del test.example.com\n"
+"\n"
+" Add a new host with a one-time password:\n"
+" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n"
+"\n"
+" Add a new host with a random one-time password:\n"
+" ipa host-add --os='Fedora 12' --random test.example.com\n"
+"\n"
+" Modify information about a host:\n"
+" ipa host-mod --os='Fedora 12' test.example.com\n"
+"\n"
+" Disable the host Kerberos key, SSL certificate and all of its services:\n"
+" ipa host-disable test.example.com\n"
+"\n"
+" Add a host that can manage this host's keytab and certificate:\n"
+" ipa host-add-managedby --hosts=test2 test\n"
+msgstr ""
+
+#: ipalib/plugins/host.py:97
+msgid ""
+"\n"
+" Require at least one dot in the hostname (to support localhost."
+"localdomain)\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr "Слід вказати назву вузла повністю"
-#: ipalib/plugins/host.py:118
+#: ipalib/plugins/host.py:129
+msgid "DNS reverse zone for IP address %(addr)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+msgid "Keytab"
+msgstr "Таблиця ключів"
+
+#: ipalib/plugins/host.py:185
+msgid ""
+"\n"
+" Verify that we have either an IPv4 or IPv6 address.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:189
+#, fuzzy
+msgid "invalid IP address"
+msgstr "Адреса ел. пошти"
+
+#: ipalib/plugins/host.py:194
+msgid ""
+"\n"
+" Host object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:231
msgid "Host name"
msgstr "Назва вузла"
-#: ipalib/plugins/host.py:125
+#: ipalib/plugins/host.py:238
msgid "A description of this host"
msgstr "Опис цього вузла"
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:242
msgid "Locality"
msgstr "Адреса"
-#: ipalib/plugins/host.py:130
+#: ipalib/plugins/host.py:243
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr "Адреса розташування вузла (наприклад, «Київ, Україна»)"
-#: ipalib/plugins/host.py:135
+#: ipalib/plugins/host.py:248
msgid "Host location (e.g. \"Lab 2\")"
msgstr "Розташування вузла (наприклад, «Lab 2»)"
-#: ipalib/plugins/host.py:139
+#: ipalib/plugins/host.py:252
msgid "Platform"
msgstr "Платформа"
-#: ipalib/plugins/host.py:140
+#: ipalib/plugins/host.py:253
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr "Апаратна платформа вузла (наприклад, «Lenovo T61»)"
-#: ipalib/plugins/host.py:144
+#: ipalib/plugins/host.py:257
msgid "Operating system"
msgstr "Операційна система"
-#: ipalib/plugins/host.py:145
+#: ipalib/plugins/host.py:258
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr "Операційна система вузла і її версія (наприклад, «Fedora 9\")"
-#: ipalib/plugins/host.py:149
+#: ipalib/plugins/host.py:262
msgid "User password"
msgstr "Пароль користувача"
-#: ipalib/plugins/host.py:150
+#: ipalib/plugins/host.py:263
msgid "Password used in bulk enrollment"
msgstr "Пароль для загального керування реєстраційними записами"
-#: ipalib/plugins/host.py:155 ipalib/plugins/service.py:205
+#: ipalib/plugins/host.py:266
+#, fuzzy
+msgid "Generate a random password to be used in bulk enrollment"
+msgstr "Пароль для загального керування реєстраційними записами"
+
+#: ipalib/plugins/host.py:271
+#, fuzzy
+msgid "Random password"
+msgstr "пароль прив’язки"
+
+#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
msgid "Base-64 encoded server certificate"
msgstr "Сертифікат сервера у кодуванні Base-64"
-#: ipalib/plugins/host.py:158 ipalib/plugins/host.py:274
+#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
msgid "Principal name"
msgstr "Назва реєстраційного запису"
-#: ipalib/plugins/host.py:162 ipalib/plugins/hostgroup.py:93
-msgid "Member of host-groups"
-msgstr "Учасник групи вузлів"
-
-#: ipalib/plugins/host.py:166
-msgid "Member of net-groups"
-msgstr "Учасник мережевої групи"
-
-#: ipalib/plugins/host.py:170
-msgid "Member of role-groups"
-msgstr "Учасник групи ролей"
+#: ipalib/plugins/host.py:306
+msgid ""
+"\n"
+" Add a new host.\n"
+" "
+msgstr ""
-#: ipalib/plugins/host.py:199
-#, python-format
+#: ipalib/plugins/host.py:311
msgid "Added host \"%(value)s\""
msgstr "Додано вузол «%(value)s»"
-#: ipalib/plugins/host.py:202
+#: ipalib/plugins/host.py:316
msgid "force host name even if not in DNS"
msgstr "примусове значення назви вузла, навіть якщо назви немає у DNS"
-#: ipalib/plugins/host.py:235
-#, python-format
+#: ipalib/plugins/host.py:319
+msgid "skip reverse DNS detection"
+msgstr ""
+
+#: ipalib/plugins/host.py:322
+msgid "Add the host to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+#, fuzzy
+msgid "DNS zone %(zone)s not found"
+msgstr "%(pkey)s: не знайдено %(oname)s"
+
+#: ipalib/plugins/host.py:413
+msgid "The host was added but the DNS update failed with: %(exc)s"
+msgstr ""
+
+#: ipalib/plugins/host.py:422
+msgid ""
+"\n"
+" Delete a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:426
msgid "Deleted host \"%(value)s\""
msgstr "Вилучено вузол «%(value)s»"
-#: ipalib/plugins/host.py:269
-#, python-format
+#: ipalib/plugins/host.py:431
+msgid "Remove entries from DNS"
+msgstr ""
+
+#: ipalib/plugins/host.py:537
+msgid ""
+"\n"
+" Modify information about a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:542
msgid "Modified host \"%(value)s\""
msgstr "Змінено вузол «%(value)s»"
-#: ipalib/plugins/host.py:275
+#: ipalib/plugins/host.py:549
msgid "Kerberos principal name for this host"
msgstr "Назва реєстраційного запису Kerberos для цього вузла"
-#: ipalib/plugins/host.py:319
-#, python-format
+#: ipalib/plugins/host.py:618
+msgid ""
+"\n"
+" Search for hosts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:623
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] "встановлено відповідність %(count)d вузла"
@@ -1304,56 +3568,141 @@ msgstr[1] "встановлено відповідність %(count)d вузл
msgstr[2] "встановлено відповідність %(count)d вузлів"
msgstr[3] "встановлено відповідність %(count)d вузла"
-#: ipalib/plugins/host.py:337 ipalib/plugins/service.py:84
-msgid "Keytab"
-msgstr "Таблиця ключів"
+#: ipalib/plugins/host.py:643
+msgid ""
+"\n"
+" Display information about a host.\n"
+" "
+msgstr ""
-#: ipalib/plugins/host.py:359 ipalib/plugins/service.py:399
-#, python-format
-msgid "Removed kerberos key from \"%(value)s\""
-msgstr "Вилучено ключ kerberos з «%(value)s»"
+#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#, fuzzy
+msgid "file to store certificate in"
+msgstr "Сертифікат сервера у кодуванні Base-64"
+
+#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+#, fuzzy
+msgid "Certificate stored in file '%(file)s'"
+msgstr "Помилка форматування сертифіката: %(error)s"
+
+#: ipalib/plugins/host.py:684
+msgid ""
+"\n"
+" Disable the Kerberos key, SSL certificate and all services of a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:688
+#, fuzzy
+msgid "Disabled host \"%(value)s\""
+msgstr "Вилучено вузол «%(value)s»"
+
+#: ipalib/plugins/host.py:770
+msgid ""
+"\n"
+" Add hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:781
+msgid ""
+"\n"
+" Remove hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:20
+msgid ""
+"\n"
+"Groups of hosts.\n"
+"\n"
+"Manage groups of hosts. This is useful for applying access control to a\n"
+"number of hosts by using Host-based Access Control.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host group:\n"
+" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n"
+"\n"
+" Add another new host group:\n"
+" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n"
+"\n"
+" Add members to the hostgroup:\n"
+" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n"
+"\n"
+" Add a hostgroup as a member of another hostgroup:\n"
+" ipa hostgroup-add-member --hostgroups=baltimore maryland\n"
+"\n"
+" Remove a host from the hostgroup:\n"
+" ipa hostgroup-remove-member --hosts=box2 baltimore\n"
+"\n"
+" Display a host group:\n"
+" ipa hostgroup-show baltimore\n"
+"\n"
+" Delete a hostgroup:\n"
+" ipa hostgroup-del baltimore\n"
+msgstr ""
-#: ipalib/plugins/host.py:368
-msgid "Host principal has no kerberos key"
-msgstr "У реєстраційного запису вузла немає ключа kerberos"
+#: ipalib/plugins/hostgroup.py:55
+msgid ""
+"\n"
+" Hostgroup object.\n"
+" "
+msgstr ""
-#: ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/hostgroup.py:78
msgid "Host-group"
msgstr "Група вузлів"
-#: ipalib/plugins/hostgroup.py:75
+#: ipalib/plugins/hostgroup.py:79
msgid "Name of host-group"
msgstr "Назва групи вузлів"
-#: ipalib/plugins/hostgroup.py:82
+#: ipalib/plugins/hostgroup.py:86
msgid "A description of this host-group"
msgstr "Опис цієї групи вузлів"
-#: ipalib/plugins/hostgroup.py:85
-msgid "Member hosts"
-msgstr "Вузли-учасники"
-
-#: ipalib/plugins/hostgroup.py:89
-msgid "Member host-groups"
-msgstr "Групи вузлів-учасники"
+#: ipalib/plugins/hostgroup.py:94
+msgid ""
+"\n"
+" Add a new hostgroup.\n"
+" "
+msgstr ""
-#: ipalib/plugins/hostgroup.py:106
-#, python-format
+#: ipalib/plugins/hostgroup.py:98
msgid "Added hostgroup \"%(value)s\""
msgstr "Додано групу вузлів «%(value)s»"
-#: ipalib/plugins/hostgroup.py:116
-#, python-format
+#: ipalib/plugins/hostgroup.py:104
+msgid ""
+"\n"
+" Delete a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:108
msgid "Deleted hostgroup \"%(value)s\""
msgstr "Вилучено групу вузлів «%(value)s»"
-#: ipalib/plugins/hostgroup.py:126
-#, python-format
+#: ipalib/plugins/hostgroup.py:114
+msgid ""
+"\n"
+" Modify a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:118
msgid "Modified hostgroup \"%(value)s\""
msgstr "Змінено групу вузлів «%(value)s»"
-#: ipalib/plugins/hostgroup.py:137
-#, python-format
+#: ipalib/plugins/hostgroup.py:124
+msgid ""
+"\n"
+" Search for hostgroups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:128
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] "встановлено відповідність %(count)d групи вузлів"
@@ -1361,127 +3710,1190 @@ msgstr[1] "встановлено відповідність %(count)d груп
msgstr[2] "встановлено відповідність %(count)d груп вузлів"
msgstr[3] "встановлено відповідність %(count)d групи вузлів"
-#: ipalib/plugins/internal.py:39
+#: ipalib/plugins/hostgroup.py:136
+msgid ""
+"\n"
+" Display information about a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:144
+msgid ""
+"\n"
+" Add members to a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:152
+msgid ""
+"\n"
+" Remove members from a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:22
+msgid ""
+"\n"
+"Plugins not accessible directly through the CLI, commands used internally\n"
+msgstr ""
+
+#: ipalib/plugins/internal.py:36
+msgid ""
+"\n"
+" Export plugin meta-data for the webUI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:44
+msgid "Name of object to export"
+msgstr "Назва об’єкта, який слід експортувати"
+
+#: ipalib/plugins/internal.py:47
+#, fuzzy
+msgid "Name of method to export"
+msgstr "Назва об’єкта, який слід експортувати"
+
+#: ipalib/plugins/internal.py:52
+msgid "Dict of JSON encoded IPA Objects"
+msgstr "Словник закодованих JSON об’єктів IPA"
+
+#: ipalib/plugins/internal.py:53
+#, fuzzy
+msgid "Dict of JSON encoded IPA Methods"
+msgstr "Словник закодованих JSON об’єктів IPA"
+
+#: ipalib/plugins/internal.py:96
msgid "Logged In As"
msgstr "Вхід до системи від імені"
-#: ipalib/plugins/internal.py:41
+#: ipalib/plugins/internal.py:99
+#, fuzzy
+msgid "Attribute"
+msgstr "Атрибути"
+
+#: ipalib/plugins/internal.py:102
+#, fuzzy
+msgid "Add Automount Location"
+msgstr "Адреса автомонтування"
+
+#: ipalib/plugins/internal.py:103
+#, fuzzy
+msgid "Automount Location Settings"
+msgstr "Адреса автомонтування"
+
+#: ipalib/plugins/internal.py:106
+#, fuzzy
+msgid "Add Automount Map"
+msgstr "Карти автоматичного монтування"
+
+#: ipalib/plugins/internal.py:109
+#, fuzzy
+msgid "Add Automount Key"
+msgstr "Ключі автомонтування"
+
+#: ipalib/plugins/internal.py:112
+msgid "Unspecified"
+msgstr ""
+
+#: ipalib/plugins/internal.py:113
+msgid "Key Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:114
+msgid "CA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:115
+msgid "Affiliation Changed"
+msgstr ""
+
+#: ipalib/plugins/internal.py:116
+msgid "Superseded"
+msgstr ""
+
+#: ipalib/plugins/internal.py:117
+#, fuzzy
+msgid "Cessation of Operation"
+msgstr "дія над файлами"
+
+#: ipalib/plugins/internal.py:118
+#, fuzzy
+msgid "Certificate Hold"
+msgstr "Сертифікат"
+
+#: ipalib/plugins/internal.py:119
+msgid "Remove from CRL"
+msgstr ""
+
+#: ipalib/plugins/internal.py:120
+msgid "Privilege Withdrawn"
+msgstr ""
+
+#: ipalib/plugins/internal.py:121
+msgid "AA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:122
+msgid ""
+"To confirm your intention to revoke this certificate, select a reason from "
+"the pull-down list, and click the \"Revoke\" button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:124
+msgid "Note"
+msgstr ""
+
+#: ipalib/plugins/internal.py:125
+msgid "Reason for Revocation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:126
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\" "
+"button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:128
+#, fuzzy
+msgid "Issued To"
+msgstr "Видавець"
+
+#: ipalib/plugins/internal.py:129
+#, fuzzy
+msgid "Common Name"
+msgstr "Назва вузла"
+
+#: ipalib/plugins/internal.py:130
+msgid "Organization"
+msgstr ""
+
+#: ipalib/plugins/internal.py:131
+msgid "Organizational Unit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:133
+#, fuzzy
+msgid "Issued By"
+msgstr "Видавець"
+
+#: ipalib/plugins/internal.py:134
+msgid "Validity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:135
+#, fuzzy
+msgid "Issued On"
+msgstr "Видавець"
+
+#: ipalib/plugins/internal.py:136
+msgid "Expires On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:137
+#, fuzzy
+msgid "Fingerprints"
+msgstr "Відбиток (MD5)"
+
+#: ipalib/plugins/internal.py:138
+#, fuzzy
+msgid "SHA1 Fingerprint"
+msgstr "Відбиток (MD5)"
+
+#: ipalib/plugins/internal.py:139
+#, fuzzy
+msgid "MD5 Fingerprint"
+msgstr "Відбиток (MD5)"
+
+#: ipalib/plugins/internal.py:140
+msgid "Enter the Base64-encoded CSR below"
+msgstr ""
+
+#: ipalib/plugins/internal.py:141
+#, fuzzy
+msgid "Valid Certificate Present"
+msgstr "Базовий об’єкт сертифікації"
+
+#: ipalib/plugins/internal.py:142
+#, fuzzy
+msgid "New Certificate"
+msgstr "Сертифікат"
+
+#: ipalib/plugins/internal.py:143
+#, fuzzy
+msgid "Certificate Revoked"
+msgstr "Сертифікат"
+
+#: ipalib/plugins/internal.py:144
+#, fuzzy
+msgid "No Valid Certificate"
+msgstr "Сертифікат"
+
+#: ipalib/plugins/internal.py:145
+msgid "Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:146
+msgid "Issue New Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:147
+msgid "Revoke Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:148
+msgid "Restore Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:152
+#, fuzzy
+msgid "Name"
+msgstr "Назва вузла"
+
+#: ipalib/plugins/internal.py:155
+msgid "Add Delegation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:158
+msgid "Add DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:159
+msgid "DNS Zone Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:162
+msgid "Add DNS Resource Record"
+msgstr ""
+
+#: ipalib/plugins/internal.py:163
+#, fuzzy
+msgid "Resource"
+msgstr "Назва ресурсу"
+
+#: ipalib/plugins/internal.py:165
+msgid "Data"
+msgstr "Дані"
+
+#: ipalib/plugins/internal.py:166
+msgid "Records for DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:169
+#, fuzzy
+msgid "Add Group"
+msgstr "Група"
+
+#: ipalib/plugins/internal.py:170
+#, fuzzy
+msgid "Group Settings"
+msgstr "Опис групи"
+
+#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
+#, fuzzy
+msgid "Is this a POSIX group?"
+msgstr "змінити на групу POSIX"
+
+#: ipalib/plugins/internal.py:174
+msgid "Add HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:306
+msgid "Active"
+msgstr ""
+
+#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:308
+msgid "Inactive"
+msgstr ""
+
+#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
+#, fuzzy
+msgid "Rule status"
+msgstr "Стан запиту"
+
+#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
+msgid "Who"
+msgstr ""
+
+#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
+msgid "Anyone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
+msgid "Specified Users and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:183
+#, fuzzy
+msgid "Accessing"
+msgstr "Час доступу"
+
+#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
+#, fuzzy
+msgid "Any Host"
+msgstr "Вузли"
+
+#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
+#, fuzzy
+msgid "Specified Hosts and Groups"
+msgstr "Групи команд sudo"
+
+#: ipalib/plugins/internal.py:186
+#, fuzzy
+msgid "Via Service"
+msgstr "Служби"
+
+#: ipalib/plugins/internal.py:187
+#, fuzzy
+msgid "Any Service"
+msgstr "Служба HBAC"
+
+#: ipalib/plugins/internal.py:188
+#, fuzzy
+msgid "Specified Services and Groups"
+msgstr "Групи служб"
+
+#: ipalib/plugins/internal.py:189
+msgid "From"
+msgstr ""
+
+#: ipalib/plugins/internal.py:192
+#, fuzzy
+msgid "Add HBAC Service"
+msgstr "Служба HBAC"
+
+#: ipalib/plugins/internal.py:195
+#, fuzzy
+msgid "Add HBAC Service Group"
+msgstr "Група служб HBAC"
+
+#: ipalib/plugins/internal.py:199
+#, fuzzy
+msgid "Add Host"
+msgstr "Вузли"
+
+#: ipalib/plugins/internal.py:200
+#, fuzzy
+msgid "Host Certificate"
+msgstr "Сертифікат"
+
+#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
+msgid "Host Name"
+msgstr "Назва вузла"
+
+#: ipalib/plugins/internal.py:202
+msgid "Host Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:203
+#, fuzzy
+msgid "Enrolled?"
+msgstr "Зареєструвати"
+
+#: ipalib/plugins/internal.py:204
+#, fuzzy
+msgid "Enrollment"
+msgstr "Зареєструвати"
+
+#: ipalib/plugins/internal.py:205
+#, fuzzy
+msgid "Fully Qualified Host Name"
+msgstr "Слід вказати назву вузла повністю"
+
+#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
+msgid "Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:208
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
+msgid "Delete Key, Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:211
+msgid "Enroll via One-Time-Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:212
+msgid "Set OTP"
+msgstr ""
+
+#: ipalib/plugins/internal.py:213
+msgid "One-Time-Password has been set."
+msgstr ""
+
+#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
+msgid "Unprovisioning ${entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:215
+msgid "Are you sure you want to unprovision this host?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
+msgid "Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:219
+#, fuzzy
+msgid "Add Host Group"
+msgstr "Групи вузлів"
+
+#: ipalib/plugins/internal.py:220
+#, fuzzy
+msgid "Host Group Settings"
+msgstr "Групи вузлів"
+
+#: ipalib/plugins/internal.py:223
+#, fuzzy
+msgid "Kerberos ticket policy"
+msgstr "Правила квитків Kerberos"
+
+#: ipalib/plugins/internal.py:226
+#, fuzzy
+msgid "Add Netgroup"
+msgstr "Мережеві групи"
+
+#: ipalib/plugins/internal.py:227
+#, fuzzy
+msgid "Netgroup Settings"
+msgstr "Опис мережевої групи"
+
+#: ipalib/plugins/internal.py:230
+#, fuzzy
+msgid "Add Permission"
+msgstr "Права доступу"
+
+#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
+#, fuzzy
+msgid "Identity"
+msgstr "Параметри профілю"
+
+#: ipalib/plugins/internal.py:233
+#, fuzzy
+msgid "Target"
+msgstr "Цільова група"
+
+#: ipalib/plugins/internal.py:235
+#, fuzzy
+msgid "By Subtree"
+msgstr "Піддерево"
+
+#: ipalib/plugins/internal.py:236
+#, fuzzy
+msgid "Target Group"
+msgstr "Цільова група"
+
+#: ipalib/plugins/internal.py:237
+msgid "Object By Type"
+msgstr ""
+
+#: ipalib/plugins/internal.py:238
+msgid "Permission with invalid target specification"
+msgstr ""
+
+#: ipalib/plugins/internal.py:241
+msgid "Add Privilege"
+msgstr ""
+
+#: ipalib/plugins/internal.py:242
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:245
+#, fuzzy
+msgid "Add Password Policy"
+msgstr "Правила для паролів"
+
+#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
+msgid "Password Policy"
+msgstr "Правила для паролів"
+
+#: ipalib/plugins/internal.py:249
+msgid "Add Role"
+msgstr ""
+
+#: ipalib/plugins/internal.py:250
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:253
+msgid "Add Self Service Definition"
+msgstr ""
+
+#: ipalib/plugins/internal.py:256
+#, fuzzy
+msgid "Add Service"
+msgstr "Служба HBAC"
+
+#: ipalib/plugins/internal.py:257
+#, fuzzy
+msgid "Service Certificate"
+msgstr "Сертифікат"
+
+#: ipalib/plugins/internal.py:258
+#, fuzzy
+msgid "Service Settings"
+msgstr "Служби"
+
+#: ipalib/plugins/internal.py:260
+#, fuzzy
+msgid "Provisioning"
+msgstr "Права доступу"
+
+#: ipalib/plugins/internal.py:261
+#, fuzzy
+msgid "Service"
+msgstr "Служби"
+
+#: ipalib/plugins/internal.py:263
+#, fuzzy
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr "Назва реєстраційного запису служби Kerberos"
+
+#: ipalib/plugins/internal.py:267
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:271
+#, fuzzy
+msgid "Add Sudo Command"
+msgstr "Команда sudo"
+
+#: ipalib/plugins/internal.py:275
+#, fuzzy
+msgid "Add Sudo Command Group"
+msgstr "Групи команд sudo"
+
+#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
+msgid "Commands"
+msgstr "Команди"
+
+#: ipalib/plugins/internal.py:279
+#, fuzzy
+msgid "Add Sudo Rule"
+msgstr "Правило sudo"
+
+#: ipalib/plugins/internal.py:287
+#, fuzzy
+msgid "Access this host"
+msgstr "Час доступу"
+
+#: ipalib/plugins/internal.py:290
+#, fuzzy
+msgid "Run Commands"
+msgstr "Команди"
+
+#: ipalib/plugins/internal.py:291
+#, fuzzy
+msgid "Any Command"
+msgstr "Команди"
+
+#: ipalib/plugins/internal.py:292
+#, fuzzy
+msgid "Specified Commands and Groups"
+msgstr "Групи команд sudo"
+
+#: ipalib/plugins/internal.py:293
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:294
+#, fuzzy
+msgid "Any Group"
+msgstr "Група"
+
+#: ipalib/plugins/internal.py:295
+#, fuzzy
+msgid "Specified Groups"
+msgstr "Групи служб"
+
+#: ipalib/plugins/internal.py:297
+#, fuzzy
+msgid "External"
+msgstr "Зовнішній вузол"
+
+#: ipalib/plugins/internal.py:300
+#, fuzzy
+msgid "Add User"
+msgstr "Користувач"
+
+#: ipalib/plugins/internal.py:301
+#, fuzzy
+msgid "Account Settings"
+msgstr "Параметри облікового запису"
+
+#: ipalib/plugins/internal.py:302
+#, fuzzy
+msgid "Contact Settings"
+msgstr "Контактні дані"
+
+#: ipalib/plugins/internal.py:303
+msgid "Mailing Address"
+msgstr "Адреса ел. пошти"
+
+#: ipalib/plugins/internal.py:304
+#, fuzzy
+msgid "Employee Information"
+msgstr " Відомості щодо працівника"
+
+#: ipalib/plugins/internal.py:305
+msgid "Misc. Information"
+msgstr "Інша інформація"
+
+#: ipalib/plugins/internal.py:307
+msgid "Click to Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:309
+msgid "Click to Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:310
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:311
+#, fuzzy
+msgid "Reset Password"
+msgstr "Пароль користувача"
+
+#: ipalib/plugins/internal.py:312
+#, fuzzy
+msgid "New Password"
+msgstr "Пароль"
+
+#: ipalib/plugins/internal.py:313
+#, fuzzy
+msgid "Repeat Password"
+msgstr "Пароль"
+
+#: ipalib/plugins/internal.py:314
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:315
+#, fuzzy
+msgid "Passwords must match"
+msgstr "Паролі не збігаються"
+
+#: ipalib/plugins/internal.py:319
msgid "Add"
msgstr "Додати"
-#: ipalib/plugins/internal.py:42
+#: ipalib/plugins/internal.py:320
+msgid "Add and Add Another"
+msgstr ""
+
+#: ipalib/plugins/internal.py:321
+msgid "Add and Edit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:322
+msgid "Add and Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:323
+msgid "Add Many"
+msgstr ""
+
+#: ipalib/plugins/internal.py:324
+#, fuzzy
+msgid "Back to List"
+msgstr "Повернутися до початку"
+
+#: ipalib/plugins/internal.py:325
+#, fuzzy
+msgid "Cancel"
+msgstr "Скасовано."
+
+#: ipalib/plugins/internal.py:326
+msgid "Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:327
+msgid "Enroll"
+msgstr "Зареєструвати"
+
+#: ipalib/plugins/internal.py:328
msgid "Find"
msgstr "Знайти"
-#: ipalib/plugins/internal.py:43
+#: ipalib/plugins/internal.py:329
+msgid "Get"
+msgstr ""
+
+#: ipalib/plugins/internal.py:330
+#, fuzzy
+msgid "Issue"
+msgstr "Видавець"
+
+#: ipalib/plugins/internal.py:331
+msgid "OK"
+msgstr ""
+
+#: ipalib/plugins/internal.py:332
msgid "Reset"
msgstr "Скинути"
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:333
+msgid "Delete"
+msgstr "Вилучити"
+
+#: ipalib/plugins/internal.py:334
+msgid "Restore"
+msgstr ""
+
+#: ipalib/plugins/internal.py:335
+msgid "Retry"
+msgstr ""
+
+#: ipalib/plugins/internal.py:336
+#, fuzzy
+msgid "Revoke"
+msgstr "Анульований"
+
+#: ipalib/plugins/internal.py:337
msgid "Update"
msgstr "Оновити"
-#: ipalib/plugins/internal.py:45
-msgid "Enroll"
-msgstr "Зареєструвати"
+#: ipalib/plugins/internal.py:338
+msgid "View"
+msgstr ""
-#: ipalib/plugins/internal.py:46
-msgid "Delete"
-msgstr "Вилучити"
+#: ipalib/plugins/internal.py:341
+msgid "Available"
+msgstr ""
+
+#: ipalib/plugins/internal.py:342
+msgid "This page has unsaved changes. Please save or revert."
+msgstr ""
+
+#: ipalib/plugins/internal.py:343
+msgid "Dirty"
+msgstr ""
+
+#: ipalib/plugins/internal.py:344
+#, fuzzy
+msgid "Hide already enrolled."
+msgstr "Вузол вже приєднано.\n"
+
+#: ipalib/plugins/internal.py:345
+msgid "Select ${entity} to be removed."
+msgstr ""
+
+#: ipalib/plugins/internal.py:346
+msgid "Remove ${entity}."
+msgstr ""
+
+#: ipalib/plugins/internal.py:347
+msgid "Prospective"
+msgstr ""
+
+#: ipalib/plugins/internal.py:350
+msgid "Managed by"
+msgstr ""
+
+#: ipalib/plugins/internal.py:351
+#, fuzzy
+msgid "Member"
+msgstr "Учасник"
+
+#: ipalib/plugins/internal.py:352
+msgid "Indirect Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:353
+#, fuzzy
+msgid "Member Of"
+msgstr "Учасник"
+
+#: ipalib/plugins/internal.py:354
+msgid "Indirect Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
+msgid "Settings"
+msgstr ""
-#: ipalib/plugins/internal.py:49
+#: ipalib/plugins/internal.py:358
+msgid "Search"
+msgstr ""
+
+#: ipalib/plugins/internal.py:362
msgid "Quick Links"
msgstr "Швидкі посилання"
-#: ipalib/plugins/internal.py:50
+#: ipalib/plugins/internal.py:363
msgid "Select All"
msgstr "Вибрати все"
-#: ipalib/plugins/internal.py:51
+#: ipalib/plugins/internal.py:364
msgid "Unselect All"
msgstr "Скасувати вибір всього"
-#: ipalib/plugins/internal.py:52
-msgid "Do you really want to delete the selected entries?"
+#: ipalib/plugins/internal.py:365
+#, fuzzy
+msgid "Are you sure you want to delete selected entries?"
msgstr "Ви справді бажаєте вилучити позначені записи?"
-#: ipalib/plugins/internal.py:55
-msgid "Identity Details"
+#: ipalib/plugins/internal.py:366
+msgid ""
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
+msgstr ""
+
+#: ipalib/plugins/internal.py:370
+msgid "General"
+msgstr ""
+
+#: ipalib/plugins/internal.py:371
+#, fuzzy
+msgid "Identity Settings"
msgstr "Параметри профілю"
-#: ipalib/plugins/internal.py:56
-msgid "Account Details"
-msgstr "Параметри облікового запису"
+#: ipalib/plugins/internal.py:372
+msgid "${entity} ${primary_key} Settings"
+msgstr ""
-#: ipalib/plugins/internal.py:57
-msgid "Contact Details"
-msgstr "Контактні дані"
+#: ipalib/plugins/internal.py:373
+msgid "Back to Top"
+msgstr "Повернутися до початку"
-#: ipalib/plugins/internal.py:58
-msgid "Mailing Address"
-msgstr "Адреса ел. пошти"
+#: ipalib/plugins/internal.py:377
+msgid "Policy"
+msgstr ""
-#: ipalib/plugins/internal.py:59
-msgid " Employee Information"
-msgstr " Відомості щодо працівника"
+#: ipalib/plugins/internal.py:378
+msgid "Audit"
+msgstr ""
-#: ipalib/plugins/internal.py:60
-msgid "Misc. Information"
-msgstr "Інша інформація"
+#: ipalib/plugins/internal.py:379
+#, fuzzy
+msgid "IPA Server"
+msgstr "Назва сервера IPA"
-#: ipalib/plugins/internal.py:61
-msgid "Back to Top"
-msgstr "Повернутися до початку"
+#: ipalib/plugins/internal.py:380
+#, fuzzy
+msgid "Sudo"
+msgstr "Команди sudo"
-#: ipalib/plugins/internal.py:66
-msgid "Name of object to export"
-msgstr "Назва об’єкта, який слід експортувати"
+#: ipalib/plugins/internal.py:381
+msgid "Host Based Access Control"
+msgstr ""
-#: ipalib/plugins/internal.py:71
-msgid "Dict of JSON encoded IPA Objects"
-msgstr "Словник закодованих JSON об’єктів IPA"
+#: ipalib/plugins/internal.py:382
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:383
+msgid "Automount"
+msgstr "Автоматичне монтування"
-#: ipalib/plugins/internal.py:72
+#: ipalib/plugins/internal.py:386
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:387
+msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:388
+msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:389
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:392
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:395
+msgid ""
+"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."
+msgstr ""
+
+#: ipalib/plugins/internal.py:399
msgid "Dict of I18N messages"
msgstr "Словник перекладених повідомлень"
-#: ipalib/plugins/krbtpolicy.py:59
+#: ipalib/plugins/kerberos.py:20
+msgid ""
+"\n"
+"Backend plugin for Kerberos.\n"
+"\n"
+"This wraps the python-kerberos and python-krbV bindings.\n"
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:35
+msgid ""
+"\n"
+" Kerberos backend plugin.\n"
+"\n"
+" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
+" bindings also). Importantly, this plugin does correct Unicode\n"
+" encoding/decoding of values going-to/coming-from the bindings.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:44
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:50
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:56
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:62
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:68
+msgid ""
+"\n"
+" Return the default ccache file name.\n"
+"\n"
+" This will return something like '/tmp/krb5cc_500'.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:79
+msgid ""
+"\n"
+" Return the principal name in default credential cache.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'. If no "
+"credential\n"
+" cache exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:91
+msgid ""
+"\n"
+" Return the realm from the default credential cache.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'. If no credential "
+"cache\n"
+" exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:103
+msgid ""
+"\n"
+" Return the principal from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:111
+msgid ""
+"\n"
+" Return the realm from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:19
+msgid ""
+"\n"
+"Kerberos ticket policy\n"
+"\n"
+"There is a single Kerberos ticket policy. This policy defines the\n"
+"maximum ticket lifetime and the maximum renewal age, the period during\n"
+"which the ticket is renewable.\n"
+"\n"
+"You can also create a per-user ticket policy by specifying the user login.\n"
+"\n"
+"For changes to the global policy to take effect, restarting the KDC service\n"
+"is required, which can be achieved using:\n"
+"\n"
+"service krb5kdc restart\n"
+"\n"
+"Changes to per-user policies take effect immediately for newly requested\n"
+"tickets (e.g. when the user next runs kinit).\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Display the current Kerberos ticket policy:\n"
+" ipa krbtpolicy-show\n"
+"\n"
+" Reset the policy to the default:\n"
+" ipa krbtpolicy-reset\n"
+"\n"
+" Modify the policy to 8 hours max life, 1-day max renewal:\n"
+" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n"
+"\n"
+" Display effective Kerberos ticket policy for user 'admin':\n"
+" ipa krbtpolicy-show admin\n"
+"\n"
+" Reset per-user policy for user 'admin':\n"
+" ipa krbtpolicy-reset admin\n"
+"\n"
+" Modify per-user policy for user 'admin':\n"
+" ipa krbtpolicy-mod admin --maxlife=3600\n"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:71
+#, fuzzy
+msgid ""
+"\n"
+" Kerberos Ticket Policy object\n"
+" "
+msgstr "Правила квитків Kerberos"
+
+#: ipalib/plugins/krbtpolicy.py:79
msgid "Kerberos Ticket Policy"
msgstr "Правила квитків Kerberos"
-#: ipalib/plugins/krbtpolicy.py:64 ipalib/plugins/passwd.py:52
+#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
msgid "User name"
msgstr "Ім'я користувача"
-#: ipalib/plugins/krbtpolicy.py:65
+#: ipalib/plugins/krbtpolicy.py:85
msgid "Manage ticket policy for specific user"
msgstr "Керування правилами обробки квитків певного користувача"
-#: ipalib/plugins/krbtpolicy.py:70
+#: ipalib/plugins/krbtpolicy.py:90
msgid "Max life"
msgstr "Макс. строк дії"
-#: ipalib/plugins/krbtpolicy.py:71
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Maximum ticket life (seconds)"
msgstr "Максимальний строк дії квитка (у секундах)"
-#: ipalib/plugins/krbtpolicy.py:75
+#: ipalib/plugins/krbtpolicy.py:96
msgid "Max renew"
msgstr "Макс. вік поновлення"
-#: ipalib/plugins/krbtpolicy.py:76
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Maximum renewable age (seconds)"
msgstr "Максимальний вік, протягом якого можливе поновлення (у секундах)"
-#: ipalib/plugins/migration.py:44
-#, python-format
+#: ipalib/plugins/krbtpolicy.py:111
+#, fuzzy
+msgid ""
+"\n"
+" Modify Kerberos ticket policy.\n"
+" "
+msgstr "Правила квитків Kerberos"
+
+#: ipalib/plugins/krbtpolicy.py:125
+#, fuzzy
+msgid ""
+"\n"
+" Display the current Kerberos ticket policy.\n"
+" "
+msgstr ""
+"Показати запис користувача для поточного реєстраційного запису Kerberos"
+
+#: ipalib/plugins/krbtpolicy.py:149
+msgid ""
+"\n"
+" Reset Kerberos ticket policy to the default values.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:19
+msgid ""
+"\n"
+"Migration to IPA\n"
+"\n"
+"Migrate users and groups from an LDAP server to IPA.\n"
+"\n"
+"This performs an LDAP query against the remote server searching for\n"
+"users and groups in a container. In order to migrate passwords you need\n"
+"to bind as a user that can read the userPassword attribute on the remote\n"
+"server. This is generally restricted to high-level admins such as\n"
+"cn=Directory Manager in 389-ds (this is the default bind user).\n"
+"\n"
+"The default user container is ou=People.\n"
+"\n"
+"The default group container is ou=Groups.\n"
+"\n"
+"Users and groups that already exist on the IPA server are skipped.\n"
+"\n"
+"Two LDAP schemas define how group members are stored: RFC2307 and\n"
+"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n"
+"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n"
+"\n"
+"Migrated users do not have Kerberos credentials, they have only their\n"
+"LDAP password. To complete the migration process, users need to go\n"
+"to http://ipa.example.com/ipa/migration and authenticate using their\n"
+"LDAP password in order to generate their Kerberos credentials.\n"
+"\n"
+"Migration is disabled by default. Use the command ipa config-mod to\n"
+"enable it:\n"
+"\n"
+" ipa config-mod --enable-migration=TRUE\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" The simplest migration, accepting all defaults:\n"
+" ipa migrate-ds ldap://ds.example.com:389\n"
+"\n"
+" Specify the user and group container. This can be used to migrate user and\n"
+" group data from an IPA v1 server:\n"
+" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-"
+"container='cn=groups,cn=accounts' ldap://ds.example.com:389\n"
+msgstr ""
+
+#: ipalib/plugins/migration.py:78
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
"Реєстраційний запис Kerberos %s вже існує. Скористайтеся командою «ipa user-"
"mod», щоб встановити його параметри вручну."
-#: ipalib/plugins/migration.py:45
+#: ipalib/plugins/migration.py:79
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
@@ -1489,79 +4901,133 @@ msgstr ""
"Не вдалося додати користувача до типової групи. Додати користувача вручну "
"можна за допомогою команди «ipa group-add-member»."
-#: ipalib/plugins/migration.py:169
+#: ipalib/plugins/migration.py:175
+msgid ""
+"\n"
+" Convert usernames in member attributes to work in IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:220
+#, fuzzy
+msgid "Invalid LDAP URI."
+msgstr "URI LDAP"
+
+#: ipalib/plugins/migration.py:225
+msgid ""
+"\n"
+" Migrate users and groups from DS to IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:266
msgid "LDAP URI"
msgstr "URI LDAP"
-#: ipalib/plugins/migration.py:170
+#: ipalib/plugins/migration.py:267
msgid "LDAP URI of DS server to migrate from"
msgstr "URI LDAP сервера DS, з якого здійснюватиметься міграція"
-#: ipalib/plugins/migration.py:174
+#: ipalib/plugins/migration.py:272
msgid "bind password"
msgstr "пароль прив’язки"
-#: ipalib/plugins/migration.py:181
+#: ipalib/plugins/migration.py:279
msgid "Bind DN"
msgstr "DN для прив'язки"
-#: ipalib/plugins/migration.py:187
+#: ipalib/plugins/migration.py:285
msgid "User container"
msgstr "Контейнер користувачів"
-#: ipalib/plugins/migration.py:188
+#: ipalib/plugins/migration.py:286
msgid "RDN of container for users in DS"
msgstr "RDN контейнера користувачів у DS"
-#: ipalib/plugins/migration.py:194
+#: ipalib/plugins/migration.py:292
msgid "Group container"
msgstr "Контейнер груп"
-#: ipalib/plugins/migration.py:195
+#: ipalib/plugins/migration.py:293
msgid "RDN of container for groups in DS"
msgstr "RDN контейнера груп у DS"
-#: ipalib/plugins/migration.py:200
-msgid "Continous operation mode. Errors are reported but the process continues"
+#: ipalib/plugins/migration.py:299
+msgid "User object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:300
+#, fuzzy
+msgid ""
+"Comma-separated list of objectclasses used to search for user entries in DS"
+msgstr ""
+"Відокремлений комами список полів, за якими виконуватиметься пошук "
+"користувачів"
+
+#: ipalib/plugins/migration.py:306
+msgid "Group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:307
+#, fuzzy
+msgid ""
+"Comma-separated list of objectclasses used to search for group entries in DS"
+msgstr ""
+"Відокремлений комами список полів, за якими виконуватиметься пошук груп"
+
+#: ipalib/plugins/migration.py:313
+msgid "LDAP schema"
+msgstr ""
+
+#: ipalib/plugins/migration.py:314
+msgid ""
+"The schema used on the LDAP server. Supported values are RFC2307 and "
+"RFC2307bis. The default is RFC2307bis"
+msgstr ""
+
+#: ipalib/plugins/migration.py:320
+#, fuzzy
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
"Режим неперервної обробки. Програма повідомляє про помилки, але продовжує "
"обробку."
-#: ipalib/plugins/migration.py:208
+#: ipalib/plugins/migration.py:328
msgid "Lists of objects migrated; categorized by type."
msgstr "Списки об’єктів, міграцію яких виконано; впорядкований за типами."
-#: ipalib/plugins/migration.py:212
+#: ipalib/plugins/migration.py:332
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
"Списки об’єктів, міграцію яких не вдалося виконати; впорядкований за типами."
-#: ipalib/plugins/migration.py:216
+#: ipalib/plugins/migration.py:336
msgid "False if migration mode was disabled."
msgstr "False, якщо режим міграції було вимкнено."
-#: ipalib/plugins/migration.py:220
-#, python-format
+#: ipalib/plugins/migration.py:340
msgid "comma-separated list of %s to exclude from migration"
msgstr "Список %s, відокремлених комами, які слід виключити з процесу міграції"
-#: ipalib/plugins/migration.py:222
+#: ipalib/plugins/migration.py:342
+#, fuzzy
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
-"migration process might be uncomplete\n"
+"migration process might be incomplete\n"
msgstr ""
"список результатів пошуку об’єктів міграції\n"
"було обрізано сервером; ймовірно,\n"
"процес міграції не завершено\n"
-#: ipalib/plugins/migration.py:227
+#: ipalib/plugins/migration.py:347
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
"Режим міграції вимкнено. Скористайтеся командою «ipa config-mod», щоб "
"увімкнути його."
-#: ipalib/plugins/migration.py:230
+#: ipalib/plugins/migration.py:350
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -1576,16 +5042,55 @@ msgstr ""
"https://your.domain/ipa/migration/ до того, як вони зможуть\n"
"скористатися обліковими записами Kerberos."
-#: ipalib/plugins/migration.py:297
-#, python-format
+#: ipalib/plugins/migration.py:358
+msgid ""
+"\n"
+" Call get_options of the baseclass and add \"exclude\" options\n"
+" for each type of object being migrated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:375
+msgid ""
+"\n"
+" Convert all \"exclude\" option values to lower-case.\n"
+"\n"
+" Also, empty List parameters are converted to None, but the "
+"migration\n"
+" plugin doesn't like that - convert back to empty lists.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:399
+msgid ""
+"\n"
+" Migrate objects from DS to LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:425
msgid "Container for %(container)s not found"
msgstr "Контейнера для %(container)s не знайдено"
+#: ipalib/plugins/misc.py:20
+msgid ""
+"\n"
+"Misc plug-ins\n"
+msgstr ""
+
+#: ipalib/plugins/misc.py:36
+msgid "Show environment variables"
+msgstr ""
+
#: ipalib/plugins/misc.py:38
-#, python-format
msgid "%(count)d variables"
msgstr "%(count)d змінних"
+#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115
+msgid ""
+"retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
#: ipalib/plugins/misc.py:61
msgid "Total number of variables env (>= count)"
msgstr "Кількість змінних env (>= count)"
@@ -1594,8 +5099,11 @@ msgstr "Кількість змінних env (>= count)"
msgid "Number of variables returned (<= total)"
msgstr "Кількість повернутих змінних (<= загальної)"
-#: ipalib/plugins/misc.py:109
-#, python-format
+#: ipalib/plugins/misc.py:106
+msgid "Show all loaded plugins"
+msgstr ""
+
+#: ipalib/plugins/misc.py:108
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] "завантажено %(count)d додаток"
@@ -1603,178 +5111,1195 @@ msgstr[1] "завантажено %(count)d додатки"
msgstr[2] "завантажено %(count)d додатків"
msgstr[3] "завантажено %(count)d додаток"
-#: ipalib/plugins/misc.py:116
+#: ipalib/plugins/misc.py:126
msgid "Number of plugins loaded"
msgstr "Кількість завантажених додатків"
-#: ipalib/plugins/netgroup.py:57
+#: ipalib/plugins/netgroup.py:20
+msgid ""
+"\n"
+"Netgroups\n"
+"\n"
+"A netgroup is a group used for permission checking. It can contain both\n"
+"user and host values.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new netgroup:\n"
+" ipa netgroup-add --desc=\"NFS admins\" admins\n"
+"\n"
+" Add members to the netgroup:\n"
+" ipa netgroup-add-member --users=tuser1,tuser2 admins\n"
+"\n"
+" Remove a member from the netgroup:\n"
+" ipa netgroup-remove-member --users=tuser2 admins\n"
+"\n"
+" Display information about a netgroup:\n"
+" ipa netgroup-show admins\n"
+"\n"
+" Delete a netgroup:\n"
+" ipa netgroup-del admins\n"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:59
msgid "Member Host"
msgstr "Вузол-учасник"
-#: ipalib/plugins/netgroup.py:63
-msgid "External host"
-msgstr "Зовнішній вузол"
+#: ipalib/plugins/netgroup.py:67
+msgid ""
+"\n"
+" Netgroup object.\n"
+" "
+msgstr ""
-#: ipalib/plugins/netgroup.py:85
-msgid "Net Groups"
+#: ipalib/plugins/netgroup.py:98
+msgid "Netgroups"
msgstr "Мережеві групи"
-#: ipalib/plugins/netgroup.py:90
+#: ipalib/plugins/netgroup.py:103
msgid "Netgroup name"
msgstr "Назва мережевої групи"
-#: ipalib/plugins/netgroup.py:97
+#: ipalib/plugins/netgroup.py:110
msgid "Netgroup description"
msgstr "Опис мережевої групи"
-#: ipalib/plugins/netgroup.py:101
+#: ipalib/plugins/netgroup.py:114
msgid "NIS domain name"
msgstr "Назва домену NIS"
-#: ipalib/plugins/netgroup.py:106
+#: ipalib/plugins/netgroup.py:119
msgid "IPA unique ID"
msgstr "Унікальний ід. IPA"
-#: ipalib/plugins/pwpolicy.py:84
-#, python-format
+#: ipalib/plugins/netgroup.py:140
+msgid ""
+"\n"
+" Add a new netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:144
+#, fuzzy
+msgid "Added netgroup \"%(value)s\""
+msgstr "Додано групу «%(value)s»"
+
+#: ipalib/plugins/netgroup.py:153
+msgid ""
+"\n"
+" Delete a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:156
+#, fuzzy
+msgid "Deleted netgroup \"%(value)s\""
+msgstr "Вилучено групу «%(value)s»"
+
+#: ipalib/plugins/netgroup.py:162
+msgid ""
+"\n"
+" Modify a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:166
+#, fuzzy
+msgid "Modified netgroup \"%(value)s\""
+msgstr "Змінено групу «%(value)s»"
+
+#: ipalib/plugins/netgroup.py:180
+msgid ""
+"\n"
+" Search for a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:185
+#, fuzzy
+msgid "%(count)d netgroup matched"
+msgid_plural "%(count)d netgroups matched"
+msgstr[0] "встановлено відповідність %(count)d групи"
+msgstr[1] "встановлено відповідність %(count)d груп"
+msgstr[2] "встановлено відповідність %(count)d груп"
+msgstr[3] "встановлено відповідність %(count)d групи"
+
+#: ipalib/plugins/netgroup.py:213
+msgid ""
+"\n"
+" Display information about a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:222
+msgid ""
+"\n"
+" Add members to a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:258
+msgid ""
+"\n"
+" Remove members from a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:19
+msgid ""
+"\n"
+"Set a user's password\n"
+"\n"
+"If someone other than a user changes that user's password (e.g., Helpdesk\n"
+"resets it) then the password will need to be changed the first time it\n"
+"is used. This is so the end-user is the only one who knows the password.\n"
+"\n"
+"The IPA password policy controls how often a password may be changed,\n"
+"what strength requirements exist, and the length of the password history.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" To reset your own password:\n"
+" ipa passwd\n"
+"\n"
+" To change another user's password:\n"
+" ipa passwd tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/passwd.py:46
+#, fuzzy
+msgid ""
+"\n"
+" Set a user's password\n"
+" "
+msgstr "Встановити пароль користувача"
+
+#: ipalib/plugins/passwd.py:64
+#, fuzzy
+msgid "Changed password for \"%(value)s\""
+msgstr "Додано правило sudo «%(value)s»"
+
+#: ipalib/plugins/passwd.py:67
+msgid ""
+"\n"
+" Execute the passwd operation.\n"
+"\n"
+" The dn should not be passed as a keyword argument as it is "
+"constructed\n"
+" by this method.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param principal: The login name or principal of the user\n"
+" :param password: the new password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:19
+msgid ""
+"\n"
+"Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of rights. A permission is\n"
+"a human-readable form of a 389-ds Access Control Rule, or instruction "
+"(ACI).\n"
+"A permission grants the right to perform a specific task such as adding a\n"
+"user, modifying a group, etc.\n"
+"\n"
+"A permission may not contain other permissions.\n"
+"\n"
+"* A permission grants access to read, write, add or delete.\n"
+"* A privilege combines similar permissions (for example all the permissions\n"
+" needed to add a user).\n"
+"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n"
+"\n"
+"A permission is made up of a number of different parts:\n"
+"\n"
+"1. The name of the permission.\n"
+"2. The target of the permission.\n"
+"3. The rights granted by the permission.\n"
+"\n"
+"Rights define what operations are allowed, and may be one or more\n"
+"of the following:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Read permission is granted for most attributes by default so the read\n"
+"permission is not expected to be used very often.\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"There are a number of allowed targets:\n"
+"1. type: a type of object (user, group, etc).\n"
+"2. memberof: a member of a group or hostgroup\n"
+"3. filter: an LDAP filter\n"
+"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n"
+" super-set of the \"type\" target.\n"
+"5. targetgroup: grant access to modify a specific group (such as granting\n"
+" the rights to manage group membership)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a permission that grants the creation of users:\n"
+" ipa permission-add --type=user --permissions=add \"Add Users\"\n"
+"\n"
+" Add a permission that grants the ability to manage group membership:\n"
+" ipa permission-add --attrs=member --permissions=write --type=group "
+"\"Manage Group Members\"\n"
+msgstr ""
+
+#: ipalib/plugins/permission.py:84
+#, fuzzy
+msgid "Permission Type"
+msgstr "Права доступу"
+
+#: ipalib/plugins/permission.py:89
+msgid ""
+"\n"
+" Permission object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:112
+#, fuzzy
+msgid "Permission name"
+msgstr "Права доступу"
+
+#: ipalib/plugins/permission.py:119
+#, fuzzy
+msgid ""
+"Comma-separated list of permissions to grant (read, write, add, delete, all)"
+msgstr ""
+"відокремлений комами список прав доступу, які слід надати (read, write, add, "
+"delete, all)"
+
+#: ipalib/plugins/permission.py:132
+#, fuzzy
+msgid ""
+"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
+msgstr "тип об’єкта IPA (користувач, група, вузол)"
+
+#: ipalib/plugins/permission.py:138
+#, fuzzy
+msgid "Member of group"
+msgstr "Учасник групи"
+
+#: ipalib/plugins/permission.py:139
+#, fuzzy
+msgid "Target members of a group"
+msgstr "Учасник групи"
+
+#: ipalib/plugins/permission.py:151
+#, fuzzy
+msgid "Subtree to apply permissions to"
+msgstr "Піддерево, до якого слід застосувати ACI"
+
+#: ipalib/plugins/permission.py:157
+#, fuzzy
+msgid "User group to apply permissions to"
+msgstr "Група, до якої слід застосувати ACI"
+
+#: ipalib/plugins/permission.py:177
+msgid ""
+"\n"
+" Add a new permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:181
+#, fuzzy
+msgid "Added permission \"%(value)s\""
+msgstr "Додано користувача «%(value)s»"
+
+#: ipalib/plugins/permission.py:236
+msgid ""
+"\n"
+" Delete a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:240
+#, fuzzy
+msgid "Deleted permission \"%(value)s\""
+msgstr "Вилучено користувача «%(value)s»"
+
+#: ipalib/plugins/permission.py:256
+msgid ""
+"\n"
+" Modify a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:260
+#, fuzzy
+msgid "Modified permission \"%(value)s\""
+msgstr "Змінено користувача «%(value)s»"
+
+#: ipalib/plugins/permission.py:352
+msgid ""
+"\n"
+" Search for permissions.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:356
+#, fuzzy
+msgid "%(count)d permission matched"
+msgid_plural "%(count)d permissions matched"
+msgstr[0] "встановлено відповідність %(count)d користувача"
+msgstr[1] "встановлено відповідність %(count)d користувачів"
+msgstr[2] "встановлено відповідність %(count)d користувачів"
+msgstr[3] "встановлено відповідність %(count)d користувача"
+
+#: ipalib/plugins/permission.py:405
+msgid ""
+"\n"
+" Display information about a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:428
+msgid ""
+"\n"
+" Add members to a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:437
+msgid ""
+"\n"
+" Remove members from a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:19
+msgid ""
+"\n"
+"Ping the remote IPA server\n"
+msgstr ""
+
+#: ipalib/plugins/ping.py:29
+msgid ""
+"\n"
+" ping a remote server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:37
+msgid ""
+"\n"
+" A possible enhancement would be to take an argument and echo it\n"
+" back but a fixed value works for now.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:19
+msgid ""
+"\n"
+"Kerberos pkinit options\n"
+"\n"
+"Enable or disable anonymous pkinit using the principal\n"
+"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n"
+"pkinit support.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Enable anonymous pkinit:\n"
+" ipa pkinit-anonymous enable\n"
+"\n"
+" Disable anonymous pkinit:\n"
+" ipa pkinit-anonymous disable\n"
+"\n"
+"For more information on anonymous pkinit see:\n"
+"\n"
+"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:46
+msgid ""
+"\n"
+" PKINIT Options\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:51
+msgid "PKINIT"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:56
+msgid ""
+"\n"
+" Accepts only Enable/Disable.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:67
+msgid ""
+"\n"
+" Enable or Disable Anonymous PKINIT\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:19
+msgid ""
+"\n"
+"Privileges\n"
+"\n"
+"A privilege combines permissions into a logical task. A permission provides\n"
+"the rights to do a single task. There are some IPA operations that require\n"
+"multiple permissions to succeed. A privilege is where permissions are\n"
+"combined in order to perform a specific task.\n"
+"\n"
+"For example, adding a user requires the following permissions:\n"
+" * Creating a new user entry\n"
+" * Resetting a user password\n"
+" * Adding the new user to the default IPA users group\n"
+"\n"
+"Combining these three low-level tasks into a higher level task in the\n"
+"form of a privilege named \"Add User\" makes it easier to manage Roles.\n"
+"\n"
+"A privilege may not contain other privileges.\n"
+"\n"
+"See role and permission for additional information.\n"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:45
+msgid ""
+"\n"
+" Privilege object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:65
+msgid "Privileges"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:70
+#, fuzzy
+msgid "Privilege name"
+msgstr "Назва реєстраційного запису"
+
+#: ipalib/plugins/privilege.py:77
+#, fuzzy
+msgid "Privilege description"
+msgstr "опис"
+
+#: ipalib/plugins/privilege.py:85
+msgid ""
+"\n"
+" Add a new privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:89
+#, fuzzy
+msgid "Added privilege \"%(value)s\""
+msgstr "Додано службу «%(value)s»"
+
+#: ipalib/plugins/privilege.py:95
+msgid ""
+"\n"
+" Delete a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:99
+#, fuzzy
+msgid "Deleted privilege \"%(value)s\""
+msgstr "Вилучено службу «%(value)s»"
+
+#: ipalib/plugins/privilege.py:105
+msgid ""
+"\n"
+" Modify a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:109
+#, fuzzy
+msgid "Modified privilege \"%(value)s\""
+msgstr "Змінено службу «%(value)s»"
+
+#: ipalib/plugins/privilege.py:115
+msgid ""
+"\n"
+" Search for privileges.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:119
+#, fuzzy
+msgid "%(count)d privilege matched"
+msgid_plural "%(count)d privileges matched"
+msgstr[0] "встановлено відповідність %(count)d служби"
+msgstr[1] "встановлено відповідність %(count)d служб"
+msgstr[2] "встановлено відповідність %(count)d служб"
+msgstr[3] "встановлено відповідність %(count)d служби"
+
+#: ipalib/plugins/privilege.py:127
+msgid ""
+"\n"
+" Display information about a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:135
+msgid ""
+"\n"
+" Add members to a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:144
+msgid ""
+"\n"
+" Remove members from a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:153
+msgid ""
+"\n"
+" Add permissions to a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:169
+#, fuzzy
+msgid "Number of permissions added"
+msgstr "Кількість доданих учасників"
+
+#: ipalib/plugins/privilege.py:177
+msgid ""
+"\n"
+" Remove permissions from a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:195
+#, fuzzy
+msgid "Number of permissions removed"
+msgstr "Кількість вилучених учасників"
+
+#: ipalib/plugins/pwpolicy.py:20
+msgid ""
+"\n"
+"Password policy\n"
+"\n"
+"A password policy sets limitations on IPA passwords, including maximum\n"
+"lifetime, minimum lifetime, the number of passwords to save in\n"
+"history, the number of character classes required (for stronger passwords)\n"
+"and the minimum password length.\n"
+"\n"
+"By default there is a single, global policy for all users. You can also\n"
+"create a password policy to apply to a group. Each user is only subject\n"
+"to one password policy, either the group policy or the global policy. A\n"
+"group policy stands alone; it is not a super-set of the global policy plus\n"
+"custom settings.\n"
+"\n"
+"Each group password policy requires a unique priority setting. If a user\n"
+"is in multiple groups that have password policies, this priority determines\n"
+"which password policy is applied. A lower value indicates a higher priority\n"
+"policy.\n"
+"\n"
+"Group password policies are automatically removed when the groups they\n"
+"are associated with are removed.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Modify the global policy:\n"
+" ipa pwpolicy-mod --minlength=10\n"
+"\n"
+" Add a new group password policy:\n"
+" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --"
+"minlength=8 --priority=10 localadmins\n"
+"\n"
+" Display the global password policy:\n"
+" ipa pwpolicy-show\n"
+"\n"
+" Display a group password policy:\n"
+" ipa pwpolicy-show localadmins\n"
+"\n"
+" Display the policy that would be applied to a given user:\n"
+" ipa pwpolicy-show --user=tuser1\n"
+"\n"
+" Modify a group password policy:\n"
+" ipa pwpolicy-mod --minclasses=2 localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:72
+msgid ""
+"\n"
+" Class of Service object used for linking policies with groups\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:87
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-"пріоритет повинен мати унікальне значення (%(prio)d вже використано для %"
-"(gname)s)"
+"пріоритет повинен мати унікальне значення (%(prio)d вже використано для "
+"%(gname)s)"
-#: ipalib/plugins/pwpolicy.py:170
-msgid "Password Policy"
+#: ipalib/plugins/pwpolicy.py:172
+#, fuzzy
+msgid ""
+"\n"
+" Password Policy object\n"
+" "
msgstr "Правила для паролів"
-#: ipalib/plugins/pwpolicy.py:175
+#: ipalib/plugins/pwpolicy.py:201
+#, fuzzy
+msgid "Max failures"
+msgstr "Макс. строк дії"
+
+#: ipalib/plugins/pwpolicy.py:202
+msgid "Consecutive failures before lockout"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:207
+msgid "Failure reset interval"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:208
+msgid "Period after which failure count will be reset (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:213
+#, fuzzy
+msgid "Lockout duration"
+msgstr "Розташування"
+
+#: ipalib/plugins/pwpolicy.py:214
+msgid "Period for which lockout is enforced (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:224
msgid "Group"
msgstr "Група"
-#: ipalib/plugins/pwpolicy.py:176
+#: ipalib/plugins/pwpolicy.py:225
msgid "Manage password policy for specific group"
msgstr "Керування правилами обробки паролів для певної групи"
-#: ipalib/plugins/pwpolicy.py:181
+#: ipalib/plugins/pwpolicy.py:230
msgid "Max lifetime (days)"
msgstr "Макс. строк дії (у днях)"
-#: ipalib/plugins/pwpolicy.py:182
+#: ipalib/plugins/pwpolicy.py:231
msgid "Maximum password lifetime (in days)"
msgstr "Максимальний строк дії пароля (у днях)"
-#: ipalib/plugins/pwpolicy.py:187
+#: ipalib/plugins/pwpolicy.py:236
msgid "Min lifetime (hours)"
msgstr "Мін. строк дії (у годинах)"
-#: ipalib/plugins/pwpolicy.py:188
+#: ipalib/plugins/pwpolicy.py:237
msgid "Minimum password lifetime (in hours)"
msgstr "Мінімальний строк дії пароля (у годинах)"
-#: ipalib/plugins/pwpolicy.py:193
+#: ipalib/plugins/pwpolicy.py:242
msgid "History size"
msgstr "Розмір журналу"
-#: ipalib/plugins/pwpolicy.py:194
+#: ipalib/plugins/pwpolicy.py:243
msgid "Password history size"
msgstr "Розмір журналу паролів"
-#: ipalib/plugins/pwpolicy.py:199
+#: ipalib/plugins/pwpolicy.py:248
msgid "Character classes"
msgstr "Класи символів"
-#: ipalib/plugins/pwpolicy.py:200
+#: ipalib/plugins/pwpolicy.py:249
msgid "Minimum number of character classes"
msgstr "Мінімальна кількість класів символів"
-#: ipalib/plugins/pwpolicy.py:206
+#: ipalib/plugins/pwpolicy.py:255
msgid "Min length"
msgstr "Мін. довжина"
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:256
msgid "Minimum length of password"
msgstr "Мінімальна довжина пароля"
-#: ipalib/plugins/pwpolicy.py:212
+#: ipalib/plugins/pwpolicy.py:261
msgid "Priority"
msgstr "Пріоритет"
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:262
msgid "Priority of the policy (higher number means lower priority"
msgstr "Пріоритет правил (більше число — нижчий пріоритет)"
-#: ipalib/plugins/pwpolicy.py:265
+#: ipalib/plugins/pwpolicy.py:294
+msgid ""
+"\n"
+" Ensure that the maximum lifetime is greater than the minimum.\n"
+" If there is no minimum lifetime set then don't return an error.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:314
msgid "Maximum password life must be greater than minimum."
msgstr ""
"Максимальний строк дії пароля має перевищувати мінімальний строк його дії."
-#: ipalib/plugins/pwpolicy.py:330
+#: ipalib/plugins/pwpolicy.py:333
+msgid ""
+"\n"
+" Add a new group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:361
+msgid ""
+"\n"
+" Delete a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:380
+msgid ""
+"\n"
+" Modify a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:391
msgid "priority cannot be set on global policy"
msgstr "для загальних правил не може встановлювати пріоритети"
-#: ipalib/plugins/pwpolicy.py:369
+#: ipalib/plugins/pwpolicy.py:423
+msgid ""
+"\n"
+" Display information about password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:428
msgid "User"
msgstr "Користувач"
-#: ipalib/plugins/pwpolicy.py:370
+#: ipalib/plugins/pwpolicy.py:429
msgid "Display effective policy for a specific user"
msgstr "Показати поточні правила для певного користувача"
-#: ipalib/plugins/rolegroup.py:79
-msgid "Role Groups"
-msgstr "Групи ролей"
+#: ipalib/plugins/pwpolicy.py:452
+msgid ""
+"\n"
+" Search for group password policies.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:20
+msgid ""
+"\n"
+"Roles\n"
+"\n"
+"A role is used for fine-grained delegation. A permission grants the ability\n"
+"to perform given low-level tasks (add a user, modify a group, etc.). A\n"
+"privilege combines one or more permissions into a higher-level abstraction\n"
+"such as useradmin. A useradmin would be able to add, delete and modify "
+"users.\n"
+"\n"
+"Privileges are assigned to Roles.\n"
+"\n"
+"Users, groups, hosts and hostgroups may be members of a Role.\n"
+"\n"
+"Roles can not contain other roles.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new role:\n"
+" ipa role-add --desc=\"Junior-level admin\" junioradmin\n"
+"\n"
+" Add some privileges to this role:\n"
+" ipa role-add-privilege --privileges=addusers junioradmin\n"
+" ipa role-add-privilege --privileges=change_password junioradmin\n"
+" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n"
+"\n"
+" Add a group of users to this role:\n"
+" ipa group-add --desc=\"User admins\" useradmins\n"
+" ipa role-add-member --groups=useradmins junioradmin\n"
+"\n"
+" Display information about a role:\n"
+" ipa role-show junioradmin\n"
+"\n"
+" The result of this is that any users in the group 'useradmins' can\n"
+" add users, reset passwords or add a user to the default IPA user group.\n"
+msgstr ""
-#: ipalib/plugins/rolegroup.py:84
-msgid "Role-group name"
-msgstr "Назва групи ролей"
+#: ipalib/plugins/role.py:62
+msgid ""
+"\n"
+" Role object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:81
+msgid "Role"
+msgstr ""
+
+#: ipalib/plugins/role.py:86
+#, fuzzy
+msgid "Role name"
+msgstr "Назва правила"
-#: ipalib/plugins/rolegroup.py:91
+#: ipalib/plugins/role.py:93
msgid "A description of this role-group"
msgstr "Опис цієї групи ролей"
-#: ipalib/plugins/rolegroup.py:102
-msgid "Member of task-groups"
-msgstr "Учасник групи завдань"
+#: ipalib/plugins/role.py:101
+msgid ""
+"\n"
+" Add a new role.\n"
+" "
+msgstr ""
-#: ipalib/plugins/rolegroup.py:115
-#, python-format
-msgid "Added rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:105
+#, fuzzy
+msgid "Added role \"%(value)s\""
msgstr "Додано групу ролей «%(value)s»"
-#: ipalib/plugins/rolegroup.py:125
-#, python-format
-msgid "Deleted rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:111
+msgid ""
+"\n"
+" Delete a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:115
+#, fuzzy
+msgid "Deleted role \"%(value)s\""
msgstr "Вилучено групу ролей «%(value)s»"
-#: ipalib/plugins/rolegroup.py:135
-#, python-format
-msgid "Modified rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:121
+msgid ""
+"\n"
+" Modify a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:125
+#, fuzzy
+msgid "Modified role \"%(value)s\""
msgstr "Змінено групу ролей «%(value)s»"
-#: ipalib/plugins/rolegroup.py:146
-#, python-format
-msgid "%(count)d rolegroup matched"
-msgid_plural "%(count)d rolegroups matched"
+#: ipalib/plugins/role.py:131
+msgid ""
+"\n"
+" Search for roles.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:135
+#, fuzzy
+msgid "%(count)d role matched"
+msgid_plural "%(count)d roles matched"
msgstr[0] "встановлено відповідність %(count)d групи ролей"
msgstr[1] "встановлено відповідність %(count)d груп ролей"
msgstr[2] "встановлено відповідність %(count)d груп ролей"
msgstr[3] "встановлено відповідність %(count)d групи ролей"
-#: ipalib/plugins/service.py:198
+#: ipalib/plugins/role.py:143
+msgid ""
+"\n"
+" Display information about a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:151
+msgid ""
+"\n"
+" Add members to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:159
+msgid ""
+"\n"
+" Remove members from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:167
+msgid ""
+"\n"
+" Add privileges to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:183
+#, fuzzy
+msgid "Number of privileges added"
+msgstr "Кількість доданих учасників"
+
+#: ipalib/plugins/role.py:191
+msgid ""
+"\n"
+" Remove privileges from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:207
+#, fuzzy
+msgid "Number of privileges removed"
+msgstr "Кількість вилучених учасників"
+
+#: ipalib/plugins/selfservice.py:19
+msgid ""
+"\n"
+"Self-service Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"A Self-service permission defines what an object can change in its own "
+"entry.\n"
+"\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a self-service rule to allow users to manage their address:\n"
+" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st "
+"\"Users manage their own address\"\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add telephoneNumber to the list:\n"
+" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber "
+"\"Users manage their own address\"\n"
+"\n"
+" Display our updated rule:\n"
+" ipa selfservice-show \"Users manage their own address\"\n"
+"\n"
+" Delete a rule:\n"
+" ipa selfservice-del \"Users manage their own address\"\n"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:56
+msgid ""
+"\n"
+" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a self-service ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:64
+msgid "Self-service permission '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:68
+msgid ""
+"\n"
+" Selfservice object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:75
+#, fuzzy
+msgid "Self Service Permissions"
+msgstr "Права доступу"
+
+#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
+#, fuzzy
+msgid "Self-service name"
+msgstr "Назва служби"
+
+#: ipalib/plugins/selfservice.py:114
+msgid ""
+"\n"
+" Add a new self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:118
+#, fuzzy
+msgid "Added selfservice \"%(value)s\""
+msgstr "Додано службу «%(value)s»"
+
+#: ipalib/plugins/selfservice.py:137
+msgid ""
+"\n"
+" Delete a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:142
+#, fuzzy
+msgid "Deleted selfservice \"%(value)s\""
+msgstr "Вилучено службу «%(value)s»"
+
+#: ipalib/plugins/selfservice.py:158
+msgid ""
+"\n"
+" Modify a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:162
+#, fuzzy
+msgid "Modified selfservice \"%(value)s\""
+msgstr "Змінено службу «%(value)s»"
+
+#: ipalib/plugins/selfservice.py:181
+msgid ""
+"\n"
+" Search for a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:185
+#, fuzzy
+msgid "%(count)d selfservice matched"
+msgid_plural "%(count)d selfservices matched"
+msgstr[0] "встановлено відповідність %(count)d служби"
+msgstr[1] "встановлено відповідність %(count)d служб"
+msgstr[2] "встановлено відповідність %(count)d служб"
+msgstr[3] "встановлено відповідність %(count)d служби"
+
+#: ipalib/plugins/selfservice.py:207
+msgid ""
+"\n"
+" Display information about a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:21
+msgid ""
+"\n"
+"Services\n"
+"\n"
+"A IPA service represents a service that runs on a host. The IPA service\n"
+"record can store a Kerberos principal, an SSL certificate, or both.\n"
+"\n"
+"An IPA service can be managed directly from a machine, provided that\n"
+"machine has been given the correct permission. This is true even for\n"
+"machines other than the one the service is associated with. For example,\n"
+"requesting an SSL certificate using the host service principal credentials\n"
+"of the host. To manage a service using host credentials you need to\n"
+"kinit as the host:\n"
+"\n"
+" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n"
+"\n"
+"Adding an IPA service allows the associated service to request an SSL\n"
+"certificate or keytab, but this is performed as a separate step; they\n"
+"are not produced as a result of adding the service.\n"
+"\n"
+"Only the public aspect of a certificate is stored in a service record;\n"
+"the private key is not stored.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new IPA service:\n"
+" ipa service-add HTTP/web.example.com\n"
+"\n"
+" Allow a host to manage an IPA service certificate:\n"
+" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n"
+" ipa role-add-member --hosts=web.example.com certadmin\n"
+"\n"
+" Delete an IPA service:\n"
+" ipa service-del HTTP/web.example.com\n"
+"\n"
+" Find all IPA services associated with a host:\n"
+" ipa service-find web.example.com\n"
+"\n"
+" Find all HTTP services:\n"
+" ipa service-find HTTP\n"
+"\n"
+" Disable the service Kerberos key and SSL certificate:\n"
+" ipa service-disable HTTP/web.example.com\n"
+"\n"
+" Request a certificate for an IPA service:\n"
+" ipa cert-request --principal=HTTP/web.example.com example.csr\n"
+"\n"
+" Generate and retrieve a keytab for an IPA service:\n"
+" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/"
+"httpd.keytab\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/service.py:162
+msgid ""
+"\n"
+" For now just verify that it is properly base64-encoded.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:175
+msgid ""
+"\n"
+" Set individual attributes from some values from a certificate.\n"
+"\n"
+" entry_attrs is a dict of an entry\n"
+"\n"
+" returns nothing\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:199
+msgid ""
+"\n"
+" Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:226
msgid "Service principal"
msgstr "Реєстраційний запис служби"
-#: ipalib/plugins/service.py:221
+#: ipalib/plugins/service.py:242
+msgid ""
+"\n"
+" Add a new IPA new service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:245
+msgid "Added service \"%(value)s\""
+msgstr "Додано службу «%(value)s»"
+
+#: ipalib/plugins/service.py:251
msgid "force principal name even if not in DNS"
msgstr ""
"примусове значення назви реєстраційного запису, навіть якщо назви немає у DNS"
-#: ipalib/plugins/service.py:292
-#, python-format
+#: ipalib/plugins/service.py:284
+msgid ""
+"\n"
+" Delete an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:287
+msgid "Deleted service \"%(value)s\""
+msgstr "Вилучено службу «%(value)s»"
+
+#: ipalib/plugins/service.py:321
+msgid ""
+"\n"
+" Modify an existing IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:324
msgid "Modified service \"%(value)s\""
msgstr "Змінено службу «%(value)s»"
-#: ipalib/plugins/service.py:323
-#, python-format
+#: ipalib/plugins/service.py:356
+msgid ""
+"\n"
+" Search for IPA services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:359
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] "встановлено відповідність %(count)d служби"
@@ -1782,39 +6307,118 @@ msgstr[1] "встановлено відповідність %(count)d служ
msgstr[2] "встановлено відповідність %(count)d служб"
msgstr[3] "встановлено відповідність %(count)d служби"
-#: ipalib/plugins/service.py:409
-msgid "Service principal has no kerberos key"
-msgstr "Реєстраційний запис служби не має ключа kerberos"
+#: ipalib/plugins/service.py:394
+msgid ""
+"\n"
+" Display information about an IPA service.\n"
+" "
+msgstr ""
-#: ipalib/plugins/sudocmd.py:60
-msgid "SudoCmds"
-msgstr "Команди sudo"
+#: ipalib/plugins/service.py:432
+msgid ""
+"\n"
+" Add hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:442
+msgid ""
+"\n"
+" Remove hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:452
+msgid ""
+"\n"
+" Disable the Kerberos key and SSL certificate of a service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:456
+#, fuzzy
+msgid "Disabled service \"%(value)s\""
+msgstr "Вилучено службу «%(value)s»"
+
+#: ipalib/plugins/sudocmd.py:19
+msgid ""
+"\n"
+"Sudo Commands\n"
+"\n"
+"Commands used as building blocks for sudo\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a new command\n"
+" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n"
+"\n"
+" Remove a command\n"
+" ipa sudocmd-del /usr/bin/less\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:46
+msgid ""
+"\n"
+" Sudo Command object.\n"
+" "
+msgstr ""
-#: ipalib/plugins/sudocmd.py:65
+#: ipalib/plugins/sudocmd.py:64
+#, fuzzy
+msgid "Sudo Commands"
+msgstr "Команда sudo"
+
+#: ipalib/plugins/sudocmd.py:69
msgid "Sudo Command"
msgstr "Команда sudo"
-#: ipalib/plugins/sudocmd.py:72
+#: ipalib/plugins/sudocmd.py:75
msgid "A description of this command"
msgstr "Опис цієї команди"
-#: ipalib/plugins/sudocmd.py:99
-#, python-format
+#: ipalib/plugins/sudocmd.py:98
+msgid ""
+"\n"
+" Create new sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:102
msgid "Added sudo command \"%(value)s\""
msgstr "Додано команду sudo «%(value)s»"
-#: ipalib/plugins/sudocmd.py:108
-#, python-format
+#: ipalib/plugins/sudocmd.py:107
+#, fuzzy
+msgid ""
+"\n"
+" Delete sudo command.\n"
+" "
+msgstr "Вилучено команду sudo «%(value)s»"
+
+#: ipalib/plugins/sudocmd.py:111
msgid "Deleted sudo command \"%(value)s\""
msgstr "Вилучено команду sudo «%(value)s»"
-#: ipalib/plugins/sudocmd.py:117
-#, python-format
+#: ipalib/plugins/sudocmd.py:116
+msgid ""
+"\n"
+" Modify command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:120
msgid "Modified sudo command \"%(value)s\""
msgstr "Змінено команду sudo «%(value)s»"
-#: ipalib/plugins/sudocmd.py:127
-#, python-format
+#: ipalib/plugins/sudocmd.py:125
+msgid ""
+"\n"
+" Search for commands.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:129
msgid "%(count)d sudo command matched"
msgid_plural "%(count)d sudo command matched"
msgstr[0] "встановлено відповідність %(count)d команди sudo"
@@ -1822,36 +6426,93 @@ msgstr[1] "встановлено відповідність %(count)d кома
msgstr[2] "встановлено відповідність %(count)d команд sudo"
msgstr[3] "встановлено відповідність %(count)d команди sudo"
-#: ipalib/plugins/sudocmdgroup.py:66 ipalib/plugins/sudocmdgroup.py:85
-#: ipalib/plugins/sudorule.py:81 ipalib/plugins/sudorule.py:85
-msgid "Sudo Command Groups"
-msgstr "Групи команд sudo"
+#: ipalib/plugins/sudocmd.py:136
+msgid ""
+"\n"
+" Display sudo command.\n"
+" "
+msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:71
-msgid "Sudo Command Group name"
-msgstr "Назва групи команд sudo"
+#: ipalib/plugins/sudocmdgroup.py:19
+msgid ""
+"\n"
+"Groups of Sudo commands\n"
+"\n"
+"Manage groups of Sudo commands.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new Sudo command group:\n"
+" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
+"\n"
+" Remove a Sudo command group:\n"
+" ipa sudocmdgroup-del admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim "
+"admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
+"\n"
+" Show a Sudo command group:\n"
+" ipa group-show localadmins\n"
+msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:81
-msgid "Commands"
-msgstr "Команди"
+#: ipalib/plugins/sudocmdgroup.py:50
+msgid ""
+"\n"
+" Sudo Group object.\n"
+" "
+msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:98
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:70
+#, fuzzy
+msgid "Sudo Command Group"
+msgstr "Групи команд sudo"
+
+#: ipalib/plugins/sudocmdgroup.py:93
+msgid ""
+"\n"
+" Create new sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:97
msgid "Added sudo command group \"%(value)s\""
msgstr "Додано групу команд sudo «%(value)s»"
-#: ipalib/plugins/sudocmdgroup.py:108
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:103
+#, fuzzy
+msgid ""
+"\n"
+" Delete sudo command group.\n"
+" "
+msgstr "Вилучено групу команд sudo «%(value)s»"
+
+#: ipalib/plugins/sudocmdgroup.py:107
msgid "Deleted sudo command group \"%(value)s\""
msgstr "Вилучено групу команд sudo «%(value)s»"
-#: ipalib/plugins/sudocmdgroup.py:118
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:113
+msgid ""
+"\n"
+" Modify group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:117
msgid "Modified sudo command group \"%(value)s\""
msgstr "Змінено групу команд sudo «%(value)s»"
-#: ipalib/plugins/sudocmdgroup.py:129
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:123
+msgid ""
+"\n"
+" Search for sudo command groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:127
msgid "%(count)d sudo command group matched"
msgid_plural "%(count)d sudo command groups matched"
msgstr[0] "встановлено відповідність %(count)d групи команд sudo"
@@ -1859,171 +6520,524 @@ msgstr[1] "встановлено відповідність %(count)d груп
msgstr[2] "встановлено відповідність %(count)d груп команд sudo"
msgstr[3] "встановлено відповідність %(count)d групи команд sudo"
-#: ipalib/plugins/sudorule.py:48
-msgid "SudoRule"
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid ""
+"\n"
+" Display sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:144
+#, fuzzy
+msgid ""
+"\n"
+" Add members to sudo command group.\n"
+" "
+msgstr "Додано групу команд sudo «%(value)s»"
+
+#: ipalib/plugins/sudocmdgroup.py:152
+msgid ""
+"\n"
+" Remove members from sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:19
+msgid ""
+"\n"
+"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
+"give certain users (or groups of users) the ability to run some (or all)\n"
+"commands as root or another user while providing an audit trail of the\n"
+"commands and their arguments.\n"
+"\n"
+"FreeIPA provides a designated binddn to use with Sudo located at:\n"
+"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
+"\n"
+"To enable the binddn run the following command to set the password:\n"
+"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -"
+"ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,"
+"dc=com\n"
+"\n"
+"For more information, see the FreeIPA Documentation to Sudo.\n"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:44
+msgid ""
+"\n"
+" Sudo Rule management\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:68
+#, fuzzy
+msgid "Sudo Rule"
msgstr "Правило sudo"
-#: ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/sudorule.py:98
+#, fuzzy
+msgid "Command category"
+msgstr "Категорія вузлів"
+
+#: ipalib/plugins/sudorule.py:99
+#, fuzzy
+msgid "Command category the rule applies to"
+msgstr "Категорія вузлів, до якої застосовується правило"
+
+#: ipalib/plugins/sudorule.py:104
+#, fuzzy
+msgid "Run As User category"
+msgstr "Категорія користувачів"
+
+#: ipalib/plugins/sudorule.py:105
+#, fuzzy
+msgid "Run As User category the rule applies to"
+msgstr "Категорія користувачів, до якої застосовується правило"
+
+#: ipalib/plugins/sudorule.py:110
+#, fuzzy
+msgid "Run As Group category"
+msgstr "Категорія користувачів"
+
+#: ipalib/plugins/sudorule.py:111
+#, fuzzy
+msgid "Run As Group category the rule applies to"
+msgstr "Категорія користувачів, до якої застосовується правило"
+
+#: ipalib/plugins/sudorule.py:131
msgid "Sudo Allow Commands"
msgstr "Команди дозволу sudo"
-#: ipalib/plugins/sudorule.py:77
+#: ipalib/plugins/sudorule.py:135
msgid "Sudo Deny Commands"
msgstr "Команди заборони sudo"
-#: ipalib/plugins/sudorule.py:109
-#, python-format
+#: ipalib/plugins/sudorule.py:147
+msgid "Run As User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:151
+#, fuzzy
+msgid "Run As Group"
+msgstr "Групи користувачів"
+
+#: ipalib/plugins/sudorule.py:156
+#, fuzzy
+msgid "External User"
+msgstr "Зовнішній вузол"
+
+#: ipalib/plugins/sudorule.py:157
+#, fuzzy
+msgid "External User the rule applies to"
+msgstr "Категорія користувачів, до якої застосовується правило"
+
+#: ipalib/plugins/sudorule.py:161
+#, fuzzy
+msgid "RunAs External User"
+msgstr "Зовнішній вузол"
+
+#: ipalib/plugins/sudorule.py:162
+msgid "External User the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:166
+#, fuzzy
+msgid "RunAs External Group"
+msgstr "Зовнішній вузол"
+
+#: ipalib/plugins/sudorule.py:167
+msgid "External Group the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:175
+msgid ""
+"\n"
+" Create new Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "Added sudo rule \"%(value)s\""
msgstr "Додано правило sudo «%(value)s»"
-#: ipalib/plugins/taskgroup.py:51
-msgid "Task Groups"
-msgstr "Групи завдань"
+#: ipalib/plugins/sudorule.py:189
+msgid ""
+"\n"
+" Delete Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:56
-msgid "Task-group name"
-msgstr "Назва групи завдань"
+#: ipalib/plugins/sudorule.py:197
+msgid ""
+"\n"
+" Modify Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:63
-msgid "Task-group description"
-msgstr "Опис групи завдань"
+#: ipalib/plugins/sudorule.py:205
+msgid ""
+"\n"
+" Search for Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:74
-msgid "Member role-groups"
-msgstr "Групи ролей-учасники"
+#: ipalib/plugins/sudorule.py:213
+msgid ""
+"\n"
+" Display Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:87
-#, python-format
-msgid "Added taskgroup \"%(value)s\""
-msgstr "Додано групу завдань «%(value)s»"
+#: ipalib/plugins/sudorule.py:221
+msgid ""
+"\n"
+" Enable a Sudo rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:97
-#, python-format
-msgid "Deleted taskgroup \"%(value)s\""
-msgstr "Вилучено групу завдань «%(value)s»"
+#: ipalib/plugins/sudorule.py:247
+msgid ""
+"\n"
+" Disable a Sudo rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:107
-#, python-format
-msgid "Modified taskgroup \"%(value)s\""
-msgstr "Змінено групу завдань «%(value)s»"
+#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
+msgid ""
+"\n"
+" Add commands and sudo command groups affected by Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:118
-#, python-format
-msgid "%(count)d taskgroup matched"
-msgid_plural "%(count)d taskgroups matched"
-msgstr[0] "встановлено відповідність %(count)d групи завдань"
-msgstr[1] "встановлено відповідність %(count)d груп завдань"
-msgstr[2] "встановлено відповідність %(count)d груп завдань"
-msgstr[3] "встановлено відповідність %(count)d групи завдань"
-
-#: ipalib/plugins/user.py:84
+#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
+msgid ""
+"\n"
+" Remove commands and sudo command groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:313
+msgid ""
+"\n"
+" Add users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:349
+msgid ""
+"\n"
+" Remove users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:383
+msgid ""
+"\n"
+" Add hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:419
+msgid ""
+"\n"
+" Remove hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:453
+msgid ""
+"\n"
+" Add user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:489
+msgid ""
+"\n"
+" Remove user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:523
+msgid ""
+"\n"
+" Add group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:559
+msgid ""
+"\n"
+" Remove group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:593
+msgid ""
+"\n"
+" Add an option to the Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
+#, fuzzy
+msgid "Sudo Option"
+msgstr "Команда sudo"
+
+#: ipalib/plugins/sudorule.py:635
+msgid ""
+"\n"
+" Remove an option from Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:20
+msgid ""
+"\n"
+"Users\n"
+"\n"
+"Manage user entries. All users are POSIX users.\n"
+"\n"
+"IPA supports a wide range of username formats, but you need to be aware of "
+"any\n"
+"restrictions that may apply to your particular environment. For example,\n"
+"usernames that start with a digit or usernames that exceed a certain length\n"
+"may cause problems for some UNIX systems.\n"
+"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n"
+"\n"
+"Disabling a user account prevents that user from obtaining new Kerberos\n"
+"credentials. It does not invalidate any credentials that have already\n"
+"been issued.\n"
+"\n"
+"Password management is not a part of this module. For more information\n"
+"about this topic please see: ipa help passwd\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1\n"
+"\n"
+" Find all users whose entries include the string \"Tim\":\n"
+" ipa user-find Tim\n"
+"\n"
+" Find all users with \"Tim\" as the first name:\n"
+" ipa user-find --first=Tim\n"
+"\n"
+" Disable a user account:\n"
+" ipa user-disable tuser1\n"
+"\n"
+" Enable a user account:\n"
+" ipa user-enable tuser1\n"
+"\n"
+" Delete a user:\n"
+" ipa user-del tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/user.py:79
+msgid ""
+"\n"
+" User object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:116
msgid "User login"
msgstr "Користувач"
-#: ipalib/plugins/user.py:91
+#: ipalib/plugins/user.py:123
msgid "First name"
msgstr "Ім'я"
-#: ipalib/plugins/user.py:95
+#: ipalib/plugins/user.py:127
msgid "Last name"
msgstr "Прізвище"
-#: ipalib/plugins/user.py:103
+#: ipalib/plugins/user.py:130
+#, fuzzy
+msgid "Full name"
+msgstr "Назва правила"
+
+#: ipalib/plugins/user.py:135
+#, fuzzy
+msgid "Display name"
+msgstr "Ім'я"
+
+#: ipalib/plugins/user.py:140
+msgid "Initials"
+msgstr ""
+
+#: ipalib/plugins/user.py:146
+#, fuzzy
+msgid "Home directory"
+msgstr "Адреса домашніх каталогів"
+
+#: ipalib/plugins/user.py:150
msgid "GECOS field"
msgstr "Поле GECOS"
-#: ipalib/plugins/user.py:109
+#: ipalib/plugins/user.py:156
msgid "Login shell"
msgstr "Оболонка входу"
-#: ipalib/plugins/user.py:114
+#: ipalib/plugins/user.py:161
msgid "Kerberos principal"
msgstr "Реєстраційний запис Kerberos"
-#: ipalib/plugins/user.py:120
+#: ipalib/plugins/user.py:168
msgid "Email address"
msgstr "Адреса ел. пошти"
-#: ipalib/plugins/user.py:124
-msgid "Password"
-msgstr "Пароль"
-
-#: ipalib/plugins/user.py:125
-msgid "Set the user password"
+#: ipalib/plugins/user.py:173
+#, fuzzy
+msgid "Prompt to set the user password"
msgstr "Встановити пароль користувача"
-#: ipalib/plugins/user.py:132
+#: ipalib/plugins/user.py:180
msgid "UID"
msgstr "UID"
-#: ipalib/plugins/user.py:133
+#: ipalib/plugins/user.py:181
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
"Ідентифікаційний номер користувача (система призначить його, якщо не буде "
"вказано)"
-#: ipalib/plugins/user.py:139
+#: ipalib/plugins/user.py:188
+#, fuzzy
+msgid "Group ID Number"
+msgstr "Назва групи"
+
+#: ipalib/plugins/user.py:193
msgid "Street address"
msgstr "Вулиця і будинок"
-#: ipalib/plugins/user.py:142
-msgid "Groups"
-msgstr "Групи"
-
-#: ipalib/plugins/user.py:146
-msgid "Netgroups"
-msgstr "Мережеві групи"
+#: ipalib/plugins/user.py:197
+msgid "City"
+msgstr ""
-#: ipalib/plugins/user.py:150
-msgid "Rolegroups"
-msgstr "Групи ролей"
+#: ipalib/plugins/user.py:201
+msgid "State/Province"
+msgstr ""
-#: ipalib/plugins/user.py:154
-msgid "Taskgroups"
-msgstr "Групи завдань"
+#: ipalib/plugins/user.py:204
+msgid "ZIP"
+msgstr ""
-#: ipalib/plugins/user.py:159
+#: ipalib/plugins/user.py:208
msgid "Telephone Number"
msgstr "Номер телефону"
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:211
msgid "Mobile Telephone Number"
msgstr "Номер мобільного телефону"
-#: ipalib/plugins/user.py:163
+#: ipalib/plugins/user.py:214
msgid "Pager Number"
msgstr "Номер пейджера"
-#: ipalib/plugins/user.py:166
+#: ipalib/plugins/user.py:218
msgid "Fax Number"
msgstr "Номер факсу"
-#: ipalib/plugins/user.py:177
-#, python-format
+#: ipalib/plugins/user.py:222
+msgid "Org. Unit"
+msgstr ""
+
+#: ipalib/plugins/user.py:225
+msgid "Job Title"
+msgstr ""
+
+#: ipalib/plugins/user.py:228
+msgid "Manager"
+msgstr ""
+
+#: ipalib/plugins/user.py:231
+msgid "Car License"
+msgstr ""
+
+#: ipalib/plugins/user.py:234
+#, fuzzy
+msgid "Account disabled"
+msgstr "Параметри облікового запису"
+
+#: ipalib/plugins/user.py:258
+msgid ""
+"\n"
+" Given a userid verify the user's existence and return the dn.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:276
+#, fuzzy
+msgid "manager %(manager)s not found"
+msgstr "Контейнера для %(container)s не знайдено"
+
+#: ipalib/plugins/user.py:281
+msgid ""
+"\n"
+" Convert a manager dn into a userid\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:295
+msgid ""
+"\n"
+" Add a new user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:298
msgid "Added user \"%(value)s\""
msgstr "Додано користувача «%(value)s»"
-#: ipalib/plugins/user.py:226
-#, python-format
+#: ipalib/plugins/user.py:303
+#, fuzzy
+msgid "Don't create user private group"
+msgstr "Типова група користувачів"
+
+#: ipalib/plugins/user.py:333
+#, fuzzy
+msgid "can be at most %(len)d characters"
+msgstr "не повинне перевищувати %(maxlength)d символів у довжину"
+
+#: ipalib/plugins/user.py:400
+msgid ""
+"\n"
+" Delete a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:404
msgid "Deleted user \"%(value)s\""
msgstr "Вилучено користувача «%(value)s»"
-#: ipalib/plugins/user.py:240
-#, python-format
+#: ipalib/plugins/user.py:413
+msgid ""
+"\n"
+" Modify a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:417
msgid "Modified user \"%(value)s\""
msgstr "Змінено користувача «%(value)s»"
-#: ipalib/plugins/user.py:252
+#: ipalib/plugins/user.py:437
+msgid ""
+"\n"
+" Search for users.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:444
msgid "Self"
msgstr "Self"
-#: ipalib/plugins/user.py:253
+#: ipalib/plugins/user.py:445
msgid "Display user record for current Kerberos principal"
msgstr ""
"Показати запис користувача для поточного реєстраційного запису Kerberos"
-#: ipalib/plugins/user.py:263
-#, python-format
+#: ipalib/plugins/user.py:463
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] "встановлено відповідність %(count)d користувача"
@@ -2031,19 +7045,561 @@ msgstr[1] "встановлено відповідність %(count)d кори
msgstr[2] "встановлено відповідність %(count)d користувачів"
msgstr[3] "встановлено відповідність %(count)d користувача"
-#: ipalib/plugins/user.py:283
-#, python-format
+#: ipalib/plugins/user.py:471
+msgid ""
+"\n"
+" Display information about a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:484
+#, fuzzy
+msgid ""
+"\n"
+" Disable a user account.\n"
+" "
+msgstr "Вимкнено обліковий запис користувача «%(value)s»"
+
+#: ipalib/plugins/user.py:489
msgid "Disabled user account \"%(value)s\""
msgstr "Вимкнено обліковий запис користувача «%(value)s»"
-#: ipalib/plugins/user.py:309
-#, python-format
+#: ipalib/plugins/user.py:507
+#, fuzzy
+msgid ""
+"\n"
+" Enable a user account.\n"
+" "
+msgstr "Увімкнено обліковий запис користувача «%(value)s»"
+
+#: ipalib/plugins/user.py:512
msgid "Enabled user account \"%(value)s\""
msgstr "Увімкнено обліковий запис користувача «%(value)s»"
-#: ipaserver/install/certs.py:599 ipaserver/plugins/dogtag.py:1313
-#: ipaserver/plugins/dogtag.py:1398 ipaserver/plugins/dogtag.py:1463
-#: ipaserver/plugins/dogtag.py:1543 ipaserver/plugins/dogtag.py:1602
+#: ipalib/plugins/user.py:529
+msgid ""
+"\n"
+" Unlock a user account\n"
+"\n"
+" An account may become locked if the password is entered incorrectly too\n"
+" many times within a specific time period as controlled by password\n"
+" policy. A locked account is a temporary condition and may be unlocked "
+"by\n"
+" an administrator.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:538
+#, fuzzy
+msgid "Unlocked account \"%(value)s\""
+msgstr "Увімкнено обліковий запис користувача «%(value)s»"
+
+#: ipalib/plugins/virtual.py:20
+msgid ""
+"\n"
+"Base classes for non-LDAP backend plugins.\n"
+msgstr ""
+
+#: ipalib/plugins/virtual.py:28
+msgid ""
+"\n"
+" A command that doesn't use the LDAP backend but wants to use the\n"
+" LDAP access control system to make authorization decisions.\n"
+"\n"
+" The class variable operation is the commonName attribute of the\n"
+" entry to be tested against.\n"
+"\n"
+" In advance, you need to create an entry of the form:\n"
+" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
+"\n"
+" Ex.\n"
+" cn=request certificate, cn=virtual operations,cn=etc, dc=example, "
+"dc=com\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/virtual.py:44
+msgid ""
+"\n"
+" Perform an LDAP query to determine authorization.\n"
+"\n"
+" This should be executed before any actual work is done.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/xmlclient.py:21
+msgid ""
+"\n"
+"XML-RPC client plugin.\n"
+msgstr ""
+
+#: ipalib/cli.py:581
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr "Введіть %(label)s ще раз для перевірки: "
+
+#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
+#, c-format
+msgid "Passwords do not match!"
+msgstr "Паролі не збігаються!"
+
+#: ipalib/cli.py:590
+msgid "Cancelled."
+msgstr "Скасовано."
+
+#: ipalib/cli.py:819
+#, fuzzy
+msgid "Command name"
+msgstr "Команди"
+
+#: ipalib/cli.py:1117
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:300
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr "Клієнт %(cver)s є несумісним з сервером %(sver)s на %(server)r"
+
+#: ipalib/errors.py:318
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr "%(server)s повідомляє про невідому помилку %(code)d: %(error)s"
+
+#: ipalib/errors.py:334
+msgid "an internal error has occurred"
+msgstr "сталася внутрішня помилка"
+
+#: ipalib/errors.py:356
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr "на сервері %(server)r сталася внутрішня помилка"
+
+#: ipalib/errors.py:372
+#, python-format
+msgid "unknown command %(name)r"
+msgstr "невідома команда %(name)r"
+
+#: ipalib/errors.py:389 ipalib/errors.py:414
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr "помилка на сервері %(server)r: %(error)s"
+
+#: ipalib/errors.py:405
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr "не вдалося встановити з’єднання з %(uri)r: %(error)s"
+
+#: ipalib/errors.py:423
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr "некоректний запит JSON-RPC: %(error)s"
+
+#: ipalib/errors.py:439
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:465
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr "Помилка Kerberos: %(major)s/%(minor)s"
+
+#: ipalib/errors.py:482
+msgid "did not receive Kerberos credentials"
+msgstr "не отримано реєстраційних даних Kerberos"
+
+#: ipalib/errors.py:498
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr "У базі даних Kerberos не виявлено служби %(service)r"
+
+#: ipalib/errors.py:514
+msgid "No credentials cache found"
+msgstr "Не знайдено кешу реєстраційних даних"
+
+#: ipalib/errors.py:530
+msgid "Ticket expired"
+msgstr "Сплив строк дії квитка"
+
+#: ipalib/errors.py:546
+msgid "Credentials cache permissions incorrect"
+msgstr "Помилкові права доступу до кешу реєстраційних даних"
+
+#: ipalib/errors.py:562
+msgid "Bad format in credentials cache"
+msgstr "Помилковий формат кешу реєстраційних даних"
+
+#: ipalib/errors.py:578
+msgid "Cannot resolve KDC for requested realm"
+msgstr "Не вдалося визначити KDC для бажаної області (realm)"
+
+#: ipalib/errors.py:597
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr "Недостатні права для доступу: %(info)s"
+
+#: ipalib/errors.py:641
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr "команда %(name)r не приймає ніяких аргументів"
+
+#: ipalib/errors.py:661
+#, python-format
+msgid "command %(name)r takes at most %(count)d argument"
+msgid_plural "command %(name)r takes at most %(count)d arguments"
+msgstr[0] "команда %(name)r приймає не більше %(count)d аргументу"
+msgstr[1] "команда %(name)r приймає не більше %(count)d аргументів"
+msgstr[2] "команда %(name)r приймає не більше %(count)d аргументів"
+msgstr[3] "команда %(name)r приймає не більше %(count)d аргументу"
+
+#: ipalib/errors.py:691
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr "перекриття аргументів і параметрів: %(names)r"
+
+#: ipalib/errors.py:707
+#, python-format
+msgid "%(name)r is required"
+msgstr "Слід вказати %(name)r"
+
+#: ipalib/errors.py:723 ipalib/errors.py:739
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr "некоректне %(name)r: %(error)s"
+
+#: ipalib/errors.py:755
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr "api не надає такого простору назв: %(name)r"
+
+#: ipalib/errors.py:764
+msgid "Passwords do not match"
+msgstr "Паролі не збігаються"
+
+#: ipalib/errors.py:773
+msgid "Command not implemented"
+msgstr "Команду не реалізовано"
+
+#: ipalib/errors.py:782
+msgid "Client is not configured. Run ipa-client-install."
+msgstr ""
+
+#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
+#: ipalib/errors.py:1424 ipalib/errors.py:1441
+#, python-format
+msgid "%(reason)s"
+msgstr "%(reason)s"
+
+#: ipalib/errors.py:826
+msgid "This entry already exists"
+msgstr "Цей запис вже існує"
+
+#: ipalib/errors.py:842
+msgid "You must enroll a host in order to create a host service"
+msgstr "Щоб створити службу вузла, вам слід зареєструвати вузол"
+
+#: ipalib/errors.py:858
+#, python-format
+msgid ""
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr ""
+"Реєстраційний запис служби вказано у формі, відмінній від: служба/повна "
+"назва вузла: %(reason)s"
+
+#: ipalib/errors.py:874
+msgid ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr ""
+"Область дії реєстраційного запису не збігається з областю цього сервера IPA"
+
+#: ipalib/errors.py:890
+msgid "This command requires root access"
+msgstr "Для виконання цієї команди потрібні права доступу користувача root"
+
+#: ipalib/errors.py:906
+msgid "This is already a posix group"
+msgstr "Вже є posix-групою"
+
+#: ipalib/errors.py:922
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+"Реєстраційний запис вказано у формі, відмінній від користувач@ОБЛАСТЬ: "
+"%(principal)r"
+
+#: ipalib/errors.py:938
+#, fuzzy
+msgid "This entry is already enabled"
+msgstr "Цей запис вже розблоковано"
+
+#: ipalib/errors.py:954
+#, fuzzy
+msgid "This entry is already disabled"
+msgstr "Цей запис вже заблоковано"
+
+#: ipalib/errors.py:970
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:986
+#, fuzzy
+msgid "This entry is not a member"
+msgstr "Цей запис не є елементом групи"
+
+#: ipalib/errors.py:1002
+msgid "A group may not be a member of itself"
+msgstr "Група не може бути елементом самої себе"
+
+#: ipalib/errors.py:1018
+#, fuzzy
+msgid "This entry is already a member"
+msgstr "Цей запис вже є елементом групи"
+
+#: ipalib/errors.py:1034
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr "Помилка декодування Base64: %(reason)s"
+
+#: ipalib/errors.py:1066
+msgid "A group may not be added as a member of itself"
+msgstr "Групу не може бути додано як елемент самої себе"
+
+#: ipalib/errors.py:1082
+msgid "The default users group cannot be removed"
+msgstr "Не можна вилучати типову групу користувачів"
+
+#: ipalib/errors.py:1098
+msgid "Host does not have corresponding DNS A record"
+msgstr "Вузол не має відповідного запису DNS A"
+
+#: ipalib/errors.py:1113
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr "Вилучення керованих груп заборонено. Спочатку групу слід від’єднати."
+
+#: ipalib/errors.py:1128
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1160
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1176
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1192
+#, python-format
+msgid ""
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1216
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr "не виявлено ні команди, ні запису довідки %(topic)r"
+
+#: ipalib/errors.py:1240
+msgid "change collided with another change"
+msgstr "зміна конфліктує з іншою внесеною зміною"
+
+#: ipalib/errors.py:1256
+msgid "no modifications to be performed"
+msgstr "змін не внесено"
+
+#: ipalib/errors.py:1272
+#, fuzzy, python-format
+msgid "%(desc)s: %(info)s"
+msgstr "%(desc)s:%(info)s"
+
+#: ipalib/errors.py:1288
+msgid "limits exceeded for this query"
+msgstr "цим запитом перевищено обмеження"
+
+#: ipalib/errors.py:1303
+#, python-format
+msgid "%(info)s"
+msgstr "%(info)s"
+
+#: ipalib/errors.py:1318
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1334
+#, fuzzy, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr "Можна використовувати лише одне значення"
+
+#: ipalib/errors.py:1350
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1366
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1391
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr "Не вдалося завершити дію з сертифікатом: %(error)s"
+
+#: ipalib/errors.py:1407
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr "Помилка форматування сертифіката: %(error)s"
+
+#: ipalib/errors.py:1458
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1474
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:398
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+"Список результатів обрізано. Спробуйте точніше визначити критерії пошуку."
+
+#: ipalib/frontend.py:850
+msgid ""
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:856
+#, fuzzy
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr "вивести записи у формі, у якій вони зберігаються на сервері"
+
+#: ipalib/frontend.py:985
+msgid "Forward to server instead of running locally"
+msgstr "Переспрямувати на сервер замість локального виконання"
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr "Словник, що відповідає запису LDAP"
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr "Список записів LDAP"
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr "Виконання всіх команд має призводити до якогось результату"
+
+#: ipalib/parameters.py:296
+msgid "incorrect type"
+msgstr "помилковий тип"
+
+#: ipalib/parameters.py:299
+msgid "Only one value is allowed"
+msgstr "Можна використовувати лише одне значення"
+
+#: ipalib/parameters.py:901
+msgid "must be True or False"
+msgstr "має дорівнювати True або False"
+
+#: ipalib/parameters.py:1002
+msgid "must be an integer"
+msgstr "має бути цілим числом"
+
+#: ipalib/parameters.py:1054
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr "має бути числом, не меншим за %(minvalue)d"
+
+#: ipalib/parameters.py:1064
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr "не може перевищувати %(maxvalue)d"
+
+#: ipalib/parameters.py:1074
+msgid "must be a decimal number"
+msgstr "має бути десятковим числом"
+
+#: ipalib/parameters.py:1097
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr "має бути числом, не меншим за %(minvalue)f"
+
+#: ipalib/parameters.py:1107
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr "не може перевищувати %(maxvalue)f"
+
+#: ipalib/parameters.py:1174
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr "має відповідати шаблону «%(pattern)s»"
+
+#: ipalib/parameters.py:1192
+msgid "must be binary data"
+msgstr "має бути бінарними даними"
+
+#: ipalib/parameters.py:1208
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr "має бути розміром, не менше за %(minlength)d байтів"
+
+#: ipalib/parameters.py:1218
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr "не повинне перевищувати за розміром %(maxlength)d байтів"
+
+#: ipalib/parameters.py:1228
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr "має бути розміром точно у %(length)d байтів"
+
+#: ipalib/parameters.py:1246
+msgid "must be Unicode text"
+msgstr "має бути текстом у Unicode"
+
+#: ipalib/parameters.py:1277
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr "має бути не меншим за %(minlength)d символів довжиною"
+
+#: ipalib/parameters.py:1287
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr "не повинне перевищувати %(maxlength)d символів у довжину"
+
+#: ipalib/parameters.py:1297
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr "має бути точно %(length)d символів у довжину"
+
+#: ipalib/parameters.py:1315
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1355
+#, python-format
+msgid "must be one of %(values)r"
+msgstr "має бути одним зі таких значень: %(values)r"
+
+#: ipalib/util.py:200
+#, python-format
+msgid "Permission denied: %(file)s"
+msgstr ""
+
+#: ipalib/x509.py:174
+#, python-format
+msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
+msgstr ""
+
+#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
+#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
+#: ipaserver/plugins/dogtag.py:1600
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr "Не вдалося обмінятися даними з CMS (%s)"
@@ -2064,29 +7620,29 @@ msgstr "Апаратна платформа вузла (наприклад, «Le
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr "Операційна система вузла і її версія (наприклад, «Fedora 9»)"
-#: ipaserver/plugins/selfsign.py:98
+#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
-"Request subject \"%(request_subject)s\" does not match the form \"%"
-"(subject_base)s\""
+"Request subject \"%(request_subject)s\" does not match the form "
+"\"%(subject_base)s\""
msgstr ""
-"Об’єкт запиту «%(request_subject)s» вказано у формі, відмінній від «%"
-"(subject_base)s»"
+"Об’єкт запиту «%(request_subject)s» вказано у формі, відмінній від "
+"«%(subject_base)s»"
-#: ipaserver/plugins/selfsign.py:103
+#: ipaserver/plugins/selfsign.py:104
#, python-format
msgid "unable to decode csr: %s"
msgstr "не вдалося декодувати csr: %s"
-#: ipaserver/plugins/selfsign.py:124 ipaserver/plugins/selfsign.py:139
+#: ipaserver/plugins/selfsign.py:125 ipaserver/plugins/selfsign.py:140
msgid "file operation"
msgstr "дія над файлами"
-#: ipaserver/plugins/selfsign.py:153
+#: ipaserver/plugins/selfsign.py:154
msgid "cannot obtain next serial number"
msgstr "не вдалося отримати наступний серійний номер"
-#: ipaserver/plugins/selfsign.py:188
+#: ipaserver/plugins/selfsign.py:189
msgid "certutil failure"
msgstr "помилка certutil"
@@ -2100,226 +7656,233 @@ msgstr "не вдалося відкрити файл налаштувань %s\
msgid "cannot stat() configuration file %s\n"
msgstr "не вдалося обробити функцією stat() файл налаштування %s\n"
-#: ipa-client/config.c:75
+#: ipa-client/config.c:68
+#, fuzzy, c-format
+msgid "out of memory\n"
+msgstr "Не вистачає пам'яті\n"
+
+#: ipa-client/config.c:79
#, c-format
msgid "read error\n"
msgstr "помилка читання\n"
-#: ipa-client/ipa-getkeytab.c:138 ipa-client/ipa-getkeytab.c:838
+#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
+#: ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr "Невдала спроба ініціалізації контексту Kerberos\n"
+
+#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr "Немає основних системних типів шифрування?!\n"
-#: ipa-client/ipa-getkeytab.c:146
+#: ipa-client/ipa-getkeytab.c:155
#, c-format
msgid "Out of memory!?\n"
msgstr "Не вистачає пам'яті!?\n"
-#: ipa-client/ipa-getkeytab.c:164 ipa-client/ipa-getkeytab.c:179
+#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
#, c-format
msgid "Out of memory\n"
msgstr "Не вистачає пам'яті\n"
-#: ipa-client/ipa-getkeytab.c:194
+#: ipa-client/ipa-getkeytab.c:203
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr "Попередження: невідомий тип шифрування: [%s]\n"
-#: ipa-client/ipa-getkeytab.c:209
+#: ipa-client/ipa-getkeytab.c:218
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr "Попередження: невідомий тип солі (salt): [%s]\n"
-#: ipa-client/ipa-getkeytab.c:235
+#: ipa-client/ipa-getkeytab.c:245
#, c-format
msgid "Enctype comparison failed!\n"
msgstr "Спроба порівняння значень типу шифрування зазнала невдачі!\n"
-#: ipa-client/ipa-getkeytab.c:297
+#: ipa-client/ipa-getkeytab.c:307
#, c-format
msgid "Failed to create random key!\n"
msgstr "Не вдалося створити випадковий ключ!\n"
-#: ipa-client/ipa-getkeytab.c:310 ipa-client/ipa-getkeytab.c:327
-#: ipa-client/ipa-getkeytab.c:335 ipa-client/ipa-getkeytab.c:372
+#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
+#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
#, c-format
msgid "Failed to create key!\n"
msgstr "Не вдалося створити ключ!\n"
-#: ipa-client/ipa-getkeytab.c:317 ipa-client/ipa-getkeytab.c:350
+#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
+#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
+#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
+#: ipa-client/ipa-join.c:819
#, c-format
msgid "Out of memory!\n"
msgstr "Не вистачає пам'яті!\n"
-#: ipa-client/ipa-getkeytab.c:361
+#: ipa-client/ipa-getkeytab.c:371
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr "Помилковий або непідтримуваний тип солі (salt) (%d)!\n"
-#: ipa-client/ipa-getkeytab.c:481
+#: ipa-client/ipa-getkeytab.c:492
#, c-format
msgid "No keys accepted by KDC\n"
msgstr "Жоден з ключів не прийнято KDC\n"
-#: ipa-client/ipa-getkeytab.c:496
+#: ipa-client/ipa-getkeytab.c:507
#, c-format
msgid "Out of memory \n"
msgstr "Не вистачає пам'яті \n"
-#: ipa-client/ipa-getkeytab.c:534
+#: ipa-client/ipa-getkeytab.c:545
#, c-format
msgid "Out of Memory!\n"
msgstr "Не вистачає пам'яті!\n"
-#: ipa-client/ipa-getkeytab.c:541
+#: ipa-client/ipa-getkeytab.c:552
#, c-format
msgid "Failed to create control!\n"
msgstr "Не вдалося створити керування!\n"
-#: ipa-client/ipa-getkeytab.c:565
+#: ipa-client/ipa-getkeytab.c:576
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr "Не вдалося ініціалізувати бібліотеку ldap!\n"
-#: ipa-client/ipa-getkeytab.c:572
+#: ipa-client/ipa-getkeytab.c:583
#, c-format
msgid "Unable to set ldap options!\n"
msgstr "Не вдалося встановити значення параметрів ldap!\n"
-#: ipa-client/ipa-getkeytab.c:579
+#: ipa-client/ipa-getkeytab.c:596
#, c-format
msgid "Simple bind failed\n"
msgstr "Невдала спроба простого прив’язування\n"
-#: ipa-client/ipa-getkeytab.c:589
+#: ipa-client/ipa-getkeytab.c:606
#, c-format
msgid "SASL Bind failed!\n"
msgstr "Невдала спроба прив’язування SASL!\n"
-#: ipa-client/ipa-getkeytab.c:605 ipa-client/ipa-getkeytab.c:618
-#: ipa-client/ipa-getkeytab.c:625 ipa-client/ipa-getkeytab.c:632
+#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
+#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
#, c-format
msgid "Operation failed! %s\n"
msgstr "Невдала спроба виконання дії! %s\n"
-#: ipa-client/ipa-getkeytab.c:638 ipa-client/ipa-getkeytab.c:648
+#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
#, c-format
msgid "Missing reply control!\n"
msgstr "Немає керування відповіддю!\n"
-#: ipa-client/ipa-getkeytab.c:655
+#: ipa-client/ipa-getkeytab.c:672
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr "Спроба виконання ber_init() зазнала невдачі. Некоректне керування?!\n"
-#: ipa-client/ipa-getkeytab.c:674
+#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr "Спроба виконання ber_scanf() зазнала невдачі. Некоректне керування?!\n"
-#: ipa-client/ipa-getkeytab.c:715
+#: ipa-client/ipa-getkeytab.c:736
msgid "New Principal Password"
msgstr "Новий пароль реєстраційного запису"
-#: ipa-client/ipa-getkeytab.c:721
+#: ipa-client/ipa-getkeytab.c:742
msgid "Verify Principal Password"
msgstr "Перевірка пароля реєстраційного запису"
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Print as little as possible"
msgstr "Виводити мінімум даних"
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Output only on errors"
msgstr "Виводити лише повідомлення про помилки"
-#: ipa-client/ipa-getkeytab.c:781
+#: ipa-client/ipa-getkeytab.c:778
msgid "Contact this specific KDC Server"
msgstr "Встановити зв’язок з вказаним сервером KDC"
-#: ipa-client/ipa-getkeytab.c:782
+#: ipa-client/ipa-getkeytab.c:779
msgid "Server Name"
msgstr "Назва сервера"
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
"Реєстраційний запис, для якого слід отримати таблицю ключів (приклад: ftp/"
"ftp.example.com@EXAMPLE.COM)"
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:189
+#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr "Назва реєстраційного запису служби Kerberos"
-#: ipa-client/ipa-getkeytab.c:787 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr "Файл, у якому зберігатимуться дані таблиці ключів"
-#: ipa-client/ipa-getkeytab.c:788 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr "Назва файла таблиці ключів"
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:787
msgid "Encryption types to request"
msgstr "Типи шифрування, запит щодо яких слід надсилати"
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:788
msgid "Comma separated encryption types list"
msgstr "Список типів шифрування, відокремлених комами"
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:790
msgid "Show the list of permitted encryption types and exit"
msgstr "Показати список дозволених типів шифрування і завершити роботу"
-#: ipa-client/ipa-getkeytab.c:794
+#: ipa-client/ipa-getkeytab.c:791
msgid "Permitted Encryption Types"
msgstr "Дозволені типи шифрування"
-#: ipa-client/ipa-getkeytab.c:796
+#: ipa-client/ipa-getkeytab.c:793
msgid "Asks for a non-random password to use for the principal"
msgstr ""
"Запитати невипадковий пароль, який слід використати для реєстраційного запису"
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "LDAP DN"
msgstr "DN LDAP"
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "DN to bind as if not using kerberos"
msgstr ""
"DN, до якого слід виконати прив’язку, якщо не використовується kerberos"
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "LDAP password"
msgstr "Пароль LDAP"
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "password to use if not using kerberos"
msgstr "пароль, який слід використати, якщо не використовується kerberos"
-#: ipa-client/ipa-getkeytab.c:825 ipa-client/ipa-rmkeytab.c:207
-#, c-format
-msgid "Kerberos context initialization failed\n"
-msgstr "Невдала спроба ініціалізації контексту Kerberos\n"
-
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:837
#, c-format
msgid "Supported encryption types:\n"
msgstr "Підтримувані типи шифрування:\n"
-#: ipa-client/ipa-getkeytab.c:845
+#: ipa-client/ipa-getkeytab.c:841
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr "Попередження: не вдалося виконати перетворення типу (№%d)\n"
-#: ipa-client/ipa-getkeytab.c:864
+#: ipa-client/ipa-getkeytab.c:860
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr "У разі використання прив’язки DN слід вказати пароль прив’язки.\n"
-#: ipa-client/ipa-getkeytab.c:877
+#: ipa-client/ipa-getkeytab.c:873
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. -P)\n"
@@ -2327,18 +7890,18 @@ msgstr ""
"Попередження: для випадкових паролів типи солі (salt) не мають значення "
"(див. параметр -P)\n"
-#: ipa-client/ipa-getkeytab.c:889
+#: ipa-client/ipa-getkeytab.c:885
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr "Некоректна назва реєстраційного запису служби\n"
-#: ipa-client/ipa-getkeytab.c:897
+#: ipa-client/ipa-getkeytab.c:893
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
"Не знайдено кешу реєстраційних даних Kerberos. Чи є у вас квиток Kerberos?\n"
-#: ipa-client/ipa-getkeytab.c:905
+#: ipa-client/ipa-getkeytab.c:901
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
@@ -2346,202 +7909,217 @@ msgstr ""
"Не знайдено реєстраційного запису користувача Kerberos. Ви маєте ви "
"коректний кеш реєстраційних даних?\n"
-#: ipa-client/ipa-getkeytab.c:913
+#: ipa-client/ipa-getkeytab.c:909
#, c-format
msgid "Failed to open Keytab\n"
msgstr "Не вдалося відкрити таблицю ключів\n"
-#: ipa-client/ipa-getkeytab.c:920
+#: ipa-client/ipa-getkeytab.c:916
#, c-format
msgid "Failed to create key material\n"
msgstr "Не вдалося створити вихідні дані для ключа\n"
-#: ipa-client/ipa-getkeytab.c:939
+#: ipa-client/ipa-getkeytab.c:935
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr "Не вдалося додати ключ до таблиці ключів\n"
-#: ipa-client/ipa-getkeytab.c:948
+#: ipa-client/ipa-getkeytab.c:944
#, c-format
msgid "Failed to close the keytab\n"
msgstr "Не вдалося закрити таблицю ключів\n"
-#: ipa-client/ipa-getkeytab.c:954
+#: ipa-client/ipa-getkeytab.c:950
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr "Таблицю ключів успішно отримати і збережено до: %s\n"
-#: ipa-client/ipa-join.c:67
+#: ipa-client/ipa-join.c:65
#, c-format
msgid "No permission to join this host to the IPA domain.\n"
msgstr "Немає дозволу на долучення цього вузла до домену IPA.\n"
-#: ipa-client/ipa-join.c:104 ipa-client/ipa-join.c:116
+#: ipa-client/ipa-join.c:94 ipa-client/ipa-join.c:106
#, c-format
msgid "No write permissions on keytab file '%s'\n"
msgstr "Немає дозволу на запис до файла таблиці ключів «%s»\n"
-#: ipa-client/ipa-join.c:121
+#: ipa-client/ipa-join.c:111
#, c-format
msgid "access() on %s failed: errno = %d\n"
msgstr "Невдала спроба виконання access() для %s: номер помилки = %d\n"
-#: ipa-client/ipa-join.c:200
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#, fuzzy, c-format
+msgid "Out of memory!"
+msgstr "Не вистачає пам'яті!\n"
+
+#: ipa-client/ipa-join.c:204
+#, fuzzy, c-format
+msgid "Unable to initialize connection to ldap server: %s"
+msgstr "Не вдалося ініціалізувати бібліотеку ldap!\n"
+
+#: ipa-client/ipa-join.c:210
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr "Не вдалося увімкнути SSL у LDAP\n"
-#: ipa-client/ipa-join.c:206
+#: ipa-client/ipa-join.c:216
#, c-format
msgid "Unable to set LDAP version\n"
msgstr "Не вдалося встановити версію LDAP\n"
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:236
#, c-format
msgid "Bind failed: %s\n"
msgstr "Невдала спроба прив’язки: %s\n"
-#: ipa-client/ipa-join.c:249
+#: ipa-client/ipa-join.c:269
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
"Спроба пошуку %s у rootdse завершилася невдало з повідомленням про помилку %d"
-#: ipa-client/ipa-join.c:259 ipa-client/ipa-join.c:311
+#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
#, c-format
msgid "No values for %s"
msgstr "Немає значень %s"
-#: ipa-client/ipa-join.c:302
+#: ipa-client/ipa-join.c:322
#, c-format
msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
"Спроба пошуку ipaCertificateSubjectBase завершилася невдало з повідомлення "
"про помилку %d"
-#: ipa-client/ipa-join.c:368
+#: ipa-client/ipa-join.c:390
#, c-format
msgid "Unable to determine root DN of %s\n"
msgstr "Не вдалося визначити кореневий DN %s\n"
-#: ipa-client/ipa-join.c:377
+#: ipa-client/ipa-join.c:399
#, c-format
msgid "Unable to determine certificate subject of %s\n"
msgstr "Не вдалося визначити призначення сертифіката %s\n"
-#: ipa-client/ipa-join.c:385
+#: ipa-client/ipa-join.c:407
#, c-format
msgid "Unable to make an LDAP connection to %s\n"
msgstr "Не вдалося створити з’єднання LDAP з %s\n"
-#: ipa-client/ipa-join.c:394
+#: ipa-client/ipa-join.c:432
#, c-format
msgid "Searching with %s in %s\n"
msgstr "Пошук на основі %s у %s\n"
-#: ipa-client/ipa-join.c:400
+#: ipa-client/ipa-join.c:438
#, c-format
msgid "ldap_search_ext_s: %s\n"
msgstr "ldap_search_ext_s: %s\n"
-#: ipa-client/ipa-join.c:408
+#: ipa-client/ipa-join.c:446
#, c-format
msgid "Unable to find host '%s'\n"
msgstr "Не вдалося знайти вузол «%s»\n"
-#: ipa-client/ipa-join.c:415
+#: ipa-client/ipa-join.c:453
#, c-format
msgid "Unable to get binddn for host '%s'\n"
msgstr "Не вдалося отримати binddn для вузла «%s»\n"
-#: ipa-client/ipa-join.c:428
+#: ipa-client/ipa-join.c:466
#, c-format
msgid "Host already has principal, trying bind anyway\n"
msgstr "У вузла вже є реєстраційний запис, повторна спроба прив’язки\n"
-#: ipa-client/ipa-join.c:442 ipa-client/ipa-join.c:579
+#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
#, c-format
msgid "Host is already joined.\n"
msgstr "Вузол вже приєднано.\n"
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:484
#, c-format
msgid "Incorrect password.\n"
msgstr "Некоректний пароль.\n"
-#: ipa-client/ipa-join.c:457
+#: ipa-client/ipa-join.c:495
#, c-format
msgid "principal not found in host entry\n"
msgstr "у запису вузла реєстраційного запису не знайдено\n"
-#: ipa-client/ipa-join.c:564
+#: ipa-client/ipa-join.c:618
#, c-format
msgid "principal not found in XML-RPC response\n"
msgstr "реєстраційного запису не знайдено у XML-RPC відповіді\n"
-#: ipa-client/ipa-join.c:646 ipa-client/ipa-join.c:823
+#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr "Не вдалося визначити сервер IPA з %s\n"
-#: ipa-client/ipa-join.c:662 ipa-client/ipa-join.c:838
+#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr "Назву вузла слід вказувати повністю: %s\n"
-#: ipa-client/ipa-join.c:671 ipa-client/ipa-join.c:848
+#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
"Не вдалося долучити вузол: невдала спроба ініціалізації контексту Kerberos\n"
-#: ipa-client/ipa-join.c:679
+#: ipa-client/ipa-join.c:732
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr "Помилка при визначенні адрес таблиці ключів: %s.\n"
-#: ipa-client/ipa-join.c:689
+#: ipa-client/ipa-join.c:741
+#, fuzzy, c-format
+msgid "Error getting default Kerberos realm: %s.\n"
+msgstr "Помилка під час отримання початкових реєстраційних даних: %s.\n"
+
+#: ipa-client/ipa-join.c:759
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr "Помилка під час обробки «%s»: %s.\n"
-#: ipa-client/ipa-join.c:707
+#: ipa-client/ipa-join.c:777
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr "Помилка під час отримання початкових реєстраційних даних: %s.\n"
-#: ipa-client/ipa-join.c:718
+#: ipa-client/ipa-join.c:788
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr "Не вдалося створити кеш реєстраційних даних Kerberos\n"
-#: ipa-client/ipa-join.c:726
+#: ipa-client/ipa-join.c:796
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr "Помилка під час спроби збереження реєстраційних даних у кеші: %s.\n"
-#: ipa-client/ipa-join.c:769
+#: ipa-client/ipa-join.c:846
#, c-format
msgid "Unenrollment successful.\n"
msgstr "Успішне скасування реєстрації.\n"
-#: ipa-client/ipa-join.c:772
+#: ipa-client/ipa-join.c:849
#, c-format
msgid "Unenrollment failed.\n"
msgstr "Спроба скасування реєстрації зазнала невдачі.\n"
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:854
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr "у відповіді XML-RPC не знайдено результату\n"
-#: ipa-client/ipa-join.c:855
+#: ipa-client/ipa-join.c:932
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
"Не вдалося долучити вузол: не знайдено кешу реєстраційних даних Kerberos\n"
-#: ipa-client/ipa-join.c:863
+#: ipa-client/ipa-join.c:940
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not "
@@ -2550,109 +8128,123 @@ msgstr ""
"Не вдалося долучити вузол: не знайдено реєстраційного запису користувача "
"Kerberos і не вказано пароля вузла.\n"
-#: ipa-client/ipa-join.c:877
+#: ipa-client/ipa-join.c:954
#, c-format
msgid "fork() failed\n"
msgstr "невдала спроба виконання fork()\n"
-#: ipa-client/ipa-join.c:906
+#: ipa-client/ipa-join.c:983
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr "Не знайдено ipa-getkeytab\n"
-#: ipa-client/ipa-join.c:909
+#: ipa-client/ipa-join.c:986
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr "Помилкові права доступу до ipa-getkeytab?\n"
-#: ipa-client/ipa-join.c:912
+#: ipa-client/ipa-join.c:989
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr "спроба виконання ipa-getkeytab зазнала невдачі, номер помилки %d\n"
-#: ipa-client/ipa-join.c:924
+#: ipa-client/ipa-join.c:1001
#, c-format
msgid "child exited with %d\n"
msgstr "дочірній процес завершив роботу з повідомленням %d\n"
-#: ipa-client/ipa-join.c:930
+#: ipa-client/ipa-join.c:1007
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr "Базовий об’єкт сертифікації: %s\n"
-#: ipa-client/ipa-join.c:963
-msgid "Print the raw XML-RPC output"
+#: ipa-client/ipa-join.c:1042
+#, fuzzy
+msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr "Вивести дані XML-RPC без обробки"
-#: ipa-client/ipa-join.c:963
-msgid "XML-RPC debugging Output"
-msgstr "Діагностичні дані XML-RPC"
-
-#: ipa-client/ipa-join.c:967
-msgid "Unenroll this host"
-msgstr "Скасувати реєстрацію цього вузла"
+#: ipa-client/ipa-join.c:1044
+msgid "Quiet mode. Only errors are displayed."
+msgstr ""
-#: ipa-client/ipa-join.c:967
+#: ipa-client/ipa-join.c:1046
msgid "Unenroll this host from IPA server"
msgstr "Скасувати реєстрацію цього вузла на сервері IPA"
-#: ipa-client/ipa-join.c:969
-msgid "Use this hostname instead of the node name"
-msgstr "Використовувати цю назву замість назви вузла"
+#: ipa-client/ipa-join.c:1048
+msgid "Hostname of this server"
+msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Host Name"
+#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+#, fuzzy
+msgid "hostname"
msgstr "Назва вузла"
-#: ipa-client/ipa-join.c:971
+#: ipa-client/ipa-join.c:1050
msgid "IPA Server to use"
msgstr "Сервер IPA, який слід використовувати"
-#: ipa-client/ipa-join.c:971
-msgid "IPA Server Name"
-msgstr "Назва сервера IPA"
+#: ipa-client/ipa-join.c:1052
+#, fuzzy
+msgid "Specifies where to store keytab information."
+msgstr "Файл, у якому зберігатимуться дані таблиці ключів"
+
+#: ipa-client/ipa-join.c:1052
+#, fuzzy
+msgid "filename"
+msgstr "Назва правила"
-#: ipa-client/ipa-rmkeytab.c:44
+#: ipa-client/ipa-join.c:1054
+#, fuzzy
+msgid "LDAP password (if not using Kerberos)"
+msgstr "пароль, який слід використати, якщо не використовується kerberos"
+
+#: ipa-client/ipa-join.c:1054
+#, fuzzy
+msgid "password"
+msgstr "Пароль"
+
+#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
msgstr "Не вдалося обробити назву реєстраційного запису\n"
-#: ipa-client/ipa-rmkeytab.c:46
+#: ipa-client/ipa-rmkeytab.c:45
#, c-format
msgid "krb5_parse_name %d: %s\n"
msgstr "krb5_parse_name %d: %s\n"
-#: ipa-client/ipa-rmkeytab.c:56
+#: ipa-client/ipa-rmkeytab.c:55
#, c-format
msgid "Removing principal %s\n"
msgstr "Вилучення реєстраційного запису %s\n"
-#: ipa-client/ipa-rmkeytab.c:69
+#: ipa-client/ipa-rmkeytab.c:68
#, c-format
msgid "Failed to open keytab\n"
msgstr "Не вдалося відкрити таблицю ключів\n"
-#: ipa-client/ipa-rmkeytab.c:73
+#: ipa-client/ipa-rmkeytab.c:72
#, c-format
msgid "principal not found\n"
msgstr "реєстраційного запису не знайдено\n"
-#: ipa-client/ipa-rmkeytab.c:75
+#: ipa-client/ipa-rmkeytab.c:74
#, c-format
msgid "krb5_kt_get_entry %d: %s\n"
msgstr "krb5_kt_get_entry %d: %s\n"
-#: ipa-client/ipa-rmkeytab.c:83
+#: ipa-client/ipa-rmkeytab.c:82
#, c-format
msgid "Unable to remove entry\n"
msgstr "Не вдалося вилучити запис\n"
-#: ipa-client/ipa-rmkeytab.c:85
+#: ipa-client/ipa-rmkeytab.c:84
#, c-format
msgid "kvno %d\n"
msgstr "kvno %d\n"
-#: ipa-client/ipa-rmkeytab.c:86
+#: ipa-client/ipa-rmkeytab.c:85
#, c-format
msgid "krb5_kt_remove_entry %d: %s\n"
msgstr "krb5_kt_remove_entry %d: %s\n"
@@ -2667,37 +8259,145 @@ msgstr "Не вдалося обробити реєстраційний запи
msgid "krb5_unparse_name %d: %s\n"
msgstr "krb5_unparse_name %d: %s\n"
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:143
+#, fuzzy, c-format
+msgid "realm not found\n"
+msgstr "реєстраційного запису не знайдено\n"
+
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Print debugging information"
msgstr "Вивести діагностичні дані"
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Debugging output"
msgstr "Діагностична інформація"
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Remove all principals in this realm"
msgstr "Вилучити всі реєстраційні записи у цій області"
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Realm name"
msgstr "Назва області"
-#: ipa-client/ipa-rmkeytab.c:241
-#, c-format
-msgid "Failed to open keytab '%s'\n"
+#: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237
+#, fuzzy, c-format
+msgid "Failed to open keytab '%s': %s\n"
msgstr "Не вдалося відкрити таблицю ключів «%s»\n"
-#: ipa-client/ipa-rmkeytab.c:255
+#: ipa-client/ipa-rmkeytab.c:253
#, c-format
msgid "Closing keytab failed\n"
msgstr "Спроба закриття таблиці ключів зазнала невдачі\n"
-#: ipa-client/ipa-rmkeytab.c:257
+#: ipa-client/ipa-rmkeytab.c:255
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr "krb5_kt_close %d: %s\n"
+#~ msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
+#~ msgstr ""
+#~ "Для цього запису встановлено атрибут nsAccountLock, запис не можна "
+#~ "заблокувати або розблокувати"
+
+#~ msgid "retrieve all attributes"
+#~ msgstr "отримати всі атрибути"
+
+#~ msgid "Taskgroup"
+#~ msgstr "Група завдань"
+
+#~ msgid "Taskgroup ACI grants access to"
+#~ msgstr "Група завдань, до якої надає доступ ACI"
+
+#~ msgid "Set an attribute to an name/value pair. Format is attr=value"
+#~ msgstr ""
+#~ "Встановити для атрибута пару назва-значення. Формат: атрибут=значення"
+
+#~ msgid "Default e-mail domain"
+#~ msgstr "Типовий домен ел. пошти"
+
+#~ msgid "Zone"
+#~ msgstr "Зона"
+
+#~ msgid "Record type"
+#~ msgstr "Тип запису"
+
+#~ msgid "Type-specific data"
+#~ msgstr "Специфічні для типу дані"
+
+#~ msgid "Search criteria"
+#~ msgstr "Критерій пошуку"
+
+#~ msgid "type-specific data"
+#~ msgstr "специфічні для типу дані"
+
+#~ msgid "Description of service"
+#~ msgstr "Опис служби"
+
+#~ msgid "Removed kerberos key from \"%(value)s\""
+#~ msgstr "Вилучено ключ kerberos з «%(value)s»"
+
+#~ msgid "Host principal has no kerberos key"
+#~ msgstr "У реєстраційного запису вузла немає ключа kerberos"
+
+#~ msgid "Net Groups"
+#~ msgstr "Мережеві групи"
+
+#~ msgid "Role Groups"
+#~ msgstr "Групи ролей"
+
+#~ msgid "Role-group name"
+#~ msgstr "Назва групи ролей"
+
+#~ msgid "Member of task-groups"
+#~ msgstr "Учасник групи завдань"
+
+#~ msgid "Service principal has no kerberos key"
+#~ msgstr "Реєстраційний запис служби не має ключа kerberos"
+
+#~ msgid "Sudo Command Group name"
+#~ msgstr "Назва групи команд sudo"
+
+#~ msgid "Task Groups"
+#~ msgstr "Групи завдань"
+
+#~ msgid "Task-group name"
+#~ msgstr "Назва групи завдань"
+
+#~ msgid "Task-group description"
+#~ msgstr "Опис групи завдань"
+
+#~ msgid "Member role-groups"
+#~ msgstr "Групи ролей-учасники"
+
+#~ msgid "Added taskgroup \"%(value)s\""
+#~ msgstr "Додано групу завдань «%(value)s»"
+
+#~ msgid "Deleted taskgroup \"%(value)s\""
+#~ msgstr "Вилучено групу завдань «%(value)s»"
+
+#~ msgid "Modified taskgroup \"%(value)s\""
+#~ msgstr "Змінено групу завдань «%(value)s»"
+
+#~ msgid "%(count)d taskgroup matched"
+#~ msgid_plural "%(count)d taskgroups matched"
+#~ msgstr[0] "встановлено відповідність %(count)d групи завдань"
+#~ msgstr[1] "встановлено відповідність %(count)d груп завдань"
+#~ msgstr[2] "встановлено відповідність %(count)d груп завдань"
+#~ msgstr[3] "встановлено відповідність %(count)d групи завдань"
+
+#~ msgid "Taskgroups"
+#~ msgstr "Групи завдань"
+
+#~ msgid "XML-RPC debugging Output"
+#~ msgstr "Діагностичні дані XML-RPC"
+
+#~ msgid "Unenroll this host"
+#~ msgstr "Скасувати реєстрацію цього вузла"
+
+#~ msgid "Use this hostname instead of the node name"
+#~ msgstr "Використовувати цю назву замість назви вузла"
+
#~ msgid "Locked user \"%(value)s\""
#~ msgstr "Заблоковано користувача «%(value)s»"
diff --git a/install/po/zh_CN.po b/install/po/zh_CN.po
index 4ef37d566..731ca567a 100644
--- a/install/po/zh_CN.po
+++ b/install/po/zh_CN.po
@@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: ipa\n"
"Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/"
"newticket\n"
-"POT-Creation-Date: 2010-10-13 14:22-0400\n"
+"POT-Creation-Date: 2011-06-06 13:27-0400\n"
"PO-Revision-Date: 2010-03-18 22:43+0800\n"
"Last-Translator: Jake Li <gnozil@gmail.com>\n"
"Language-Team: Chinese Simplified <zh_CN>\n"
@@ -20,1525 +20,4903 @@ msgstr ""
"X-Poedit-Country: CHINA\n"
"X-Generator: Lokalize 1.0\n"
-#: ipalib/cli.py:507
-#, python-format
-msgid "Enter %(label)s again to verify: "
-msgstr "再次输入 %(label)s进行校验: "
-
-#: ipalib/cli.py:511 ipa-client/ipa-getkeytab.c:730
-#, c-format
-msgid "Passwords do not match!"
-msgstr "密码不匹配!"
-
-#: ipalib/cli.py:516
-msgid "Cancelled."
-msgstr "已取消"
+#: ipalib/plugins/__init__.py:20
+msgid ""
+"\n"
+"Sub-package containing all core plugins.\n"
+msgstr ""
-#: ipalib/errors.py:297
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+#: ipalib/plugins/aci.py:20
+msgid ""
+"\n"
+"Directory Server Access Control Instructions (ACIs)\n"
+"\n"
+"ACIs are used to allow or deny access to information. This module is\n"
+"currently designed to allow, not deny, access.\n"
+"\n"
+"The aci commands are designed to grant permissions that allow updating\n"
+"existing entries or adding or deleting new ones. The goal of the ACIs\n"
+"that ship with IPA is to provide a set of low-level permissions that\n"
+"grant access to special groups called taskgroups. These low-level\n"
+"permissions can be combined into roles that grant broader access. These\n"
+"roles are another type of group, roles.\n"
+"\n"
+"For example, if you have taskgroups that allow adding and modifying users "
+"you\n"
+"could create a role, useradmin. You would assign users to the useradmin\n"
+"role to allow them to do the operations defined by the taskgroups.\n"
+"\n"
+"You can create ACIs that delegate permission so users in group A can write\n"
+"attributes on group B.\n"
+"\n"
+"The type option is a map that applies to all entries in the users, groups "
+"or\n"
+"host location. It is primarily designed to be used when granting add\n"
+"permissions (to write new entries).\n"
+"\n"
+"An ACI consists of three parts:\n"
+"1. target\n"
+"2. permissions\n"
+"3. bind rules\n"
+"\n"
+"The target is a set of rules that define which LDAP objects are being\n"
+"targeted. This can include a list of attributes, an area of that LDAP\n"
+"tree or an LDAP filter.\n"
+"\n"
+"The targets include:\n"
+"- attrs: list of attributes affected\n"
+"- type: an object type (user, group, host, service, etc)\n"
+"- memberof: members of a group\n"
+"- targetgroup: grant access to modify a specific group. This is primarily\n"
+" designed to enable users to add or remove members of a specific group.\n"
+"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
+"- subtree: Used to apply a rule across an entire set of objects. For "
+"example,\n"
+" to allow adding users you need to grant \"add\" permission to the subtree\n"
+" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
+" is a fail-safe for objects that may not be covered by the type option.\n"
+"\n"
+"The permissions define what the the ACI is allowed to do, and are one or\n"
+"more of:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
+"allows this to be any valid LDAP entry but we encourage the use of\n"
+"taskgroups so that the rights can be easily shared through roles.\n"
+"\n"
+"For a more thorough description of access controls see\n"
+"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control."
+"html\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
+"demonstrate how the various options work but this is done via the "
+"permission\n"
+"command-line now (see last example).\n"
+"\n"
+" Add an ACI so that the group \"secretaries\" can update the address on any "
+"user:\n"
+" ipa group-add --desc=\"Office secretaries\" secretaries\n"
+" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries "
+"--permissions=write --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Show the new ACI:\n"
+" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Add an ACI that allows members of the \"addusers\" permission to add new "
+"users:\n"
+" ipa aci-add --type=user --permission=addusers --permissions=add --"
+"prefix=none \"Add new users\"\n"
+"\n"
+" Add an ACI that allows members of the editors manage members of the admins "
+"group:\n"
+" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --"
+"group=editors --prefix=none \"Editors manage admins\"\n"
+"\n"
+" Add an ACI that allows members of the admin group to manage the street and "
+"zip code of those in the editors group:\n"
+" ipa aci-add --permissions=write --memberof=editors --group=admins --"
+"attrs=street,postalcode --prefix=none \"admins edit the address of editors"
+"\"\n"
+"\n"
+" Add an ACI that allows the admins group manage the street and zipcode of "
+"those who work for the boss:\n"
+" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode "
+"--filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --"
+"prefix=none \"Edit the address of those who work for the boss\"\n"
+"\n"
+" Add an entirely new kind of record to IPA that isn't covered by any of the "
+"--type options, creating a permission:\n"
+" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,"
+"cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
+"\n"
+"\n"
+"The show command shows the raw 389-ds ACI.\n"
+"\n"
+"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
+"must include all existing attributes as well. When doing an aci-mod the\n"
+"targetattr REPLACES the current attributes, it does not add to them.\n"
+"\n"
msgstr ""
-#: ipalib/errors.py:315
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
-#: ipalib/errors.py:331
-msgid "an internal error has occurred"
-msgstr "发生了一个内部错误"
+#: ipalib/plugins/aci.py:172
+msgid ""
+"\n"
+" Given a name and a prefix construct an ACI name.\n"
+" "
+msgstr ""
-#: ipalib/errors.py:353
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
-msgstr "服务器%(server)r上发生了一个内部错误"
+#: ipalib/plugins/aci.py:181
+msgid ""
+"\n"
+" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
+" and the actual ACI name.\n"
+" "
+msgstr ""
-#: ipalib/errors.py:369
-#, python-format
-msgid "unknown command %(name)r"
-msgstr "未知的命令%(name)r"
+#: ipalib/plugins/aci.py:193
+msgid ""
+"\n"
+" Pull the group name out of a memberOf filter\n"
+" "
+msgstr ""
-#: ipalib/errors.py:386 ipalib/errors.py:411
-#, python-format
-msgid "error on server %(server)r: %(error)s"
+#: ipalib/plugins/aci.py:204
+msgid ""
+"\n"
+" Given a name and a set of keywords construct an ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:402
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
-msgstr "无法连接到%(uri)r: %(error)s"
+#: ipalib/plugins/aci.py:215
+msgid "type, filter, subtree and targetgroup are mutually exclusive"
+msgstr ""
-#: ipalib/errors.py:420
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
-msgstr "无效的JSON-RPC请求: %(error)s"
+#: ipalib/plugins/aci.py:218
+#, fuzzy
+msgid "ACI prefix is required"
+msgstr "需要%(name)r"
-#: ipalib/errors.py:448
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
+#: ipalib/plugins/aci.py:221
+msgid ""
+"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
+"required"
msgstr ""
-#: ipalib/errors.py:465
-msgid "did not receive Kerberos credentials"
+#: ipalib/plugins/aci.py:224
+msgid "filter and memberof are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:481
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
+#: ipalib/plugins/aci.py:230
+msgid "group, permission and self are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:497
-msgid "No credentials cache found"
+#: ipalib/plugins/aci.py:232
+msgid "One of group, permission or self is required"
msgstr ""
-#: ipalib/errors.py:513
-msgid "Ticket expired"
-msgstr ""
+#: ipalib/plugins/aci.py:251
+msgid "Group '%s' does not exist"
+msgstr "组 '%s' 不存在"
-#: ipalib/errors.py:529
-msgid "Credentials cache permissions incorrect"
+#: ipalib/plugins/aci.py:273
+msgid "empty filter"
msgstr ""
-#: ipalib/errors.py:545
-msgid "Bad format in credentials cache"
-msgstr ""
+#: ipalib/plugins/aci.py:294
+#, fuzzy
+msgid "Syntax Error: %(error)s"
+msgstr "%(name)r无效: %(error)s"
-#: ipalib/errors.py:561
-msgid "Cannot resolve KDC for requested realm"
+#: ipalib/plugins/aci.py:299
+msgid ""
+"Convert an ACI into its equivalent keywords.\n"
+"\n"
+" This is used for the modify operation so we can merge the\n"
+" incoming kw and existing ACI and pass the result to\n"
+" _make_aci().\n"
+" "
msgstr ""
-#: ipalib/errors.py:580
-#, python-format
-msgid "Insufficient access: %(info)s"
+#: ipalib/plugins/aci.py:379
+msgid "ACI with name \"%s\" not found"
msgstr ""
-#: ipalib/errors.py:624
-#, python-format
-msgid "command %(name)r takes no arguments"
-msgstr "命令 %(name)r不需要参数"
-
-#: ipalib/errors.py:644
-#, python-format
-msgid "command %(name)r takes at most %(count)d argument"
-msgid_plural "command %(name)r takes at most %(count)d arguments"
-msgstr[0] "命令 %(name)r最多接受%(count)d个参数"
-msgstr[1] "命令 %(name)r最多接受%(count)d个参数"
-
-#: ipalib/errors.py:674
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
+#: ipalib/plugins/aci.py:400
+msgid "ACI prefix"
msgstr ""
-#: ipalib/errors.py:690
-#, python-format
-msgid "%(name)r is required"
-msgstr "需要%(name)r"
+#: ipalib/plugins/aci.py:401
+msgid ""
+"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
+"none)"
+msgstr ""
-#: ipalib/errors.py:706 ipalib/errors.py:722
-#, python-format
-msgid "invalid %(name)r: %(error)s"
-msgstr "%(name)r无效: %(error)s"
+#: ipalib/plugins/aci.py:407
+msgid ""
+"\n"
+" ACI object.\n"
+" "
+msgstr ""
-#: ipalib/errors.py:738
-#, python-format
-msgid "api has no such namespace: %(name)r"
-msgstr "API没有这个名字空间: %(name)r"
+#: ipalib/plugins/aci.py:412
+msgid "ACIs"
+msgstr "ACIs"
-#: ipalib/errors.py:747
-msgid "Passwords do not match"
-msgstr "密码不匹配"
+#: ipalib/plugins/aci.py:417
+msgid "ACI name"
+msgstr "ACI名称"
-#: ipalib/errors.py:755
-msgid "Command not implemented"
-msgstr "命令没有实现"
+#: ipalib/plugins/aci.py:422
+#, fuzzy
+msgid "Permission"
+msgstr "权限"
-#: ipalib/errors.py:783 ipalib/errors.py:1023 ipalib/errors.py:1254
-#, python-format
-msgid "%(reason)s"
-msgstr "%(reason)s"
+#: ipalib/plugins/aci.py:423
+msgid "Permission ACI grants access to"
+msgstr ""
-#: ipalib/errors.py:799
-msgid "This entry already exists"
-msgstr "条目已经存在"
+#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+msgid "User group"
+msgstr "用户组"
-#: ipalib/errors.py:815
-msgid "You must enroll a host in order to create a host service"
+#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/errors.py:831
-#, python-format
+#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
+#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
+#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+msgid "Permissions"
+msgstr "权限"
+
+#: ipalib/plugins/aci.py:433
msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/errors.py:847
-msgid ""
-"The realm for the principal does not match the realm for this IPA server"
+#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
+#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+msgid "Attributes"
+msgstr "属性"
+
+#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
+#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/errors.py:863
-msgid "This command requires root access"
-msgstr "该命令需要root访问权限"
+#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
+#: ipalib/plugins/permission.py:131
+msgid "Type"
+msgstr "类型"
-#: ipalib/errors.py:879
-msgid "This is already a posix group"
-msgstr "这已经是一个posix组"
+#: ipalib/plugins/aci.py:445
+msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
+msgstr ""
-#: ipalib/errors.py:895
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
+#: ipalib/plugins/aci.py:450
+msgid "Member of"
msgstr ""
-#: ipalib/errors.py:911
-msgid "This entry is already unlocked"
-msgstr "该条目已经解锁"
+#: ipalib/plugins/aci.py:451
+msgid "Member of a group"
+msgstr "组成员"
-#: ipalib/errors.py:927
-msgid "This entry is already locked"
-msgstr "该条目已经被锁定"
+#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
+#: ipalib/plugins/permission.py:144
+msgid "Filter"
+msgstr "过滤"
-#: ipalib/errors.py:943
-msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
+#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/errors.py:959
-msgid "This entry is not a member of the group"
-msgstr "该条目不是该组的成员"
-
-#: ipalib/errors.py:975
-msgid "A group may not be a member of itself"
-msgstr "一个组不能是自己的成员"
+#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+msgid "Subtree"
+msgstr "子树"
-#: ipalib/errors.py:991
-msgid "This entry is already a member of the group"
-msgstr "该条目已经是该组的成员"
+#: ipalib/plugins/aci.py:461
+msgid "Subtree to apply ACI to"
+msgstr ""
-#: ipalib/errors.py:1007
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
-msgstr "Base64解码失败: %(reason)s"
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+msgid "Target group"
+msgstr "目标组"
-#: ipalib/errors.py:1039
-msgid "A group may not be added as a member of itself"
-msgstr "一个组不能是自己的成员"
+#: ipalib/plugins/aci.py:466
+msgid "Group to apply ACI to"
+msgstr ""
-#: ipalib/errors.py:1055
-msgid "The default users group cannot be removed"
-msgstr "默认的用户组不成被删除"
+#: ipalib/plugins/aci.py:470
+msgid "Target your own entry (self)"
+msgstr ""
-#: ipalib/errors.py:1071
-msgid "Host does not have corresponding DNS A record"
+#: ipalib/plugins/aci.py:471
+msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/errors.py:1086
-msgid "Deleting a managed group is not allowed. It must be detached first."
+#: ipalib/plugins/aci.py:478
+msgid ""
+"\n"
+" Create new ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1109
-#, python-format
-msgid "no command nor help topic %(topic)r"
+#: ipalib/plugins/aci.py:482
+msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1133
-msgid "change collided with another change"
-msgstr "修改冲突"
+#: ipalib/plugins/aci.py:487
+msgid "Test the ACI syntax but don't write anything"
+msgstr ""
-#: ipalib/errors.py:1149
-msgid "no modifications to be performed"
+#: ipalib/plugins/aci.py:493
+msgid ""
+"\n"
+" Execute the aci-create operation.\n"
+"\n"
+" Returns the entry as it will be created in LDAP.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: Keyword arguments for the other LDAP attributes.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1165
-#, python-format
-msgid "%(desc)s:%(info)s"
-msgstr "%(desc)s:%(info)s"
+#: ipalib/plugins/aci.py:533
+msgid ""
+"\n"
+" Delete ACI.\n"
+" "
+msgstr ""
-#: ipalib/errors.py:1181
-msgid "limits exceeded for this query"
+#: ipalib/plugins/aci.py:538
+msgid "Deleted ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1196
-#, python-format
-msgid "%(info)s"
-msgstr "%(info)s"
+#: ipalib/plugins/aci.py:543
+msgid ""
+"\n"
+" Execute the aci-delete operation.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: unused\n"
+" "
+msgstr ""
-#: ipalib/errors.py:1221
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
+#: ipalib/plugins/aci.py:576
+msgid ""
+"\n"
+" Modify ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1237
-#, python-format
-msgid "Certificate format error: %(error)s"
+#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
+#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
+#: ipalib/plugins/selfservice.py:212
+#, fuzzy
+msgid "ACI"
+msgstr "ACIs"
+
+#: ipalib/plugins/aci.py:588
+msgid "Modified ACI \"%(value)s\""
msgstr ""
-#: ipalib/frontend.py:380
-msgid "Results are truncated, try a more specific search"
-msgstr "结果被截断,请尝试更明确的搜索"
+#: ipalib/plugins/aci.py:633
+msgid ""
+"\n"
+" Search for ACIs.\n"
+"\n"
+" Returns a list of ACIs\n"
+"\n"
+" EXAMPLES:\n"
+"\n"
+" To find all ACIs that apply directly to members of the group ipausers:\n"
+" ipa aci-find --memberof=ipausers\n"
+"\n"
+" To find all ACIs that grant add access:\n"
+" ipa aci-find --permissions=add\n"
+"\n"
+" Note that the find command only looks for the given text in the set of\n"
+" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
+" For example, searching on memberof=ipausers will find all ACIs that\n"
+" have ipausers as a memberof. There may be other ACIs that apply to\n"
+" members of that group indirectly.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:653
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+msgstr[1] ""
-#: ipalib/frontend.py:797 ipalib/plugins/misc.py:47
-msgid "retrieve all attributes"
+#: ipalib/plugins/aci.py:823
+msgid ""
+"\n"
+" Display a single ACI given an ACI name.\n"
+" "
msgstr ""
-#: ipalib/frontend.py:803
-msgid "print entries as stored on the server"
+#: ipalib/plugins/aci.py:837
+msgid ""
+"\n"
+" Execute the aci-show operation.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param uid: The login name of the user to retrieve.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/frontend.py:940
-msgid "Forward to server instead of running locally"
+#: ipalib/plugins/aci.py:865
+msgid ""
+"\n"
+" Rename an ACI.\n"
+" "
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
+#: ipalib/plugins/aci.py:878
+#, fuzzy
+msgid "New ACI name"
+msgstr "ACI名称"
+
+#: ipalib/plugins/aci.py:882
+#, fuzzy
+msgid "Renamed ACI to \"%(value)s\""
+msgstr "已删除主机 \"%(value)s\""
+
+#: ipalib/plugins/automount.py:20
+msgid ""
+"\n"
+"Automount\n"
+"\n"
+"Stores automount(8) configuration for autofs(8) in IPA.\n"
+"\n"
+"The base of an automount configuration is the configuration file auto."
+"master.\n"
+"This is also the base location in IPA. Multiple auto.master configurations\n"
+"can be stored in separate locations. A location is implementation-specific\n"
+"with the default being a location named 'default'. For example, you can "
+"have\n"
+"locations by geographic region, by floor, by type, etc.\n"
+"\n"
+"Automount has three basic object types: locations, maps and keys.\n"
+"\n"
+"A location defines a set of maps anchored in auto.master. This allows you\n"
+"to store multiple automount configurations. A location in itself isn't\n"
+"very interesting, it is just a point to start a new automount map.\n"
+"\n"
+"A map is roughly equivalent to a discrete automount file and provides\n"
+"storage for keys.\n"
+"\n"
+"A key is a mount point associated with a map.\n"
+"\n"
+"When a new location is created, two maps are automatically created for\n"
+"it: auto.master and auto.direct. auto.master is the root map for all\n"
+"automount maps for the location. auto.direct is the default map for\n"
+"direct mounts and is mounted on /-.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"Locations:\n"
+"\n"
+" Create a named location, \"Baltimore\":\n"
+" ipa automountlocation-add baltimore\n"
+"\n"
+" Display the new location:\n"
+" ipa automountlocation-show baltimore\n"
+"\n"
+" Find available locations:\n"
+" ipa automountlocation-find\n"
+"\n"
+" Remove a named automount location:\n"
+" ipa automountlocation-del baltimore\n"
+"\n"
+" Show what the automount maps would look like if they were in the "
+"filesystem:\n"
+" ipa automountlocation-tofiles baltimore\n"
+"\n"
+" Import an existing configuration into a location:\n"
+" ipa automountlocation-import baltimore /etc/auto.master\n"
+"\n"
+" The import will fail if any duplicate entries are found. For\n"
+" continuous operation where errors are ignored, use the --continue\n"
+" option.\n"
+"\n"
+"Maps:\n"
+"\n"
+" Create a new map, \"auto.share\":\n"
+" ipa automountmap-add baltimore auto.share\n"
+"\n"
+" Display the new map:\n"
+" ipa automountmap-show baltimore auto.share\n"
+"\n"
+" Find maps in the location baltimore:\n"
+" ipa automountmap-find baltimore\n"
+"\n"
+" Remove the auto.share map:\n"
+" ipa automountmap-del baltimore auto.share\n"
+"\n"
+"Keys:\n"
+"\n"
+" Create a new key for the auto.share map in location baltimore. This ties\n"
+" the map we previously created to auto.master:\n"
+" ipa automountkey-add baltimore auto.master --key=/share --info=auto."
+"share\n"
+"\n"
+" Create a new key for our auto.share map, an NFS mount for man pages:\n"
+" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,"
+"rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n"
+"\n"
+" Find all keys for the auto.share map:\n"
+" ipa automountkey-find baltimore auto.share\n"
+"\n"
+" Find all direct automount keys:\n"
+" ipa automountkey-find baltimore --key=/-\n"
+"\n"
+" Remove the man key from the auto.share map:\n"
+" ipa automountkey-del baltimore auto.share --key=man\n"
+msgstr ""
+
+#: ipalib/plugins/automount.py:182
+msgid ""
+"\n"
+" Location container for automount maps.\n"
+" "
msgstr ""
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
+#: ipalib/plugins/automount.py:190
+msgid "Automount Locations"
msgstr ""
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
+#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+msgid "Location"
+msgstr "位置"
+
+#: ipalib/plugins/automount.py:197
+msgid "Automount location name."
msgstr ""
-#: ipalib/parameters.py:295
-msgid "incorrect type"
-msgstr "不正确的类型"
+#: ipalib/plugins/automount.py:206
+msgid ""
+"\n"
+" Create a new automount location.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:298
-msgid "Only one value is allowed"
-msgstr "只允许一个值"
+#: ipalib/plugins/automount.py:221
+msgid ""
+"\n"
+" Delete an automount location.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:877
-msgid "must be True or False"
-msgstr "必须是True或False"
+#: ipalib/plugins/automount.py:229
+msgid ""
+"\n"
+" Display an automount location.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:978
-msgid "must be an integer"
-msgstr "必须是一个整数"
+#: ipalib/plugins/automount.py:237
+msgid ""
+"\n"
+" Search for an automount location.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:1029
-#, python-format
-msgid "must be at least %(minvalue)d"
+#: ipalib/plugins/automount.py:245
+msgid ""
+"\n"
+" Generate automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1039
-#, python-format
-msgid "can be at most %(maxvalue)d"
+#: ipalib/plugins/automount.py:308
+msgid ""
+"\n"
+" Import automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1049
-msgid "must be a decimal number"
-msgstr "必须是一个十进制数"
+#: ipalib/plugins/automount.py:314
+msgid "Master file"
+msgstr ""
-#: ipalib/parameters.py:1071
-#, python-format
-msgid "must be at least %(minvalue)f"
+#: ipalib/plugins/automount.py:315
+msgid "Automount master file."
msgstr ""
-#: ipalib/parameters.py:1081
-#, python-format
-msgid "can be at most %(maxvalue)f"
+#: ipalib/plugins/automount.py:322
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/parameters.py:1145
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
+#: ipalib/plugins/automount.py:334
+msgid "File %(file)s not found"
msgstr ""
-#: ipalib/parameters.py:1163
-msgid "must be binary data"
-msgstr "必须是二进制数据"
+#: ipalib/plugins/automount.py:341
+msgid ""
+"\n"
+" The basic idea is to read the master file and create all the maps\n"
+" we need, then read each map file and add all the keys for the map.\n"
+" "
+msgstr ""
-#: ipalib/parameters.py:1179
-#, python-format
-msgid "must be at least %(minlength)d bytes"
+#: ipalib/plugins/automount.py:492
+msgid ""
+"\n"
+" Automount map object.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1189
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
+#: ipalib/plugins/automount.py:505
+msgid "Map"
msgstr ""
-#: ipalib/parameters.py:1199
-#, python-format
-msgid "must be exactly %(length)d bytes"
+#: ipalib/plugins/automount.py:506
+msgid "Automount map name."
msgstr ""
-#: ipalib/parameters.py:1217
-msgid "must be Unicode text"
-msgstr "必须是Unicode文本"
+#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
+#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
+#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
+#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
+#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
+#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
+#: ipalib/plugins/sudorule.py:78
+msgid "Description"
+msgstr "描述"
-#: ipalib/parameters.py:1248
-#, python-format
-msgid "must be at least %(minlength)d characters"
+#: ipalib/plugins/automount.py:515
+msgid "Automount Maps"
msgstr ""
-#: ipalib/parameters.py:1258
-#, python-format
-msgid "can be at most %(maxlength)d characters"
+#: ipalib/plugins/automount.py:521
+msgid ""
+"\n"
+" Create a new automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1268
-#, python-format
-msgid "must be exactly %(length)d characters"
+#: ipalib/plugins/automount.py:529
+msgid ""
+"\n"
+" Delete an automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1307
-#, python-format
-msgid "must be one of %(values)r"
+#: ipalib/plugins/automount.py:548
+msgid ""
+"\n"
+" Modify an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:111
-msgid "A list of ACI values"
+#: ipalib/plugins/automount.py:556
+msgid ""
+"\n"
+" Search for an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:142
-msgid "type, filter, subtree and targetgroup are mutually exclusive"
+#: ipalib/plugins/automount.py:564
+msgid ""
+"\n"
+" Display an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:145
+#: ipalib/plugins/automount.py:572
msgid ""
-"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
-"required"
+"\n"
+" Automount key object.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:151
-msgid "group, taskgroup and self are mutually exclusive"
+#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
+#: ipalib/plugins/automount.py:850
+msgid "Key"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "One of group, taskgroup or self is required"
+#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
+#: ipalib/plugins/automount.py:851
+msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/aci.py:172
-#, python-format
-msgid "Group '%s' does not exist"
-msgstr "组 '%s' 不存在"
+#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
+#: ipalib/plugins/automount.py:855
+msgid "Mount information"
+msgstr ""
-#: ipalib/plugins/aci.py:269
-#, python-format
-msgid "ACI with name \"%s\" not found"
+#: ipalib/plugins/automount.py:597
+msgid "description"
+msgstr "描述"
+
+#: ipalib/plugins/automount.py:606
+msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/aci.py:286
-msgid "ACIs"
-msgstr "ACIs"
+#: ipalib/plugins/automount.py:607
+msgid ""
+"The key,info pair must be unique. A key named %(key)s with info %(info)s "
+"already exists"
+msgstr ""
-#: ipalib/plugins/aci.py:291
-msgid "ACI name"
-msgstr "ACI名称"
+#: ipalib/plugins/automount.py:608
+#, fuzzy
+msgid "key named %(key)s already exists"
+msgstr "条目已经存在"
-#: ipalib/plugins/aci.py:296
-msgid "Taskgroup"
-msgstr "任务组"
+#: ipalib/plugins/automount.py:609
+msgid "The automount key %(key)s with info %(info)s does not exist"
+msgstr ""
-#: ipalib/plugins/aci.py:297
-msgid "Taskgroup ACI grants access to"
+#: ipalib/plugins/automount.py:659
+msgid ""
+"More than one entry with key %(key)s found, use --info to select specific "
+"entry."
msgstr ""
-#: ipalib/plugins/aci.py:301
-msgid "User group"
-msgstr "用户组"
+#: ipalib/plugins/automount.py:717
+msgid ""
+"\n"
+" Create a new automount key.\n"
+" "
+msgstr ""
-#: ipalib/plugins/aci.py:302
-msgid "User group ACI grants access to"
+#: ipalib/plugins/automount.py:742
+msgid ""
+"\n"
+" Create a new indirect mount point.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:306
-msgid "Permissions"
-msgstr "权限"
+#: ipalib/plugins/automount.py:748
+msgid "Mount point"
+msgstr "挂载点"
+
+#: ipalib/plugins/automount.py:752
+msgid "Parent map"
+msgstr ""
+
+#: ipalib/plugins/automount.py:753
+msgid "Name of parent automount map (default: auto.master)."
+msgstr ""
-#: ipalib/plugins/aci.py:307
+#: ipalib/plugins/automount.py:772
msgid ""
-"comma-separated list of permissions to grant(read, write, add, delete, all)"
+"\n"
+" Delete an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:313
-msgid "Attributes"
-msgstr "属性"
+#: ipalib/plugins/automount.py:803
+msgid ""
+"\n"
+" Modify an automount key.\n"
+" "
+msgstr ""
-#: ipalib/plugins/aci.py:314
-msgid "Comma-separated list of attributes"
+#: ipalib/plugins/automount.py:809
+msgid "New mount information"
msgstr ""
-#: ipalib/plugins/aci.py:318
-msgid "Type"
-msgstr "类型"
+#: ipalib/plugins/automount.py:836
+msgid ""
+"\n"
+" Search for an automount key.\n"
+" "
+msgstr ""
-#: ipalib/plugins/aci.py:319
-msgid "type of IPA object (user, group, host)"
+#: ipalib/plugins/automount.py:844
+msgid ""
+"\n"
+" Display an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:324
-msgid "Member of"
+#: ipalib/plugins/baseldap.py:19
+msgid ""
+"\n"
+"Base classes for LDAP plugins.\n"
msgstr ""
-#: ipalib/plugins/aci.py:325
-msgid "Member of a group"
-msgstr "组成员"
+#: ipalib/plugins/baseldap.py:39
+msgid "Failed members"
+msgstr "失败的成员"
-#: ipalib/plugins/aci.py:329
-msgid "Filter"
-msgstr "过滤"
+#: ipalib/plugins/baseldap.py:42
+msgid "Member users"
+msgstr "成员用户"
-#: ipalib/plugins/aci.py:330
-msgid "Legal LDAP filter (e.g. ou=Engineering)"
-msgstr ""
+#: ipalib/plugins/baseldap.py:45
+msgid "Member groups"
+msgstr "成员组"
-#: ipalib/plugins/aci.py:334
-msgid "Subtree"
-msgstr "子树"
+#: ipalib/plugins/baseldap.py:48
+#, fuzzy
+msgid "Member of groups"
+msgstr "组成员"
-#: ipalib/plugins/aci.py:335
-msgid "Subtree to apply ACI to"
-msgstr ""
+#: ipalib/plugins/baseldap.py:51
+msgid "Member hosts"
+msgstr "成员主机"
-#: ipalib/plugins/aci.py:339
-msgid "Target group"
-msgstr "目标组"
+#: ipalib/plugins/baseldap.py:54
+msgid "Member host-groups"
+msgstr "主机组成员"
-#: ipalib/plugins/aci.py:340
-msgid "Group to apply ACI to"
-msgstr ""
+#: ipalib/plugins/baseldap.py:57
+msgid "Member of host-groups"
+msgstr "主机组成员"
-#: ipalib/plugins/aci.py:344
-msgid "Target your own entry (self)"
-msgstr ""
+#: ipalib/plugins/baseldap.py:66
+#, fuzzy
+msgid "Roles"
+msgstr "角色组"
-#: ipalib/plugins/aci.py:345
-msgid "Apply ACI to your own entry (self)"
+#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
+#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
+#: ipalib/plugins/sudorule.py:143
+msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/aci.py:357
-#, python-format
-msgid "Created ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:75
+msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/aci.py:407
-#, python-format
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:78
+#, fuzzy
+msgid "Member netgroups"
+msgstr "成员组"
+
+#: ipalib/plugins/baseldap.py:81
+#, fuzzy
+msgid "Member of netgroups"
+msgstr "网络组成员"
+
+#: ipalib/plugins/baseldap.py:84
+#, fuzzy
+msgid "Member services"
+msgstr "成员用户"
+
+#: ipalib/plugins/baseldap.py:87
+#, fuzzy
+msgid "Member service groups"
+msgstr "成员组"
+
+#: ipalib/plugins/baseldap.py:93
+#, fuzzy
+msgid "Member HBAC service groups"
+msgstr "成员组"
+
+#: ipalib/plugins/baseldap.py:102
+#, fuzzy
+msgid "Indirect Member users"
+msgstr "成员用户"
+
+#: ipalib/plugins/baseldap.py:105
+#, fuzzy
+msgid "Indirect Member groups"
+msgstr "成员组"
+
+#: ipalib/plugins/baseldap.py:108
+#, fuzzy
+msgid "Indirect Member hosts"
+msgstr "成员主机"
+
+#: ipalib/plugins/baseldap.py:111
+#, fuzzy
+msgid "Indirect Member host-groups"
+msgstr "主机组成员"
+
+#: ipalib/plugins/baseldap.py:114
+msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/aci.py:447
-#, python-format
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:117
+msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/aci.py:519
-#, python-format
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/baseldap.py:120
+#, fuzzy
+msgid "Indirect Member HBAC service"
+msgstr "成员用户"
-#: ipalib/plugins/automount.py:103
-msgid "Automount"
-msgstr ""
+#: ipalib/plugins/baseldap.py:123
+#, fuzzy
+msgid "Indirect Member HBAC service group"
+msgstr "成员组"
-#: ipalib/plugins/automount.py:109 ipalib/plugins/host.py:134
-msgid "Location"
-msgstr "位置"
+#: ipalib/plugins/baseldap.py:126
+#, fuzzy
+msgid "Indirect Member netgroups"
+msgstr "网络组成员"
+
+#: ipalib/plugins/baseldap.py:141
+msgid "External host"
+msgstr "外部主机"
+
+#: ipalib/plugins/baseldap.py:144
+#, fuzzy
+msgid "Failed hosts/hostgroups"
+msgstr "主机组名称"
+
+#: ipalib/plugins/baseldap.py:147
+#, fuzzy
+msgid "Failed users/groups"
+msgstr "默认用户组"
-#: ipalib/plugins/automount.py:110
-msgid "Automount location name"
+#: ipalib/plugins/baseldap.py:150
+#, fuzzy
+msgid "Failed managedby"
+msgstr "失败的成员"
+
+#: ipalib/plugins/baseldap.py:153
+#, fuzzy
+msgid "Failed to remove"
+msgstr "失败的成员"
+
+#: ipalib/plugins/baseldap.py:171
+msgid ""
+"\n"
+" Given a list of values in the form name=value, return a list of name.\n"
+" "
msgstr ""
-#: ipalib/plugins/automount.py:226
-msgid "Map"
+#: ipalib/plugins/baseldap.py:197
+msgid ""
+"\n"
+" When adding or removing reverse members we are faking an update to\n"
+" object A by updating the member attribute in object B. The memberof\n"
+" plugin makes this work by adding or removing the memberof attribute\n"
+" to/from object A, it just takes a little bit of time.\n"
+"\n"
+" This will loop for 6+ seconds, retrieving object A so we can see\n"
+" if all the memberof attributes have been updated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:241
+msgid ""
+"\n"
+" Object representing a LDAP entry.\n"
+" "
msgstr ""
-#: ipalib/plugins/automount.py:227
-msgid "Automount map name"
+#: ipalib/plugins/baseldap.py:281
+msgid "Entry"
msgstr ""
-#: ipalib/plugins/automount.py:232 ipalib/plugins/group.py:108
-#: ipalib/plugins/hbac.py:151 ipalib/plugins/hbacsvc.py:72
-#: ipalib/plugins/hbacsvcgroup.py:77 ipalib/plugins/host.py:124
-#: ipalib/plugins/hostgroup.py:81 ipalib/plugins/netgroup.py:96
-#: ipalib/plugins/rolegroup.py:90 ipalib/plugins/sudocmd.py:71
-#: ipalib/plugins/sudocmdgroup.py:77 ipalib/plugins/sudorule.py:58
-#: ipalib/plugins/taskgroup.py:62
-msgid "Description"
-msgstr "描述"
+#: ipalib/plugins/baseldap.py:283
+msgid "container entry (%(container)s) not found"
+msgstr ""
-#: ipalib/plugins/automount.py:236
-msgid "Automount Maps"
+#: ipalib/plugins/baseldap.py:284
+msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid "Key"
+#: ipalib/plugins/baseldap.py:285
+msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:309
-msgid "Automount key name"
+#: ipalib/plugins/baseldap.py:286
+msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/automount.py:314
-msgid "Mount information"
+#: ipalib/plugins/baseldap.py:415
+msgid ""
+"Add an attribute/value pair. Format is attr=value. The attribute must be "
+"part of the schema."
msgstr ""
-#: ipalib/plugins/automount.py:318
-msgid "description"
-msgstr "描述"
+#: ipalib/plugins/baseldap.py:420
+msgid ""
+"Set an attribute to a name/value pair. Format is attr=value.\n"
+"For multi-valued attributes, the command replaces the values already present."
+msgstr ""
-#: ipalib/plugins/automount.py:322
-msgid "Automount Keys"
+#: ipalib/plugins/baseldap.py:444
+msgid ""
+"\n"
+" If the set of objectclasses is limited enforce that only those\n"
+" are updated in entry_attrs (plus dn)\n"
+"\n"
+" allow_only tells us what mode to check in:\n"
+"\n"
+" If True then we enforce that the attributes must be in the list of\n"
+" allowed.\n"
+"\n"
+" If False then those attributes are not allowed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:474
+msgid ""
+"\n"
+" Callback registration interface\n"
+" "
msgstr ""
-#: ipalib/plugins/automount.py:342
-msgid "Mount point"
-msgstr "挂载点"
+#: ipalib/plugins/baseldap.py:561
+msgid ""
+"\n"
+" Create a new entry in LDAP.\n"
+" "
+msgstr ""
-#: ipalib/plugins/automount.py:346
-msgid "Parent map"
+#: ipalib/plugins/baseldap.py:703
+msgid ""
+"\n"
+" Base class for commands that need to retrieve an existing entry.\n"
+" "
msgstr ""
-#: ipalib/plugins/automount.py:347
-msgid "Name of parent automount map (default: auto.master)"
+#: ipalib/plugins/baseldap.py:727
+msgid ""
+"\n"
+" Base class for commands that need to retrieve one or more existing "
+"entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/baseldap.py:79
-#, python-format
-msgid "container entry (%(container)s) not found"
+#: ipalib/plugins/baseldap.py:733
+msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:80
-#, python-format
-msgid "%(parent)s: %(oname)s not found"
+#: ipalib/plugins/baseldap.py:750
+msgid ""
+"\n"
+" Retrieve an LDAP entry.\n"
+" "
msgstr ""
-#: ipalib/plugins/baseldap.py:81
-#, python-format
-msgid "%(pkey)s: %(oname)s not found"
+#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
+#: ipalib/plugins/internal.py:232
+msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
-msgid "Add an attribute/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+msgid ""
+"Display the access rights of this entry (requires --all). See ipa man page "
+"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:155
-msgid "Set an attribute to an name/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:821
+msgid ""
+"\n"
+" Update an LDAP entry.\n"
+" "
msgstr ""
-#: ipalib/plugins/baseldap.py:359
-msgid "Continuous mode: Don't stop on errors."
+#: ipalib/plugins/baseldap.py:837
+#, fuzzy
+msgid "Rename"
+msgstr "规则名"
+
+#: ipalib/plugins/baseldap.py:838
+msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:517
+#: ipalib/plugins/baseldap.py:957
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:674
+#: ipalib/plugins/baseldap.py:988
+msgid ""
+"\n"
+" Delete an LDAP entry and all of its direct subentries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1078
+msgid ""
+"\n"
+" Base class for member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1120
+msgid ""
+"\n"
+" Add other LDAP entries to members.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
+#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
+#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
msgid "Members that could not be added"
msgstr ""
-#: ipalib/plugins/baseldap.py:678
+#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:684 ipalib/plugins/baseldap.py:789
-msgid "Failed members"
-msgstr "失败的成员"
+#: ipalib/plugins/baseldap.py:1226
+msgid ""
+"\n"
+" Remove LDAP entries from members.\n"
+" "
+msgstr ""
-#: ipalib/plugins/baseldap.py:779
+#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:783
+#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:880
+#: ipalib/plugins/baseldap.py:1335
+msgid ""
+"\n"
+" Retrieve all LDAP entries matching the given criteria.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1344
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:881
+#: ipalib/plugins/baseldap.py:1345
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:887
+#: ipalib/plugins/baseldap.py:1351
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:888
+#: ipalib/plugins/baseldap.py:1352
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/cert.py:93
+#: ipalib/plugins/baseldap.py:1552
+msgid ""
+"\n"
+" Base class for reverse member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1574
+msgid ""
+"\n"
+" Add other LDAP entries to members in reverse.\n"
+"\n"
+" The call looks like \"add A to B\" but in fact executes\n"
+" add B to A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1654
+msgid "added"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1687
+msgid ""
+"\n"
+" Remove other LDAP entries from members in reverse.\n"
+"\n"
+" The call looks like \"remove A from B\" but in fact executes\n"
+" remove B from A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1767
+msgid "removed"
+msgstr ""
+
+#: ipalib/plugins/batch.py:21
+msgid ""
+"\n"
+"Plugin to make multiple ipa calls via one remote procedure call\n"
+"\n"
+"To run this code in the lite-server\n"
+"\n"
+"curl -H \"Content-Type:application/json\" -H \"Accept:application/"
+"json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /"
+"etc/ipa/ca.crt -d @batch_request.json -X POST http://"
+"localhost:8888/ipa/json\n"
+"\n"
+"where the contents of the file batch_request.json follow the below example\n"
+"\n"
+"{\"method\":\"batch\",\"params\":[[\n"
+" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
+" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all"
+"\":\"true\"}]},\n"
+" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
+" ],{}],\"id\":1}\n"
+"\n"
+"The format of the response is nested the same way. At the top you will see\n"
+" \"error\": null,\n"
+" \"id\": 1,\n"
+" \"result\": {\n"
+" \"count\": 3,\n"
+" \"results\": [\n"
+"\n"
+"\n"
+"And then a nested response for each IPA command method sent in the request\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/batch.py:61
+msgid "Nested Methods to execute"
+msgstr ""
+
+#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/plugins/cert.py:22
+msgid ""
+"\n"
+"IPA certificate operations\n"
+"\n"
+"Implements a set of commands for managing server SSL certificates.\n"
+"\n"
+"Certificate requests exist in the form of a Certificate Signing Request "
+"(CSR)\n"
+"in PEM format.\n"
+"\n"
+"If using the selfsign back end then the subject in the CSR needs to match\n"
+"the subject configured in the server. The dogtag CA uses just the CN\n"
+"value of the CSR and forces the rest of the subject.\n"
+"\n"
+"A certificate is stored with a service principal and a service principal\n"
+"needs a host.\n"
+"\n"
+"In order to request a certificate:\n"
+"\n"
+"* The host must exist\n"
+"* The service must exist (or you use the --add option to automatically add "
+"it)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Request a new certificate and add the principal:\n"
+" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n"
+"\n"
+" Retrieve an existing certificate:\n"
+" ipa cert-show 1032\n"
+"\n"
+" Revoke a certificate (see RFC 5280 for reason details):\n"
+" ipa cert-revoke --revocation-reason=6 1032\n"
+"\n"
+" Remove a certificate from revocation hold status:\n"
+" ipa cert-remove-hold 1032\n"
+"\n"
+" Check the status of a signing request:\n"
+" ipa cert-status 10\n"
+"\n"
+"IPA currently immediately issues (or declines) all certificate requests so\n"
+"the status of a request is not normally useful. This is for future use\n"
+"or the case where a CA does not immediately issue a certificate.\n"
+"\n"
+"The following revocation reasons are supported:\n"
+"\n"
+" * 0 - unspecified\n"
+" * 1 - keyCompromise\n"
+" * 2 - cACompromise\n"
+" * 3 - affiliationChanged\n"
+" * 4 - superseded\n"
+" * 5 - cessationOfOperation\n"
+" * 6 - certificateHold\n"
+" * 8 - removeFromCRL\n"
+" * 9 - privilegeWithdrawn\n"
+" * 10 - aACompromise\n"
+"\n"
+"Note that reason code 7 is not used. See RFC 5280 for more details:\n"
+"\n"
+"http://www.ietf.org/rfc/rfc5280.txt\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/cert.py:104
+msgid ""
+"\n"
+" Return the value of CN in the subject of the request or None\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:112
#, fuzzy
msgid "Failure decoding Certificate Signing Request:"
msgstr "不能解码项目中的证书"
-#: ipalib/plugins/cert.py:106 ipalib/plugins/cert.py:118
+#: ipalib/plugins/cert.py:115
+msgid ""
+"\n"
+" Return the first value of the subject alt name, if any\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:120
-#, python-format
+#: ipalib/plugins/cert.py:128
+msgid ""
+"\n"
+" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
+" parser.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:139
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:171 ipalib/plugins/service.py:197
+#: ipalib/plugins/cert.py:142
+msgid ""
+"\n"
+" Strip any leading and trailing cruft around the BEGIN/END block\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:162
+msgid ""
+"\n"
+" Convert a SN given in decimal or hexadecimal.\n"
+" Returns the number or None if conversion fails.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:188
+msgid ""
+"\n"
+" Given a principal with or without a realm return the\n"
+" host portion.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:202
+msgid ""
+"\n"
+" Submit a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:172
+#: ipalib/plugins/cert.py:217
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:179
+#: ipalib/plugins/cert.py:224
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:187 ipalib/plugins/cert.py:392
-#: ipalib/plugins/host.py:154 ipalib/plugins/service.py:204
+#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
+#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
+#: ipalib/plugins/service.py:232
msgid "Certificate"
msgstr "证书"
-#: ipalib/plugins/cert.py:191 ipalib/plugins/cert.py:395
+#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
msgid "Subject"
msgstr "主题"
-#: ipalib/plugins/cert.py:195 ipalib/plugins/cert.py:398
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:199 ipalib/plugins/cert.py:401
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:203 ipalib/plugins/cert.py:404
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:207 ipalib/plugins/cert.py:407
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:211 ipalib/plugins/cert.py:410
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:215 ipalib/plugins/cert.py:379
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
msgid "Serial number"
msgstr "序列号"
-#: ipalib/plugins/cert.py:223 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:357
+#: ipalib/plugins/cert.py:396
+msgid ""
+"\n"
+" Check the status of a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:402
msgid "Request id"
msgstr "请求号"
-#: ipalib/plugins/cert.py:363
+#: ipalib/plugins/cert.py:408
msgid "Request status"
msgstr "请求状态"
-#: ipalib/plugins/cert.py:380
+#: ipalib/plugins/cert.py:426
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:413
+#: ipalib/plugins/cert.py:431
+msgid ""
+"\n"
+" Retrieve an existing certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
+#: ipalib/plugins/service.py:114
msgid "Revocation reason"
msgstr "撤消原因"
-#: ipalib/plugins/cert.py:458
+#: ipalib/plugins/cert.py:466
+msgid "Output filename"
+msgstr ""
+
+#: ipalib/plugins/cert.py:467
+#, fuzzy
+msgid "File to store the certificate in."
+msgstr "撤消证书的原因(0-10)"
+
+#: ipalib/plugins/cert.py:518
+msgid ""
+"\n"
+" Revoke a certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:526
msgid "Revoked"
msgstr "撤销"
-#: ipalib/plugins/cert.py:466
+#: ipalib/plugins/cert.py:534
msgid "Reason"
msgstr "原因"
-#: ipalib/plugins/cert.py:467
+#: ipalib/plugins/cert.py:535
msgid "Reason for revoking the certificate (0-10)"
msgstr "撤消证书的原因(0-10)"
-#: ipalib/plugins/cert.py:502
+#: ipalib/plugins/cert.py:562
+msgid ""
+"\n"
+" Take a revoked certificate off hold.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:570
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:505
+#: ipalib/plugins/cert.py:573
msgid "Error"
msgstr "错误"
-#: ipalib/plugins/config.py:73
+#: ipalib/plugins/config.py:20
+msgid ""
+"\n"
+"Manage the IPA configuration\n"
+"\n"
+"Manage the default values that IPA uses and some of its tuning parameters.\n"
+"\n"
+" To show the current configuration:\n"
+" ipa config-show\n"
+"\n"
+" To modify the configuration:\n"
+" ipa config-mod --maxusername=99\n"
+"\n"
+"The available options are:\n"
+"\n"
+"User management options:\n"
+"\n"
+" --maxusername=INT Max. username length when creating/modifying a user\n"
+" --homedirectory=STR Default location of home directories (default /"
+"home)\n"
+" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
+" --defaultgroup=STR Default group for new users (default ipausers). The\n"
+" group must exist, or adding new users will fail.\n"
+" --emaildomain=STR Default e-mail domain for new users\n"
+"\n"
+"Search tuning options. These impact how much data is searched through and\n"
+"how many records may be returned on a given search.\n"
+"\n"
+" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 "
+"for\n"
+" unlimited)\n"
+" --searchrecordslimit=INT Max. number of records to search (-1 is "
+"unlimited)\n"
+"\n"
+"Server Configuration.\n"
+"\n"
+" --enable-migration=BOOL Enable migration mode\n"
+" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+"\n"
+"The password notification value is stored here so it will be replicated.\n"
+"It is not currently used to notify users in advance of an expiring\n"
+"password.\n"
+"\n"
+"Some attributes are read-only, provided only for information purposes. "
+"These\n"
+"include:\n"
+"\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
+msgstr ""
+
+#: ipalib/plugins/config.py:76
+msgid "searchtimelimit must be -1 or > 1."
+msgstr ""
+
+#: ipalib/plugins/config.py:80
+msgid ""
+"\n"
+" IPA configuration object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:78
-msgid "Max username length"
+#: ipalib/plugins/config.py:96
+#, fuzzy
+msgid "Max. username length"
msgstr "最大用户名长度"
-#: ipalib/plugins/config.py:83
+#: ipalib/plugins/config.py:101
msgid "Home directory base"
msgstr "主目录"
-#: ipalib/plugins/config.py:84
-msgid "Default location of home directories"
+#: ipalib/plugins/config.py:102
+#, fuzzy
+msgid "Default location of home directories."
msgstr "主目录的默认位置"
-#: ipalib/plugins/config.py:88
+#: ipalib/plugins/config.py:106
msgid "Default shell"
msgstr "默认shell"
-#: ipalib/plugins/config.py:89
-msgid "Default shell for new users"
+#: ipalib/plugins/config.py:107
+#, fuzzy
+msgid "Default shell for new users."
msgstr "新用户的默认shell"
-#: ipalib/plugins/config.py:93
+#: ipalib/plugins/config.py:111
msgid "Default users group"
msgstr "默认用户组"
-#: ipalib/plugins/config.py:94
-msgid "Default group for new users"
+#: ipalib/plugins/config.py:112
+#, fuzzy
+msgid "Default group for new users."
msgstr "新用户默认组"
-#: ipalib/plugins/config.py:98
-msgid "Default e-mail domain"
-msgstr "默认的邮件域名"
+#: ipalib/plugins/config.py:116
+#, fuzzy
+msgid "Default e-mail domain for new users"
+msgstr "新用户的默认邮件域名"
-#: ipalib/plugins/config.py:99
-msgid "Default e-mail domain new users"
+#: ipalib/plugins/config.py:117
+#, fuzzy
+msgid "Default e-mail domain new users."
msgstr "新用户的默认邮件域名"
-#: ipalib/plugins/config.py:103
+#: ipalib/plugins/config.py:121
msgid "Search time limit"
msgstr "搜索时间限制"
-#: ipalib/plugins/config.py:104
-msgid "Max. amount of time (sec.) for a search (-1 is unlimited)"
+#: ipalib/plugins/config.py:122
+msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:109
+#: ipalib/plugins/config.py:127
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:110
-msgid "Max. number of records to search (-1 is unlimited)"
+#: ipalib/plugins/config.py:128
+msgid "Max. number of records to search (-1 is unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:115
+#: ipalib/plugins/config.py:133
msgid "User search fields"
msgstr "用户搜索字段"
-#: ipalib/plugins/config.py:116
-msgid "A comma-separated list of fields to search when searching for users"
+#: ipalib/plugins/config.py:134
+msgid "A comma-separated list of fields to search when searching for users."
msgstr ""
-#: ipalib/plugins/config.py:121
-msgid "A comma-separated list of fields to search when searching for groups"
+#: ipalib/plugins/config.py:139
+msgid "A comma-separated list of fields to search when searching for groups."
msgstr ""
-#: ipalib/plugins/config.py:125
+#: ipalib/plugins/config.py:143
msgid "Migration mode"
msgstr "迁移模式"
-#: ipalib/plugins/config.py:126
+#: ipalib/plugins/config.py:144
#, fuzzy
-msgid "Enable migration mode"
+msgid "Enable migration mode."
msgstr "启用迁移模式"
-#: ipalib/plugins/config.py:130
+#: ipalib/plugins/config.py:148
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:131
-msgid "Base for certificate subjects (OU=Test,O=Example)"
+#: ipalib/plugins/config.py:149
+msgid "Base for certificate subjects (OU=Test,O=Example)."
+msgstr ""
+
+#: ipalib/plugins/config.py:154
+#, fuzzy
+msgid "Default group objectclasses"
+msgstr "新用户默认组"
+
+#: ipalib/plugins/config.py:155
+msgid "Default group objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:159
+#, fuzzy
+msgid "Default user objectclasses"
+msgstr "默认用户组"
+
+#: ipalib/plugins/config.py:160
+msgid "Default user objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:164
+msgid "Password Expiration Notification"
+msgstr ""
+
+#: ipalib/plugins/config.py:165
+msgid "Number of days's notice of impending password expiration."
+msgstr ""
+
+#: ipalib/plugins/config.py:170
+msgid "Password plugin features"
+msgstr ""
+
+#: ipalib/plugins/config.py:171
+msgid "Extra hashes to generate in password plug-in."
+msgstr ""
+
+#: ipalib/plugins/config.py:183
+msgid ""
+"\n"
+" Modify configuration options.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:220
+msgid ""
+"\n"
+" Show the current configuration.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:19
+msgid ""
+"\n"
+"Group to Group Delegation\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"Group to Group Delegations grants the members of one group to update a set\n"
+"of attributes of members of another group.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a delegation rule to allow editors to edit admin's addresses:\n"
+" ipa delegation-add --attrs=street --membergroup=admins --group=editors "
+"'editors edit admins street'\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add postalCode to the list:\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --"
+"group=editors 'editors edit admins street'\n"
+"\n"
+" Display our updated rule:\n"
+" ipa delegation-show 'editors edit admins street'\n"
+"\n"
+" Delete a rule:\n"
+" ipa delegation-del 'editors edit admins street'\n"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:56
+msgid ""
+"\n"
+" memberOf is in filter but we want to pull out the group for easier\n"
+" displaying.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+msgid "Delegation '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:70
+msgid "Error retrieving member group %(group)s: %(error)s"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:79
+msgid ""
+"\n"
+" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a delegation ACI, adding a new attribute\n"
+" membergroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:95
+msgid ""
+"\n"
+" Delegation object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:102
+msgid "Delegation"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+#, fuzzy
+msgid "Delegation name"
+msgstr "迁移模式"
+
+#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+msgid ""
+"Comma-separated list of permissions to grant (read, write). Default is write."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:125
+#, fuzzy
+msgid "Member user group"
+msgstr "成员组"
+
+#: ipalib/plugins/delegation.py:126
+msgid "User group to apply delegation to"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:152
+msgid ""
+"\n"
+" Add a new delegation.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:131
+#: ipalib/plugins/delegation.py:156
+#, fuzzy
+msgid "Added delegation \"%(value)s\""
+msgstr "已添加组\"%(value)s\""
+
+#: ipalib/plugins/delegation.py:176
+msgid ""
+"\n"
+" Delete a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:181
+#, fuzzy
+msgid "Deleted delegation \"%(value)s\""
+msgstr "已删除组\"%(value)s\""
+
+#: ipalib/plugins/delegation.py:197
+msgid ""
+"\n"
+" Modify a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:201
+#, fuzzy
+msgid "Modified delegation \"%(value)s\""
+msgstr "已修改组\"%(value)s\""
+
+#: ipalib/plugins/delegation.py:219
+msgid ""
+"\n"
+" Search for delegations.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:223
+#, fuzzy
+msgid "%(count)d delegation matched"
+msgid_plural "%(count)d delegations matched"
+msgstr[0] "%(count)d 个组匹配"
+msgstr[1] "%(count)d 个组匹配"
+
+#: ipalib/plugins/delegation.py:250
+msgid ""
+"\n"
+" Display information about a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:20
+msgid ""
+"\n"
+"Domain Name System (DNS)\n"
+"\n"
+"Manage DNS zone and resource records.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add new zone:\n"
+" ipa dnszone-add example.com --name-server nameserver.example.com\n"
+" --admin-email admin@example.com\n"
+"\n"
+" Add second nameserver for example.com:\n"
+" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add a mail server for example.com:\n"
+" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n"
+"\n"
+" Delete previously added nameserver from example.com:\n"
+" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add new A record for www.example.com: (random IP)\n"
+" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n"
+"\n"
+" Add new PTR record for www.example.com\n"
+" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n"
+"\n"
+" Add new SRV records for LDAP servers. Three quarters of the requests\n"
+" should go to fast.example.com, one quarter to slow.example.com. If neither\n"
+" is available, switch to backup.example.com.\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup."
+"example.com\"\n"
+"\n"
+" When dnsrecord-add command is executed with no option to add a specific "
+"record\n"
+" an interactive mode is started. The mode interactively prompts for the "
+"most\n"
+" typical record types for the respective zone:\n"
+" ipa dnsrecord-add example.com www\n"
+" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random "
+"IPs)\n"
+" [AAAA record]: (no AAAA address entered)\n"
+" Record name: www\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" The interactive mode can also be used for deleting the DNS records:\n"
+" ipa dnsrecord-del example.com www\n"
+" No option to delete specific record provided.\n"
+" Delete all? Yes/No (default No): (do not delete all records)\n"
+" Current DNS record contents:\n"
+"\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
+" Record name: www\n"
+" A record: 1.2.3.4 (A record 11.22.33.44 has been "
+"deleted)\n"
+"\n"
+" Show zone example.com:\n"
+" ipa dnszone-show example.com\n"
+"\n"
+" Find zone with \"example\" in its domain name:\n"
+" ipa dnszone-find example\n"
+"\n"
+" Find records for resources with \"www\" in their name in zone example.com:\n"
+" ipa dnsrecord-find example.com www\n"
+"\n"
+" Find A records with value 10.10.0.1 in zone example.com\n"
+" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n"
+"\n"
+" Show records for resource www in zone example.com\n"
+" ipa dnsrecord-show example.com www\n"
+"\n"
+" Delete zone example.com with all resource records:\n"
+" ipa dnszone-del example.com\n"
+"\n"
+" Resolve a host name to see if it exists (will add default IPA domain\n"
+" if one is not included):\n"
+" ipa dns-resolve www.example.com\n"
+" ipa dns-resolve www\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:140
+msgid "Generate serial number for zones."
+msgstr ""
+
+#: ipalib/plugins/dns.py:189
+msgid "see RFC 2915 "
+msgstr ""
+
+#: ipalib/plugins/dns.py:249
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:272
+msgid ""
+"\n"
+" DNS Zone, container for resource records.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:284
msgid "DNS"
msgstr "DNS"
-#: ipalib/plugins/dns.py:136
-msgid "Zone"
+#: ipalib/plugins/dns.py:289
+msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:137
+#: ipalib/plugins/dns.py:290
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:143
-msgid "Authoritative name server"
+#: ipalib/plugins/dns.py:296
+msgid "Authoritative nameserver"
+msgstr ""
+
+#: ipalib/plugins/dns.py:297
+msgid "Authoritative nameserver."
msgstr ""
-#: ipalib/plugins/dns.py:147
-msgid "administrator e-mail address"
+#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+#, fuzzy
+msgid "Administrator e-mail address"
msgstr "管理员邮件地址"
-#: ipalib/plugins/dns.py:153
+#: ipalib/plugins/dns.py:308
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:157
+#: ipalib/plugins/dns.py:309
+#, fuzzy
+msgid "SOA record serial number"
+msgstr "序列号"
+
+#: ipalib/plugins/dns.py:316
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:161
+#: ipalib/plugins/dns.py:317
+msgid "SOA record refresh time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:324
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:165
+#: ipalib/plugins/dns.py:325
+msgid "SOA record retry time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:169
+#: ipalib/plugins/dns.py:333
+msgid "SOA record expire time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:173
+#: ipalib/plugins/dns.py:341
+msgid "How long should negative responses be cached"
+msgstr ""
+
+#: ipalib/plugins/dns.py:349
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:177
+#: ipalib/plugins/dns.py:350
+msgid "SOA record time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:354
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:182
-msgid "allow dynamic update?"
-msgstr "允许动态更新?"
+#: ipalib/plugins/dns.py:355
+msgid "SOA record class"
+msgstr ""
-#: ipalib/plugins/dns.py:186
+#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:426 ipalib/plugins/dns.py:460
-#: ipalib/plugins/dns.py:495 ipalib/plugins/dns.py:610
-#: ipalib/plugins/dns.py:695 ipalib/plugins/dns.py:819
-msgid "Zone name"
+#: ipalib/plugins/dns.py:365
+msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:500
-msgid "resource name"
-msgstr "资源名称"
+#: ipalib/plugins/dns.py:366
+msgid "Is zone active?"
+msgstr ""
-#: ipalib/plugins/dns.py:505 ipalib/plugins/dns.py:620
-#: ipalib/plugins/dns.py:711
-msgid "Record type"
-msgstr "记录类型"
+#: ipalib/plugins/dns.py:372
+#, fuzzy
+msgid "Dynamic update"
+msgstr "允许动态更新?"
-#: ipalib/plugins/dns.py:509 ipalib/plugins/dns.py:624
-msgid "Data"
-msgstr "数据"
+#: ipalib/plugins/dns.py:373
+#, fuzzy
+msgid "Allow dynamic updates."
+msgstr "允许动态更新?"
-#: ipalib/plugins/dns.py:510 ipalib/plugins/dns.py:625
-msgid "Type-specific data"
+#: ipalib/plugins/dns.py:382
+msgid ""
+"\n"
+" Create new DNS zone (SOA record).\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:517
-msgid "Time to live"
+#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
+#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+msgid "Force"
+msgstr ""
+
+#: ipalib/plugins/dns.py:388
+msgid "Force DNS zone creation even if nameserver not in DNS."
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+msgid "Add the nameserver to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:397
+msgid "DNS is not configured"
+msgstr ""
+
+#: ipalib/plugins/dns.py:431
+msgid ""
+"\n"
+" Delete DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"\n"
+" Modify DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:452
+msgid ""
+"\n"
+" Search for DNS zones (SOA records).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:460
+msgid ""
+"\n"
+" Display information about a DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+msgid ""
+"\n"
+" Disable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:472
+#, fuzzy
+msgid "Disabled DNS zone \"%(value)s\""
+msgstr "已删除用户\"%(value)s\""
+
+#: ipalib/plugins/dns.py:490
+msgid ""
+"\n"
+" Enable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:494
+#, fuzzy
+msgid "Enabled DNS zone \"%(value)s\""
+msgstr "已解锁用户\"%(value)s\""
+
+#: ipalib/plugins/dns.py:512
+msgid ""
+"\n"
+" DNS record.\n"
+" "
msgstr ""
#: ipalib/plugins/dns.py:522
+#, fuzzy
+msgid "DNS resource record"
+msgstr "资源名称"
+
+#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
+#, fuzzy
+msgid "Record name"
+msgstr "资源名称"
+
+#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
+msgid "Time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:538
msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:615 ipalib/plugins/dns.py:707
-#: ipalib/plugins/dns.py:824
-msgid "Resource name"
-msgstr "资源名称"
+#: ipalib/plugins/dns.py:539
+msgid "DNS class"
+msgstr ""
-#: ipalib/plugins/dns.py:700
-msgid "Search criteria"
-msgstr "搜索条件"
+#: ipalib/plugins/dns.py:566
+msgid ""
+"\n"
+" Base class for DNS record commands with record options.\n"
+" "
+msgstr ""
-#: ipalib/plugins/dns.py:715
-msgid "type-specific data"
+#: ipalib/plugins/dns.py:610
+msgid ""
+"\n"
+" Base class for adding/removing records from DNS resource entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:865
-#, fuzzy, python-format
+#: ipalib/plugins/dns.py:674
+msgid ""
+"\n"
+" Add records to DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:690
+msgid ""
+"\n"
+" Add new DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:699
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:735
+msgid ""
+"Reverse zone for PTR record should be a sub-zone of one the following fully "
+"qualified domains: %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:740
+msgid "Reverse zone %s requires exactly %d IP address components, %d given"
+msgstr ""
+
+#: ipalib/plugins/dns.py:746
+msgid "PTR record '%s' is not fully qualified (check traling '.')"
+msgstr ""
+
+#: ipalib/plugins/dns.py:789
+msgid ""
+"\n"
+" Delete DNS record entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:792
+#, fuzzy
+msgid "Deleted record \"%(value)s\""
+msgstr "已删除用户\"%(value)s\""
+
+#: ipalib/plugins/dns.py:799
+msgid ""
+"\n"
+" Delete DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:802
+msgid ""
+"Neither --del-all nor options to delete a specific record provided.\n"
+"Command help may be consulted for all supported record types."
+msgstr ""
+
+#: ipalib/plugins/dns.py:807
+msgid "Delete all associated records"
+msgstr ""
+
+#: ipalib/plugins/dns.py:834
+msgid "No option to delete specific record provided."
+msgstr ""
+
+#: ipalib/plugins/dns.py:835
+msgid "Delete all?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:845
+msgid "Current DNS record contents:\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:875
+msgid "%s record with value %s not found"
+msgstr ""
+
+#: ipalib/plugins/dns.py:889
+msgid ""
+"\n"
+" Display DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:905
+msgid ""
+"\n"
+" Search for DNS resources.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:932
+msgid ""
+"\n"
+" Resolve a host name in DNS\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:936
+#, fuzzy
msgid "Found '%(value)s'"
msgstr "已添加组\"%(value)s\""
-#: ipalib/plugins/dns.py:869
+#: ipalib/plugins/dns.py:940
#, fuzzy
msgid "Hostname"
msgstr "主机名"
-#: ipalib/plugins/dns.py:882
-#, python-format
+#: ipalib/plugins/dns.py:962
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/group.py:94
+#: ipalib/plugins/dns.py:970
+msgid ""
+"\n"
+" Checks if any of the servers has the DNS service enabled.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:19
+msgid ""
+"\n"
+"Entitlements\n"
+"\n"
+"Manage entitlements for client machines\n"
+"\n"
+"Entitlements can be managed either by registering with an entitlement\n"
+"server with a username and password or by manually importing entitlement\n"
+"certificates. An entitlement certificate contains embedded information\n"
+"such as the product being entitled, the quantity and the validity dates.\n"
+"\n"
+"An entitlement server manages the number of client entitlements available.\n"
+"To mark these entitlements as used by the IPA server you provide a quantity\n"
+"and they are marked as consumed on the entitlement server.\n"
+"\n"
+" Register with an entitlement server:\n"
+" ipa entitle-register consumer\n"
+"\n"
+" Import an entitlement certificate:\n"
+" ipa entitle-import /home/user/ipaclient.pem\n"
+"\n"
+" Display current entitlements:\n"
+" ipa entitle-status\n"
+"\n"
+" Retrieve details on entitlement certificates:\n"
+" ipa entitle-get\n"
+"\n"
+" Consume some entitlements from the entitlement server:\n"
+" ipa entitle-consume 50\n"
+"\n"
+"The registration ID is a Unique Identifier (UUID). This ID will be\n"
+"IMPORTED if you have used entitle-import.\n"
+"\n"
+"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:106
+msgid ""
+"\n"
+" Get our entitlement pool. Assume there is only one pool.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:129
+msgid ""
+"\n"
+" Retrieve our UUID, certificate and key from LDAP.\n"
+"\n"
+" Except on error the caller is responsible for removing temporary files\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:178
+msgid ""
+"\n"
+" Entitlement object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:189
+msgid "Entitlements"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:206
+msgid ""
+"\n"
+" Display current entitlements\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+msgid "UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
+#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
+#: ipalib/plugins/entitle.py:690
+msgid "Product"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
+#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
+#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+msgid "Quantity"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
+#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+msgid "Consumed"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:276
+msgid ""
+"\n"
+" Consume an entitlement\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:282
+msgid "Consumed %(value)s entitlement(s)."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:314
+msgid ""
+"\n"
+" Override this so we can set value to the number of entitlements\n"
+" consumed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
+msgid ""
+"\n"
+" Returning the certificates isn't very interesting. Return the\n"
+" status of entitlements instead.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:380
+msgid ""
+"\n"
+" Retrieve the entitlement certs\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:394
+msgid "Start"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:397
+msgid "End"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
+#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+#, fuzzy
+msgid "Serial Number"
+msgstr "序列号"
+
+#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
+#: ipalib/plugins/entitle.py:628
+msgid "Not an entitlement certificate"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:460
+msgid ""
+"\n"
+" Search for entitlement accounts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:473
+msgid ""
+"\n"
+" Register to the entitlement system\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:479
+msgid "Registered to entitlement server."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:483
+#, fuzzy
+msgid "Username"
+msgstr "用户名"
+
+#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
+msgid "Enrollment UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
+#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
+msgid "Password"
+msgstr "密码"
+
+#: ipalib/plugins/entitle.py:495
+#, fuzzy
+msgid "Registration password"
+msgstr "用户密码"
+
+#: ipalib/plugins/entitle.py:569
+msgid ""
+"\n"
+" Import an entitlement certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:646
+msgid ""
+"\n"
+" If we are adding the first entry there are no updates so "
+"EmptyModlist\n"
+" will get thrown. Ignore it.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:667
+msgid ""
+"\n"
+" Re-sync the local entitlement cache with the entitlement server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:673
+msgid "Entitlement(s) synchronized."
+msgstr ""
+
+#: ipalib/plugins/group.py:20
+msgid ""
+"\n"
+"Groups of users\n"
+"\n"
+"Manage groups of users. By default, new groups are POSIX groups. You\n"
+"can add the --nonposix option to the group-add command to mark a new group\n"
+"as non-POSIX, and you can use the same argument to the group-mod command\n"
+"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"converted to non-POSIX groups.\n"
+"\n"
+"Every group must have a description.\n"
+"\n"
+"POSIX groups must have a Group ID (GID) number. Changing a GID is\n"
+"supported but can have an impact on your file permissions. It is not "
+"necessary\n"
+"to supply a GID when creating a group. IPA will generate one automatically\n"
+"if it is not provided.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new group:\n"
+" ipa group-add --desc='local administrators' localadmins\n"
+"\n"
+" Add a new non-POSIX group:\n"
+" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n"
+"\n"
+" Convert a non-POSIX group to posix:\n"
+" ipa group-mod --posix remoteadmins\n"
+"\n"
+" Add a new POSIX group with a specific Group ID number:\n"
+" ipa group-add --gid=500 --desc='unix admins' unixadmins\n"
+"\n"
+" Add a new POSIX group and let IPA assign a Group ID number:\n"
+" ipa group-add --desc='printer admins' printeradmins\n"
+"\n"
+" Remove a group:\n"
+" ipa group-del unixadmins\n"
+"\n"
+" To add the \"remoteadmins\" group to the \"localadmins\" group:\n"
+" ipa group-add-member --groups=remoteadmins localadmins\n"
+"\n"
+" Add a list of users to the \"localadmins\" group:\n"
+" ipa group-add-member --users=test1,test2 localadmins\n"
+"\n"
+" Remove a user from the \"localadmins\" group:\n"
+" ipa group-remove-member --users=test2 localadmins\n"
+"\n"
+" Display information about a named group.\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/group.py:76
+msgid ""
+"\n"
+" Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:100
msgid "User Groups"
msgstr "用户组"
-#: ipalib/plugins/group.py:102
+#: ipalib/plugins/group.py:108
msgid "Group name"
msgstr "组名"
-#: ipalib/plugins/group.py:109 ipalib/plugins/sudocmdgroup.py:78
+#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
msgid "Group description"
msgstr "组描述"
-#: ipalib/plugins/group.py:113
+#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
msgid "GID"
msgstr "GID"
-#: ipalib/plugins/group.py:114
+#: ipalib/plugins/group.py:120
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:117 ipalib/plugins/rolegroup.py:94
-#: ipalib/plugins/taskgroup.py:66
-msgid "Member groups"
-msgstr "成员组"
-
-#: ipalib/plugins/group.py:121 ipalib/plugins/rolegroup.py:98
-#: ipalib/plugins/taskgroup.py:70
-msgid "Member users"
-msgstr "成员用户"
+#: ipalib/plugins/group.py:128
+msgid ""
+"\n"
+" Create a new group.\n"
+" "
+msgstr ""
-#: ipalib/plugins/group.py:134
-#, python-format
+#: ipalib/plugins/group.py:132
msgid "Added group \"%(value)s\""
msgstr "已添加组\"%(value)s\""
-#: ipalib/plugins/group.py:139
-msgid "Create as a non-POSIX group?"
+#: ipalib/plugins/group.py:137
+#, fuzzy
+msgid "Create as a non-POSIX group"
+msgstr "这已经是一个posix组"
+
+#: ipalib/plugins/group.py:154
+msgid ""
+"\n"
+" Delete group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:160
-#, python-format
+#: ipalib/plugins/group.py:158
msgid "Deleted group \"%(value)s\""
msgstr "已删除组\"%(value)s\""
-#: ipalib/plugins/group.py:191
-#, python-format
+#: ipalib/plugins/group.py:186
+msgid ""
+"\n"
+" Modify a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:189
msgid "Modified group \"%(value)s\""
msgstr "已修改组\"%(value)s\""
-#: ipalib/plugins/group.py:196
+#: ipalib/plugins/group.py:194
#, fuzzy
msgid "change to a POSIX group"
msgstr "这已经是一个posix组"
-#: ipalib/plugins/group.py:222 ipalib/plugins/hbacsvcgroup.py:129
-#, python-format
+#: ipalib/plugins/group.py:215
+msgid ""
+"\n"
+" Search for groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:220
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] "%(count)d 个组匹配"
msgstr[1] "%(count)d 个组匹配"
+#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+msgid "search for private groups"
+msgstr ""
+
#: ipalib/plugins/group.py:257
-#, fuzzy, python-format
+msgid ""
+"\n"
+" Display information about a named group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:265
+#, fuzzy
+msgid ""
+"\n"
+" Add members to a group.\n"
+" "
+msgstr "组成员"
+
+#: ipalib/plugins/group.py:273
+msgid ""
+"\n"
+" Remove members from a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:281
+msgid ""
+"\n"
+" Detach a managed group from a user\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:285
+#, fuzzy
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr "已删除组\"%(value)s\""
-#: ipalib/plugins/group.py:273
+#: ipalib/plugins/group.py:288
+msgid ""
+"\n"
+" This requires updating both the user and the group. We first need "
+"to\n"
+" verify that both the user and group can be updated, then we go\n"
+" about our work. We don't want a situation where only the user or\n"
+" group can be modified and we're left in a bad state.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:306
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:277
+#: ipalib/plugins/group.py:312
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:284 ipalib/plugins/group.py:295
+#: ipalib/plugins/group.py:331
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbac.py:106
-msgid "HBAC"
+#: ipalib/plugins/hbacrule.py:19
+msgid ""
+"\n"
+"Host-based access control\n"
+"\n"
+"Control who can access what services on what hosts and from where. You\n"
+"can use HBAC to control which users or groups on a source host can\n"
+"access a service, or group of services, on a target host.\n"
+"\n"
+"You can also specify a category of users, target hosts, and source\n"
+"hosts. This is currently limited to \"all\", but might be expanded in the\n"
+"future.\n"
+"\n"
+"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n"
+"\n"
+"The available services and groups of services are controlled by the\n"
+"hbacsvc and hbacsvcgroup plug-ins respectively.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a rule, \"test1\", that grants all users access to the host \"server"
+"\" from\n"
+" anywhere:\n"
+" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add-host --hosts=server.example.com test1\n"
+"\n"
+" Display the properties of a named HBAC rule:\n"
+" ipa hbacrule-show test1\n"
+"\n"
+" Create a rule for a specific service. This lets the user john access\n"
+" the sshd service on any machine from any machine:\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add-user --users=john john_sshd\n"
+" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
+"\n"
+" Create a rule for a new service group. This lets the user john access\n"
+" the FTP service on any machine from any machine:\n"
+" ipa hbacsvcgroup-add ftpers\n"
+" ipa hbacsvc-add sftp\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add-user --users=john john_ftp\n"
+" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
+"\n"
+" Disable a named HBAC rule:\n"
+" ipa hbacrule-disable test1\n"
+"\n"
+" Remove a named HBAC rule:\n"
+" ipa hbacrule-del allow_server\n"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:91
+msgid ""
+"\n"
+" See if options[attribute] is lower-case 'all' in a safe way.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:103
+msgid ""
+"\n"
+" HBAC object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:126
+#, fuzzy
+msgid "HBAC Rule"
msgstr "HBAC"
-#: ipalib/plugins/hbac.py:111 ipalib/plugins/sudorule.py:53
+#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
msgid "Rule name"
msgstr "规则名"
-#: ipalib/plugins/hbac.py:116
+#: ipalib/plugins/hbacrule.py:136
msgid "Rule type (allow or deny)"
msgstr "规则类型(允许或禁止)"
-#: ipalib/plugins/hbac.py:117
+#: ipalib/plugins/hbacrule.py:137
#, fuzzy
msgid "Rule type"
msgstr "记录类型"
-#: ipalib/plugins/hbac.py:123
+#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
+#: ipalib/plugins/sudorule.py:86
msgid "User category"
msgstr "用户类别"
-#: ipalib/plugins/hbac.py:124
+#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
+#: ipalib/plugins/sudorule.py:87
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:129
+#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
+#: ipalib/plugins/sudorule.py:92
msgid "Host category"
msgstr "主机类别"
-#: ipalib/plugins/hbac.py:130
+#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
+#: ipalib/plugins/sudorule.py:93
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:135
+#: ipalib/plugins/hbacrule.py:155
msgid "Source host category"
msgstr "源主机类别"
-#: ipalib/plugins/hbac.py:136
+#: ipalib/plugins/hbacrule.py:156
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:141
+#: ipalib/plugins/hbacrule.py:161
#, fuzzy
msgid "Service category"
msgstr "用户类别"
-#: ipalib/plugins/hbac.py:142
+#: ipalib/plugins/hbacrule.py:162
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:147 ipalib/plugins/hbac.py:325
-#: ipalib/plugins/hbac.py:363
-msgid "Access time"
-msgstr "访问时间"
-
-#: ipalib/plugins/hbac.py:154
+#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbac.py:158 ipalib/plugins/sudorule.py:61
-#: ipalib/plugins/user.py:76
+#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
+#: ipalib/plugins/user.py:108
msgid "Users"
msgstr "用户"
-#: ipalib/plugins/hbac.py:162 ipalib/plugins/host.py:113
-#: ipalib/plugins/sudorule.py:65
+#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
+#: ipalib/plugins/sudorule.py:119
+msgid "Groups"
+msgstr "用户组"
+
+#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
+#: ipalib/plugins/sudorule.py:123
msgid "Hosts"
msgstr "主机"
-#: ipalib/plugins/hbac.py:166 ipalib/plugins/hostgroup.py:69
-#: ipalib/plugins/sudorule.py:69
+#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
+#: ipalib/plugins/sudorule.py:127
msgid "Host Groups"
msgstr "主机组"
-#: ipalib/plugins/hbac.py:170
+#: ipalib/plugins/hbacrule.py:194
#, fuzzy
msgid "Source hosts"
msgstr "源主机类别"
-#: ipalib/plugins/hbac.py:174 ipalib/plugins/hbacsvc.py:60
-#: ipalib/plugins/service.py:192
+#: ipalib/plugins/hbacrule.py:198
+#, fuzzy
+msgid "Source host groups"
+msgstr "源主机类别"
+
+#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
+#: ipalib/plugins/service.py:220
msgid "Services"
msgstr "服务"
-#: ipalib/plugins/hbac.py:178
+#: ipalib/plugins/hbacrule.py:206
#, fuzzy
msgid "Service Groups"
msgstr "服务"
-#: ipalib/plugins/hbacsvc.py:65
+#: ipalib/plugins/hbacrule.py:215
+msgid ""
+"\n"
+" Create a new HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:219
+#, fuzzy
+msgid "Added HBAC rule \"%(value)s\""
+msgstr "新增用户\"%(value)s\""
+
+#: ipalib/plugins/hbacrule.py:230
+msgid ""
+"\n"
+" Delete an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:234
+#, fuzzy
+msgid "Deleted HBAC rule \"%(value)s\""
+msgstr "已删除用户\"%(value)s\""
+
+#: ipalib/plugins/hbacrule.py:240
+msgid ""
+"\n"
+" Modify an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:244
+#, fuzzy
+msgid "Modified HBAC rule \"%(value)s\""
+msgstr "已修改用户\"%(value)s\""
+
+#: ipalib/plugins/hbacrule.py:266
+msgid ""
+"\n"
+" Search for HBAC rules.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:270
+#, fuzzy
+msgid "%(count)d HBAC rule matched"
+msgid_plural "%(count)d HBAC rules matched"
+msgstr[0] "%(count)d 个组匹配"
+msgstr[1] "%(count)d 个组匹配"
+
+#: ipalib/plugins/hbacrule.py:278
+msgid ""
+"\n"
+" Display the properties of an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:286
+msgid ""
+"\n"
+" Enable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:290
+#, fuzzy
+msgid "Enabled HBAC rule \"%(value)s\""
+msgstr "已解锁用户\"%(value)s\""
+
+#: ipalib/plugins/hbacrule.py:315
+msgid ""
+"\n"
+" Disable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:319
+#, fuzzy
+msgid "Disabled HBAC rule \"%(value)s\""
+msgstr "已删除用户\"%(value)s\""
+
+#: ipalib/plugins/hbacrule.py:344
+msgid ""
+"\n"
+" Add an access time to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+msgid "Access time"
+msgstr "访问时间"
+
+#: ipalib/plugins/hbacrule.py:385
+msgid ""
+"\n"
+" Remove access time to HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:425
+msgid ""
+"\n"
+" Add users and groups to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:442
+msgid ""
+"\n"
+" Remove users and groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:452
+msgid ""
+"\n"
+" Add target hosts and hostgroups to an HBAC rule\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:469
+msgid ""
+"\n"
+" Remove target hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:479
+msgid ""
+"\n"
+" Add source hosts and hostgroups from a HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:496
+msgid ""
+"\n"
+" Remove source hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:506
+msgid ""
+"\n"
+" Add services to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:523
+msgid ""
+"\n"
+" Remove service and service groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:19
+msgid ""
+"\n"
+"HBAC Services\n"
+"\n"
+"The PAM services that HBAC can control access to. The name used here\n"
+"must match the service name that PAM is evaluating.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service:\n"
+" ipa hbacsvc-add tftp\n"
+"\n"
+" Modify an existing HBAC service:\n"
+" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n"
+"\n"
+" Search for HBAC services. This example will return two results, the FTP\n"
+" service and the newly-added tftp service:\n"
+" ipa hbacsvc-find ftp\n"
+"\n"
+" Delete an HBAC service:\n"
+" ipa hbacsvc-del tftp\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:51
+msgid ""
+"\n"
+" HBAC Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:61
+#, fuzzy
+msgid "HBAC Services"
+msgstr "服务"
+
+#: ipalib/plugins/hbacsvc.py:66
msgid "Service name"
msgstr "服务名"
-#: ipalib/plugins/hbacsvc.py:66
+#: ipalib/plugins/hbacsvc.py:67
#, fuzzy
-msgid "HBAC Service"
+msgid "HBAC service"
msgstr "服务"
-#: ipalib/plugins/hbacsvc.py:73
+#: ipalib/plugins/hbacsvc.py:74
#, fuzzy
-msgid "Description of service"
-msgstr "描述"
+msgid "HBAC service description"
+msgstr "网络组描述"
-#: ipalib/plugins/hbacsvc.py:84 ipalib/plugins/service.py:216
-#, python-format
-msgid "Added service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:82
+msgid ""
+"\n"
+" Add a new HBAC service.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvc.py:93 ipalib/plugins/service.py:255
-#, python-format
-msgid "Deleted service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:85
+#, fuzzy
+msgid "Added HBAC service \"%(value)s\""
+msgstr "已添加组\"%(value)s\""
+
+#: ipalib/plugins/hbacsvc.py:91
+msgid ""
+"\n"
+" Delete an existing HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:94
+#, fuzzy
+msgid "Deleted HBAC service \"%(value)s\""
+msgstr "已删除组\"%(value)s\""
+
+#: ipalib/plugins/hbacsvc.py:100
+msgid ""
+"\n"
+" Modify an HBAC service.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:66
+#: ipalib/plugins/hbacsvc.py:104
#, fuzzy
-msgid "HBAC Service Groups"
+msgid "Modified HBAC service \"%(value)s\""
+msgstr "已修改用户\"%(value)s\""
+
+#: ipalib/plugins/hbacsvc.py:110
+msgid ""
+"\n"
+" Search for HBAC services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:114
+#, fuzzy
+msgid "%(count)d HBAC service matched"
+msgid_plural "%(count)d HBAC services matched"
+msgstr[0] "%(count)d 个组匹配"
+msgstr[1] "%(count)d 个组匹配"
+
+#: ipalib/plugins/hbacsvc.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:19
+msgid ""
+"\n"
+"HBAC Service Groups\n"
+"\n"
+"HBAC service groups can contain any number of individual services,\n"
+"or \"members\". Every group must have a description.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service group:\n"
+" ipa hbacsvcgroup-add --desc=\"login services\" login\n"
+"\n"
+" Add members to an HBAC service group:\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n"
+"\n"
+" Display information about a named group:\n"
+" ipa hbacsvcgroup-show login\n"
+"\n"
+" Add a new group to the \"login\" group:\n"
+" ipa hbacsvcgroup-add --desc=\"switch users\" login\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n"
+"\n"
+" Delete an HBAC service group:\n"
+" ipa hbacsvcgroup-del login\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:51
+#, fuzzy
+msgid ""
+"\n"
+" HBAC service group object.\n"
+" "
+msgstr "网络组描述"
+
+#: ipalib/plugins/hbacsvcgroup.py:64
+#, fuzzy
+msgid "HBAC service Groups"
msgstr "服务"
-#: ipalib/plugins/hbacsvcgroup.py:71
+#: ipalib/plugins/hbacsvcgroup.py:69
#, fuzzy
msgid "Service group name"
msgstr "服务名"
-#: ipalib/plugins/hbacsvcgroup.py:78
+#: ipalib/plugins/hbacsvcgroup.py:76
#, fuzzy
msgid "HBAC service group description"
msgstr "网络组描述"
-#: ipalib/plugins/hbacsvcgroup.py:81
+#: ipalib/plugins/hbacsvcgroup.py:84
#, fuzzy
-msgid "Member services"
-msgstr "成员用户"
+msgid ""
+"\n"
+" Add a new HBAC service group.\n"
+" "
+msgstr "已添加组\"%(value)s\""
-#: ipalib/plugins/hbacsvcgroup.py:85
+#: ipalib/plugins/hbacsvcgroup.py:87
#, fuzzy
-msgid "Member service groups"
-msgstr "成员组"
-
-#: ipalib/plugins/hbacsvcgroup.py:101
-#, fuzzy, python-format
-msgid "Added HBAC Service group \"%(value)s\""
+msgid "Added HBAC service group \"%(value)s\""
msgstr "已添加组\"%(value)s\""
-#: ipalib/plugins/hbacsvcgroup.py:110
-#, fuzzy, python-format
-msgid "Deleted HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:93
+#, fuzzy
+msgid ""
+"\n"
+" Delete an HBAC service group.\n"
+" "
msgstr "已删除组\"%(value)s\""
-#: ipalib/plugins/hbacsvcgroup.py:119
-#, fuzzy, python-format
-msgid "Modified HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:96
+#, fuzzy
+msgid "Deleted HBAC service group \"%(value)s\""
+msgstr "已删除组\"%(value)s\""
+
+#: ipalib/plugins/hbacsvcgroup.py:102
+#, fuzzy
+msgid ""
+"\n"
+" Modify an HBAC service group.\n"
+" "
+msgstr "已修改用户\"%(value)s\""
+
+#: ipalib/plugins/hbacsvcgroup.py:105
+#, fuzzy
+msgid "Modified HBAC service group \"%(value)s\""
msgstr "已修改用户\"%(value)s\""
-#: ipalib/plugins/host.py:86
+#: ipalib/plugins/hbacsvcgroup.py:111
+msgid ""
+"\n"
+" Search for an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:114
+#, fuzzy
+msgid "%(count)d HBAC service group matched"
+msgid_plural "%(count)d HBAC service groups matched"
+msgstr[0] "%(count)d 个组匹配"
+msgstr[1] "%(count)d 个组匹配"
+
+#: ipalib/plugins/hbacsvcgroup.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:130
+msgid ""
+"\n"
+" Add members to an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:138
+msgid ""
+"\n"
+" Remove members from an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:20
+msgid ""
+"\n"
+"Hosts/Machines\n"
+"\n"
+"A host represents a machine. It can be used in a number of contexts:\n"
+"- service entries are associated with a host\n"
+"- a host stores the host/ service principal\n"
+"- a host can be used in Host-based Access Control (HBAC) rules\n"
+"- every enrolled client generates a host entry\n"
+"\n"
+"ENROLLMENT:\n"
+"\n"
+"There are three enrollment scenarios when enrolling a new client:\n"
+"\n"
+"1. You are enrolling as a full administrator. The host entry may exist\n"
+" or not. A full administrator is a member of the hostadmin role\n"
+" or the admins group.\n"
+"2. You are enrolling as a limited administrator. The host must already\n"
+" exist. A limited administrator is a member a role with the\n"
+" Host Enrollment privilege.\n"
+"3. The host has been created with a one-time password.\n"
+"\n"
+"A host can only be enrolled once. If a client has enrolled and needs to\n"
+"be re-enrolled, the host entry must be removed and re-created. Note that\n"
+"re-creating the host entry will result in all services for the host being\n"
+"removed, and all SSL certificates associated with those services being\n"
+"revoked.\n"
+"\n"
+"A host can optionally store information such as where it is located,\n"
+"the OS that it runs, etc.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host:\n"
+" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example."
+"com\n"
+"\n"
+" Delete a host:\n"
+" ipa host-del test.example.com\n"
+"\n"
+" Add a new host with a one-time password:\n"
+" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n"
+"\n"
+" Add a new host with a random one-time password:\n"
+" ipa host-add --os='Fedora 12' --random test.example.com\n"
+"\n"
+" Modify information about a host:\n"
+" ipa host-mod --os='Fedora 12' test.example.com\n"
+"\n"
+" Disable the host Kerberos key, SSL certificate and all of its services:\n"
+" ipa host-disable test.example.com\n"
+"\n"
+" Add a host that can manage this host's keytab and certificate:\n"
+" ipa host-add-managedby --hosts=test2 test\n"
+msgstr ""
+
+#: ipalib/plugins/host.py:97
+msgid ""
+"\n"
+" Require at least one dot in the hostname (to support localhost."
+"localdomain)\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:118
+#: ipalib/plugins/host.py:129
+msgid "DNS reverse zone for IP address %(addr)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+msgid "Keytab"
+msgstr ""
+
+#: ipalib/plugins/host.py:185
+msgid ""
+"\n"
+" Verify that we have either an IPv4 or IPv6 address.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:189
+#, fuzzy
+msgid "invalid IP address"
+msgstr "邮件地址"
+
+#: ipalib/plugins/host.py:194
+msgid ""
+"\n"
+" Host object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:231
msgid "Host name"
msgstr "主机名"
-#: ipalib/plugins/host.py:125
+#: ipalib/plugins/host.py:238
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:242
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:130
+#: ipalib/plugins/host.py:243
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr "主机地点(如\"Baltimore, MD\")"
-#: ipalib/plugins/host.py:135
+#: ipalib/plugins/host.py:248
msgid "Host location (e.g. \"Lab 2\")"
msgstr "主机位置(如\"Lab 2\")"
-#: ipalib/plugins/host.py:139
+#: ipalib/plugins/host.py:252
msgid "Platform"
msgstr "平台"
-#: ipalib/plugins/host.py:140
+#: ipalib/plugins/host.py:253
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr "主机硬件平台 (e.g. \"Lenovo T61\")"
-#: ipalib/plugins/host.py:144
+#: ipalib/plugins/host.py:257
msgid "Operating system"
msgstr "操作系统"
-#: ipalib/plugins/host.py:145
+#: ipalib/plugins/host.py:258
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr "主机操作系统及版本(e.g. \"Fedora 9\")"
-#: ipalib/plugins/host.py:149
+#: ipalib/plugins/host.py:262
msgid "User password"
msgstr "用户密码"
-#: ipalib/plugins/host.py:150
+#: ipalib/plugins/host.py:263
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:155 ipalib/plugins/service.py:205
+#: ipalib/plugins/host.py:266
+msgid "Generate a random password to be used in bulk enrollment"
+msgstr ""
+
+#: ipalib/plugins/host.py:271
+#, fuzzy
+msgid "Random password"
+msgstr "用户密码"
+
+#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
msgid "Base-64 encoded server certificate"
msgstr "Base-64 编码格式的服务器证书"
-#: ipalib/plugins/host.py:158 ipalib/plugins/host.py:274
+#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:162 ipalib/plugins/hostgroup.py:93
-msgid "Member of host-groups"
-msgstr "主机组成员"
-
-#: ipalib/plugins/host.py:166
-msgid "Member of net-groups"
-msgstr "网络组成员"
-
-#: ipalib/plugins/host.py:170
-msgid "Member of role-groups"
+#: ipalib/plugins/host.py:306
+msgid ""
+"\n"
+" Add a new host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:199
-#, python-format
+#: ipalib/plugins/host.py:311
msgid "Added host \"%(value)s\""
msgstr "新增主机 \"%(value)s\""
-#: ipalib/plugins/host.py:202
+#: ipalib/plugins/host.py:316
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:235
-#, python-format
+#: ipalib/plugins/host.py:319
+msgid "skip reverse DNS detection"
+msgstr ""
+
+#: ipalib/plugins/host.py:322
+msgid "Add the host to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+msgid "DNS zone %(zone)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:413
+msgid "The host was added but the DNS update failed with: %(exc)s"
+msgstr ""
+
+#: ipalib/plugins/host.py:422
+msgid ""
+"\n"
+" Delete a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:426
msgid "Deleted host \"%(value)s\""
msgstr "已删除主机 \"%(value)s\""
-#: ipalib/plugins/host.py:269
-#, python-format
+#: ipalib/plugins/host.py:431
+msgid "Remove entries from DNS"
+msgstr ""
+
+#: ipalib/plugins/host.py:537
+msgid ""
+"\n"
+" Modify information about a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:542
msgid "Modified host \"%(value)s\""
msgstr "已修改主机 \"%(value)s\""
-#: ipalib/plugins/host.py:275
+#: ipalib/plugins/host.py:549
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:319
-#, python-format
+#: ipalib/plugins/host.py:618
+msgid ""
+"\n"
+" Search for hosts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:623
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:337 ipalib/plugins/service.py:84
-msgid "Keytab"
+#: ipalib/plugins/host.py:643
+msgid ""
+"\n"
+" Display information about a host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:359 ipalib/plugins/service.py:399
-#, fuzzy, python-format
-msgid "Removed kerberos key from \"%(value)s\""
-msgstr "已锁定用户\"%(value)s\""
+#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+#, fuzzy
+msgid "file to store certificate in"
+msgstr "Base-64 编码格式的服务器证书"
+
+#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+msgid "Certificate stored in file '%(file)s'"
+msgstr ""
+
+#: ipalib/plugins/host.py:684
+msgid ""
+"\n"
+" Disable the Kerberos key, SSL certificate and all services of a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:688
+#, fuzzy
+msgid "Disabled host \"%(value)s\""
+msgstr "已删除主机 \"%(value)s\""
-#: ipalib/plugins/host.py:368
-msgid "Host principal has no kerberos key"
+#: ipalib/plugins/host.py:770
+msgid ""
+"\n"
+" Add hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:781
+msgid ""
+"\n"
+" Remove hosts that can manage this host.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/hostgroup.py:20
+msgid ""
+"\n"
+"Groups of hosts.\n"
+"\n"
+"Manage groups of hosts. This is useful for applying access control to a\n"
+"number of hosts by using Host-based Access Control.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host group:\n"
+" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n"
+"\n"
+" Add another new host group:\n"
+" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n"
+"\n"
+" Add members to the hostgroup:\n"
+" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n"
+"\n"
+" Add a hostgroup as a member of another hostgroup:\n"
+" ipa hostgroup-add-member --hostgroups=baltimore maryland\n"
+"\n"
+" Remove a host from the hostgroup:\n"
+" ipa hostgroup-remove-member --hosts=box2 baltimore\n"
+"\n"
+" Display a host group:\n"
+" ipa hostgroup-show baltimore\n"
+"\n"
+" Delete a hostgroup:\n"
+" ipa hostgroup-del baltimore\n"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:55
+msgid ""
+"\n"
+" Hostgroup object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:78
msgid "Host-group"
msgstr "主机组"
-#: ipalib/plugins/hostgroup.py:75
+#: ipalib/plugins/hostgroup.py:79
msgid "Name of host-group"
msgstr "主机组名称"
-#: ipalib/plugins/hostgroup.py:82
+#: ipalib/plugins/hostgroup.py:86
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:85
-msgid "Member hosts"
-msgstr "成员主机"
-
-#: ipalib/plugins/hostgroup.py:89
-msgid "Member host-groups"
-msgstr "主机组成员"
+#: ipalib/plugins/hostgroup.py:94
+msgid ""
+"\n"
+" Add a new hostgroup.\n"
+" "
+msgstr ""
-#: ipalib/plugins/hostgroup.py:106
-#, python-format
+#: ipalib/plugins/hostgroup.py:98
msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:116
-#, python-format
+#: ipalib/plugins/hostgroup.py:104
+msgid ""
+"\n"
+" Delete a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:108
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:126
-#, python-format
+#: ipalib/plugins/hostgroup.py:114
+msgid ""
+"\n"
+" Modify a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:118
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:137
-#, python-format
+#: ipalib/plugins/hostgroup.py:124
+msgid ""
+"\n"
+" Search for hostgroups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:128
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/internal.py:39
+#: ipalib/plugins/hostgroup.py:136
+msgid ""
+"\n"
+" Display information about a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:144
+msgid ""
+"\n"
+" Add members to a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:152
+msgid ""
+"\n"
+" Remove members from a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:22
+msgid ""
+"\n"
+"Plugins not accessible directly through the CLI, commands used internally\n"
+msgstr ""
+
+#: ipalib/plugins/internal.py:36
+msgid ""
+"\n"
+" Export plugin meta-data for the webUI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:44
+msgid "Name of object to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:47
+#, fuzzy
+msgid "Name of method to export"
+msgstr "主机组名称"
+
+#: ipalib/plugins/internal.py:52
+msgid "Dict of JSON encoded IPA Objects"
+msgstr ""
+
+#: ipalib/plugins/internal.py:53
+msgid "Dict of JSON encoded IPA Methods"
+msgstr ""
+
+#: ipalib/plugins/internal.py:96
msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:41
+#: ipalib/plugins/internal.py:99
+#, fuzzy
+msgid "Attribute"
+msgstr "属性"
+
+#: ipalib/plugins/internal.py:102
+msgid "Add Automount Location"
+msgstr ""
+
+#: ipalib/plugins/internal.py:103
+msgid "Automount Location Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:106
+msgid "Add Automount Map"
+msgstr ""
+
+#: ipalib/plugins/internal.py:109
+msgid "Add Automount Key"
+msgstr ""
+
+#: ipalib/plugins/internal.py:112
+msgid "Unspecified"
+msgstr ""
+
+#: ipalib/plugins/internal.py:113
+msgid "Key Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:114
+msgid "CA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:115
+msgid "Affiliation Changed"
+msgstr ""
+
+#: ipalib/plugins/internal.py:116
+msgid "Superseded"
+msgstr ""
+
+#: ipalib/plugins/internal.py:117
+#, fuzzy
+msgid "Cessation of Operation"
+msgstr "文件操作"
+
+#: ipalib/plugins/internal.py:118
+#, fuzzy
+msgid "Certificate Hold"
+msgstr "证书"
+
+#: ipalib/plugins/internal.py:119
+msgid "Remove from CRL"
+msgstr ""
+
+#: ipalib/plugins/internal.py:120
+msgid "Privilege Withdrawn"
+msgstr ""
+
+#: ipalib/plugins/internal.py:121
+msgid "AA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:122
+msgid ""
+"To confirm your intention to revoke this certificate, select a reason from "
+"the pull-down list, and click the \"Revoke\" button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:124
+msgid "Note"
+msgstr ""
+
+#: ipalib/plugins/internal.py:125
+msgid "Reason for Revocation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:126
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\" "
+"button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:128
+msgid "Issued To"
+msgstr ""
+
+#: ipalib/plugins/internal.py:129
+#, fuzzy
+msgid "Common Name"
+msgstr "主机名"
+
+#: ipalib/plugins/internal.py:130
+msgid "Organization"
+msgstr ""
+
+#: ipalib/plugins/internal.py:131
+msgid "Organizational Unit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:133
+msgid "Issued By"
+msgstr ""
+
+#: ipalib/plugins/internal.py:134
+msgid "Validity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:135
+msgid "Issued On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:136
+msgid "Expires On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:137
+msgid "Fingerprints"
+msgstr ""
+
+#: ipalib/plugins/internal.py:138
+msgid "SHA1 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:139
+msgid "MD5 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:140
+msgid "Enter the Base64-encoded CSR below"
+msgstr ""
+
+#: ipalib/plugins/internal.py:141
+#, fuzzy
+msgid "Valid Certificate Present"
+msgstr "证书"
+
+#: ipalib/plugins/internal.py:142
+#, fuzzy
+msgid "New Certificate"
+msgstr "证书"
+
+#: ipalib/plugins/internal.py:143
+#, fuzzy
+msgid "Certificate Revoked"
+msgstr "证书"
+
+#: ipalib/plugins/internal.py:144
+#, fuzzy
+msgid "No Valid Certificate"
+msgstr "证书"
+
+#: ipalib/plugins/internal.py:145
+msgid "Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:146
+msgid "Issue New Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:147
+msgid "Revoke Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:148
+msgid "Restore Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:152
+#, fuzzy
+msgid "Name"
+msgstr "主机名"
+
+#: ipalib/plugins/internal.py:155
+msgid "Add Delegation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:158
+msgid "Add DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:159
+msgid "DNS Zone Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:162
+msgid "Add DNS Resource Record"
+msgstr ""
+
+#: ipalib/plugins/internal.py:163
+#, fuzzy
+msgid "Resource"
+msgstr "资源名称"
+
+#: ipalib/plugins/internal.py:165
+msgid "Data"
+msgstr "数据"
+
+#: ipalib/plugins/internal.py:166
+msgid "Records for DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:169
+#, fuzzy
+msgid "Add Group"
+msgstr "组"
+
+#: ipalib/plugins/internal.py:170
+#, fuzzy
+msgid "Group Settings"
+msgstr "组描述"
+
+#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
+#, fuzzy
+msgid "Is this a POSIX group?"
+msgstr "这已经是一个posix组"
+
+#: ipalib/plugins/internal.py:174
+msgid "Add HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:306
+msgid "Active"
+msgstr ""
+
+#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:308
+msgid "Inactive"
+msgstr ""
+
+#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
+#, fuzzy
+msgid "Rule status"
+msgstr "请求状态"
+
+#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
+msgid "Who"
+msgstr ""
+
+#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
+msgid "Anyone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
+msgid "Specified Users and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:183
+#, fuzzy
+msgid "Accessing"
+msgstr "访问时间"
+
+#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
+#, fuzzy
+msgid "Any Host"
+msgstr "主机"
+
+#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
+msgid "Specified Hosts and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:186
+#, fuzzy
+msgid "Via Service"
+msgstr "服务"
+
+#: ipalib/plugins/internal.py:187
+#, fuzzy
+msgid "Any Service"
+msgstr "服务"
+
+#: ipalib/plugins/internal.py:188
+#, fuzzy
+msgid "Specified Services and Groups"
+msgstr "服务"
+
+#: ipalib/plugins/internal.py:189
+msgid "From"
+msgstr ""
+
+#: ipalib/plugins/internal.py:192
+#, fuzzy
+msgid "Add HBAC Service"
+msgstr "服务"
+
+#: ipalib/plugins/internal.py:195
+#, fuzzy
+msgid "Add HBAC Service Group"
+msgstr "服务"
+
+#: ipalib/plugins/internal.py:199
+#, fuzzy
+msgid "Add Host"
+msgstr "主机"
+
+#: ipalib/plugins/internal.py:200
+#, fuzzy
+msgid "Host Certificate"
+msgstr "证书"
+
+#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
+#, fuzzy
+msgid "Host Name"
+msgstr "主机名"
+
+#: ipalib/plugins/internal.py:202
+msgid "Host Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:203
+msgid "Enrolled?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:204
+msgid "Enrollment"
+msgstr ""
+
+#: ipalib/plugins/internal.py:205
+msgid "Fully Qualified Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
+msgid "Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:208
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
+msgid "Delete Key, Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:211
+msgid "Enroll via One-Time-Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:212
+msgid "Set OTP"
+msgstr ""
+
+#: ipalib/plugins/internal.py:213
+msgid "One-Time-Password has been set."
+msgstr ""
+
+#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
+msgid "Unprovisioning ${entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:215
+msgid "Are you sure you want to unprovision this host?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
+msgid "Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:219
+#, fuzzy
+msgid "Add Host Group"
+msgstr "主机组"
+
+#: ipalib/plugins/internal.py:220
+#, fuzzy
+msgid "Host Group Settings"
+msgstr "主机组"
+
+#: ipalib/plugins/internal.py:223
+msgid "Kerberos ticket policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:226
+#, fuzzy
+msgid "Add Netgroup"
+msgstr "网络组"
+
+#: ipalib/plugins/internal.py:227
+#, fuzzy
+msgid "Netgroup Settings"
+msgstr "网络组描述"
+
+#: ipalib/plugins/internal.py:230
+#, fuzzy
+msgid "Add Permission"
+msgstr "权限"
+
+#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
+msgid "Identity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:233
+#, fuzzy
+msgid "Target"
+msgstr "目标组"
+
+#: ipalib/plugins/internal.py:235
+#, fuzzy
+msgid "By Subtree"
+msgstr "子树"
+
+#: ipalib/plugins/internal.py:236
+#, fuzzy
+msgid "Target Group"
+msgstr "目标组"
+
+#: ipalib/plugins/internal.py:237
+msgid "Object By Type"
+msgstr ""
+
+#: ipalib/plugins/internal.py:238
+msgid "Permission with invalid target specification"
+msgstr ""
+
+#: ipalib/plugins/internal.py:241
+msgid "Add Privilege"
+msgstr ""
+
+#: ipalib/plugins/internal.py:242
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:245
+#, fuzzy
+msgid "Add Password Policy"
+msgstr "密码"
+
+#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
+#, fuzzy
+msgid "Password Policy"
+msgstr "密码"
+
+#: ipalib/plugins/internal.py:249
+msgid "Add Role"
+msgstr ""
+
+#: ipalib/plugins/internal.py:250
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:253
+msgid "Add Self Service Definition"
+msgstr ""
+
+#: ipalib/plugins/internal.py:256
+#, fuzzy
+msgid "Add Service"
+msgstr "服务"
+
+#: ipalib/plugins/internal.py:257
+#, fuzzy
+msgid "Service Certificate"
+msgstr "证书"
+
+#: ipalib/plugins/internal.py:258
+#, fuzzy
+msgid "Service Settings"
+msgstr "服务"
+
+#: ipalib/plugins/internal.py:260
+#, fuzzy
+msgid "Provisioning"
+msgstr "权限"
+
+#: ipalib/plugins/internal.py:261
+#, fuzzy
+msgid "Service"
+msgstr "服务"
+
+#: ipalib/plugins/internal.py:263
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:267
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:271
+#, fuzzy
+msgid "Add Sudo Command"
+msgstr "组名"
+
+#: ipalib/plugins/internal.py:275
+#, fuzzy
+msgid "Add Sudo Command Group"
+msgstr "组名"
+
+#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:279
+msgid "Add Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:287
+#, fuzzy
+msgid "Access this host"
+msgstr "访问时间"
+
+#: ipalib/plugins/internal.py:290
+#, fuzzy
+msgid "Run Commands"
+msgstr "组名"
+
+#: ipalib/plugins/internal.py:291
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:292
+#, fuzzy
+msgid "Specified Commands and Groups"
+msgstr "组名"
+
+#: ipalib/plugins/internal.py:293
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:294
+#, fuzzy
+msgid "Any Group"
+msgstr "组"
+
+#: ipalib/plugins/internal.py:295
+#, fuzzy
+msgid "Specified Groups"
+msgstr "服务"
+
+#: ipalib/plugins/internal.py:297
+#, fuzzy
+msgid "External"
+msgstr "外部主机"
+
+#: ipalib/plugins/internal.py:300
+#, fuzzy
+msgid "Add User"
+msgstr "用户"
+
+#: ipalib/plugins/internal.py:301
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:302
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:303
+#, fuzzy
+msgid "Mailing Address"
+msgstr "邮件地址"
+
+#: ipalib/plugins/internal.py:304
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:305
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:307
+msgid "Click to Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:309
+msgid "Click to Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:310
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:311
+#, fuzzy
+msgid "Reset Password"
+msgstr "用户密码"
+
+#: ipalib/plugins/internal.py:312
+#, fuzzy
+msgid "New Password"
+msgstr "密码"
+
+#: ipalib/plugins/internal.py:313
+#, fuzzy
+msgid "Repeat Password"
+msgstr "密码"
+
+#: ipalib/plugins/internal.py:314
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:315
+#, fuzzy
+msgid "Passwords must match"
+msgstr "密码不匹配"
+
+#: ipalib/plugins/internal.py:319
msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:42
+#: ipalib/plugins/internal.py:320
+msgid "Add and Add Another"
+msgstr ""
+
+#: ipalib/plugins/internal.py:321
+msgid "Add and Edit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:322
+msgid "Add and Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:323
+msgid "Add Many"
+msgstr ""
+
+#: ipalib/plugins/internal.py:324
+msgid "Back to List"
+msgstr ""
+
+#: ipalib/plugins/internal.py:325
+#, fuzzy
+msgid "Cancel"
+msgstr "已取消"
+
+#: ipalib/plugins/internal.py:326
+msgid "Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:327
+msgid "Enroll"
+msgstr ""
+
+#: ipalib/plugins/internal.py:328
msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:43
+#: ipalib/plugins/internal.py:329
+msgid "Get"
+msgstr ""
+
+#: ipalib/plugins/internal.py:330
+msgid "Issue"
+msgstr ""
+
+#: ipalib/plugins/internal.py:331
+msgid "OK"
+msgstr ""
+
+#: ipalib/plugins/internal.py:332
msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:333
+msgid "Delete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:334
+msgid "Restore"
+msgstr ""
+
+#: ipalib/plugins/internal.py:335
+msgid "Retry"
+msgstr ""
+
+#: ipalib/plugins/internal.py:336
+#, fuzzy
+msgid "Revoke"
+msgstr "撤销"
+
+#: ipalib/plugins/internal.py:337
msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:45
-msgid "Enroll"
+#: ipalib/plugins/internal.py:338
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:46
-msgid "Delete"
+#: ipalib/plugins/internal.py:341
+msgid "Available"
+msgstr ""
+
+#: ipalib/plugins/internal.py:342
+msgid "This page has unsaved changes. Please save or revert."
+msgstr ""
+
+#: ipalib/plugins/internal.py:343
+msgid "Dirty"
+msgstr ""
+
+#: ipalib/plugins/internal.py:344
+#, fuzzy
+msgid "Hide already enrolled."
+msgstr "该条目已经被锁定"
+
+#: ipalib/plugins/internal.py:345
+msgid "Select ${entity} to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:49
+#: ipalib/plugins/internal.py:346
+msgid "Remove ${entity}."
+msgstr ""
+
+#: ipalib/plugins/internal.py:347
+msgid "Prospective"
+msgstr ""
+
+#: ipalib/plugins/internal.py:350
+msgid "Managed by"
+msgstr ""
+
+#: ipalib/plugins/internal.py:351
+#, fuzzy
+msgid "Member"
+msgstr "成员主机"
+
+#: ipalib/plugins/internal.py:352
+msgid "Indirect Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:353
+#, fuzzy
+msgid "Member Of"
+msgstr "成员主机"
+
+#: ipalib/plugins/internal.py:354
+msgid "Indirect Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
+msgid "Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:358
+msgid "Search"
+msgstr ""
+
+#: ipalib/plugins/internal.py:362
msgid "Quick Links"
msgstr ""
-#: ipalib/plugins/internal.py:50
+#: ipalib/plugins/internal.py:363
msgid "Select All"
msgstr ""
-#: ipalib/plugins/internal.py:51
+#: ipalib/plugins/internal.py:364
msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Do you really want to delete the selected entries?"
+#: ipalib/plugins/internal.py:365
+msgid "Are you sure you want to delete selected entries?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:366
+msgid ""
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
msgstr ""
-#: ipalib/plugins/internal.py:55
-msgid "Identity Details"
+#: ipalib/plugins/internal.py:370
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:56
-msgid "Account Details"
+#: ipalib/plugins/internal.py:371
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:57
-msgid "Contact Details"
+#: ipalib/plugins/internal.py:372
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:58
+#: ipalib/plugins/internal.py:373
+msgid "Back to Top"
+msgstr ""
+
+#: ipalib/plugins/internal.py:377
+msgid "Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:378
+msgid "Audit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:379
#, fuzzy
-msgid "Mailing Address"
-msgstr "邮件地址"
+msgid "IPA Server"
+msgstr "服务名"
-#: ipalib/plugins/internal.py:59
-msgid " Employee Information"
+#: ipalib/plugins/internal.py:380
+msgid "Sudo"
msgstr ""
-#: ipalib/plugins/internal.py:60
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:381
+msgid "Host Based Access Control"
msgstr ""
-#: ipalib/plugins/internal.py:61
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:382
+msgid "Role Based Access Control"
msgstr ""
-#: ipalib/plugins/internal.py:66
-msgid "Name of object to export"
+#: ipalib/plugins/internal.py:383
+msgid "Automount"
msgstr ""
-#: ipalib/plugins/internal.py:71
-msgid "Dict of JSON encoded IPA Objects"
+#: ipalib/plugins/internal.py:386
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:387
+msgid "${other_entity} enrolled in ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:72
+#: ipalib/plugins/internal.py:388
+msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:389
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:392
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:395
+msgid ""
+"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."
+msgstr ""
+
+#: ipalib/plugins/internal.py:399
msgid "Dict of I18N messages"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:59
+#: ipalib/plugins/kerberos.py:20
+msgid ""
+"\n"
+"Backend plugin for Kerberos.\n"
+"\n"
+"This wraps the python-kerberos and python-krbV bindings.\n"
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:35
+msgid ""
+"\n"
+" Kerberos backend plugin.\n"
+"\n"
+" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
+" bindings also). Importantly, this plugin does correct Unicode\n"
+" encoding/decoding of values going-to/coming-from the bindings.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:44
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:50
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:56
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:62
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:68
+msgid ""
+"\n"
+" Return the default ccache file name.\n"
+"\n"
+" This will return something like '/tmp/krb5cc_500'.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:79
+msgid ""
+"\n"
+" Return the principal name in default credential cache.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'. If no "
+"credential\n"
+" cache exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:91
+msgid ""
+"\n"
+" Return the realm from the default credential cache.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'. If no credential "
+"cache\n"
+" exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:103
+msgid ""
+"\n"
+" Return the principal from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:111
+msgid ""
+"\n"
+" Return the realm from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:19
+msgid ""
+"\n"
+"Kerberos ticket policy\n"
+"\n"
+"There is a single Kerberos ticket policy. This policy defines the\n"
+"maximum ticket lifetime and the maximum renewal age, the period during\n"
+"which the ticket is renewable.\n"
+"\n"
+"You can also create a per-user ticket policy by specifying the user login.\n"
+"\n"
+"For changes to the global policy to take effect, restarting the KDC service\n"
+"is required, which can be achieved using:\n"
+"\n"
+"service krb5kdc restart\n"
+"\n"
+"Changes to per-user policies take effect immediately for newly requested\n"
+"tickets (e.g. when the user next runs kinit).\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Display the current Kerberos ticket policy:\n"
+" ipa krbtpolicy-show\n"
+"\n"
+" Reset the policy to the default:\n"
+" ipa krbtpolicy-reset\n"
+"\n"
+" Modify the policy to 8 hours max life, 1-day max renewal:\n"
+" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n"
+"\n"
+" Display effective Kerberos ticket policy for user 'admin':\n"
+" ipa krbtpolicy-show admin\n"
+"\n"
+" Reset per-user policy for user 'admin':\n"
+" ipa krbtpolicy-reset admin\n"
+"\n"
+" Modify per-user policy for user 'admin':\n"
+" ipa krbtpolicy-mod admin --maxlife=3600\n"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:71
+msgid ""
+"\n"
+" Kerberos Ticket Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:79
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:64 ipalib/plugins/passwd.py:52
+#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
msgid "User name"
msgstr "用户名"
-#: ipalib/plugins/krbtpolicy.py:65
+#: ipalib/plugins/krbtpolicy.py:85
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:70
+#: ipalib/plugins/krbtpolicy.py:90
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:75
+#: ipalib/plugins/krbtpolicy.py:96
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:76
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/migration.py:44
-#, python-format
+#: ipalib/plugins/krbtpolicy.py:111
+msgid ""
+"\n"
+" Modify Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:125
+msgid ""
+"\n"
+" Display the current Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:149
+msgid ""
+"\n"
+" Reset Kerberos ticket policy to the default values.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:19
+msgid ""
+"\n"
+"Migration to IPA\n"
+"\n"
+"Migrate users and groups from an LDAP server to IPA.\n"
+"\n"
+"This performs an LDAP query against the remote server searching for\n"
+"users and groups in a container. In order to migrate passwords you need\n"
+"to bind as a user that can read the userPassword attribute on the remote\n"
+"server. This is generally restricted to high-level admins such as\n"
+"cn=Directory Manager in 389-ds (this is the default bind user).\n"
+"\n"
+"The default user container is ou=People.\n"
+"\n"
+"The default group container is ou=Groups.\n"
+"\n"
+"Users and groups that already exist on the IPA server are skipped.\n"
+"\n"
+"Two LDAP schemas define how group members are stored: RFC2307 and\n"
+"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n"
+"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n"
+"\n"
+"Migrated users do not have Kerberos credentials, they have only their\n"
+"LDAP password. To complete the migration process, users need to go\n"
+"to http://ipa.example.com/ipa/migration and authenticate using their\n"
+"LDAP password in order to generate their Kerberos credentials.\n"
+"\n"
+"Migration is disabled by default. Use the command ipa config-mod to\n"
+"enable it:\n"
+"\n"
+" ipa config-mod --enable-migration=TRUE\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" The simplest migration, accepting all defaults:\n"
+" ipa migrate-ds ldap://ds.example.com:389\n"
+"\n"
+" Specify the user and group container. This can be used to migrate user and\n"
+" group data from an IPA v1 server:\n"
+" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-"
+"container='cn=groups,cn=accounts' ldap://ds.example.com:389\n"
+msgstr ""
+
+#: ipalib/plugins/migration.py:78
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:45
+#: ipalib/plugins/migration.py:79
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:169
+#: ipalib/plugins/migration.py:175
+msgid ""
+"\n"
+" Convert usernames in member attributes to work in IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:220
+#, fuzzy
+msgid "Invalid LDAP URI."
+msgstr "LDAP URI"
+
+#: ipalib/plugins/migration.py:225
+msgid ""
+"\n"
+" Migrate users and groups from DS to IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:266
msgid "LDAP URI"
msgstr "LDAP URI"
-#: ipalib/plugins/migration.py:170
+#: ipalib/plugins/migration.py:267
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:174
+#: ipalib/plugins/migration.py:272
#, fuzzy
msgid "bind password"
msgstr "用户密码"
-#: ipalib/plugins/migration.py:181
+#: ipalib/plugins/migration.py:279
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:187
+#: ipalib/plugins/migration.py:285
msgid "User container"
msgstr "用户容器"
-#: ipalib/plugins/migration.py:188
+#: ipalib/plugins/migration.py:286
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:194
+#: ipalib/plugins/migration.py:292
msgid "Group container"
msgstr "组容器"
-#: ipalib/plugins/migration.py:195
+#: ipalib/plugins/migration.py:293
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:200
-msgid "Continous operation mode. Errors are reported but the process continues"
+#: ipalib/plugins/migration.py:299
+msgid "User object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:300
+msgid ""
+"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:208
+#: ipalib/plugins/migration.py:306
+msgid "Group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:307
+msgid ""
+"Comma-separated list of objectclasses used to search for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:313
+msgid "LDAP schema"
+msgstr ""
+
+#: ipalib/plugins/migration.py:314
+msgid ""
+"The schema used on the LDAP server. Supported values are RFC2307 and "
+"RFC2307bis. The default is RFC2307bis"
+msgstr ""
+
+#: ipalib/plugins/migration.py:320
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues"
+msgstr ""
+
+#: ipalib/plugins/migration.py:328
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:212
+#: ipalib/plugins/migration.py:332
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:216
+#: ipalib/plugins/migration.py:336
#, fuzzy
msgid "False if migration mode was disabled."
msgstr "启用迁移模式"
-#: ipalib/plugins/migration.py:220
-#, python-format
+#: ipalib/plugins/migration.py:340
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:222
+#: ipalib/plugins/migration.py:342
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
-"migration process might be uncomplete\n"
+"migration process might be incomplete\n"
msgstr ""
-#: ipalib/plugins/migration.py:227
+#: ipalib/plugins/migration.py:347
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:230
+#: ipalib/plugins/migration.py:350
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -1547,16 +4925,55 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:297
-#, python-format
+#: ipalib/plugins/migration.py:358
+msgid ""
+"\n"
+" Call get_options of the baseclass and add \"exclude\" options\n"
+" for each type of object being migrated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:375
+msgid ""
+"\n"
+" Convert all \"exclude\" option values to lower-case.\n"
+"\n"
+" Also, empty List parameters are converted to None, but the "
+"migration\n"
+" plugin doesn't like that - convert back to empty lists.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:399
+msgid ""
+"\n"
+" Migrate objects from DS to LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:425
msgid "Container for %(container)s not found"
msgstr ""
+#: ipalib/plugins/misc.py:20
+msgid ""
+"\n"
+"Misc plug-ins\n"
+msgstr ""
+
+#: ipalib/plugins/misc.py:36
+msgid "Show environment variables"
+msgstr ""
+
#: ipalib/plugins/misc.py:38
-#, python-format
msgid "%(count)d variables"
msgstr ""
+#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115
+msgid ""
+"retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
#: ipalib/plugins/misc.py:61
msgid "Total number of variables env (>= count)"
msgstr ""
@@ -1565,441 +4982,2468 @@ msgstr ""
msgid "Number of variables returned (<= total)"
msgstr ""
-#: ipalib/plugins/misc.py:109
-#, python-format
+#: ipalib/plugins/misc.py:106
+msgid "Show all loaded plugins"
+msgstr ""
+
+#: ipalib/plugins/misc.py:108
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/misc.py:116
+#: ipalib/plugins/misc.py:126
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:57
+#: ipalib/plugins/netgroup.py:20
+msgid ""
+"\n"
+"Netgroups\n"
+"\n"
+"A netgroup is a group used for permission checking. It can contain both\n"
+"user and host values.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new netgroup:\n"
+" ipa netgroup-add --desc=\"NFS admins\" admins\n"
+"\n"
+" Add members to the netgroup:\n"
+" ipa netgroup-add-member --users=tuser1,tuser2 admins\n"
+"\n"
+" Remove a member from the netgroup:\n"
+" ipa netgroup-remove-member --users=tuser2 admins\n"
+"\n"
+" Display information about a netgroup:\n"
+" ipa netgroup-show admins\n"
+"\n"
+" Delete a netgroup:\n"
+" ipa netgroup-del admins\n"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:59
#, fuzzy
msgid "Member Host"
msgstr "成员主机"
-#: ipalib/plugins/netgroup.py:63
-msgid "External host"
-msgstr "外部主机"
+#: ipalib/plugins/netgroup.py:67
+msgid ""
+"\n"
+" Netgroup object.\n"
+" "
+msgstr ""
-#: ipalib/plugins/netgroup.py:85
-msgid "Net Groups"
+#: ipalib/plugins/netgroup.py:98
+msgid "Netgroups"
msgstr "网络组"
-#: ipalib/plugins/netgroup.py:90
+#: ipalib/plugins/netgroup.py:103
msgid "Netgroup name"
msgstr "网络组名称"
-#: ipalib/plugins/netgroup.py:97
+#: ipalib/plugins/netgroup.py:110
msgid "Netgroup description"
msgstr "网络组描述"
-#: ipalib/plugins/netgroup.py:101
+#: ipalib/plugins/netgroup.py:114
msgid "NIS domain name"
msgstr "NIS域名"
-#: ipalib/plugins/netgroup.py:106
+#: ipalib/plugins/netgroup.py:119
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:84
-#, python-format
+#: ipalib/plugins/netgroup.py:140
+msgid ""
+"\n"
+" Add a new netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:144
+#, fuzzy
+msgid "Added netgroup \"%(value)s\""
+msgstr "已添加组\"%(value)s\""
+
+#: ipalib/plugins/netgroup.py:153
+msgid ""
+"\n"
+" Delete a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:156
+#, fuzzy
+msgid "Deleted netgroup \"%(value)s\""
+msgstr "已删除组\"%(value)s\""
+
+#: ipalib/plugins/netgroup.py:162
+msgid ""
+"\n"
+" Modify a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:166
+#, fuzzy
+msgid "Modified netgroup \"%(value)s\""
+msgstr "已修改组\"%(value)s\""
+
+#: ipalib/plugins/netgroup.py:180
+msgid ""
+"\n"
+" Search for a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:185
+#, fuzzy
+msgid "%(count)d netgroup matched"
+msgid_plural "%(count)d netgroups matched"
+msgstr[0] "%(count)d 个组匹配"
+msgstr[1] "%(count)d 个组匹配"
+
+#: ipalib/plugins/netgroup.py:213
+msgid ""
+"\n"
+" Display information about a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:222
+msgid ""
+"\n"
+" Add members to a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:258
+msgid ""
+"\n"
+" Remove members from a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:19
+msgid ""
+"\n"
+"Set a user's password\n"
+"\n"
+"If someone other than a user changes that user's password (e.g., Helpdesk\n"
+"resets it) then the password will need to be changed the first time it\n"
+"is used. This is so the end-user is the only one who knows the password.\n"
+"\n"
+"The IPA password policy controls how often a password may be changed,\n"
+"what strength requirements exist, and the length of the password history.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" To reset your own password:\n"
+" ipa passwd\n"
+"\n"
+" To change another user's password:\n"
+" ipa passwd tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/passwd.py:46
+#, fuzzy
+msgid ""
+"\n"
+" Set a user's password\n"
+" "
+msgstr "设置用户密码"
+
+#: ipalib/plugins/passwd.py:64
+#, fuzzy
+msgid "Changed password for \"%(value)s\""
+msgstr "新增用户\"%(value)s\""
+
+#: ipalib/plugins/passwd.py:67
+msgid ""
+"\n"
+" Execute the passwd operation.\n"
+"\n"
+" The dn should not be passed as a keyword argument as it is "
+"constructed\n"
+" by this method.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param principal: The login name or principal of the user\n"
+" :param password: the new password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:19
+msgid ""
+"\n"
+"Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of rights. A permission is\n"
+"a human-readable form of a 389-ds Access Control Rule, or instruction "
+"(ACI).\n"
+"A permission grants the right to perform a specific task such as adding a\n"
+"user, modifying a group, etc.\n"
+"\n"
+"A permission may not contain other permissions.\n"
+"\n"
+"* A permission grants access to read, write, add or delete.\n"
+"* A privilege combines similar permissions (for example all the permissions\n"
+" needed to add a user).\n"
+"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n"
+"\n"
+"A permission is made up of a number of different parts:\n"
+"\n"
+"1. The name of the permission.\n"
+"2. The target of the permission.\n"
+"3. The rights granted by the permission.\n"
+"\n"
+"Rights define what operations are allowed, and may be one or more\n"
+"of the following:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Read permission is granted for most attributes by default so the read\n"
+"permission is not expected to be used very often.\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"There are a number of allowed targets:\n"
+"1. type: a type of object (user, group, etc).\n"
+"2. memberof: a member of a group or hostgroup\n"
+"3. filter: an LDAP filter\n"
+"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n"
+" super-set of the \"type\" target.\n"
+"5. targetgroup: grant access to modify a specific group (such as granting\n"
+" the rights to manage group membership)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a permission that grants the creation of users:\n"
+" ipa permission-add --type=user --permissions=add \"Add Users\"\n"
+"\n"
+" Add a permission that grants the ability to manage group membership:\n"
+" ipa permission-add --attrs=member --permissions=write --type=group "
+"\"Manage Group Members\"\n"
+msgstr ""
+
+#: ipalib/plugins/permission.py:84
+#, fuzzy
+msgid "Permission Type"
+msgstr "权限"
+
+#: ipalib/plugins/permission.py:89
+msgid ""
+"\n"
+" Permission object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:112
+#, fuzzy
+msgid "Permission name"
+msgstr "权限"
+
+#: ipalib/plugins/permission.py:119
+msgid ""
+"Comma-separated list of permissions to grant (read, write, add, delete, all)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:132
+msgid ""
+"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:138
+#, fuzzy
+msgid "Member of group"
+msgstr "组成员"
+
+#: ipalib/plugins/permission.py:139
+#, fuzzy
+msgid "Target members of a group"
+msgstr "组成员"
+
+#: ipalib/plugins/permission.py:151
+msgid "Subtree to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:157
+msgid "User group to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:177
+msgid ""
+"\n"
+" Add a new permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:181
+#, fuzzy
+msgid "Added permission \"%(value)s\""
+msgstr "新增用户\"%(value)s\""
+
+#: ipalib/plugins/permission.py:236
+msgid ""
+"\n"
+" Delete a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:240
+#, fuzzy
+msgid "Deleted permission \"%(value)s\""
+msgstr "已删除用户\"%(value)s\""
+
+#: ipalib/plugins/permission.py:256
+msgid ""
+"\n"
+" Modify a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:260
+#, fuzzy
+msgid "Modified permission \"%(value)s\""
+msgstr "已修改用户\"%(value)s\""
+
+#: ipalib/plugins/permission.py:352
+msgid ""
+"\n"
+" Search for permissions.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:356
+#, fuzzy
+msgid "%(count)d permission matched"
+msgid_plural "%(count)d permissions matched"
+msgstr[0] "%(count)d 个组匹配"
+msgstr[1] "%(count)d 个组匹配"
+
+#: ipalib/plugins/permission.py:405
+msgid ""
+"\n"
+" Display information about a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:428
+msgid ""
+"\n"
+" Add members to a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:437
+msgid ""
+"\n"
+" Remove members from a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:19
+msgid ""
+"\n"
+"Ping the remote IPA server\n"
+msgstr ""
+
+#: ipalib/plugins/ping.py:29
+msgid ""
+"\n"
+" ping a remote server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:37
+msgid ""
+"\n"
+" A possible enhancement would be to take an argument and echo it\n"
+" back but a fixed value works for now.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:19
+msgid ""
+"\n"
+"Kerberos pkinit options\n"
+"\n"
+"Enable or disable anonymous pkinit using the principal\n"
+"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n"
+"pkinit support.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Enable anonymous pkinit:\n"
+" ipa pkinit-anonymous enable\n"
+"\n"
+" Disable anonymous pkinit:\n"
+" ipa pkinit-anonymous disable\n"
+"\n"
+"For more information on anonymous pkinit see:\n"
+"\n"
+"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:46
+msgid ""
+"\n"
+" PKINIT Options\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:51
+msgid "PKINIT"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:56
+msgid ""
+"\n"
+" Accepts only Enable/Disable.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:67
+msgid ""
+"\n"
+" Enable or Disable Anonymous PKINIT\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:19
+msgid ""
+"\n"
+"Privileges\n"
+"\n"
+"A privilege combines permissions into a logical task. A permission provides\n"
+"the rights to do a single task. There are some IPA operations that require\n"
+"multiple permissions to succeed. A privilege is where permissions are\n"
+"combined in order to perform a specific task.\n"
+"\n"
+"For example, adding a user requires the following permissions:\n"
+" * Creating a new user entry\n"
+" * Resetting a user password\n"
+" * Adding the new user to the default IPA users group\n"
+"\n"
+"Combining these three low-level tasks into a higher level task in the\n"
+"form of a privilege named \"Add User\" makes it easier to manage Roles.\n"
+"\n"
+"A privilege may not contain other privileges.\n"
+"\n"
+"See role and permission for additional information.\n"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:45
+msgid ""
+"\n"
+" Privilege object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:65
+msgid "Privileges"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:70
+#, fuzzy
+msgid "Privilege name"
+msgstr "服务名"
+
+#: ipalib/plugins/privilege.py:77
+#, fuzzy
+msgid "Privilege description"
+msgstr "描述"
+
+#: ipalib/plugins/privilege.py:85
+msgid ""
+"\n"
+" Add a new privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:89
+#, fuzzy
+msgid "Added privilege \"%(value)s\""
+msgstr "新增用户\"%(value)s\""
+
+#: ipalib/plugins/privilege.py:95
+msgid ""
+"\n"
+" Delete a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:99
+#, fuzzy
+msgid "Deleted privilege \"%(value)s\""
+msgstr "已删除用户\"%(value)s\""
+
+#: ipalib/plugins/privilege.py:105
+msgid ""
+"\n"
+" Modify a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:109
+#, fuzzy
+msgid "Modified privilege \"%(value)s\""
+msgstr "已修改用户\"%(value)s\""
+
+#: ipalib/plugins/privilege.py:115
+msgid ""
+"\n"
+" Search for privileges.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:119
+#, fuzzy
+msgid "%(count)d privilege matched"
+msgid_plural "%(count)d privileges matched"
+msgstr[0] "%(count)d 个组匹配"
+msgstr[1] "%(count)d 个组匹配"
+
+#: ipalib/plugins/privilege.py:127
+msgid ""
+"\n"
+" Display information about a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:135
+msgid ""
+"\n"
+" Add members to a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:144
+msgid ""
+"\n"
+" Remove members from a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:153
+msgid ""
+"\n"
+" Add permissions to a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:169
+msgid "Number of permissions added"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:177
+msgid ""
+"\n"
+" Remove permissions from a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:195
+msgid "Number of permissions removed"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:20
+msgid ""
+"\n"
+"Password policy\n"
+"\n"
+"A password policy sets limitations on IPA passwords, including maximum\n"
+"lifetime, minimum lifetime, the number of passwords to save in\n"
+"history, the number of character classes required (for stronger passwords)\n"
+"and the minimum password length.\n"
+"\n"
+"By default there is a single, global policy for all users. You can also\n"
+"create a password policy to apply to a group. Each user is only subject\n"
+"to one password policy, either the group policy or the global policy. A\n"
+"group policy stands alone; it is not a super-set of the global policy plus\n"
+"custom settings.\n"
+"\n"
+"Each group password policy requires a unique priority setting. If a user\n"
+"is in multiple groups that have password policies, this priority determines\n"
+"which password policy is applied. A lower value indicates a higher priority\n"
+"policy.\n"
+"\n"
+"Group password policies are automatically removed when the groups they\n"
+"are associated with are removed.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Modify the global policy:\n"
+" ipa pwpolicy-mod --minlength=10\n"
+"\n"
+" Add a new group password policy:\n"
+" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --"
+"minlength=8 --priority=10 localadmins\n"
+"\n"
+" Display the global password policy:\n"
+" ipa pwpolicy-show\n"
+"\n"
+" Display a group password policy:\n"
+" ipa pwpolicy-show localadmins\n"
+"\n"
+" Display the policy that would be applied to a given user:\n"
+" ipa pwpolicy-show --user=tuser1\n"
+"\n"
+" Modify a group password policy:\n"
+" ipa pwpolicy-mod --minclasses=2 localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:72
+msgid ""
+"\n"
+" Class of Service object used for linking policies with groups\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:87
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:170
+#: ipalib/plugins/pwpolicy.py:172
#, fuzzy
-msgid "Password Policy"
+msgid ""
+"\n"
+" Password Policy object\n"
+" "
msgstr "密码"
-#: ipalib/plugins/pwpolicy.py:175
+#: ipalib/plugins/pwpolicy.py:201
+msgid "Max failures"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:202
+msgid "Consecutive failures before lockout"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:207
+msgid "Failure reset interval"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:208
+msgid "Period after which failure count will be reset (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:213
+#, fuzzy
+msgid "Lockout duration"
+msgstr "位置"
+
+#: ipalib/plugins/pwpolicy.py:214
+msgid "Period for which lockout is enforced (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:224
msgid "Group"
msgstr "组"
-#: ipalib/plugins/pwpolicy.py:176
+#: ipalib/plugins/pwpolicy.py:225
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:181
+#: ipalib/plugins/pwpolicy.py:230
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:182
+#: ipalib/plugins/pwpolicy.py:231
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:187
+#: ipalib/plugins/pwpolicy.py:236
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:188
+#: ipalib/plugins/pwpolicy.py:237
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:193
+#: ipalib/plugins/pwpolicy.py:242
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:194
+#: ipalib/plugins/pwpolicy.py:243
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:199
+#: ipalib/plugins/pwpolicy.py:248
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:200
+#: ipalib/plugins/pwpolicy.py:249
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:206
+#: ipalib/plugins/pwpolicy.py:255
msgid "Min length"
msgstr "最小长度"
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:256
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:212
+#: ipalib/plugins/pwpolicy.py:261
msgid "Priority"
msgstr "优先级"
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:262
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:265
+#: ipalib/plugins/pwpolicy.py:294
+msgid ""
+"\n"
+" Ensure that the maximum lifetime is greater than the minimum.\n"
+" If there is no minimum lifetime set then don't return an error.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:314
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:330
+#: ipalib/plugins/pwpolicy.py:333
+msgid ""
+"\n"
+" Add a new group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:361
+msgid ""
+"\n"
+" Delete a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:380
+msgid ""
+"\n"
+" Modify a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:391
msgid "priority cannot be set on global policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:369
+#: ipalib/plugins/pwpolicy.py:423
+msgid ""
+"\n"
+" Display information about password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:428
msgid "User"
msgstr "用户"
-#: ipalib/plugins/pwpolicy.py:370
+#: ipalib/plugins/pwpolicy.py:429
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/rolegroup.py:79
-msgid "Role Groups"
-msgstr "角色组"
+#: ipalib/plugins/pwpolicy.py:452
+msgid ""
+"\n"
+" Search for group password policies.\n"
+" "
+msgstr ""
-#: ipalib/plugins/rolegroup.py:84
-msgid "Role-group name"
-msgstr "角色组名称"
+#: ipalib/plugins/role.py:20
+msgid ""
+"\n"
+"Roles\n"
+"\n"
+"A role is used for fine-grained delegation. A permission grants the ability\n"
+"to perform given low-level tasks (add a user, modify a group, etc.). A\n"
+"privilege combines one or more permissions into a higher-level abstraction\n"
+"such as useradmin. A useradmin would be able to add, delete and modify "
+"users.\n"
+"\n"
+"Privileges are assigned to Roles.\n"
+"\n"
+"Users, groups, hosts and hostgroups may be members of a Role.\n"
+"\n"
+"Roles can not contain other roles.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new role:\n"
+" ipa role-add --desc=\"Junior-level admin\" junioradmin\n"
+"\n"
+" Add some privileges to this role:\n"
+" ipa role-add-privilege --privileges=addusers junioradmin\n"
+" ipa role-add-privilege --privileges=change_password junioradmin\n"
+" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n"
+"\n"
+" Add a group of users to this role:\n"
+" ipa group-add --desc=\"User admins\" useradmins\n"
+" ipa role-add-member --groups=useradmins junioradmin\n"
+"\n"
+" Display information about a role:\n"
+" ipa role-show junioradmin\n"
+"\n"
+" The result of this is that any users in the group 'useradmins' can\n"
+" add users, reset passwords or add a user to the default IPA user group.\n"
+msgstr ""
+
+#: ipalib/plugins/role.py:62
+msgid ""
+"\n"
+" Role object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:81
+msgid "Role"
+msgstr ""
+
+#: ipalib/plugins/role.py:86
+#, fuzzy
+msgid "Role name"
+msgstr "规则名"
-#: ipalib/plugins/rolegroup.py:91
+#: ipalib/plugins/role.py:93
msgid "A description of this role-group"
msgstr "该角色组的描述"
-#: ipalib/plugins/rolegroup.py:102
-msgid "Member of task-groups"
-msgstr "任务组成员"
+#: ipalib/plugins/role.py:101
+msgid ""
+"\n"
+" Add a new role.\n"
+" "
+msgstr ""
-#: ipalib/plugins/rolegroup.py:115
-#, python-format
-msgid "Added rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:105
+#, fuzzy
+msgid "Added role \"%(value)s\""
+msgstr "已添加组\"%(value)s\""
+
+#: ipalib/plugins/role.py:111
+msgid ""
+"\n"
+" Delete a role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:125
-#, python-format
-msgid "Deleted rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:115
+#, fuzzy
+msgid "Deleted role \"%(value)s\""
+msgstr "已删除组\"%(value)s\""
+
+#: ipalib/plugins/role.py:121
+msgid ""
+"\n"
+" Modify a role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:135
-#, python-format
-msgid "Modified rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:125
+#, fuzzy
+msgid "Modified role \"%(value)s\""
+msgstr "已修改组\"%(value)s\""
+
+#: ipalib/plugins/role.py:131
+msgid ""
+"\n"
+" Search for roles.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:146
-#, python-format
-msgid "%(count)d rolegroup matched"
-msgid_plural "%(count)d rolegroups matched"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/role.py:135
+#, fuzzy
+msgid "%(count)d role matched"
+msgid_plural "%(count)d roles matched"
+msgstr[0] "%(count)d 个组匹配"
+msgstr[1] "%(count)d 个组匹配"
+
+#: ipalib/plugins/role.py:143
+msgid ""
+"\n"
+" Display information about a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:151
+msgid ""
+"\n"
+" Add members to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:159
+msgid ""
+"\n"
+" Remove members from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:167
+msgid ""
+"\n"
+" Add privileges to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:183
+msgid "Number of privileges added"
+msgstr ""
+
+#: ipalib/plugins/role.py:191
+msgid ""
+"\n"
+" Remove privileges from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:207
+msgid "Number of privileges removed"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:19
+msgid ""
+"\n"
+"Self-service Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"A Self-service permission defines what an object can change in its own "
+"entry.\n"
+"\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a self-service rule to allow users to manage their address:\n"
+" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st "
+"\"Users manage their own address\"\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add telephoneNumber to the list:\n"
+" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber "
+"\"Users manage their own address\"\n"
+"\n"
+" Display our updated rule:\n"
+" ipa selfservice-show \"Users manage their own address\"\n"
+"\n"
+" Delete a rule:\n"
+" ipa selfservice-del \"Users manage their own address\"\n"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:56
+msgid ""
+"\n"
+" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a self-service ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:64
+msgid "Self-service permission '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:68
+msgid ""
+"\n"
+" Selfservice object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:75
+#, fuzzy
+msgid "Self Service Permissions"
+msgstr "权限"
+
+#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
+#, fuzzy
+msgid "Self-service name"
+msgstr "服务名"
+
+#: ipalib/plugins/selfservice.py:114
+msgid ""
+"\n"
+" Add a new self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:118
+#, fuzzy
+msgid "Added selfservice \"%(value)s\""
+msgstr "新增用户\"%(value)s\""
+
+#: ipalib/plugins/selfservice.py:137
+msgid ""
+"\n"
+" Delete a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:142
+#, fuzzy
+msgid "Deleted selfservice \"%(value)s\""
+msgstr "已删除用户\"%(value)s\""
-#: ipalib/plugins/service.py:198
+#: ipalib/plugins/selfservice.py:158
+msgid ""
+"\n"
+" Modify a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:162
+#, fuzzy
+msgid "Modified selfservice \"%(value)s\""
+msgstr "已修改用户\"%(value)s\""
+
+#: ipalib/plugins/selfservice.py:181
+msgid ""
+"\n"
+" Search for a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:185
+#, fuzzy
+msgid "%(count)d selfservice matched"
+msgid_plural "%(count)d selfservices matched"
+msgstr[0] "%(count)d 个组匹配"
+msgstr[1] "%(count)d 个组匹配"
+
+#: ipalib/plugins/selfservice.py:207
+msgid ""
+"\n"
+" Display information about a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:21
+msgid ""
+"\n"
+"Services\n"
+"\n"
+"A IPA service represents a service that runs on a host. The IPA service\n"
+"record can store a Kerberos principal, an SSL certificate, or both.\n"
+"\n"
+"An IPA service can be managed directly from a machine, provided that\n"
+"machine has been given the correct permission. This is true even for\n"
+"machines other than the one the service is associated with. For example,\n"
+"requesting an SSL certificate using the host service principal credentials\n"
+"of the host. To manage a service using host credentials you need to\n"
+"kinit as the host:\n"
+"\n"
+" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n"
+"\n"
+"Adding an IPA service allows the associated service to request an SSL\n"
+"certificate or keytab, but this is performed as a separate step; they\n"
+"are not produced as a result of adding the service.\n"
+"\n"
+"Only the public aspect of a certificate is stored in a service record;\n"
+"the private key is not stored.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new IPA service:\n"
+" ipa service-add HTTP/web.example.com\n"
+"\n"
+" Allow a host to manage an IPA service certificate:\n"
+" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n"
+" ipa role-add-member --hosts=web.example.com certadmin\n"
+"\n"
+" Delete an IPA service:\n"
+" ipa service-del HTTP/web.example.com\n"
+"\n"
+" Find all IPA services associated with a host:\n"
+" ipa service-find web.example.com\n"
+"\n"
+" Find all HTTP services:\n"
+" ipa service-find HTTP\n"
+"\n"
+" Disable the service Kerberos key and SSL certificate:\n"
+" ipa service-disable HTTP/web.example.com\n"
+"\n"
+" Request a certificate for an IPA service:\n"
+" ipa cert-request --principal=HTTP/web.example.com example.csr\n"
+"\n"
+" Generate and retrieve a keytab for an IPA service:\n"
+" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/"
+"httpd.keytab\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/service.py:162
+msgid ""
+"\n"
+" For now just verify that it is properly base64-encoded.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:175
+msgid ""
+"\n"
+" Set individual attributes from some values from a certificate.\n"
+"\n"
+" entry_attrs is a dict of an entry\n"
+"\n"
+" returns nothing\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:199
+msgid ""
+"\n"
+" Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:226
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:221
+#: ipalib/plugins/service.py:242
+msgid ""
+"\n"
+" Add a new IPA new service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:245
+msgid "Added service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/service.py:251
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:292
-#, fuzzy, python-format
+#: ipalib/plugins/service.py:284
+msgid ""
+"\n"
+" Delete an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:287
+msgid "Deleted service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/service.py:321
+msgid ""
+"\n"
+" Modify an existing IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:324
+#, fuzzy
msgid "Modified service \"%(value)s\""
msgstr "已修改用户\"%(value)s\""
-#: ipalib/plugins/service.py:323
-#, fuzzy, python-format
+#: ipalib/plugins/service.py:356
+msgid ""
+"\n"
+" Search for IPA services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:359
+#, fuzzy
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] "%(count)d 个组匹配"
msgstr[1] "%(count)d 个组匹配"
-#: ipalib/plugins/service.py:409
-msgid "Service principal has no kerberos key"
+#: ipalib/plugins/service.py:394
+msgid ""
+"\n"
+" Display information about an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:432
+msgid ""
+"\n"
+" Add hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:442
+msgid ""
+"\n"
+" Remove hosts that can manage this service.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmd.py:60
-msgid "SudoCmds"
+#: ipalib/plugins/service.py:452
+msgid ""
+"\n"
+" Disable the Kerberos key and SSL certificate of a service.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmd.py:65
+#: ipalib/plugins/service.py:456
+#, fuzzy
+msgid "Disabled service \"%(value)s\""
+msgstr "已修改用户\"%(value)s\""
+
+#: ipalib/plugins/sudocmd.py:19
+msgid ""
+"\n"
+"Sudo Commands\n"
+"\n"
+"Commands used as building blocks for sudo\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a new command\n"
+" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n"
+"\n"
+" Remove a command\n"
+" ipa sudocmd-del /usr/bin/less\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:46
+msgid ""
+"\n"
+" Sudo Command object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:64
+#, fuzzy
+msgid "Sudo Commands"
+msgstr "组名"
+
+#: ipalib/plugins/sudocmd.py:69
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:72
+#: ipalib/plugins/sudocmd.py:75
#, fuzzy
msgid "A description of this command"
msgstr "该角色组的描述"
-#: ipalib/plugins/sudocmd.py:99
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:98
+msgid ""
+"\n"
+" Create new sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:102
+#, fuzzy
msgid "Added sudo command \"%(value)s\""
msgstr "新增主机 \"%(value)s\""
-#: ipalib/plugins/sudocmd.py:108
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:107
+#, fuzzy
+msgid ""
+"\n"
+" Delete sudo command.\n"
+" "
+msgstr "已删除主机 \"%(value)s\""
+
+#: ipalib/plugins/sudocmd.py:111
+#, fuzzy
msgid "Deleted sudo command \"%(value)s\""
msgstr "已删除主机 \"%(value)s\""
-#: ipalib/plugins/sudocmd.py:117
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:116
+msgid ""
+"\n"
+" Modify command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:120
+#, fuzzy
msgid "Modified sudo command \"%(value)s\""
msgstr "已修改主机 \"%(value)s\""
-#: ipalib/plugins/sudocmd.py:127
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmd.py:125
+msgid ""
+"\n"
+" Search for commands.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:129
+#, fuzzy
msgid "%(count)d sudo command matched"
msgid_plural "%(count)d sudo command matched"
msgstr[0] "%(count)d 个组匹配"
msgstr[1] "%(count)d 个组匹配"
-#: ipalib/plugins/sudocmdgroup.py:66 ipalib/plugins/sudocmdgroup.py:85
-#: ipalib/plugins/sudorule.py:81 ipalib/plugins/sudorule.py:85
-msgid "Sudo Command Groups"
+#: ipalib/plugins/sudocmd.py:136
+msgid ""
+"\n"
+" Display sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:19
+msgid ""
+"\n"
+"Groups of Sudo commands\n"
+"\n"
+"Manage groups of Sudo commands.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new Sudo command group:\n"
+" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
+"\n"
+" Remove a Sudo command group:\n"
+" ipa sudocmdgroup-del admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim "
+"admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
+"\n"
+" Show a Sudo command group:\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:50
+msgid ""
+"\n"
+" Sudo Group object.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:71
+#: ipalib/plugins/sudocmdgroup.py:70
#, fuzzy
msgid "Sudo Command Group"
msgstr "组名"
-#: ipalib/plugins/sudocmdgroup.py:81
-msgid "Commands"
+#: ipalib/plugins/sudocmdgroup.py:93
+msgid ""
+"\n"
+" Create new sudo command group.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:98
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:97
+#, fuzzy
msgid "Added sudo command group \"%(value)s\""
msgstr "已添加组\"%(value)s\""
-#: ipalib/plugins/sudocmdgroup.py:108
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:103
+#, fuzzy
+msgid ""
+"\n"
+" Delete sudo command group.\n"
+" "
+msgstr "已删除组\"%(value)s\""
+
+#: ipalib/plugins/sudocmdgroup.py:107
+#, fuzzy
msgid "Deleted sudo command group \"%(value)s\""
msgstr "已删除组\"%(value)s\""
-#: ipalib/plugins/sudocmdgroup.py:118
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:113
+msgid ""
+"\n"
+" Modify group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:117
+#, fuzzy
msgid "Modified sudo command group \"%(value)s\""
msgstr "已修改组\"%(value)s\""
-#: ipalib/plugins/sudocmdgroup.py:129
-#, fuzzy, python-format
+#: ipalib/plugins/sudocmdgroup.py:123
+msgid ""
+"\n"
+" Search for sudo command groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:127
+#, fuzzy
msgid "%(count)d sudo command group matched"
msgid_plural "%(count)d sudo command groups matched"
msgstr[0] "%(count)d 个组匹配"
msgstr[1] "%(count)d 个组匹配"
-#: ipalib/plugins/sudorule.py:48
-msgid "SudoRule"
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid ""
+"\n"
+" Display sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:144
+#, fuzzy
+msgid ""
+"\n"
+" Add members to sudo command group.\n"
+" "
+msgstr "已添加组\"%(value)s\""
+
+#: ipalib/plugins/sudocmdgroup.py:152
+msgid ""
+"\n"
+" Remove members from sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:19
+msgid ""
+"\n"
+"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
+"give certain users (or groups of users) the ability to run some (or all)\n"
+"commands as root or another user while providing an audit trail of the\n"
+"commands and their arguments.\n"
+"\n"
+"FreeIPA provides a designated binddn to use with Sudo located at:\n"
+"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
+"\n"
+"To enable the binddn run the following command to set the password:\n"
+"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -"
+"ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,"
+"dc=com\n"
+"\n"
+"For more information, see the FreeIPA Documentation to Sudo.\n"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:44
+msgid ""
+"\n"
+" Sudo Rule management\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:68
+msgid "Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:98
+#, fuzzy
+msgid "Command category"
+msgstr "主机类别"
+
+#: ipalib/plugins/sudorule.py:99
+msgid "Command category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:104
+#, fuzzy
+msgid "Run As User category"
+msgstr "用户类别"
+
+#: ipalib/plugins/sudorule.py:105
+msgid "Run As User category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:110
+#, fuzzy
+msgid "Run As Group category"
+msgstr "用户类别"
+
+#: ipalib/plugins/sudorule.py:111
+msgid "Run As Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/sudorule.py:131
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:77
+#: ipalib/plugins/sudorule.py:135
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:109
-#, fuzzy, python-format
+#: ipalib/plugins/sudorule.py:147
+msgid "Run As User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:151
+#, fuzzy
+msgid "Run As Group"
+msgstr "用户组"
+
+#: ipalib/plugins/sudorule.py:156
+#, fuzzy
+msgid "External User"
+msgstr "外部主机"
+
+#: ipalib/plugins/sudorule.py:157
+msgid "External User the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:161
+#, fuzzy
+msgid "RunAs External User"
+msgstr "外部主机"
+
+#: ipalib/plugins/sudorule.py:162
+msgid "External User the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:166
+#, fuzzy
+msgid "RunAs External Group"
+msgstr "外部主机"
+
+#: ipalib/plugins/sudorule.py:167
+msgid "External Group the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:175
+msgid ""
+"\n"
+" Create new Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
+#, fuzzy
msgid "Added sudo rule \"%(value)s\""
msgstr "新增用户\"%(value)s\""
-#: ipalib/plugins/taskgroup.py:51
-msgid "Task Groups"
-msgstr "任务组"
+#: ipalib/plugins/sudorule.py:189
+msgid ""
+"\n"
+" Delete Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:56
-msgid "Task-group name"
-msgstr "任务组名称"
+#: ipalib/plugins/sudorule.py:197
+msgid ""
+"\n"
+" Modify Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:63
-msgid "Task-group description"
-msgstr "任务组描述"
+#: ipalib/plugins/sudorule.py:205
+msgid ""
+"\n"
+" Search for Sudo Rule.\n"
+" "
+msgstr ""
-#: ipalib/plugins/taskgroup.py:74
-msgid "Member role-groups"
+#: ipalib/plugins/sudorule.py:213
+msgid ""
+"\n"
+" Display Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:87
-#, python-format
-msgid "Added taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:221
+msgid ""
+"\n"
+" Enable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:97
-#, python-format
-msgid "Deleted taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:247
+msgid ""
+"\n"
+" Disable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:107
-#, python-format
-msgid "Modified taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
+msgid ""
+"\n"
+" Add commands and sudo command groups affected by Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:118
-#, python-format
-msgid "%(count)d taskgroup matched"
-msgid_plural "%(count)d taskgroups matched"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
+msgid ""
+"\n"
+" Remove commands and sudo command groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:313
+msgid ""
+"\n"
+" Add users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:349
+msgid ""
+"\n"
+" Remove users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:383
+msgid ""
+"\n"
+" Add hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:419
+msgid ""
+"\n"
+" Remove hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:453
+msgid ""
+"\n"
+" Add user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:489
+msgid ""
+"\n"
+" Remove user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:523
+msgid ""
+"\n"
+" Add group for Sudo to execute as.\n"
+" "
+msgstr ""
-#: ipalib/plugins/user.py:84
+#: ipalib/plugins/sudorule.py:559
+msgid ""
+"\n"
+" Remove group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:593
+msgid ""
+"\n"
+" Add an option to the Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
+msgid "Sudo Option"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:635
+msgid ""
+"\n"
+" Remove an option from Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:20
+msgid ""
+"\n"
+"Users\n"
+"\n"
+"Manage user entries. All users are POSIX users.\n"
+"\n"
+"IPA supports a wide range of username formats, but you need to be aware of "
+"any\n"
+"restrictions that may apply to your particular environment. For example,\n"
+"usernames that start with a digit or usernames that exceed a certain length\n"
+"may cause problems for some UNIX systems.\n"
+"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n"
+"\n"
+"Disabling a user account prevents that user from obtaining new Kerberos\n"
+"credentials. It does not invalidate any credentials that have already\n"
+"been issued.\n"
+"\n"
+"Password management is not a part of this module. For more information\n"
+"about this topic please see: ipa help passwd\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1\n"
+"\n"
+" Find all users whose entries include the string \"Tim\":\n"
+" ipa user-find Tim\n"
+"\n"
+" Find all users with \"Tim\" as the first name:\n"
+" ipa user-find --first=Tim\n"
+"\n"
+" Disable a user account:\n"
+" ipa user-disable tuser1\n"
+"\n"
+" Enable a user account:\n"
+" ipa user-enable tuser1\n"
+"\n"
+" Delete a user:\n"
+" ipa user-del tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/user.py:79
+msgid ""
+"\n"
+" User object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:116
msgid "User login"
msgstr "用户登录名"
-#: ipalib/plugins/user.py:91
+#: ipalib/plugins/user.py:123
msgid "First name"
msgstr "名"
-#: ipalib/plugins/user.py:95
+#: ipalib/plugins/user.py:127
msgid "Last name"
msgstr "姓"
-#: ipalib/plugins/user.py:103
+#: ipalib/plugins/user.py:130
+#, fuzzy
+msgid "Full name"
+msgstr "规则名"
+
+#: ipalib/plugins/user.py:135
+#, fuzzy
+msgid "Display name"
+msgstr "名"
+
+#: ipalib/plugins/user.py:140
+msgid "Initials"
+msgstr ""
+
+#: ipalib/plugins/user.py:146
+#, fuzzy
+msgid "Home directory"
+msgstr "主目录"
+
+#: ipalib/plugins/user.py:150
msgid "GECOS field"
msgstr "GECOS字段"
-#: ipalib/plugins/user.py:109
+#: ipalib/plugins/user.py:156
msgid "Login shell"
msgstr "登录shell"
-#: ipalib/plugins/user.py:114
+#: ipalib/plugins/user.py:161
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:120
+#: ipalib/plugins/user.py:168
msgid "Email address"
msgstr "邮件地址"
-#: ipalib/plugins/user.py:124
-msgid "Password"
-msgstr "密码"
-
-#: ipalib/plugins/user.py:125
-msgid "Set the user password"
+#: ipalib/plugins/user.py:173
+#, fuzzy
+msgid "Prompt to set the user password"
msgstr "设置用户密码"
-#: ipalib/plugins/user.py:132
+#: ipalib/plugins/user.py:180
msgid "UID"
msgstr "UID"
-#: ipalib/plugins/user.py:133
+#: ipalib/plugins/user.py:181
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:139
+#: ipalib/plugins/user.py:188
+#, fuzzy
+msgid "Group ID Number"
+msgstr "组名"
+
+#: ipalib/plugins/user.py:193
msgid "Street address"
msgstr "街道地址"
-#: ipalib/plugins/user.py:142
-msgid "Groups"
-msgstr "用户组"
-
-#: ipalib/plugins/user.py:146
-msgid "Netgroups"
-msgstr "网络组"
+#: ipalib/plugins/user.py:197
+msgid "City"
+msgstr ""
-#: ipalib/plugins/user.py:150
-msgid "Rolegroups"
-msgstr "角色组"
+#: ipalib/plugins/user.py:201
+msgid "State/Province"
+msgstr ""
-#: ipalib/plugins/user.py:154
-msgid "Taskgroups"
-msgstr "任务组"
+#: ipalib/plugins/user.py:204
+msgid "ZIP"
+msgstr ""
-#: ipalib/plugins/user.py:159
+#: ipalib/plugins/user.py:208
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:211
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:163
+#: ipalib/plugins/user.py:214
#, fuzzy
msgid "Pager Number"
msgstr "序列号"
-#: ipalib/plugins/user.py:166
+#: ipalib/plugins/user.py:218
#, fuzzy
msgid "Fax Number"
msgstr "序列号"
-#: ipalib/plugins/user.py:177
-#, python-format
+#: ipalib/plugins/user.py:222
+msgid "Org. Unit"
+msgstr ""
+
+#: ipalib/plugins/user.py:225
+msgid "Job Title"
+msgstr ""
+
+#: ipalib/plugins/user.py:228
+msgid "Manager"
+msgstr ""
+
+#: ipalib/plugins/user.py:231
+msgid "Car License"
+msgstr ""
+
+#: ipalib/plugins/user.py:234
+msgid "Account disabled"
+msgstr ""
+
+#: ipalib/plugins/user.py:258
+msgid ""
+"\n"
+" Given a userid verify the user's existence and return the dn.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:276
+msgid "manager %(manager)s not found"
+msgstr ""
+
+#: ipalib/plugins/user.py:281
+msgid ""
+"\n"
+" Convert a manager dn into a userid\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:295
+msgid ""
+"\n"
+" Add a new user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:298
msgid "Added user \"%(value)s\""
msgstr "新增用户\"%(value)s\""
-#: ipalib/plugins/user.py:226
-#, python-format
+#: ipalib/plugins/user.py:303
+#, fuzzy
+msgid "Don't create user private group"
+msgstr "默认用户组"
+
+#: ipalib/plugins/user.py:333
+msgid "can be at most %(len)d characters"
+msgstr ""
+
+#: ipalib/plugins/user.py:400
+msgid ""
+"\n"
+" Delete a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:404
msgid "Deleted user \"%(value)s\""
msgstr "已删除用户\"%(value)s\""
-#: ipalib/plugins/user.py:240
-#, python-format
+#: ipalib/plugins/user.py:413
+msgid ""
+"\n"
+" Modify a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:417
msgid "Modified user \"%(value)s\""
msgstr "已修改用户\"%(value)s\""
-#: ipalib/plugins/user.py:252
+#: ipalib/plugins/user.py:437
+msgid ""
+"\n"
+" Search for users.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:444
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:253
+#: ipalib/plugins/user.py:445
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:263
-#, python-format
+#: ipalib/plugins/user.py:463
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:283
-#, fuzzy, python-format
+#: ipalib/plugins/user.py:471
+msgid ""
+"\n"
+" Display information about a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:484
+#, fuzzy
+msgid ""
+"\n"
+" Disable a user account.\n"
+" "
+msgstr "已删除用户\"%(value)s\""
+
+#: ipalib/plugins/user.py:489
+#, fuzzy
msgid "Disabled user account \"%(value)s\""
msgstr "已删除用户\"%(value)s\""
-#: ipalib/plugins/user.py:309
-#, fuzzy, python-format
+#: ipalib/plugins/user.py:507
+#, fuzzy
+msgid ""
+"\n"
+" Enable a user account.\n"
+" "
+msgstr "已解锁用户\"%(value)s\""
+
+#: ipalib/plugins/user.py:512
+#, fuzzy
msgid "Enabled user account \"%(value)s\""
msgstr "已解锁用户\"%(value)s\""
-#: ipaserver/install/certs.py:599 ipaserver/plugins/dogtag.py:1313
-#: ipaserver/plugins/dogtag.py:1398 ipaserver/plugins/dogtag.py:1463
-#: ipaserver/plugins/dogtag.py:1543 ipaserver/plugins/dogtag.py:1602
+#: ipalib/plugins/user.py:529
+msgid ""
+"\n"
+" Unlock a user account\n"
+"\n"
+" An account may become locked if the password is entered incorrectly too\n"
+" many times within a specific time period as controlled by password\n"
+" policy. A locked account is a temporary condition and may be unlocked "
+"by\n"
+" an administrator.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:538
+#, fuzzy
+msgid "Unlocked account \"%(value)s\""
+msgstr "已解锁用户\"%(value)s\""
+
+#: ipalib/plugins/virtual.py:20
+msgid ""
+"\n"
+"Base classes for non-LDAP backend plugins.\n"
+msgstr ""
+
+#: ipalib/plugins/virtual.py:28
+msgid ""
+"\n"
+" A command that doesn't use the LDAP backend but wants to use the\n"
+" LDAP access control system to make authorization decisions.\n"
+"\n"
+" The class variable operation is the commonName attribute of the\n"
+" entry to be tested against.\n"
+"\n"
+" In advance, you need to create an entry of the form:\n"
+" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
+"\n"
+" Ex.\n"
+" cn=request certificate, cn=virtual operations,cn=etc, dc=example, "
+"dc=com\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/virtual.py:44
+msgid ""
+"\n"
+" Perform an LDAP query to determine authorization.\n"
+"\n"
+" This should be executed before any actual work is done.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/xmlclient.py:21
+msgid ""
+"\n"
+"XML-RPC client plugin.\n"
+msgstr ""
+
+#: ipalib/cli.py:581
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr "再次输入 %(label)s进行校验: "
+
+#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
+#, c-format
+msgid "Passwords do not match!"
+msgstr "密码不匹配!"
+
+#: ipalib/cli.py:590
+msgid "Cancelled."
+msgstr "已取消"
+
+#: ipalib/cli.py:819
+#, fuzzy
+msgid "Command name"
+msgstr "NIS域名"
+
+#: ipalib/cli.py:1117
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:300
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:318
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:334
+msgid "an internal error has occurred"
+msgstr "发生了一个内部错误"
+
+#: ipalib/errors.py:356
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr "服务器%(server)r上发生了一个内部错误"
+
+#: ipalib/errors.py:372
+#, python-format
+msgid "unknown command %(name)r"
+msgstr "未知的命令%(name)r"
+
+#: ipalib/errors.py:389 ipalib/errors.py:414
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:405
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr "无法连接到%(uri)r: %(error)s"
+
+#: ipalib/errors.py:423
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr "无效的JSON-RPC请求: %(error)s"
+
+#: ipalib/errors.py:439
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:465
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:482
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:498
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:514
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:530
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:546
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:562
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:578
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:597
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:641
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr "命令 %(name)r不需要参数"
+
+#: ipalib/errors.py:661
+#, python-format
+msgid "command %(name)r takes at most %(count)d argument"
+msgid_plural "command %(name)r takes at most %(count)d arguments"
+msgstr[0] "命令 %(name)r最多接受%(count)d个参数"
+msgstr[1] "命令 %(name)r最多接受%(count)d个参数"
+
+#: ipalib/errors.py:691
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:707
+#, python-format
+msgid "%(name)r is required"
+msgstr "需要%(name)r"
+
+#: ipalib/errors.py:723 ipalib/errors.py:739
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr "%(name)r无效: %(error)s"
+
+#: ipalib/errors.py:755
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr "API没有这个名字空间: %(name)r"
+
+#: ipalib/errors.py:764
+msgid "Passwords do not match"
+msgstr "密码不匹配"
+
+#: ipalib/errors.py:773
+msgid "Command not implemented"
+msgstr "命令没有实现"
+
+#: ipalib/errors.py:782
+msgid "Client is not configured. Run ipa-client-install."
+msgstr ""
+
+#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
+#: ipalib/errors.py:1424 ipalib/errors.py:1441
+#, python-format
+msgid "%(reason)s"
+msgstr "%(reason)s"
+
+#: ipalib/errors.py:826
+msgid "This entry already exists"
+msgstr "条目已经存在"
+
+#: ipalib/errors.py:842
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:858
+#, python-format
+msgid ""
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:874
+msgid ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr ""
+
+#: ipalib/errors.py:890
+msgid "This command requires root access"
+msgstr "该命令需要root访问权限"
+
+#: ipalib/errors.py:906
+msgid "This is already a posix group"
+msgstr "这已经是一个posix组"
+
+#: ipalib/errors.py:922
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:938
+#, fuzzy
+msgid "This entry is already enabled"
+msgstr "该条目已经解锁"
+
+#: ipalib/errors.py:954
+#, fuzzy
+msgid "This entry is already disabled"
+msgstr "该条目已经被锁定"
+
+#: ipalib/errors.py:970
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:986
+#, fuzzy
+msgid "This entry is not a member"
+msgstr "该条目不是该组的成员"
+
+#: ipalib/errors.py:1002
+msgid "A group may not be a member of itself"
+msgstr "一个组不能是自己的成员"
+
+#: ipalib/errors.py:1018
+#, fuzzy
+msgid "This entry is already a member"
+msgstr "该条目已经是该组的成员"
+
+#: ipalib/errors.py:1034
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr "Base64解码失败: %(reason)s"
+
+#: ipalib/errors.py:1066
+msgid "A group may not be added as a member of itself"
+msgstr "一个组不能是自己的成员"
+
+#: ipalib/errors.py:1082
+msgid "The default users group cannot be removed"
+msgstr "默认的用户组不成被删除"
+
+#: ipalib/errors.py:1098
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1113
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1128
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1160
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1176
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1192
+#, python-format
+msgid ""
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1216
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1240
+msgid "change collided with another change"
+msgstr "修改冲突"
+
+#: ipalib/errors.py:1256
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1272
+#, fuzzy, python-format
+msgid "%(desc)s: %(info)s"
+msgstr "%(desc)s:%(info)s"
+
+#: ipalib/errors.py:1288
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1303
+#, python-format
+msgid "%(info)s"
+msgstr "%(info)s"
+
+#: ipalib/errors.py:1318
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1334
+#, fuzzy, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr "只允许一个值"
+
+#: ipalib/errors.py:1350
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1366
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1391
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1407
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1458
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1474
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:398
+msgid "Results are truncated, try a more specific search"
+msgstr "结果被截断,请尝试更明确的搜索"
+
+#: ipalib/frontend.py:850
+msgid ""
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:856
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:985
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:296
+msgid "incorrect type"
+msgstr "不正确的类型"
+
+#: ipalib/parameters.py:299
+msgid "Only one value is allowed"
+msgstr "只允许一个值"
+
+#: ipalib/parameters.py:901
+msgid "must be True or False"
+msgstr "必须是True或False"
+
+#: ipalib/parameters.py:1002
+msgid "must be an integer"
+msgstr "必须是一个整数"
+
+#: ipalib/parameters.py:1054
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1064
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1074
+msgid "must be a decimal number"
+msgstr "必须是一个十进制数"
+
+#: ipalib/parameters.py:1097
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1107
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1174
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1192
+msgid "must be binary data"
+msgstr "必须是二进制数据"
+
+#: ipalib/parameters.py:1208
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1218
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1228
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1246
+msgid "must be Unicode text"
+msgstr "必须是Unicode文本"
+
+#: ipalib/parameters.py:1277
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1287
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1297
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1315
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1355
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/util.py:200
+#, python-format
+msgid "Permission denied: %(file)s"
+msgstr ""
+
+#: ipalib/x509.py:174
+#, python-format
+msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
+msgstr ""
+
+#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
+#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
+#: ipaserver/plugins/dogtag.py:1600
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -2022,27 +7466,27 @@ msgstr "主机硬件平台 (e.g. \"Lenovo T61\")"
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr "主机操作系统及版本(e.g. \"Fedora 9\")"
-#: ipaserver/plugins/selfsign.py:98
+#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
"Request subject \"%(request_subject)s\" does not match the form "
"\"%(subject_base)s\""
msgstr ""
-#: ipaserver/plugins/selfsign.py:103
+#: ipaserver/plugins/selfsign.py:104
#, python-format
msgid "unable to decode csr: %s"
msgstr "不能解码csr: %s"
-#: ipaserver/plugins/selfsign.py:124 ipaserver/plugins/selfsign.py:139
+#: ipaserver/plugins/selfsign.py:125 ipaserver/plugins/selfsign.py:140
msgid "file operation"
msgstr "文件操作"
-#: ipaserver/plugins/selfsign.py:153
+#: ipaserver/plugins/selfsign.py:154
msgid "cannot obtain next serial number"
msgstr "无法得到下一个序列号"
-#: ipaserver/plugins/selfsign.py:188
+#: ipaserver/plugins/selfsign.py:189
msgid "certutil failure"
msgstr ""
@@ -2056,548 +7500,579 @@ msgstr ""
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:75
+#: ipa-client/config.c:68
+#, c-format
+msgid "out of memory\n"
+msgstr ""
+
+#: ipa-client/config.c:79
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:138 ipa-client/ipa-getkeytab.c:838
+#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
+#: ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:146
+#: ipa-client/ipa-getkeytab.c:155
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:164 ipa-client/ipa-getkeytab.c:179
+#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:194
+#: ipa-client/ipa-getkeytab.c:203
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:209
+#: ipa-client/ipa-getkeytab.c:218
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:235
+#: ipa-client/ipa-getkeytab.c:245
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:297
+#: ipa-client/ipa-getkeytab.c:307
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:310 ipa-client/ipa-getkeytab.c:327
-#: ipa-client/ipa-getkeytab.c:335 ipa-client/ipa-getkeytab.c:372
+#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
+#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:317 ipa-client/ipa-getkeytab.c:350
+#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
+#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
+#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
+#: ipa-client/ipa-join.c:819
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:361
+#: ipa-client/ipa-getkeytab.c:371
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:481
+#: ipa-client/ipa-getkeytab.c:492
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:496
+#: ipa-client/ipa-getkeytab.c:507
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:534
+#: ipa-client/ipa-getkeytab.c:545
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:541
+#: ipa-client/ipa-getkeytab.c:552
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:565
+#: ipa-client/ipa-getkeytab.c:576
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:572
+#: ipa-client/ipa-getkeytab.c:583
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:579
+#: ipa-client/ipa-getkeytab.c:596
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:589
+#: ipa-client/ipa-getkeytab.c:606
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:605 ipa-client/ipa-getkeytab.c:618
-#: ipa-client/ipa-getkeytab.c:625 ipa-client/ipa-getkeytab.c:632
+#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
+#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:638 ipa-client/ipa-getkeytab.c:648
+#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655
+#: ipa-client/ipa-getkeytab.c:672
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:674
+#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:715
+#: ipa-client/ipa-getkeytab.c:736
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:721
+#: ipa-client/ipa-getkeytab.c:742
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781
+#: ipa-client/ipa-getkeytab.c:778
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782
+#: ipa-client/ipa-getkeytab.c:779
#, fuzzy
msgid "Server Name"
msgstr "服务名"
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:189
+#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:787
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:788
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:790
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:794
+#: ipa-client/ipa-getkeytab.c:791
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:796
+#: ipa-client/ipa-getkeytab.c:793
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
#, fuzzy
msgid "LDAP DN"
msgstr "LDAP URI"
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
#, fuzzy
msgid "LDAP password"
msgstr "密码"
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:825 ipa-client/ipa-rmkeytab.c:207
-#, c-format
-msgid "Kerberos context initialization failed\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:837
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:845
+#: ipa-client/ipa-getkeytab.c:841
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:864
+#: ipa-client/ipa-getkeytab.c:860
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:877
+#: ipa-client/ipa-getkeytab.c:873
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. -P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:889
+#: ipa-client/ipa-getkeytab.c:885
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:897
+#: ipa-client/ipa-getkeytab.c:893
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:905
+#: ipa-client/ipa-getkeytab.c:901
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:913
+#: ipa-client/ipa-getkeytab.c:909
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:920
+#: ipa-client/ipa-getkeytab.c:916
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:939
+#: ipa-client/ipa-getkeytab.c:935
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:948
+#: ipa-client/ipa-getkeytab.c:944
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:954
+#: ipa-client/ipa-getkeytab.c:950
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:67
+#: ipa-client/ipa-join.c:65
#, c-format
msgid "No permission to join this host to the IPA domain.\n"
msgstr ""
-#: ipa-client/ipa-join.c:104 ipa-client/ipa-join.c:116
+#: ipa-client/ipa-join.c:94 ipa-client/ipa-join.c:106
#, c-format
msgid "No write permissions on keytab file '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:121
+#: ipa-client/ipa-join.c:111
#, c-format
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:200
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#, c-format
+msgid "Out of memory!"
+msgstr ""
+
+#: ipa-client/ipa-join.c:204
+#, c-format
+msgid "Unable to initialize connection to ldap server: %s"
+msgstr ""
+
+#: ipa-client/ipa-join.c:210
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:206
+#: ipa-client/ipa-join.c:216
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:236
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:249
+#: ipa-client/ipa-join.c:269
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:259 ipa-client/ipa-join.c:311
+#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:302
+#: ipa-client/ipa-join.c:322
#, c-format
msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:368
+#: ipa-client/ipa-join.c:390
#, c-format
msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:377
+#: ipa-client/ipa-join.c:399
#, c-format
msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:385
+#: ipa-client/ipa-join.c:407
#, c-format
msgid "Unable to make an LDAP connection to %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:394
+#: ipa-client/ipa-join.c:432
#, c-format
msgid "Searching with %s in %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:400
+#: ipa-client/ipa-join.c:438
#, c-format
msgid "ldap_search_ext_s: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:408
+#: ipa-client/ipa-join.c:446
#, fuzzy, c-format
msgid "Unable to find host '%s'\n"
msgstr "不能解码csr: %s"
-#: ipa-client/ipa-join.c:415
+#: ipa-client/ipa-join.c:453
#, c-format
msgid "Unable to get binddn for host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:428
+#: ipa-client/ipa-join.c:466
#, c-format
msgid "Host already has principal, trying bind anyway\n"
msgstr ""
-#: ipa-client/ipa-join.c:442 ipa-client/ipa-join.c:579
+#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
#, fuzzy, c-format
msgid "Host is already joined.\n"
msgstr "该条目已经被锁定"
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:484
#, fuzzy, c-format
msgid "Incorrect password.\n"
msgstr "用户密码"
-#: ipa-client/ipa-join.c:457
+#: ipa-client/ipa-join.c:495
#, c-format
msgid "principal not found in host entry\n"
msgstr ""
-#: ipa-client/ipa-join.c:564
+#: ipa-client/ipa-join.c:618
#, c-format
msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:646 ipa-client/ipa-join.c:823
+#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:662 ipa-client/ipa-join.c:838
+#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:671 ipa-client/ipa-join.c:848
+#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:679
+#: ipa-client/ipa-join.c:732
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:689
+#: ipa-client/ipa-join.c:741
+#, c-format
+msgid "Error getting default Kerberos realm: %s.\n"
+msgstr ""
+
+#: ipa-client/ipa-join.c:759
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:707
+#: ipa-client/ipa-join.c:777
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:718
+#: ipa-client/ipa-join.c:788
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:726
+#: ipa-client/ipa-join.c:796
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:769
+#: ipa-client/ipa-join.c:846
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:772
+#: ipa-client/ipa-join.c:849
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:854
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:855
+#: ipa-client/ipa-join.c:932
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:863
+#: ipa-client/ipa-join.c:940
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not "
"provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:877
+#: ipa-client/ipa-join.c:954
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:906
+#: ipa-client/ipa-join.c:983
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:909
+#: ipa-client/ipa-join.c:986
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:912
+#: ipa-client/ipa-join.c:989
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:924
+#: ipa-client/ipa-join.c:1001
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:930
+#: ipa-client/ipa-join.c:1007
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "Print the raw XML-RPC output"
-msgstr ""
-
-#: ipa-client/ipa-join.c:963
-msgid "XML-RPC debugging Output"
+#: ipa-client/ipa-join.c:1042
+msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:967
-msgid "Unenroll this host"
+#: ipa-client/ipa-join.c:1044
+msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:967
+#: ipa-client/ipa-join.c:1046
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Use this hostname instead of the node name"
+#: ipa-client/ipa-join.c:1048
+msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:969
+#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
#, fuzzy
-msgid "Host Name"
+msgid "hostname"
msgstr "主机名"
-#: ipa-client/ipa-join.c:971
+#: ipa-client/ipa-join.c:1050
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:971
+#: ipa-client/ipa-join.c:1052
+msgid "Specifies where to store keytab information."
+msgstr ""
+
+#: ipa-client/ipa-join.c:1052
#, fuzzy
-msgid "IPA Server Name"
-msgstr "服务名"
+msgid "filename"
+msgstr "规则名"
-#: ipa-client/ipa-rmkeytab.c:44
+#: ipa-client/ipa-join.c:1054
+msgid "LDAP password (if not using Kerberos)"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1054
+#, fuzzy
+msgid "password"
+msgstr "密码"
+
+#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:46
+#: ipa-client/ipa-rmkeytab.c:45
#, c-format
msgid "krb5_parse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:56
+#: ipa-client/ipa-rmkeytab.c:55
#, c-format
msgid "Removing principal %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:69
+#: ipa-client/ipa-rmkeytab.c:68
#, c-format
msgid "Failed to open keytab\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:73
+#: ipa-client/ipa-rmkeytab.c:72
#, c-format
msgid "principal not found\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:75
+#: ipa-client/ipa-rmkeytab.c:74
#, c-format
msgid "krb5_kt_get_entry %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:83
+#: ipa-client/ipa-rmkeytab.c:82
#, c-format
msgid "Unable to remove entry\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:85
+#: ipa-client/ipa-rmkeytab.c:84
#, c-format
msgid "kvno %d\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:86
+#: ipa-client/ipa-rmkeytab.c:85
#, c-format
msgid "krb5_kt_remove_entry %d: %s\n"
msgstr ""
@@ -2612,37 +8087,86 @@ msgstr ""
msgid "krb5_unparse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:143
+#, c-format
+msgid "realm not found\n"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Print debugging information"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Debugging output"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Remove all principals in this realm"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
#, fuzzy
msgid "Realm name"
msgstr "规则名"
-#: ipa-client/ipa-rmkeytab.c:241
+#: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237
#, c-format
-msgid "Failed to open keytab '%s'\n"
+msgid "Failed to open keytab '%s': %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:255
+#: ipa-client/ipa-rmkeytab.c:253
#, c-format
msgid "Closing keytab failed\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:257
+#: ipa-client/ipa-rmkeytab.c:255
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""
+#~ msgid "Taskgroup"
+#~ msgstr "任务组"
+
+#~ msgid "Default e-mail domain"
+#~ msgstr "默认的邮件域名"
+
+#~ msgid "Record type"
+#~ msgstr "记录类型"
+
+#~ msgid "Search criteria"
+#~ msgstr "搜索条件"
+
+#, fuzzy
+#~ msgid "Description of service"
+#~ msgstr "描述"
+
+#, fuzzy
+#~ msgid "Removed kerberos key from \"%(value)s\""
+#~ msgstr "已锁定用户\"%(value)s\""
+
+#~ msgid "Net Groups"
+#~ msgstr "网络组"
+
+#~ msgid "Role Groups"
+#~ msgstr "角色组"
+
+#~ msgid "Role-group name"
+#~ msgstr "角色组名称"
+
+#~ msgid "Member of task-groups"
+#~ msgstr "任务组成员"
+
+#~ msgid "Task Groups"
+#~ msgstr "任务组"
+
+#~ msgid "Task-group name"
+#~ msgstr "任务组名称"
+
+#~ msgid "Task-group description"
+#~ msgstr "任务组描述"
+
+#~ msgid "Taskgroups"
+#~ msgstr "任务组"
+
#~ msgid "Locked user \"%(value)s\""
#~ msgstr "已锁定用户\"%(value)s\""
diff --git a/install/po/zh_TW.po b/install/po/zh_TW.po
index a8c56c550..917d9cc7e 100644
--- a/install/po/zh_TW.po
+++ b/install/po/zh_TW.po
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: ipa\n"
"Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/"
"newticket\n"
-"POT-Creation-Date: 2010-10-13 14:22-0400\n"
+"POT-Creation-Date: 2011-06-06 13:27-0400\n"
"PO-Revision-Date: 2010-03-16 17:21-0400\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -19,1507 +19,4745 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-#: ipalib/cli.py:507
-#, python-format
-msgid "Enter %(label)s again to verify: "
+#: ipalib/plugins/__init__.py:20
+msgid ""
+"\n"
+"Sub-package containing all core plugins.\n"
msgstr ""
-#: ipalib/cli.py:511 ipa-client/ipa-getkeytab.c:730
-#, c-format
-msgid "Passwords do not match!"
+#: ipalib/plugins/aci.py:20
+msgid ""
+"\n"
+"Directory Server Access Control Instructions (ACIs)\n"
+"\n"
+"ACIs are used to allow or deny access to information. This module is\n"
+"currently designed to allow, not deny, access.\n"
+"\n"
+"The aci commands are designed to grant permissions that allow updating\n"
+"existing entries or adding or deleting new ones. The goal of the ACIs\n"
+"that ship with IPA is to provide a set of low-level permissions that\n"
+"grant access to special groups called taskgroups. These low-level\n"
+"permissions can be combined into roles that grant broader access. These\n"
+"roles are another type of group, roles.\n"
+"\n"
+"For example, if you have taskgroups that allow adding and modifying users "
+"you\n"
+"could create a role, useradmin. You would assign users to the useradmin\n"
+"role to allow them to do the operations defined by the taskgroups.\n"
+"\n"
+"You can create ACIs that delegate permission so users in group A can write\n"
+"attributes on group B.\n"
+"\n"
+"The type option is a map that applies to all entries in the users, groups "
+"or\n"
+"host location. It is primarily designed to be used when granting add\n"
+"permissions (to write new entries).\n"
+"\n"
+"An ACI consists of three parts:\n"
+"1. target\n"
+"2. permissions\n"
+"3. bind rules\n"
+"\n"
+"The target is a set of rules that define which LDAP objects are being\n"
+"targeted. This can include a list of attributes, an area of that LDAP\n"
+"tree or an LDAP filter.\n"
+"\n"
+"The targets include:\n"
+"- attrs: list of attributes affected\n"
+"- type: an object type (user, group, host, service, etc)\n"
+"- memberof: members of a group\n"
+"- targetgroup: grant access to modify a specific group. This is primarily\n"
+" designed to enable users to add or remove members of a specific group.\n"
+"- filter: A legal LDAP filter used to narrow the scope of the target.\n"
+"- subtree: Used to apply a rule across an entire set of objects. For "
+"example,\n"
+" to allow adding users you need to grant \"add\" permission to the subtree\n"
+" ldap://uid=*,cn=users,cn=accounts,dc=example,dc=com. The subtree option\n"
+" is a fail-safe for objects that may not be covered by the type option.\n"
+"\n"
+"The permissions define what the the ACI is allowed to do, and are one or\n"
+"more of:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"The bind rule defines who this ACI grants permissions to. The LDAP server\n"
+"allows this to be any valid LDAP entry but we encourage the use of\n"
+"taskgroups so that the rights can be easily shared through roles.\n"
+"\n"
+"For a more thorough description of access controls see\n"
+"http://www.redhat.com/docs/manuals/dir-server/ag/8.0/Managing_Access_Control."
+"html\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"NOTE: ACIs are now added via the permission plugin. These examples are to\n"
+"demonstrate how the various options work but this is done via the "
+"permission\n"
+"command-line now (see last example).\n"
+"\n"
+" Add an ACI so that the group \"secretaries\" can update the address on any "
+"user:\n"
+" ipa group-add --desc=\"Office secretaries\" secretaries\n"
+" ipa aci-add --attrs=streetAddress --memberof=ipausers --group=secretaries "
+"--permissions=write --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Show the new ACI:\n"
+" ipa aci-show --prefix=none \"Secretaries write addresses\"\n"
+"\n"
+" Add an ACI that allows members of the \"addusers\" permission to add new "
+"users:\n"
+" ipa aci-add --type=user --permission=addusers --permissions=add --"
+"prefix=none \"Add new users\"\n"
+"\n"
+" Add an ACI that allows members of the editors manage members of the admins "
+"group:\n"
+" ipa aci-add --permissions=write --attrs=member --targetgroup=admins --"
+"group=editors --prefix=none \"Editors manage admins\"\n"
+"\n"
+" Add an ACI that allows members of the admin group to manage the street and "
+"zip code of those in the editors group:\n"
+" ipa aci-add --permissions=write --memberof=editors --group=admins --"
+"attrs=street,postalcode --prefix=none \"admins edit the address of editors"
+"\"\n"
+"\n"
+" Add an ACI that allows the admins group manage the street and zipcode of "
+"those who work for the boss:\n"
+" ipa aci-add --permissions=write --group=admins --attrs=street,postalcode "
+"--filter=\"(manager=uid=boss,cn=users,cn=accounts,dc=example,dc=com)\" --"
+"prefix=none \"Edit the address of those who work for the boss\"\n"
+"\n"
+" Add an entirely new kind of record to IPA that isn't covered by any of the "
+"--type options, creating a permission:\n"
+" ipa permission-add --permissions=add --subtree=\"cn=*,cn=orange,"
+"cn=accounts,dc=example,dc=com\" --desc=\"Add Orange Entries\" add_orange\n"
+"\n"
+"\n"
+"The show command shows the raw 389-ds ACI.\n"
+"\n"
+"IMPORTANT: When modifying the target attributes of an existing ACI you\n"
+"must include all existing attributes as well. When doing an aci-mod the\n"
+"targetattr REPLACES the current attributes, it does not add to them.\n"
+"\n"
msgstr ""
-#: ipalib/cli.py:516
-msgid "Cancelled."
+#: ipalib/plugins/aci.py:153
+msgid "A list of ACI values"
msgstr ""
-#: ipalib/errors.py:297
-#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+#: ipalib/plugins/aci.py:172
+msgid ""
+"\n"
+" Given a name and a prefix construct an ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:315
-#, python-format
-msgid "unknown error %(code)d from %(server)s: %(error)s"
+#: ipalib/plugins/aci.py:181
+msgid ""
+"\n"
+" Parse the raw ACI name and return a tuple containing the ACI prefix\n"
+" and the actual ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:331
-msgid "an internal error has occurred"
+#: ipalib/plugins/aci.py:193
+msgid ""
+"\n"
+" Pull the group name out of a memberOf filter\n"
+" "
msgstr ""
-#: ipalib/errors.py:353
-#, python-format
-msgid "an internal error has occurred on server at %(server)r"
+#: ipalib/plugins/aci.py:204
+msgid ""
+"\n"
+" Given a name and a set of keywords construct an ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:369
-#, python-format
-msgid "unknown command %(name)r"
+#: ipalib/plugins/aci.py:215
+msgid "type, filter, subtree and targetgroup are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:386 ipalib/errors.py:411
-#, python-format
-msgid "error on server %(server)r: %(error)s"
+#: ipalib/plugins/aci.py:218
+msgid "ACI prefix is required"
msgstr ""
-#: ipalib/errors.py:402
-#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+#: ipalib/plugins/aci.py:221
+msgid ""
+"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
+"required"
msgstr ""
-#: ipalib/errors.py:420
-#, python-format
-msgid "Invalid JSON-RPC request: %(error)s"
+#: ipalib/plugins/aci.py:224
+msgid "filter and memberof are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:448
-#, python-format
-msgid "Kerberos error: %(major)s/%(minor)s"
+#: ipalib/plugins/aci.py:230
+msgid "group, permission and self are mutually exclusive"
msgstr ""
-#: ipalib/errors.py:465
-msgid "did not receive Kerberos credentials"
+#: ipalib/plugins/aci.py:232
+msgid "One of group, permission or self is required"
msgstr ""
-#: ipalib/errors.py:481
-#, python-format
-msgid "Service %(service)r not found in Kerberos database"
+#: ipalib/plugins/aci.py:251
+msgid "Group '%s' does not exist"
msgstr ""
-#: ipalib/errors.py:497
-msgid "No credentials cache found"
+#: ipalib/plugins/aci.py:273
+msgid "empty filter"
msgstr ""
-#: ipalib/errors.py:513
-msgid "Ticket expired"
+#: ipalib/plugins/aci.py:294
+msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/errors.py:529
-msgid "Credentials cache permissions incorrect"
+#: ipalib/plugins/aci.py:299
+msgid ""
+"Convert an ACI into its equivalent keywords.\n"
+"\n"
+" This is used for the modify operation so we can merge the\n"
+" incoming kw and existing ACI and pass the result to\n"
+" _make_aci().\n"
+" "
msgstr ""
-#: ipalib/errors.py:545
-msgid "Bad format in credentials cache"
+#: ipalib/plugins/aci.py:379
+msgid "ACI with name \"%s\" not found"
msgstr ""
-#: ipalib/errors.py:561
-msgid "Cannot resolve KDC for requested realm"
+#: ipalib/plugins/aci.py:400
+msgid "ACI prefix"
msgstr ""
-#: ipalib/errors.py:580
-#, python-format
-msgid "Insufficient access: %(info)s"
+#: ipalib/plugins/aci.py:401
+msgid ""
+"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
+"none)"
msgstr ""
-#: ipalib/errors.py:624
-#, python-format
-msgid "command %(name)r takes no arguments"
+#: ipalib/plugins/aci.py:407
+msgid ""
+"\n"
+" ACI object.\n"
+" "
msgstr ""
-#: ipalib/errors.py:644
-#, python-format
-msgid "command %(name)r takes at most %(count)d argument"
-msgid_plural "command %(name)r takes at most %(count)d arguments"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/aci.py:412
+msgid "ACIs"
+msgstr ""
-#: ipalib/errors.py:674
-#, python-format
-msgid "overlapping arguments and options: %(names)r"
+#: ipalib/plugins/aci.py:417
+msgid "ACI name"
msgstr ""
-#: ipalib/errors.py:690
-#, python-format
-msgid "%(name)r is required"
+#: ipalib/plugins/aci.py:422
+msgid "Permission"
msgstr ""
-#: ipalib/errors.py:706 ipalib/errors.py:722
-#, python-format
-msgid "invalid %(name)r: %(error)s"
+#: ipalib/plugins/aci.py:423
+msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/errors.py:738
-#, python-format
-msgid "api has no such namespace: %(name)r"
+#: ipalib/plugins/aci.py:427 ipalib/plugins/delegation.py:130
+msgid "User group"
msgstr ""
-#: ipalib/errors.py:747
-msgid "Passwords do not match"
+#: ipalib/plugins/aci.py:428 ipalib/plugins/delegation.py:131
+msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/errors.py:755
-msgid "Command not implemented"
+#: ipalib/plugins/aci.py:432 ipalib/plugins/baseldap.py:60
+#: ipalib/plugins/delegation.py:113 ipalib/plugins/permission.py:107
+#: ipalib/plugins/permission.py:118 ipalib/plugins/selfservice.py:86
+msgid "Permissions"
msgstr ""
-#: ipalib/errors.py:783 ipalib/errors.py:1023 ipalib/errors.py:1254
-#, python-format
-msgid "%(reason)s"
+#: ipalib/plugins/aci.py:433
+msgid ""
+"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/errors.py:799
-msgid "This entry already exists"
+#: ipalib/plugins/aci.py:439 ipalib/plugins/delegation.py:119
+#: ipalib/plugins/permission.py:124 ipalib/plugins/selfservice.py:92
+msgid "Attributes"
msgstr ""
-#: ipalib/errors.py:815
-msgid "You must enroll a host in order to create a host service"
+#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:120
+#: ipalib/plugins/permission.py:125 ipalib/plugins/selfservice.py:93
+msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/errors.py:831
-#, python-format
-msgid ""
-"Service principal is not of the form: service/fully-qualified host name: "
-"%(reason)s"
+#: ipalib/plugins/aci.py:444 ipalib/plugins/internal.py:164
+#: ipalib/plugins/permission.py:131
+msgid "Type"
msgstr ""
-#: ipalib/errors.py:847
-msgid ""
-"The realm for the principal does not match the realm for this IPA server"
+#: ipalib/plugins/aci.py:445
+msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/errors.py:863
-msgid "This command requires root access"
+#: ipalib/plugins/aci.py:450
+msgid "Member of"
msgstr ""
-#: ipalib/errors.py:879
-msgid "This is already a posix group"
+#: ipalib/plugins/aci.py:451
+msgid "Member of a group"
msgstr ""
-#: ipalib/errors.py:895
-#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
+#: ipalib/plugins/aci.py:455 ipalib/plugins/internal.py:234
+#: ipalib/plugins/permission.py:144
+msgid "Filter"
msgstr ""
-#: ipalib/errors.py:911
-msgid "This entry is already unlocked"
+#: ipalib/plugins/aci.py:456 ipalib/plugins/permission.py:145
+msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/errors.py:927
-msgid "This entry is already locked"
+#: ipalib/plugins/aci.py:460 ipalib/plugins/permission.py:150
+msgid "Subtree"
msgstr ""
-#: ipalib/errors.py:943
-msgid "This entry has nsAccountLock set, it cannot be locked or unlocked"
+#: ipalib/plugins/aci.py:461
+msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/errors.py:959
-msgid "This entry is not a member of the group"
+#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:156
+msgid "Target group"
msgstr ""
-#: ipalib/errors.py:975
-msgid "A group may not be a member of itself"
+#: ipalib/plugins/aci.py:466
+msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/errors.py:991
-msgid "This entry is already a member of the group"
+#: ipalib/plugins/aci.py:470
+msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/errors.py:1007
-#, python-format
-msgid "Base64 decoding failed: %(reason)s"
+#: ipalib/plugins/aci.py:471
+msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/errors.py:1039
-msgid "A group may not be added as a member of itself"
+#: ipalib/plugins/aci.py:478
+msgid ""
+"\n"
+" Create new ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1055
-msgid "The default users group cannot be removed"
+#: ipalib/plugins/aci.py:482
+msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1071
-msgid "Host does not have corresponding DNS A record"
+#: ipalib/plugins/aci.py:487
+msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/errors.py:1086
-msgid "Deleting a managed group is not allowed. It must be detached first."
+#: ipalib/plugins/aci.py:493
+msgid ""
+"\n"
+" Execute the aci-create operation.\n"
+"\n"
+" Returns the entry as it will be created in LDAP.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: Keyword arguments for the other LDAP attributes.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1109
-#, python-format
-msgid "no command nor help topic %(topic)r"
+#: ipalib/plugins/aci.py:533
+msgid ""
+"\n"
+" Delete ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1133
-msgid "change collided with another change"
+#: ipalib/plugins/aci.py:538
+msgid "Deleted ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1149
-msgid "no modifications to be performed"
+#: ipalib/plugins/aci.py:543
+msgid ""
+"\n"
+" Execute the aci-delete operation.\n"
+"\n"
+" :param aciname: The name of the ACI being added.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/errors.py:1165
-#, python-format
-msgid "%(desc)s:%(info)s"
+#: ipalib/plugins/aci.py:576
+msgid ""
+"\n"
+" Modify ACI.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1181
-msgid "limits exceeded for this query"
+#: ipalib/plugins/aci.py:582 ipalib/plugins/aci.py:830
+#: ipalib/plugins/aci.py:871 ipalib/plugins/delegation.py:255
+#: ipalib/plugins/selfservice.py:212
+msgid "ACI"
msgstr ""
-#: ipalib/errors.py:1196
-#, python-format
-msgid "%(info)s"
+#: ipalib/plugins/aci.py:588
+msgid "Modified ACI \"%(value)s\""
msgstr ""
-#: ipalib/errors.py:1221
-#, python-format
-msgid "Certificate operation cannot be completed: %(error)s"
+#: ipalib/plugins/aci.py:633
+msgid ""
+"\n"
+" Search for ACIs.\n"
+"\n"
+" Returns a list of ACIs\n"
+"\n"
+" EXAMPLES:\n"
+"\n"
+" To find all ACIs that apply directly to members of the group ipausers:\n"
+" ipa aci-find --memberof=ipausers\n"
+"\n"
+" To find all ACIs that grant add access:\n"
+" ipa aci-find --permissions=add\n"
+"\n"
+" Note that the find command only looks for the given text in the set of\n"
+" ACIs, it does not evaluate the ACIs to see if something would apply.\n"
+" For example, searching on memberof=ipausers will find all ACIs that\n"
+" have ipausers as a memberof. There may be other ACIs that apply to\n"
+" members of that group indirectly.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/aci.py:653
+msgid "%(count)d ACI matched"
+msgid_plural "%(count)d ACIs matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/aci.py:823
+msgid ""
+"\n"
+" Display a single ACI given an ACI name.\n"
+" "
msgstr ""
-#: ipalib/errors.py:1237
-#, python-format
-msgid "Certificate format error: %(error)s"
+#: ipalib/plugins/aci.py:837
+msgid ""
+"\n"
+" Execute the aci-show operation.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param uid: The login name of the user to retrieve.\n"
+" :param kw: unused\n"
+" "
msgstr ""
-#: ipalib/frontend.py:380
-msgid "Results are truncated, try a more specific search"
+#: ipalib/plugins/aci.py:865
+msgid ""
+"\n"
+" Rename an ACI.\n"
+" "
msgstr ""
-#: ipalib/frontend.py:797 ipalib/plugins/misc.py:47
-msgid "retrieve all attributes"
+#: ipalib/plugins/aci.py:878
+msgid "New ACI name"
msgstr ""
-#: ipalib/frontend.py:803
-msgid "print entries as stored on the server"
+#: ipalib/plugins/aci.py:882
+msgid "Renamed ACI to \"%(value)s\""
msgstr ""
-#: ipalib/frontend.py:940
-msgid "Forward to server instead of running locally"
+#: ipalib/plugins/automount.py:20
+msgid ""
+"\n"
+"Automount\n"
+"\n"
+"Stores automount(8) configuration for autofs(8) in IPA.\n"
+"\n"
+"The base of an automount configuration is the configuration file auto."
+"master.\n"
+"This is also the base location in IPA. Multiple auto.master configurations\n"
+"can be stored in separate locations. A location is implementation-specific\n"
+"with the default being a location named 'default'. For example, you can "
+"have\n"
+"locations by geographic region, by floor, by type, etc.\n"
+"\n"
+"Automount has three basic object types: locations, maps and keys.\n"
+"\n"
+"A location defines a set of maps anchored in auto.master. This allows you\n"
+"to store multiple automount configurations. A location in itself isn't\n"
+"very interesting, it is just a point to start a new automount map.\n"
+"\n"
+"A map is roughly equivalent to a discrete automount file and provides\n"
+"storage for keys.\n"
+"\n"
+"A key is a mount point associated with a map.\n"
+"\n"
+"When a new location is created, two maps are automatically created for\n"
+"it: auto.master and auto.direct. auto.master is the root map for all\n"
+"automount maps for the location. auto.direct is the default map for\n"
+"direct mounts and is mounted on /-.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+"Locations:\n"
+"\n"
+" Create a named location, \"Baltimore\":\n"
+" ipa automountlocation-add baltimore\n"
+"\n"
+" Display the new location:\n"
+" ipa automountlocation-show baltimore\n"
+"\n"
+" Find available locations:\n"
+" ipa automountlocation-find\n"
+"\n"
+" Remove a named automount location:\n"
+" ipa automountlocation-del baltimore\n"
+"\n"
+" Show what the automount maps would look like if they were in the "
+"filesystem:\n"
+" ipa automountlocation-tofiles baltimore\n"
+"\n"
+" Import an existing configuration into a location:\n"
+" ipa automountlocation-import baltimore /etc/auto.master\n"
+"\n"
+" The import will fail if any duplicate entries are found. For\n"
+" continuous operation where errors are ignored, use the --continue\n"
+" option.\n"
+"\n"
+"Maps:\n"
+"\n"
+" Create a new map, \"auto.share\":\n"
+" ipa automountmap-add baltimore auto.share\n"
+"\n"
+" Display the new map:\n"
+" ipa automountmap-show baltimore auto.share\n"
+"\n"
+" Find maps in the location baltimore:\n"
+" ipa automountmap-find baltimore\n"
+"\n"
+" Remove the auto.share map:\n"
+" ipa automountmap-del baltimore auto.share\n"
+"\n"
+"Keys:\n"
+"\n"
+" Create a new key for the auto.share map in location baltimore. This ties\n"
+" the map we previously created to auto.master:\n"
+" ipa automountkey-add baltimore auto.master --key=/share --info=auto."
+"share\n"
+"\n"
+" Create a new key for our auto.share map, an NFS mount for man pages:\n"
+" ipa automountkey-add baltimore auto.share --key=man --info=\"-ro,soft,"
+"rsize=8192,wsize=8192 ipa.example.com:/shared/man\"\n"
+"\n"
+" Find all keys for the auto.share map:\n"
+" ipa automountkey-find baltimore auto.share\n"
+"\n"
+" Find all direct automount keys:\n"
+" ipa automountkey-find baltimore --key=/-\n"
+"\n"
+" Remove the man key from the auto.share map:\n"
+" ipa automountkey-del baltimore auto.share --key=man\n"
+msgstr ""
+
+#: ipalib/plugins/automount.py:182
+msgid ""
+"\n"
+" Location container for automount maps.\n"
+" "
msgstr ""
-#: ipalib/output.py:92
-msgid "A dictionary representing an LDAP entry"
+#: ipalib/plugins/automount.py:190
+msgid "Automount Locations"
msgstr ""
-#: ipalib/output.py:100
-msgid "A list of LDAP entries"
+#: ipalib/plugins/automount.py:196 ipalib/plugins/host.py:247
+msgid "Location"
msgstr ""
-#: ipalib/output.py:111
-msgid "All commands should at least have a result"
+#: ipalib/plugins/automount.py:197
+msgid "Automount location name."
msgstr ""
-#: ipalib/parameters.py:295
-msgid "incorrect type"
+#: ipalib/plugins/automount.py:206
+msgid ""
+"\n"
+" Create a new automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:298
-msgid "Only one value is allowed"
+#: ipalib/plugins/automount.py:221
+msgid ""
+"\n"
+" Delete an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:877
-msgid "must be True or False"
+#: ipalib/plugins/automount.py:229
+msgid ""
+"\n"
+" Display an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:978
-msgid "must be an integer"
+#: ipalib/plugins/automount.py:237
+msgid ""
+"\n"
+" Search for an automount location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1029
-#, python-format
-msgid "must be at least %(minvalue)d"
+#: ipalib/plugins/automount.py:245
+msgid ""
+"\n"
+" Generate automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1039
-#, python-format
-msgid "can be at most %(maxvalue)d"
+#: ipalib/plugins/automount.py:308
+msgid ""
+"\n"
+" Import automount files for a specific location.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1049
-msgid "must be a decimal number"
+#: ipalib/plugins/automount.py:314
+msgid "Master file"
msgstr ""
-#: ipalib/parameters.py:1071
-#, python-format
-msgid "must be at least %(minvalue)f"
+#: ipalib/plugins/automount.py:315
+msgid "Automount master file."
msgstr ""
-#: ipalib/parameters.py:1081
-#, python-format
-msgid "can be at most %(maxvalue)f"
+#: ipalib/plugins/automount.py:322
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/parameters.py:1145
-#, python-format
-msgid "must match pattern \"%(pattern)s\""
+#: ipalib/plugins/automount.py:334
+msgid "File %(file)s not found"
msgstr ""
-#: ipalib/parameters.py:1163
-msgid "must be binary data"
+#: ipalib/plugins/automount.py:341
+msgid ""
+"\n"
+" The basic idea is to read the master file and create all the maps\n"
+" we need, then read each map file and add all the keys for the map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1179
-#, python-format
-msgid "must be at least %(minlength)d bytes"
+#: ipalib/plugins/automount.py:492
+msgid ""
+"\n"
+" Automount map object.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1189
-#, python-format
-msgid "can be at most %(maxlength)d bytes"
+#: ipalib/plugins/automount.py:505
+msgid "Map"
msgstr ""
-#: ipalib/parameters.py:1199
-#, python-format
-msgid "must be exactly %(length)d bytes"
+#: ipalib/plugins/automount.py:506
+msgid "Automount map name."
msgstr ""
-#: ipalib/parameters.py:1217
-msgid "must be Unicode text"
+#: ipalib/plugins/automount.py:511 ipalib/plugins/group.py:114
+#: ipalib/plugins/hbacrule.py:171 ipalib/plugins/hbacsvc.py:73
+#: ipalib/plugins/hbacsvcgroup.py:75 ipalib/plugins/host.py:237
+#: ipalib/plugins/hostgroup.py:85 ipalib/plugins/netgroup.py:109
+#: ipalib/plugins/privilege.py:76 ipalib/plugins/role.py:92
+#: ipalib/plugins/sudocmd.py:74 ipalib/plugins/sudocmdgroup.py:76
+#: ipalib/plugins/sudorule.py:78
+msgid "Description"
msgstr ""
-#: ipalib/parameters.py:1248
-#, python-format
-msgid "must be at least %(minlength)d characters"
+#: ipalib/plugins/automount.py:515
+msgid "Automount Maps"
msgstr ""
-#: ipalib/parameters.py:1258
-#, python-format
-msgid "can be at most %(maxlength)d characters"
+#: ipalib/plugins/automount.py:521
+msgid ""
+"\n"
+" Create a new automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1268
-#, python-format
-msgid "must be exactly %(length)d characters"
+#: ipalib/plugins/automount.py:529
+msgid ""
+"\n"
+" Delete an automount map.\n"
+" "
msgstr ""
-#: ipalib/parameters.py:1307
-#, python-format
-msgid "must be one of %(values)r"
+#: ipalib/plugins/automount.py:548
+msgid ""
+"\n"
+" Modify an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:111
-msgid "A list of ACI values"
+#: ipalib/plugins/automount.py:556
+msgid ""
+"\n"
+" Search for an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:142
-msgid "type, filter, subtree and targetgroup are mutually exclusive"
+#: ipalib/plugins/automount.py:564
+msgid ""
+"\n"
+" Display an automount map.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:145
+#: ipalib/plugins/automount.py:572
msgid ""
-"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
-"required"
+"\n"
+" Automount key object.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:151
-msgid "group, taskgroup and self are mutually exclusive"
+#: ipalib/plugins/automount.py:589 ipalib/plugins/automount.py:778
+#: ipalib/plugins/automount.py:850
+msgid "Key"
msgstr ""
-#: ipalib/plugins/aci.py:153
-msgid "One of group, taskgroup or self is required"
+#: ipalib/plugins/automount.py:590 ipalib/plugins/automount.py:779
+#: ipalib/plugins/automount.py:851
+msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/aci.py:172
-#, python-format
-msgid "Group '%s' does not exist"
+#: ipalib/plugins/automount.py:594 ipalib/plugins/automount.py:783
+#: ipalib/plugins/automount.py:855
+msgid "Mount information"
msgstr ""
-#: ipalib/plugins/aci.py:269
-#, python-format
-msgid "ACI with name \"%s\" not found"
+#: ipalib/plugins/automount.py:597
+msgid "description"
msgstr ""
-#: ipalib/plugins/aci.py:286
-msgid "ACIs"
+#: ipalib/plugins/automount.py:606
+msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/aci.py:291
-msgid "ACI name"
+#: ipalib/plugins/automount.py:607
+msgid ""
+"The key,info pair must be unique. A key named %(key)s with info %(info)s "
+"already exists"
msgstr ""
-#: ipalib/plugins/aci.py:296
-msgid "Taskgroup"
+#: ipalib/plugins/automount.py:608
+msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/aci.py:297
-msgid "Taskgroup ACI grants access to"
+#: ipalib/plugins/automount.py:609
+msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/aci.py:301
-msgid "User group"
+#: ipalib/plugins/automount.py:659
+msgid ""
+"More than one entry with key %(key)s found, use --info to select specific "
+"entry."
msgstr ""
-#: ipalib/plugins/aci.py:302
-msgid "User group ACI grants access to"
+#: ipalib/plugins/automount.py:717
+msgid ""
+"\n"
+" Create a new automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:306
-msgid "Permissions"
+#: ipalib/plugins/automount.py:742
+msgid ""
+"\n"
+" Create a new indirect mount point.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/automount.py:748
+msgid "Mount point"
+msgstr ""
+
+#: ipalib/plugins/automount.py:752
+msgid "Parent map"
msgstr ""
-#: ipalib/plugins/aci.py:307
+#: ipalib/plugins/automount.py:753
+msgid "Name of parent automount map (default: auto.master)."
+msgstr ""
+
+#: ipalib/plugins/automount.py:772
msgid ""
-"comma-separated list of permissions to grant(read, write, add, delete, all)"
+"\n"
+" Delete an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:313
-msgid "Attributes"
+#: ipalib/plugins/automount.py:803
+msgid ""
+"\n"
+" Modify an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:314
-msgid "Comma-separated list of attributes"
+#: ipalib/plugins/automount.py:809
+msgid "New mount information"
msgstr ""
-#: ipalib/plugins/aci.py:318
-msgid "Type"
+#: ipalib/plugins/automount.py:836
+msgid ""
+"\n"
+" Search for an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:319
-msgid "type of IPA object (user, group, host)"
+#: ipalib/plugins/automount.py:844
+msgid ""
+"\n"
+" Display an automount key.\n"
+" "
msgstr ""
-#: ipalib/plugins/aci.py:324
-msgid "Member of"
+#: ipalib/plugins/baseldap.py:19
+msgid ""
+"\n"
+"Base classes for LDAP plugins.\n"
msgstr ""
-#: ipalib/plugins/aci.py:325
-msgid "Member of a group"
+#: ipalib/plugins/baseldap.py:39
+msgid "Failed members"
msgstr ""
-#: ipalib/plugins/aci.py:329
-msgid "Filter"
+#: ipalib/plugins/baseldap.py:42
+msgid "Member users"
msgstr ""
-#: ipalib/plugins/aci.py:330
-msgid "Legal LDAP filter (e.g. ou=Engineering)"
+#: ipalib/plugins/baseldap.py:45
+msgid "Member groups"
msgstr ""
-#: ipalib/plugins/aci.py:334
-msgid "Subtree"
+#: ipalib/plugins/baseldap.py:48
+msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/aci.py:335
-msgid "Subtree to apply ACI to"
+#: ipalib/plugins/baseldap.py:51
+msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/aci.py:339
-msgid "Target group"
+#: ipalib/plugins/baseldap.py:54
+msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:340
-msgid "Group to apply ACI to"
+#: ipalib/plugins/baseldap.py:57
+msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/aci.py:344
-msgid "Target your own entry (self)"
+#: ipalib/plugins/baseldap.py:66
+msgid "Roles"
msgstr ""
-#: ipalib/plugins/aci.py:345
-msgid "Apply ACI to your own entry (self)"
+#: ipalib/plugins/baseldap.py:69 ipalib/plugins/sudocmdgroup.py:65
+#: ipalib/plugins/sudocmdgroup.py:84 ipalib/plugins/sudorule.py:139
+#: ipalib/plugins/sudorule.py:143
+msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/aci.py:357
-#, python-format
-msgid "Created ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:75
+msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/aci.py:407
-#, python-format
-msgid "Deleted ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:78
+msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:447
-#, python-format
-msgid "Modified ACI \"%(value)s\""
+#: ipalib/plugins/baseldap.py:81
+msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/aci.py:519
-#, python-format
-msgid "%(count)d ACI matched"
-msgid_plural "%(count)d ACIs matched"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/baseldap.py:84
+msgid "Member services"
+msgstr ""
-#: ipalib/plugins/automount.py:103
-msgid "Automount"
+#: ipalib/plugins/baseldap.py:87
+msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/automount.py:109 ipalib/plugins/host.py:134
-msgid "Location"
+#: ipalib/plugins/baseldap.py:93
+msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/automount.py:110
-msgid "Automount location name"
+#: ipalib/plugins/baseldap.py:102
+msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/automount.py:226
-msgid "Map"
+#: ipalib/plugins/baseldap.py:105
+msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/automount.py:227
-msgid "Automount map name"
+#: ipalib/plugins/baseldap.py:108
+msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/automount.py:232 ipalib/plugins/group.py:108
-#: ipalib/plugins/hbac.py:151 ipalib/plugins/hbacsvc.py:72
-#: ipalib/plugins/hbacsvcgroup.py:77 ipalib/plugins/host.py:124
-#: ipalib/plugins/hostgroup.py:81 ipalib/plugins/netgroup.py:96
-#: ipalib/plugins/rolegroup.py:90 ipalib/plugins/sudocmd.py:71
-#: ipalib/plugins/sudocmdgroup.py:77 ipalib/plugins/sudorule.py:58
-#: ipalib/plugins/taskgroup.py:62
-msgid "Description"
+#: ipalib/plugins/baseldap.py:111
+msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/automount.py:236
-msgid "Automount Maps"
+#: ipalib/plugins/baseldap.py:114
+msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/automount.py:308
-msgid "Key"
+#: ipalib/plugins/baseldap.py:117
+msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/automount.py:309
-msgid "Automount key name"
+#: ipalib/plugins/baseldap.py:120
+msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/automount.py:314
-msgid "Mount information"
+#: ipalib/plugins/baseldap.py:123
+msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/automount.py:318
-msgid "description"
+#: ipalib/plugins/baseldap.py:126
+msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/automount.py:322
-msgid "Automount Keys"
+#: ipalib/plugins/baseldap.py:141
+msgid "External host"
msgstr ""
-#: ipalib/plugins/automount.py:342
-msgid "Mount point"
+#: ipalib/plugins/baseldap.py:144
+msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/automount.py:346
-msgid "Parent map"
+#: ipalib/plugins/baseldap.py:147
+msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/automount.py:347
-msgid "Name of parent automount map (default: auto.master)"
+#: ipalib/plugins/baseldap.py:150
+msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:79
-#, python-format
+#: ipalib/plugins/baseldap.py:153
+msgid "Failed to remove"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:171
+msgid ""
+"\n"
+" Given a list of values in the form name=value, return a list of name.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:197
+msgid ""
+"\n"
+" When adding or removing reverse members we are faking an update to\n"
+" object A by updating the member attribute in object B. The memberof\n"
+" plugin makes this work by adding or removing the memberof attribute\n"
+" to/from object A, it just takes a little bit of time.\n"
+"\n"
+" This will loop for 6+ seconds, retrieving object A so we can see\n"
+" if all the memberof attributes have been updated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:241
+msgid ""
+"\n"
+" Object representing a LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:281
+msgid "Entry"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:283
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:80
-#, python-format
+#: ipalib/plugins/baseldap.py:284
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:81
-#, python-format
+#: ipalib/plugins/baseldap.py:285
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:150
-msgid "Add an attribute/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:286
+msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:155
-msgid "Set an attribute to an name/value pair. Format is attr=value"
+#: ipalib/plugins/baseldap.py:415
+msgid ""
+"Add an attribute/value pair. Format is attr=value. The attribute must be "
+"part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:359
+#: ipalib/plugins/baseldap.py:420
+msgid ""
+"Set an attribute to a name/value pair. Format is attr=value.\n"
+"For multi-valued attributes, the command replaces the values already present."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:444
+msgid ""
+"\n"
+" If the set of objectclasses is limited enforce that only those\n"
+" are updated in entry_attrs (plus dn)\n"
+"\n"
+" allow_only tells us what mode to check in:\n"
+"\n"
+" If True then we enforce that the attributes must be in the list of\n"
+" allowed.\n"
+"\n"
+" If False then those attributes are not allowed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:474
+msgid ""
+"\n"
+" Callback registration interface\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:561
+msgid ""
+"\n"
+" Create a new entry in LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:703
+msgid ""
+"\n"
+" Base class for commands that need to retrieve an existing entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:727
+msgid ""
+"\n"
+" Base class for commands that need to retrieve one or more existing "
+"entries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:733
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:517
+#: ipalib/plugins/baseldap.py:750
+msgid ""
+"\n"
+" Retrieve an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:758 ipalib/plugins/baseldap.py:827
+#: ipalib/plugins/internal.py:232
+msgid "Rights"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:759 ipalib/plugins/baseldap.py:828
+msgid ""
+"Display the access rights of this entry (requires --all). See ipa man page "
+"for details."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:821
+msgid ""
+"\n"
+" Update an LDAP entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:837
+msgid "Rename"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:838
+msgid "Rename the %(ldap_obj_name)s object"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:957
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:674
+#: ipalib/plugins/baseldap.py:988
+msgid ""
+"\n"
+" Delete an LDAP entry and all of its direct subentries.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1078
+msgid ""
+"\n"
+" Base class for member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1120
+msgid ""
+"\n"
+" Add other LDAP entries to members.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1131 ipalib/plugins/baseldap.py:1592
+#: ipalib/plugins/privilege.py:165 ipalib/plugins/privilege.py:191
+#: ipalib/plugins/role.py:179 ipalib/plugins/role.py:203
msgid "Members that could not be added"
msgstr ""
-#: ipalib/plugins/baseldap.py:678
+#: ipalib/plugins/baseldap.py:1135 ipalib/plugins/baseldap.py:1596
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:684 ipalib/plugins/baseldap.py:789
-msgid "Failed members"
+#: ipalib/plugins/baseldap.py:1226
+msgid ""
+"\n"
+" Remove LDAP entries from members.\n"
+" "
msgstr ""
-#: ipalib/plugins/baseldap.py:779
+#: ipalib/plugins/baseldap.py:1236 ipalib/plugins/baseldap.py:1705
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:783
+#: ipalib/plugins/baseldap.py:1240 ipalib/plugins/baseldap.py:1709
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:880
+#: ipalib/plugins/baseldap.py:1335
+msgid ""
+"\n"
+" Retrieve all LDAP entries matching the given criteria.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1344
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:881
+#: ipalib/plugins/baseldap.py:1345
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:887
+#: ipalib/plugins/baseldap.py:1351
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:888
+#: ipalib/plugins/baseldap.py:1352
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/cert.py:93
+#: ipalib/plugins/baseldap.py:1552
+msgid ""
+"\n"
+" Base class for reverse member manipulation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1574
+msgid ""
+"\n"
+" Add other LDAP entries to members in reverse.\n"
+"\n"
+" The call looks like \"add A to B\" but in fact executes\n"
+" add B to A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1654
+msgid "added"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1687
+msgid ""
+"\n"
+" Remove other LDAP entries from members in reverse.\n"
+"\n"
+" The call looks like \"remove A from B\" but in fact executes\n"
+" remove B from A to handle reverse membership.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1767
+msgid "removed"
+msgstr ""
+
+#: ipalib/plugins/batch.py:21
+msgid ""
+"\n"
+"Plugin to make multiple ipa calls via one remote procedure call\n"
+"\n"
+"To run this code in the lite-server\n"
+"\n"
+"curl -H \"Content-Type:application/json\" -H \"Accept:application/"
+"json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /"
+"etc/ipa/ca.crt -d @batch_request.json -X POST http://"
+"localhost:8888/ipa/json\n"
+"\n"
+"where the contents of the file batch_request.json follow the below example\n"
+"\n"
+"{\"method\":\"batch\",\"params\":[[\n"
+" {\"method\":\"group_find\",\"params\":[[],{}]},\n"
+" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all"
+"\":\"true\"}]},\n"
+" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n"
+" ],{}],\"id\":1}\n"
+"\n"
+"The format of the response is nested the same way. At the top you will see\n"
+" \"error\": null,\n"
+" \"id\": 1,\n"
+" \"result\": {\n"
+" \"count\": 3,\n"
+" \"results\": [\n"
+"\n"
+"\n"
+"And then a nested response for each IPA command method sent in the request\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/batch.py:61
+msgid "Nested Methods to execute"
+msgstr ""
+
+#: ipalib/plugins/batch.py:68 ipalib/frontend.py:861
+msgid "Client version. Used to determine if server will accept request."
+msgstr ""
+
+#: ipalib/plugins/cert.py:22
+msgid ""
+"\n"
+"IPA certificate operations\n"
+"\n"
+"Implements a set of commands for managing server SSL certificates.\n"
+"\n"
+"Certificate requests exist in the form of a Certificate Signing Request "
+"(CSR)\n"
+"in PEM format.\n"
+"\n"
+"If using the selfsign back end then the subject in the CSR needs to match\n"
+"the subject configured in the server. The dogtag CA uses just the CN\n"
+"value of the CSR and forces the rest of the subject.\n"
+"\n"
+"A certificate is stored with a service principal and a service principal\n"
+"needs a host.\n"
+"\n"
+"In order to request a certificate:\n"
+"\n"
+"* The host must exist\n"
+"* The service must exist (or you use the --add option to automatically add "
+"it)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Request a new certificate and add the principal:\n"
+" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n"
+"\n"
+" Retrieve an existing certificate:\n"
+" ipa cert-show 1032\n"
+"\n"
+" Revoke a certificate (see RFC 5280 for reason details):\n"
+" ipa cert-revoke --revocation-reason=6 1032\n"
+"\n"
+" Remove a certificate from revocation hold status:\n"
+" ipa cert-remove-hold 1032\n"
+"\n"
+" Check the status of a signing request:\n"
+" ipa cert-status 10\n"
+"\n"
+"IPA currently immediately issues (or declines) all certificate requests so\n"
+"the status of a request is not normally useful. This is for future use\n"
+"or the case where a CA does not immediately issue a certificate.\n"
+"\n"
+"The following revocation reasons are supported:\n"
+"\n"
+" * 0 - unspecified\n"
+" * 1 - keyCompromise\n"
+" * 2 - cACompromise\n"
+" * 3 - affiliationChanged\n"
+" * 4 - superseded\n"
+" * 5 - cessationOfOperation\n"
+" * 6 - certificateHold\n"
+" * 8 - removeFromCRL\n"
+" * 9 - privilegeWithdrawn\n"
+" * 10 - aACompromise\n"
+"\n"
+"Note that reason code 7 is not used. See RFC 5280 for more details:\n"
+"\n"
+"http://www.ietf.org/rfc/rfc5280.txt\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/cert.py:104
+msgid ""
+"\n"
+" Return the value of CN in the subject of the request or None\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:112
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:106 ipalib/plugins/cert.py:118
+#: ipalib/plugins/cert.py:115
+msgid ""
+"\n"
+" Return the first value of the subject alt name, if any\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:137
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:120
-#, python-format
+#: ipalib/plugins/cert.py:128
+msgid ""
+"\n"
+" Ensure the CSR is base64-encoded and can be decoded by our PKCS#10\n"
+" parser.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:139
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:171 ipalib/plugins/service.py:197
+#: ipalib/plugins/cert.py:142
+msgid ""
+"\n"
+" Strip any leading and trailing cruft around the BEGIN/END block\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:162
+msgid ""
+"\n"
+" Convert a SN given in decimal or hexadecimal.\n"
+" Returns the number or None if conversion fails.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:188
+msgid ""
+"\n"
+" Given a principal with or without a realm return the\n"
+" host portion.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:202
+msgid ""
+"\n"
+" Submit a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:216 ipalib/plugins/service.py:225
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:172
+#: ipalib/plugins/cert.py:217
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:179
+#: ipalib/plugins/cert.py:224
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:187 ipalib/plugins/cert.py:392
-#: ipalib/plugins/host.py:154 ipalib/plugins/service.py:204
+#: ipalib/plugins/cert.py:232 ipalib/plugins/cert.py:439
+#: ipalib/plugins/entitle.py:173 ipalib/plugins/host.py:276
+#: ipalib/plugins/service.py:232
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:191 ipalib/plugins/cert.py:395
+#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:442
+#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:93
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:195 ipalib/plugins/cert.py:398
+#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:445
+#: ipalib/plugins/host.py:165 ipalib/plugins/service.py:99
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:199 ipalib/plugins/cert.py:401
+#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:448
+#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:102
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:203 ipalib/plugins/cert.py:404
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:451
+#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:105
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:207 ipalib/plugins/cert.py:407
+#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:454
+#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:108
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:211 ipalib/plugins/cert.py:410
+#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:457
+#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:111
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:215 ipalib/plugins/cert.py:379
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:425
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:223 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:268 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:588 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:357
+#: ipalib/plugins/cert.py:396
+msgid ""
+"\n"
+" Check the status of a certificate signing request.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:402
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:363
+#: ipalib/plugins/cert.py:408
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:380
+#: ipalib/plugins/cert.py:426
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:413
+#: ipalib/plugins/cert.py:431
+msgid ""
+"\n"
+" Retrieve an existing certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:180
+#: ipalib/plugins/service.py:114
msgid "Revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:458
+#: ipalib/plugins/cert.py:466
+msgid "Output filename"
+msgstr ""
+
+#: ipalib/plugins/cert.py:467
+msgid "File to store the certificate in."
+msgstr ""
+
+#: ipalib/plugins/cert.py:518
+msgid ""
+"\n"
+" Revoke a certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:526
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:466
+#: ipalib/plugins/cert.py:534
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:467
+#: ipalib/plugins/cert.py:535
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:502
+#: ipalib/plugins/cert.py:562
+msgid ""
+"\n"
+" Take a revoked certificate off hold.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/cert.py:570
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:505
+#: ipalib/plugins/cert.py:573
msgid "Error"
msgstr ""
-#: ipalib/plugins/config.py:73
+#: ipalib/plugins/config.py:20
+msgid ""
+"\n"
+"Manage the IPA configuration\n"
+"\n"
+"Manage the default values that IPA uses and some of its tuning parameters.\n"
+"\n"
+" To show the current configuration:\n"
+" ipa config-show\n"
+"\n"
+" To modify the configuration:\n"
+" ipa config-mod --maxusername=99\n"
+"\n"
+"The available options are:\n"
+"\n"
+"User management options:\n"
+"\n"
+" --maxusername=INT Max. username length when creating/modifying a user\n"
+" --homedirectory=STR Default location of home directories (default /"
+"home)\n"
+" --defaultshell=STR Default shell for new users (default /bin/sh)\n"
+" --defaultgroup=STR Default group for new users (default ipausers). The\n"
+" group must exist, or adding new users will fail.\n"
+" --emaildomain=STR Default e-mail domain for new users\n"
+"\n"
+"Search tuning options. These impact how much data is searched through and\n"
+"how many records may be returned on a given search.\n"
+"\n"
+" --searchtimelimit=INT Max. amount of time (sec.) for a search (> 0, or -1 "
+"for\n"
+" unlimited)\n"
+" --searchrecordslimit=INT Max. number of records to search (-1 is "
+"unlimited)\n"
+"\n"
+"Server Configuration.\n"
+"\n"
+" --enable-migration=BOOL Enable migration mode\n"
+" --pwdexpnotify=INT Password Expiration Notification (days)\n"
+"\n"
+"The password notification value is stored here so it will be replicated.\n"
+"It is not currently used to notify users in advance of an expiring\n"
+"password.\n"
+"\n"
+"Some attributes are read-only, provided only for information purposes. "
+"These\n"
+"include:\n"
+"\n"
+"Certificate Subject base: the configured certificate subject base,\n"
+" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n"
+"Password plug-in features: currently defines additional hashes that the\n"
+" password will generate (there may be other conditions).\n"
+msgstr ""
+
+#: ipalib/plugins/config.py:76
+msgid "searchtimelimit must be -1 or > 1."
+msgstr ""
+
+#: ipalib/plugins/config.py:80
+msgid ""
+"\n"
+" IPA configuration object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:91 ipalib/plugins/internal.py:151
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:78
-msgid "Max username length"
+#: ipalib/plugins/config.py:96
+msgid "Max. username length"
msgstr ""
-#: ipalib/plugins/config.py:83
+#: ipalib/plugins/config.py:101
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:84
-msgid "Default location of home directories"
+#: ipalib/plugins/config.py:102
+msgid "Default location of home directories."
msgstr ""
-#: ipalib/plugins/config.py:88
+#: ipalib/plugins/config.py:106
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:89
-msgid "Default shell for new users"
+#: ipalib/plugins/config.py:107
+msgid "Default shell for new users."
msgstr ""
-#: ipalib/plugins/config.py:93
+#: ipalib/plugins/config.py:111
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:94
-msgid "Default group for new users"
+#: ipalib/plugins/config.py:112
+msgid "Default group for new users."
msgstr ""
-#: ipalib/plugins/config.py:98
-msgid "Default e-mail domain"
+#: ipalib/plugins/config.py:116
+msgid "Default e-mail domain for new users"
msgstr ""
-#: ipalib/plugins/config.py:99
-msgid "Default e-mail domain new users"
+#: ipalib/plugins/config.py:117
+msgid "Default e-mail domain new users."
msgstr ""
-#: ipalib/plugins/config.py:103
+#: ipalib/plugins/config.py:121
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:104
-msgid "Max. amount of time (sec.) for a search (-1 is unlimited)"
+#: ipalib/plugins/config.py:122
+msgid "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:109
+#: ipalib/plugins/config.py:127
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:110
-msgid "Max. number of records to search (-1 is unlimited)"
+#: ipalib/plugins/config.py:128
+msgid "Max. number of records to search (-1 is unlimited)."
msgstr ""
-#: ipalib/plugins/config.py:115
+#: ipalib/plugins/config.py:133
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:116
-msgid "A comma-separated list of fields to search when searching for users"
+#: ipalib/plugins/config.py:134
+msgid "A comma-separated list of fields to search when searching for users."
msgstr ""
-#: ipalib/plugins/config.py:121
-msgid "A comma-separated list of fields to search when searching for groups"
+#: ipalib/plugins/config.py:139
+msgid "A comma-separated list of fields to search when searching for groups."
msgstr ""
-#: ipalib/plugins/config.py:125
+#: ipalib/plugins/config.py:143
msgid "Migration mode"
msgstr ""
-#: ipalib/plugins/config.py:126
-msgid "Enable migration mode"
+#: ipalib/plugins/config.py:144
+msgid "Enable migration mode."
msgstr ""
-#: ipalib/plugins/config.py:130
+#: ipalib/plugins/config.py:148
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:131
-msgid "Base for certificate subjects (OU=Test,O=Example)"
+#: ipalib/plugins/config.py:149
+msgid "Base for certificate subjects (OU=Test,O=Example)."
msgstr ""
-#: ipalib/plugins/dns.py:131
+#: ipalib/plugins/config.py:154
+msgid "Default group objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:155
+msgid "Default group objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:159
+msgid "Default user objectclasses"
+msgstr ""
+
+#: ipalib/plugins/config.py:160
+msgid "Default user objectclassses (comma-separated list)."
+msgstr ""
+
+#: ipalib/plugins/config.py:164
+msgid "Password Expiration Notification"
+msgstr ""
+
+#: ipalib/plugins/config.py:165
+msgid "Number of days's notice of impending password expiration."
+msgstr ""
+
+#: ipalib/plugins/config.py:170
+msgid "Password plugin features"
+msgstr ""
+
+#: ipalib/plugins/config.py:171
+msgid "Extra hashes to generate in password plug-in."
+msgstr ""
+
+#: ipalib/plugins/config.py:183
+msgid ""
+"\n"
+" Modify configuration options.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/config.py:220
+msgid ""
+"\n"
+" Show the current configuration.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:19
+msgid ""
+"\n"
+"Group to Group Delegation\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"Group to Group Delegations grants the members of one group to update a set\n"
+"of attributes of members of another group.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a delegation rule to allow editors to edit admin's addresses:\n"
+" ipa delegation-add --attrs=street --membergroup=admins --group=editors "
+"'editors edit admins street'\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add postalCode to the list:\n"
+" ipa delegation-mod --attrs=street,postalCode --membergroup=admins --"
+"group=editors 'editors edit admins street'\n"
+"\n"
+" Display our updated rule:\n"
+" ipa delegation-show 'editors edit admins street'\n"
+"\n"
+" Delete a rule:\n"
+" ipa delegation-del 'editors edit admins street'\n"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:56
+msgid ""
+"\n"
+" memberOf is in filter but we want to pull out the group for easier\n"
+" displaying.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:63 ipalib/plugins/delegation.py:90
+msgid "Delegation '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:70
+msgid "Error retrieving member group %(group)s: %(error)s"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:79
+msgid ""
+"\n"
+" Determine if the ACI is a Delegation ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a delegation ACI, adding a new attribute\n"
+" membergroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:95
+msgid ""
+"\n"
+" Delegation object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:102
+msgid "Delegation"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:107 ipalib/plugins/delegation.py:108
+msgid "Delegation name"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:114 ipalib/plugins/selfservice.py:87
+msgid ""
+"Comma-separated list of permissions to grant (read, write). Default is write."
+msgstr ""
+
+#: ipalib/plugins/delegation.py:125
+msgid "Member user group"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:126
+msgid "User group to apply delegation to"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:152
+msgid ""
+"\n"
+" Add a new delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:156
+msgid "Added delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:176
+msgid ""
+"\n"
+" Delete a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:181
+msgid "Deleted delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:197
+msgid ""
+"\n"
+" Modify a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:201
+msgid "Modified delegation \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/delegation.py:219
+msgid ""
+"\n"
+" Search for delegations.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/delegation.py:223
+msgid "%(count)d delegation matched"
+msgid_plural "%(count)d delegations matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/delegation.py:250
+msgid ""
+"\n"
+" Display information about a delegation.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:20
+msgid ""
+"\n"
+"Domain Name System (DNS)\n"
+"\n"
+"Manage DNS zone and resource records.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add new zone:\n"
+" ipa dnszone-add example.com --name-server nameserver.example.com\n"
+" --admin-email admin@example.com\n"
+"\n"
+" Add second nameserver for example.com:\n"
+" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add a mail server for example.com:\n"
+" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n"
+"\n"
+" Delete previously added nameserver from example.com:\n"
+" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n"
+"\n"
+" Add new A record for www.example.com: (random IP)\n"
+" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n"
+"\n"
+" Add new PTR record for www.example.com\n"
+" ipa dnsrecord-add 15.142.80.in-addr.arpa 2 --ptr-rec www.example.com.\n"
+"\n"
+" Add new SRV records for LDAP servers. Three quarters of the requests\n"
+" should go to fast.example.com, one quarter to slow.example.com. If neither\n"
+" is available, switch to backup.example.com.\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example."
+"com\"\n"
+" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup."
+"example.com\"\n"
+"\n"
+" When dnsrecord-add command is executed with no option to add a specific "
+"record\n"
+" an interactive mode is started. The mode interactively prompts for the "
+"most\n"
+" typical record types for the respective zone:\n"
+" ipa dnsrecord-add example.com www\n"
+" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random "
+"IPs)\n"
+" [AAAA record]: (no AAAA address entered)\n"
+" Record name: www\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" The interactive mode can also be used for deleting the DNS records:\n"
+" ipa dnsrecord-del example.com www\n"
+" No option to delete specific record provided.\n"
+" Delete all? Yes/No (default No): (do not delete all records)\n"
+" Current DNS record contents:\n"
+"\n"
+" A record: 1.2.3.4, 11.22.33.44\n"
+"\n"
+" Delete A record '1.2.3.4'? Yes/No (default No): \n"
+" Delete A record '11.22.33.44'? Yes/No (default No): y\n"
+" Record name: www\n"
+" A record: 1.2.3.4 (A record 11.22.33.44 has been "
+"deleted)\n"
+"\n"
+" Show zone example.com:\n"
+" ipa dnszone-show example.com\n"
+"\n"
+" Find zone with \"example\" in its domain name:\n"
+" ipa dnszone-find example\n"
+"\n"
+" Find records for resources with \"www\" in their name in zone example.com:\n"
+" ipa dnsrecord-find example.com www\n"
+"\n"
+" Find A records with value 10.10.0.1 in zone example.com\n"
+" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n"
+"\n"
+" Show records for resource www in zone example.com\n"
+" ipa dnsrecord-show example.com www\n"
+"\n"
+" Delete zone example.com with all resource records:\n"
+" ipa dnszone-del example.com\n"
+"\n"
+" Resolve a host name to see if it exists (will add default IPA domain\n"
+" if one is not included):\n"
+" ipa dns-resolve www.example.com\n"
+" ipa dns-resolve www\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:140
+msgid "Generate serial number for zones."
+msgstr ""
+
+#: ipalib/plugins/dns.py:189
+msgid "see RFC 2915 "
+msgstr ""
+
+#: ipalib/plugins/dns.py:249
+msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:272
+msgid ""
+"\n"
+" DNS Zone, container for resource records.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:284
msgid "DNS"
msgstr ""
-#: ipalib/plugins/dns.py:136
-msgid "Zone"
+#: ipalib/plugins/dns.py:289
+msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:137
+#: ipalib/plugins/dns.py:290
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:143
-msgid "Authoritative name server"
+#: ipalib/plugins/dns.py:296
+msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:147
-msgid "administrator e-mail address"
+#: ipalib/plugins/dns.py:297
+msgid "Authoritative nameserver."
msgstr ""
-#: ipalib/plugins/dns.py:153
+#: ipalib/plugins/dns.py:301 ipalib/plugins/dns.py:302
+msgid "Administrator e-mail address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:308
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:157
+#: ipalib/plugins/dns.py:309
+msgid "SOA record serial number"
+msgstr ""
+
+#: ipalib/plugins/dns.py:316
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:161
+#: ipalib/plugins/dns.py:317
+msgid "SOA record refresh time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:324
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:165
+#: ipalib/plugins/dns.py:325
+msgid "SOA record retry time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:332
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:169
+#: ipalib/plugins/dns.py:333
+msgid "SOA record expire time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:340
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:173
+#: ipalib/plugins/dns.py:341
+msgid "How long should negative responses be cached"
+msgstr ""
+
+#: ipalib/plugins/dns.py:349
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:177
+#: ipalib/plugins/dns.py:350
+msgid "SOA record time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:354
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:182
-msgid "allow dynamic update?"
+#: ipalib/plugins/dns.py:355
+msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:186
+#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:361
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:426 ipalib/plugins/dns.py:460
-#: ipalib/plugins/dns.py:495 ipalib/plugins/dns.py:610
-#: ipalib/plugins/dns.py:695 ipalib/plugins/dns.py:819
-msgid "Zone name"
+#: ipalib/plugins/dns.py:365
+msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:500
-msgid "resource name"
+#: ipalib/plugins/dns.py:366
+msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:505 ipalib/plugins/dns.py:620
-#: ipalib/plugins/dns.py:711
-msgid "Record type"
+#: ipalib/plugins/dns.py:372
+msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:509 ipalib/plugins/dns.py:624
-msgid "Data"
+#: ipalib/plugins/dns.py:373
+msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:510 ipalib/plugins/dns.py:625
-msgid "Type-specific data"
+#: ipalib/plugins/dns.py:382
+msgid ""
+"\n"
+" Create new DNS zone (SOA record).\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:517
-msgid "Time to live"
+#: ipalib/plugins/dns.py:387 ipalib/plugins/dns.py:697
+#: ipalib/plugins/host.py:315 ipalib/plugins/service.py:250
+msgid "Force"
+msgstr ""
+
+#: ipalib/plugins/dns.py:388
+msgid "Force DNS zone creation even if nameserver not in DNS."
+msgstr ""
+
+#: ipalib/plugins/dns.py:391
+msgid "Add the nameserver to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:397
+msgid "DNS is not configured"
+msgstr ""
+
+#: ipalib/plugins/dns.py:431
+msgid ""
+"\n"
+" Delete DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:439
+msgid ""
+"\n"
+" Modify DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:452
+msgid ""
+"\n"
+" Search for DNS zones (SOA records).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:460
+msgid ""
+"\n"
+" Display information about a DNS zone (SOA record).\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:468
+msgid ""
+"\n"
+" Disable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:472
+msgid "Disabled DNS zone \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:490
+msgid ""
+"\n"
+" Enable DNS Zone.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:494
+msgid "Enabled DNS zone \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:512
+msgid ""
+"\n"
+" DNS record.\n"
+" "
msgstr ""
#: ipalib/plugins/dns.py:522
+msgid "DNS resource record"
+msgstr ""
+
+#: ipalib/plugins/dns.py:527 ipalib/plugins/dns.py:528
+msgid "Record name"
+msgstr ""
+
+#: ipalib/plugins/dns.py:533 ipalib/plugins/dns.py:534
+msgid "Time to live"
+msgstr ""
+
+#: ipalib/plugins/dns.py:538
msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:615 ipalib/plugins/dns.py:707
-#: ipalib/plugins/dns.py:824
-msgid "Resource name"
+#: ipalib/plugins/dns.py:539
+msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:700
-msgid "Search criteria"
+#: ipalib/plugins/dns.py:566
+msgid ""
+"\n"
+" Base class for DNS record commands with record options.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:715
-msgid "type-specific data"
+#: ipalib/plugins/dns.py:610
+msgid ""
+"\n"
+" Base class for adding/removing records from DNS resource entries.\n"
+" "
msgstr ""
-#: ipalib/plugins/dns.py:865
-#, python-format
+#: ipalib/plugins/dns.py:674
+msgid ""
+"\n"
+" Add records to DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:690
+msgid ""
+"\n"
+" Add new DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:699
+msgid "force NS record creation even if its hostname is not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:735
+msgid ""
+"Reverse zone for PTR record should be a sub-zone of one the following fully "
+"qualified domains: %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:740
+msgid "Reverse zone %s requires exactly %d IP address components, %d given"
+msgstr ""
+
+#: ipalib/plugins/dns.py:746
+msgid "PTR record '%s' is not fully qualified (check traling '.')"
+msgstr ""
+
+#: ipalib/plugins/dns.py:789
+msgid ""
+"\n"
+" Delete DNS record entry.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:792
+msgid "Deleted record \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:799
+msgid ""
+"\n"
+" Delete DNS resource record.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:802
+msgid ""
+"Neither --del-all nor options to delete a specific record provided.\n"
+"Command help may be consulted for all supported record types."
+msgstr ""
+
+#: ipalib/plugins/dns.py:807
+msgid "Delete all associated records"
+msgstr ""
+
+#: ipalib/plugins/dns.py:834
+msgid "No option to delete specific record provided."
+msgstr ""
+
+#: ipalib/plugins/dns.py:835
+msgid "Delete all?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:845
+msgid "Current DNS record contents:\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:875
+msgid "%s record with value %s not found"
+msgstr ""
+
+#: ipalib/plugins/dns.py:889
+msgid ""
+"\n"
+" Display DNS resource.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:905
+msgid ""
+"\n"
+" Search for DNS resources.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:932
+msgid ""
+"\n"
+" Resolve a host name in DNS\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/dns.py:936
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:869
+#: ipalib/plugins/dns.py:940
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:882
-#, python-format
+#: ipalib/plugins/dns.py:962
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/group.py:94
+#: ipalib/plugins/dns.py:970
+msgid ""
+"\n"
+" Checks if any of the servers has the DNS service enabled.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:19
+msgid ""
+"\n"
+"Entitlements\n"
+"\n"
+"Manage entitlements for client machines\n"
+"\n"
+"Entitlements can be managed either by registering with an entitlement\n"
+"server with a username and password or by manually importing entitlement\n"
+"certificates. An entitlement certificate contains embedded information\n"
+"such as the product being entitled, the quantity and the validity dates.\n"
+"\n"
+"An entitlement server manages the number of client entitlements available.\n"
+"To mark these entitlements as used by the IPA server you provide a quantity\n"
+"and they are marked as consumed on the entitlement server.\n"
+"\n"
+" Register with an entitlement server:\n"
+" ipa entitle-register consumer\n"
+"\n"
+" Import an entitlement certificate:\n"
+" ipa entitle-import /home/user/ipaclient.pem\n"
+"\n"
+" Display current entitlements:\n"
+" ipa entitle-status\n"
+"\n"
+" Retrieve details on entitlement certificates:\n"
+" ipa entitle-get\n"
+"\n"
+" Consume some entitlements from the entitlement server:\n"
+" ipa entitle-consume 50\n"
+"\n"
+"The registration ID is a Unique Identifier (UUID). This ID will be\n"
+"IMPORTED if you have used entitle-import.\n"
+"\n"
+"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:106
+msgid ""
+"\n"
+" Get our entitlement pool. Assume there is only one pool.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:129
+msgid ""
+"\n"
+" Retrieve our UUID, certificate and key from LDAP.\n"
+"\n"
+" Except on error the caller is responsible for removing temporary files\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:178
+msgid ""
+"\n"
+" Entitlement object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:189
+msgid "Entitlements"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:206
+msgid ""
+"\n"
+" Display current entitlements\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:602
+msgid "UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:306
+#: ipalib/plugins/entitle.py:388 ipalib/plugins/entitle.py:575
+#: ipalib/plugins/entitle.py:690
+msgid "Product"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:286
+#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:391
+#: ipalib/plugins/entitle.py:578 ipalib/plugins/entitle.py:680
+msgid "Quantity"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:309
+#: ipalib/plugins/entitle.py:581 ipalib/plugins/entitle.py:693
+msgid "Consumed"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:276
+msgid ""
+"\n"
+" Consume an entitlement\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:282
+msgid "Consumed %(value)s entitlement(s)."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:314
+msgid ""
+"\n"
+" Override this so we can set value to the number of entitlements\n"
+" consumed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:362 ipalib/plugins/entitle.py:724
+msgid ""
+"\n"
+" Returning the certificates isn't very interesting. Return the\n"
+" status of entitlements instead.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:380
+msgid ""
+"\n"
+" Retrieve the entitlement certs\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:394
+msgid "Start"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:397
+msgid "End"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:400 ipalib/plugins/host.py:162
+#: ipalib/plugins/internal.py:132 ipalib/plugins/service.py:96
+msgid "Serial Number"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:435 ipalib/plugins/entitle.py:626
+#: ipalib/plugins/entitle.py:628
+msgid "Not an entitlement certificate"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:460
+msgid ""
+"\n"
+" Search for entitlement accounts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:473
+msgid ""
+"\n"
+" Register to the entitlement system\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:479
+msgid "Registered to entitlement server."
+msgstr ""
+
+#: ipalib/plugins/entitle.py:483
+msgid "Username"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:490 ipalib/plugins/entitle.py:603
+msgid "Enrollment UUID"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:494 ipalib/plugins/migration.py:271
+#: ipalib/plugins/passwd.py:59 ipalib/plugins/user.py:172
+msgid "Password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:495
+msgid "Registration password"
+msgstr ""
+
+#: ipalib/plugins/entitle.py:569
+msgid ""
+"\n"
+" Import an entitlement certificate.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:646
+msgid ""
+"\n"
+" If we are adding the first entry there are no updates so "
+"EmptyModlist\n"
+" will get thrown. Ignore it.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:667
+msgid ""
+"\n"
+" Re-sync the local entitlement cache with the entitlement server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/entitle.py:673
+msgid "Entitlement(s) synchronized."
+msgstr ""
+
+#: ipalib/plugins/group.py:20
+msgid ""
+"\n"
+"Groups of users\n"
+"\n"
+"Manage groups of users. By default, new groups are POSIX groups. You\n"
+"can add the --nonposix option to the group-add command to mark a new group\n"
+"as non-POSIX, and you can use the same argument to the group-mod command\n"
+"to convert a non-POSIX group to a POSIX group. POSIX groups cannot be\n"
+"converted to non-POSIX groups.\n"
+"\n"
+"Every group must have a description.\n"
+"\n"
+"POSIX groups must have a Group ID (GID) number. Changing a GID is\n"
+"supported but can have an impact on your file permissions. It is not "
+"necessary\n"
+"to supply a GID when creating a group. IPA will generate one automatically\n"
+"if it is not provided.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new group:\n"
+" ipa group-add --desc='local administrators' localadmins\n"
+"\n"
+" Add a new non-POSIX group:\n"
+" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n"
+"\n"
+" Convert a non-POSIX group to posix:\n"
+" ipa group-mod --posix remoteadmins\n"
+"\n"
+" Add a new POSIX group with a specific Group ID number:\n"
+" ipa group-add --gid=500 --desc='unix admins' unixadmins\n"
+"\n"
+" Add a new POSIX group and let IPA assign a Group ID number:\n"
+" ipa group-add --desc='printer admins' printeradmins\n"
+"\n"
+" Remove a group:\n"
+" ipa group-del unixadmins\n"
+"\n"
+" To add the \"remoteadmins\" group to the \"localadmins\" group:\n"
+" ipa group-add-member --groups=remoteadmins localadmins\n"
+"\n"
+" Add a list of users to the \"localadmins\" group:\n"
+" ipa group-add-member --users=test1,test2 localadmins\n"
+"\n"
+" Remove a user from the \"localadmins\" group:\n"
+" ipa group-remove-member --users=test2 localadmins\n"
+"\n"
+" Display information about a named group.\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/group.py:76
+msgid ""
+"\n"
+" Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:100
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:102
+#: ipalib/plugins/group.py:108
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:109 ipalib/plugins/sudocmdgroup.py:78
+#: ipalib/plugins/group.py:115 ipalib/plugins/sudocmdgroup.py:77
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:113
+#: ipalib/plugins/group.py:119 ipalib/plugins/user.py:187
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:114
+#: ipalib/plugins/group.py:120
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:117 ipalib/plugins/rolegroup.py:94
-#: ipalib/plugins/taskgroup.py:66
-msgid "Member groups"
+#: ipalib/plugins/group.py:128
+msgid ""
+"\n"
+" Create a new group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:121 ipalib/plugins/rolegroup.py:98
-#: ipalib/plugins/taskgroup.py:70
-msgid "Member users"
+#: ipalib/plugins/group.py:132
+msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:134
-#, python-format
-msgid "Added group \"%(value)s\""
+#: ipalib/plugins/group.py:137
+msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:139
-msgid "Create as a non-POSIX group?"
+#: ipalib/plugins/group.py:154
+msgid ""
+"\n"
+" Delete group.\n"
+" "
msgstr ""
-#: ipalib/plugins/group.py:160
-#, python-format
+#: ipalib/plugins/group.py:158
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:191
-#, python-format
+#: ipalib/plugins/group.py:186
+msgid ""
+"\n"
+" Modify a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:189
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:196
+#: ipalib/plugins/group.py:194
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:222 ipalib/plugins/hbacsvcgroup.py:129
-#, python-format
+#: ipalib/plugins/group.py:215
+msgid ""
+"\n"
+" Search for groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:220
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
+#: ipalib/plugins/group.py:227 ipalib/plugins/netgroup.py:192
+msgid "search for private groups"
+msgstr ""
+
#: ipalib/plugins/group.py:257
-#, python-format
-msgid "Detached group \"%(value)s\" from user \"%(value)s\""
+msgid ""
+"\n"
+" Display information about a named group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:265
+msgid ""
+"\n"
+" Add members to a group.\n"
+" "
msgstr ""
#: ipalib/plugins/group.py:273
+msgid ""
+"\n"
+" Remove members from a group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:281
+msgid ""
+"\n"
+" Detach a managed group from a user\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:285
+msgid "Detached group \"%(value)s\" from user \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/group.py:288
+msgid ""
+"\n"
+" This requires updating both the user and the group. We first need "
+"to\n"
+" verify that both the user and group can be updated, then we go\n"
+" about our work. We don't want a situation where only the user or\n"
+" group can be modified and we're left in a bad state.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/group.py:306
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:277
+#: ipalib/plugins/group.py:312
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:284 ipalib/plugins/group.py:295
+#: ipalib/plugins/group.py:331
msgid "Not a managed group"
msgstr ""
-#: ipalib/plugins/hbac.py:106
-msgid "HBAC"
+#: ipalib/plugins/hbacrule.py:19
+msgid ""
+"\n"
+"Host-based access control\n"
+"\n"
+"Control who can access what services on what hosts and from where. You\n"
+"can use HBAC to control which users or groups on a source host can\n"
+"access a service, or group of services, on a target host.\n"
+"\n"
+"You can also specify a category of users, target hosts, and source\n"
+"hosts. This is currently limited to \"all\", but might be expanded in the\n"
+"future.\n"
+"\n"
+"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n"
+"\n"
+"The available services and groups of services are controlled by the\n"
+"hbacsvc and hbacsvcgroup plug-ins respectively.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a rule, \"test1\", that grants all users access to the host \"server"
+"\" from\n"
+" anywhere:\n"
+" ipa hbacrule-add --type=allow --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add-host --hosts=server.example.com test1\n"
+"\n"
+" Display the properties of a named HBAC rule:\n"
+" ipa hbacrule-show test1\n"
+"\n"
+" Create a rule for a specific service. This lets the user john access\n"
+" the sshd service on any machine from any machine:\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add-user --users=john john_sshd\n"
+" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
+"\n"
+" Create a rule for a new service group. This lets the user john access\n"
+" the FTP service on any machine from any machine:\n"
+" ipa hbacsvcgroup-add ftpers\n"
+" ipa hbacsvc-add sftp\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
+" ipa hbacrule-add --type=allow --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacrule-add-user --users=john john_ftp\n"
+" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
+"\n"
+" Disable a named HBAC rule:\n"
+" ipa hbacrule-disable test1\n"
+"\n"
+" Remove a named HBAC rule:\n"
+" ipa hbacrule-del allow_server\n"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:91
+msgid ""
+"\n"
+" See if options[attribute] is lower-case 'all' in a safe way.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:103
+msgid ""
+"\n"
+" HBAC object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbac.py:111 ipalib/plugins/sudorule.py:53
+#: ipalib/plugins/hbacrule.py:126
+msgid "HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:131 ipalib/plugins/sudorule.py:73
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbac.py:116
+#: ipalib/plugins/hbacrule.py:136
msgid "Rule type (allow or deny)"
msgstr ""
-#: ipalib/plugins/hbac.py:117
+#: ipalib/plugins/hbacrule.py:137
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbac.py:123
+#: ipalib/plugins/hbacrule.py:143 ipalib/plugins/netgroup.py:124
+#: ipalib/plugins/sudorule.py:86
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbac.py:124
+#: ipalib/plugins/hbacrule.py:144 ipalib/plugins/netgroup.py:125
+#: ipalib/plugins/sudorule.py:87
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:129
+#: ipalib/plugins/hbacrule.py:149 ipalib/plugins/netgroup.py:130
+#: ipalib/plugins/sudorule.py:92
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbac.py:130
+#: ipalib/plugins/hbacrule.py:150 ipalib/plugins/netgroup.py:131
+#: ipalib/plugins/sudorule.py:93
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:135
+#: ipalib/plugins/hbacrule.py:155
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbac.py:136
+#: ipalib/plugins/hbacrule.py:156
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:141
+#: ipalib/plugins/hbacrule.py:161
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbac.py:142
+#: ipalib/plugins/hbacrule.py:162
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbac.py:147 ipalib/plugins/hbac.py:325
-#: ipalib/plugins/hbac.py:363
-msgid "Access time"
-msgstr ""
-
-#: ipalib/plugins/hbac.py:154
+#: ipalib/plugins/hbacrule.py:174 ipalib/plugins/sudorule.py:81
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbac.py:158 ipalib/plugins/sudorule.py:61
-#: ipalib/plugins/user.py:76
+#: ipalib/plugins/hbacrule.py:178 ipalib/plugins/sudorule.py:115
+#: ipalib/plugins/user.py:108
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbac.py:162 ipalib/plugins/host.py:113
-#: ipalib/plugins/sudorule.py:65
+#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:272
+#: ipalib/plugins/sudorule.py:119
+msgid "Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/host.py:226
+#: ipalib/plugins/sudorule.py:123
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:166 ipalib/plugins/hostgroup.py:69
-#: ipalib/plugins/sudorule.py:69
+#: ipalib/plugins/hbacrule.py:190 ipalib/plugins/hostgroup.py:73
+#: ipalib/plugins/sudorule.py:127
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbac.py:170
+#: ipalib/plugins/hbacrule.py:194
msgid "Source hosts"
msgstr ""
-#: ipalib/plugins/hbac.py:174 ipalib/plugins/hbacsvc.py:60
-#: ipalib/plugins/service.py:192
+#: ipalib/plugins/hbacrule.py:198
+msgid "Source host groups"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:202 ipalib/plugins/internal.py:196
+#: ipalib/plugins/service.py:220
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbac.py:178
+#: ipalib/plugins/hbacrule.py:206
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:65
-msgid "Service name"
+#: ipalib/plugins/hbacrule.py:215
+msgid ""
+"\n"
+" Create a new HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:219
+msgid "Added HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:230
+msgid ""
+"\n"
+" Delete an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:234
+msgid "Deleted HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:240
+msgid ""
+"\n"
+" Modify an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:244
+msgid "Modified HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:266
+msgid ""
+"\n"
+" Search for HBAC rules.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:270
+msgid "%(count)d HBAC rule matched"
+msgid_plural "%(count)d HBAC rules matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/hbacrule.py:278
+msgid ""
+"\n"
+" Display the properties of an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:286
+msgid ""
+"\n"
+" Enable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:290
+msgid "Enabled HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:315
+msgid ""
+"\n"
+" Disable an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:319
+msgid "Disabled HBAC rule \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:344
+msgid ""
+"\n"
+" Add an access time to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:351 ipalib/plugins/hbacrule.py:391
+msgid "Access time"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:385
+msgid ""
+"\n"
+" Remove access time to HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:425
+msgid ""
+"\n"
+" Add users and groups to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:442
+msgid ""
+"\n"
+" Remove users and groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:452
+msgid ""
+"\n"
+" Add target hosts and hostgroups to an HBAC rule\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:469
+msgid ""
+"\n"
+" Remove target hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:479
+msgid ""
+"\n"
+" Add source hosts and hostgroups from a HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:496
+msgid ""
+"\n"
+" Remove source hosts and hostgroups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:506
+msgid ""
+"\n"
+" Add services to an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:523
+msgid ""
+"\n"
+" Remove service and service groups from an HBAC rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:19
+msgid ""
+"\n"
+"HBAC Services\n"
+"\n"
+"The PAM services that HBAC can control access to. The name used here\n"
+"must match the service name that PAM is evaluating.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service:\n"
+" ipa hbacsvc-add tftp\n"
+"\n"
+" Modify an existing HBAC service:\n"
+" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n"
+"\n"
+" Search for HBAC services. This example will return two results, the FTP\n"
+" service and the newly-added tftp service:\n"
+" ipa hbacsvc-find ftp\n"
+"\n"
+" Delete an HBAC service:\n"
+" ipa hbacsvc-del tftp\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:51
+msgid ""
+"\n"
+" HBAC Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:61
+msgid "HBAC Services"
msgstr ""
#: ipalib/plugins/hbacsvc.py:66
-msgid "HBAC Service"
+msgid "Service name"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:73
-msgid "Description of service"
+#: ipalib/plugins/hbacsvc.py:67
+msgid "HBAC service"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:84 ipalib/plugins/service.py:216
-#, python-format
-msgid "Added service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:74
+msgid "HBAC service description"
msgstr ""
-#: ipalib/plugins/hbacsvc.py:93 ipalib/plugins/service.py:255
-#, python-format
-msgid "Deleted service \"%(value)s\""
+#: ipalib/plugins/hbacsvc.py:82
+msgid ""
+"\n"
+" Add a new HBAC service.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:66
-msgid "HBAC Service Groups"
+#: ipalib/plugins/hbacsvc.py:85
+msgid "Added HBAC service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:71
+#: ipalib/plugins/hbacsvc.py:91
+msgid ""
+"\n"
+" Delete an existing HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:94
+msgid "Deleted HBAC service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:100
+msgid ""
+"\n"
+" Modify an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:104
+msgid "Modified HBAC service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:110
+msgid ""
+"\n"
+" Search for HBAC services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvc.py:114
+msgid "%(count)d HBAC service matched"
+msgid_plural "%(count)d HBAC services matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/hbacsvc.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:19
+msgid ""
+"\n"
+"HBAC Service Groups\n"
+"\n"
+"HBAC service groups can contain any number of individual services,\n"
+"or \"members\". Every group must have a description.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new HBAC service group:\n"
+" ipa hbacsvcgroup-add --desc=\"login services\" login\n"
+"\n"
+" Add members to an HBAC service group:\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n"
+"\n"
+" Display information about a named group:\n"
+" ipa hbacsvcgroup-show login\n"
+"\n"
+" Add a new group to the \"login\" group:\n"
+" ipa hbacsvcgroup-add --desc=\"switch users\" login\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n"
+"\n"
+" Delete an HBAC service group:\n"
+" ipa hbacsvcgroup-del login\n"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:51
+msgid ""
+"\n"
+" HBAC service group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:64
+msgid "HBAC service Groups"
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:69
msgid "Service group name"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:78
+#: ipalib/plugins/hbacsvcgroup.py:76
msgid "HBAC service group description"
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:81
-msgid "Member services"
+#: ipalib/plugins/hbacsvcgroup.py:84
+msgid ""
+"\n"
+" Add a new HBAC service group.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:85
-msgid "Member service groups"
+#: ipalib/plugins/hbacsvcgroup.py:87
+msgid "Added HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:101
-#, python-format
-msgid "Added HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:93
+msgid ""
+"\n"
+" Delete an HBAC service group.\n"
+" "
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:110
-#, python-format
-msgid "Deleted HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:96
+msgid "Deleted HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacsvcgroup.py:119
-#, python-format
-msgid "Modified HBAC Service group \"%(value)s\""
+#: ipalib/plugins/hbacsvcgroup.py:102
+msgid ""
+"\n"
+" Modify an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:105
+msgid "Modified HBAC service group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:86
+#: ipalib/plugins/hbacsvcgroup.py:111
+msgid ""
+"\n"
+" Search for an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:114
+msgid "%(count)d HBAC service group matched"
+msgid_plural "%(count)d HBAC service groups matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/hbacsvcgroup.py:122
+msgid ""
+"\n"
+" Display information about an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:130
+msgid ""
+"\n"
+" Add members to an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hbacsvcgroup.py:138
+msgid ""
+"\n"
+" Remove members from an HBAC service group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:20
+msgid ""
+"\n"
+"Hosts/Machines\n"
+"\n"
+"A host represents a machine. It can be used in a number of contexts:\n"
+"- service entries are associated with a host\n"
+"- a host stores the host/ service principal\n"
+"- a host can be used in Host-based Access Control (HBAC) rules\n"
+"- every enrolled client generates a host entry\n"
+"\n"
+"ENROLLMENT:\n"
+"\n"
+"There are three enrollment scenarios when enrolling a new client:\n"
+"\n"
+"1. You are enrolling as a full administrator. The host entry may exist\n"
+" or not. A full administrator is a member of the hostadmin role\n"
+" or the admins group.\n"
+"2. You are enrolling as a limited administrator. The host must already\n"
+" exist. A limited administrator is a member a role with the\n"
+" Host Enrollment privilege.\n"
+"3. The host has been created with a one-time password.\n"
+"\n"
+"A host can only be enrolled once. If a client has enrolled and needs to\n"
+"be re-enrolled, the host entry must be removed and re-created. Note that\n"
+"re-creating the host entry will result in all services for the host being\n"
+"removed, and all SSL certificates associated with those services being\n"
+"revoked.\n"
+"\n"
+"A host can optionally store information such as where it is located,\n"
+"the OS that it runs, etc.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host:\n"
+" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example."
+"com\n"
+"\n"
+" Delete a host:\n"
+" ipa host-del test.example.com\n"
+"\n"
+" Add a new host with a one-time password:\n"
+" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n"
+"\n"
+" Add a new host with a random one-time password:\n"
+" ipa host-add --os='Fedora 12' --random test.example.com\n"
+"\n"
+" Modify information about a host:\n"
+" ipa host-mod --os='Fedora 12' test.example.com\n"
+"\n"
+" Disable the host Kerberos key, SSL certificate and all of its services:\n"
+" ipa host-disable test.example.com\n"
+"\n"
+" Add a host that can manage this host's keytab and certificate:\n"
+" ipa host-add-managedby --hosts=test2 test\n"
+msgstr ""
+
+#: ipalib/plugins/host.py:97
+msgid ""
+"\n"
+" Require at least one dot in the hostname (to support localhost."
+"localdomain)\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:101
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:118
+#: ipalib/plugins/host.py:129
+msgid "DNS reverse zone for IP address %(addr)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:153 ipalib/plugins/service.py:87
+msgid "Keytab"
+msgstr ""
+
+#: ipalib/plugins/host.py:185
+msgid ""
+"\n"
+" Verify that we have either an IPv4 or IPv6 address.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:189
+msgid "invalid IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:194
+msgid ""
+"\n"
+" Host object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:231
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:125
+#: ipalib/plugins/host.py:238
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:129
+#: ipalib/plugins/host.py:242
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:130
+#: ipalib/plugins/host.py:243
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:135
+#: ipalib/plugins/host.py:248
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:139
+#: ipalib/plugins/host.py:252
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:140
+#: ipalib/plugins/host.py:253
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:144
+#: ipalib/plugins/host.py:257
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:145
+#: ipalib/plugins/host.py:258
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:149
+#: ipalib/plugins/host.py:262
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:150
+#: ipalib/plugins/host.py:263
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:155 ipalib/plugins/service.py:205
-msgid "Base-64 encoded server certificate"
+#: ipalib/plugins/host.py:266
+msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:158 ipalib/plugins/host.py:274
-msgid "Principal name"
+#: ipalib/plugins/host.py:271
+msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:162 ipalib/plugins/hostgroup.py:93
-msgid "Member of host-groups"
+#: ipalib/plugins/host.py:277 ipalib/plugins/service.py:233
+msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:166
-msgid "Member of net-groups"
+#: ipalib/plugins/host.py:280 ipalib/plugins/host.py:548
+msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:170
-msgid "Member of role-groups"
+#: ipalib/plugins/host.py:306
+msgid ""
+"\n"
+" Add a new host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:199
-#, python-format
+#: ipalib/plugins/host.py:311
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:202
+#: ipalib/plugins/host.py:316
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:235
-#, python-format
+#: ipalib/plugins/host.py:319
+msgid "skip reverse DNS detection"
+msgstr ""
+
+#: ipalib/plugins/host.py:322
+msgid "Add the host to DNS with this IP address"
+msgstr ""
+
+#: ipalib/plugins/host.py:338 ipalib/plugins/host.py:477
+msgid "DNS zone %(zone)s not found"
+msgstr ""
+
+#: ipalib/plugins/host.py:413
+msgid "The host was added but the DNS update failed with: %(exc)s"
+msgstr ""
+
+#: ipalib/plugins/host.py:422
+msgid ""
+"\n"
+" Delete a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:426
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:269
-#, python-format
+#: ipalib/plugins/host.py:431
+msgid "Remove entries from DNS"
+msgstr ""
+
+#: ipalib/plugins/host.py:537
+msgid ""
+"\n"
+" Modify information about a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:542
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:275
+#: ipalib/plugins/host.py:549
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:319
-#, python-format
+#: ipalib/plugins/host.py:618
+msgid ""
+"\n"
+" Search for hosts.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:623
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:337 ipalib/plugins/service.py:84
-msgid "Keytab"
+#: ipalib/plugins/host.py:643
+msgid ""
+"\n"
+" Display information about a host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:359 ipalib/plugins/service.py:399
-#, python-format
-msgid "Removed kerberos key from \"%(value)s\""
+#: ipalib/plugins/host.py:649 ipalib/plugins/service.py:400
+msgid "file to store certificate in"
+msgstr ""
+
+#: ipalib/plugins/host.py:673 ipalib/plugins/service.py:422
+msgid "Certificate stored in file '%(file)s'"
+msgstr ""
+
+#: ipalib/plugins/host.py:684
+msgid ""
+"\n"
+" Disable the Kerberos key, SSL certificate and all services of a host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:688
+msgid "Disabled host \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/host.py:770
+msgid ""
+"\n"
+" Add hosts that can manage this host.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/host.py:781
+msgid ""
+"\n"
+" Remove hosts that can manage this host.\n"
+" "
msgstr ""
-#: ipalib/plugins/host.py:368
-msgid "Host principal has no kerberos key"
+#: ipalib/plugins/hostgroup.py:20
+msgid ""
+"\n"
+"Groups of hosts.\n"
+"\n"
+"Manage groups of hosts. This is useful for applying access control to a\n"
+"number of hosts by using Host-based Access Control.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new host group:\n"
+" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n"
+"\n"
+" Add another new host group:\n"
+" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n"
+"\n"
+" Add members to the hostgroup:\n"
+" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n"
+"\n"
+" Add a hostgroup as a member of another hostgroup:\n"
+" ipa hostgroup-add-member --hostgroups=baltimore maryland\n"
+"\n"
+" Remove a host from the hostgroup:\n"
+" ipa hostgroup-remove-member --hosts=box2 baltimore\n"
+"\n"
+" Display a host group:\n"
+" ipa hostgroup-show baltimore\n"
+"\n"
+" Delete a hostgroup:\n"
+" ipa hostgroup-del baltimore\n"
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:55
+msgid ""
+"\n"
+" Hostgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/hostgroup.py:78
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:75
+#: ipalib/plugins/hostgroup.py:79
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:82
+#: ipalib/plugins/hostgroup.py:86
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:85
-msgid "Member hosts"
+#: ipalib/plugins/hostgroup.py:94
+msgid ""
+"\n"
+" Add a new hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:89
-msgid "Member host-groups"
+#: ipalib/plugins/hostgroup.py:98
+msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:106
-#, python-format
-msgid "Added hostgroup \"%(value)s\""
+#: ipalib/plugins/hostgroup.py:104
+msgid ""
+"\n"
+" Delete a hostgroup.\n"
+" "
msgstr ""
-#: ipalib/plugins/hostgroup.py:116
-#, python-format
+#: ipalib/plugins/hostgroup.py:108
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:126
-#, python-format
+#: ipalib/plugins/hostgroup.py:114
+msgid ""
+"\n"
+" Modify a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:118
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:137
-#, python-format
+#: ipalib/plugins/hostgroup.py:124
+msgid ""
+"\n"
+" Search for hostgroups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:128
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/internal.py:39
+#: ipalib/plugins/hostgroup.py:136
+msgid ""
+"\n"
+" Display information about a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:144
+msgid ""
+"\n"
+" Add members to a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/hostgroup.py:152
+msgid ""
+"\n"
+" Remove members from a hostgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:22
+msgid ""
+"\n"
+"Plugins not accessible directly through the CLI, commands used internally\n"
+msgstr ""
+
+#: ipalib/plugins/internal.py:36
+msgid ""
+"\n"
+" Export plugin meta-data for the webUI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/internal.py:44
+msgid "Name of object to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:47
+msgid "Name of method to export"
+msgstr ""
+
+#: ipalib/plugins/internal.py:52
+msgid "Dict of JSON encoded IPA Objects"
+msgstr ""
+
+#: ipalib/plugins/internal.py:53
+msgid "Dict of JSON encoded IPA Methods"
+msgstr ""
+
+#: ipalib/plugins/internal.py:96
msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:41
+#: ipalib/plugins/internal.py:99
+msgid "Attribute"
+msgstr ""
+
+#: ipalib/plugins/internal.py:102
+msgid "Add Automount Location"
+msgstr ""
+
+#: ipalib/plugins/internal.py:103
+msgid "Automount Location Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:106
+msgid "Add Automount Map"
+msgstr ""
+
+#: ipalib/plugins/internal.py:109
+msgid "Add Automount Key"
+msgstr ""
+
+#: ipalib/plugins/internal.py:112
+msgid "Unspecified"
+msgstr ""
+
+#: ipalib/plugins/internal.py:113
+msgid "Key Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:114
+msgid "CA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:115
+msgid "Affiliation Changed"
+msgstr ""
+
+#: ipalib/plugins/internal.py:116
+msgid "Superseded"
+msgstr ""
+
+#: ipalib/plugins/internal.py:117
+msgid "Cessation of Operation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:118
+msgid "Certificate Hold"
+msgstr ""
+
+#: ipalib/plugins/internal.py:119
+msgid "Remove from CRL"
+msgstr ""
+
+#: ipalib/plugins/internal.py:120
+msgid "Privilege Withdrawn"
+msgstr ""
+
+#: ipalib/plugins/internal.py:121
+msgid "AA Compromise"
+msgstr ""
+
+#: ipalib/plugins/internal.py:122
+msgid ""
+"To confirm your intention to revoke this certificate, select a reason from "
+"the pull-down list, and click the \"Revoke\" button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:124
+msgid "Note"
+msgstr ""
+
+#: ipalib/plugins/internal.py:125
+msgid "Reason for Revocation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:126
+msgid ""
+"To confirm your intention to restore this certificate, click the \"Restore\" "
+"button."
+msgstr ""
+
+#: ipalib/plugins/internal.py:128
+msgid "Issued To"
+msgstr ""
+
+#: ipalib/plugins/internal.py:129
+msgid "Common Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:130
+msgid "Organization"
+msgstr ""
+
+#: ipalib/plugins/internal.py:131
+msgid "Organizational Unit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:133
+msgid "Issued By"
+msgstr ""
+
+#: ipalib/plugins/internal.py:134
+msgid "Validity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:135
+msgid "Issued On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:136
+msgid "Expires On"
+msgstr ""
+
+#: ipalib/plugins/internal.py:137
+msgid "Fingerprints"
+msgstr ""
+
+#: ipalib/plugins/internal.py:138
+msgid "SHA1 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:139
+msgid "MD5 Fingerprint"
+msgstr ""
+
+#: ipalib/plugins/internal.py:140
+msgid "Enter the Base64-encoded CSR below"
+msgstr ""
+
+#: ipalib/plugins/internal.py:141
+msgid "Valid Certificate Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:142
+msgid "New Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:143
+msgid "Certificate Revoked"
+msgstr ""
+
+#: ipalib/plugins/internal.py:144
+msgid "No Valid Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:145
+msgid "Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:146
+msgid "Issue New Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:147
+msgid "Revoke Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:148
+msgid "Restore Certificate for ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:152
+msgid "Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:155
+msgid "Add Delegation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:158
+msgid "Add DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:159
+msgid "DNS Zone Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:162
+msgid "Add DNS Resource Record"
+msgstr ""
+
+#: ipalib/plugins/internal.py:163
+msgid "Resource"
+msgstr ""
+
+#: ipalib/plugins/internal.py:165
+msgid "Data"
+msgstr ""
+
+#: ipalib/plugins/internal.py:166
+msgid "Records for DNS Zone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:169
+msgid "Add Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:170
+msgid "Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:171 ipalib/plugins/internal.py:206
+msgid "Is this a POSIX group?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:174
+msgid "Add HBAC Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:175 ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:306
+msgid "Active"
+msgstr ""
+
+#: ipalib/plugins/internal.py:176 ipalib/plugins/internal.py:282
+msgid "Allow"
+msgstr ""
+
+#: ipalib/plugins/internal.py:177 ipalib/plugins/internal.py:283
+msgid "Deny"
+msgstr ""
+
+#: ipalib/plugins/internal.py:178 ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:308
+msgid "Inactive"
+msgstr ""
+
+#: ipalib/plugins/internal.py:179 ipalib/plugins/internal.py:296
+msgid "Rule status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:180 ipalib/plugins/internal.py:284
+msgid "Who"
+msgstr ""
+
+#: ipalib/plugins/internal.py:181 ipalib/plugins/internal.py:285
+msgid "Anyone"
+msgstr ""
+
+#: ipalib/plugins/internal.py:182 ipalib/plugins/internal.py:286
+msgid "Specified Users and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:183
+msgid "Accessing"
+msgstr ""
+
+#: ipalib/plugins/internal.py:184 ipalib/plugins/internal.py:288
+msgid "Any Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:185 ipalib/plugins/internal.py:289
+msgid "Specified Hosts and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:186
+msgid "Via Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:187
+msgid "Any Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:188
+msgid "Specified Services and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:189
+msgid "From"
+msgstr ""
+
+#: ipalib/plugins/internal.py:192
+msgid "Add HBAC Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:195
+msgid "Add HBAC Service Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:199
+msgid "Add Host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:200
+msgid "Host Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:201 ipalib/plugins/internal.py:259
+msgid "Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:202
+msgid "Host Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:203
+msgid "Enrolled?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:204
+msgid "Enrollment"
+msgstr ""
+
+#: ipalib/plugins/internal.py:205
+msgid "Fully Qualified Host Name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:207 ipalib/plugins/internal.py:262
+msgid "Status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:208
+msgid "Kerberos Key Present, Host Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:209 ipalib/plugins/internal.py:264
+msgid "Delete Key, Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:210 ipalib/plugins/internal.py:265
+msgid "Kerberos Key Not Present"
+msgstr ""
+
+#: ipalib/plugins/internal.py:211
+msgid "Enroll via One-Time-Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:212
+msgid "Set OTP"
+msgstr ""
+
+#: ipalib/plugins/internal.py:213
+msgid "One-Time-Password has been set."
+msgstr ""
+
+#: ipalib/plugins/internal.py:214 ipalib/plugins/internal.py:266
+msgid "Unprovisioning ${entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:215
+msgid "Are you sure you want to unprovision this host?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:216 ipalib/plugins/internal.py:268
+msgid "Unprovision"
+msgstr ""
+
+#: ipalib/plugins/internal.py:219
+msgid "Add Host Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:220
+msgid "Host Group Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:223
+msgid "Kerberos ticket policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:226
+msgid "Add Netgroup"
+msgstr ""
+
+#: ipalib/plugins/internal.py:227
+msgid "Netgroup Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:230
+msgid "Add Permission"
+msgstr ""
+
+#: ipalib/plugins/internal.py:231 ipalib/plugins/internal.py:376
+msgid "Identity"
+msgstr ""
+
+#: ipalib/plugins/internal.py:233
+msgid "Target"
+msgstr ""
+
+#: ipalib/plugins/internal.py:235
+msgid "By Subtree"
+msgstr ""
+
+#: ipalib/plugins/internal.py:236
+msgid "Target Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:237
+msgid "Object By Type"
+msgstr ""
+
+#: ipalib/plugins/internal.py:238
+msgid "Permission with invalid target specification"
+msgstr ""
+
+#: ipalib/plugins/internal.py:241
+msgid "Add Privilege"
+msgstr ""
+
+#: ipalib/plugins/internal.py:242
+msgid "Privilege Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:245
+msgid "Add Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:246 ipalib/plugins/pwpolicy.py:219
+msgid "Password Policy"
+msgstr ""
+
+#: ipalib/plugins/internal.py:249
+msgid "Add Role"
+msgstr ""
+
+#: ipalib/plugins/internal.py:250
+msgid "Role Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:253
+msgid "Add Self Service Definition"
+msgstr ""
+
+#: ipalib/plugins/internal.py:256
+msgid "Add Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:257
+msgid "Service Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:258
+msgid "Service Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:260
+msgid "Provisioning"
+msgstr ""
+
+#: ipalib/plugins/internal.py:261
+msgid "Service"
+msgstr ""
+
+#: ipalib/plugins/internal.py:263
+msgid "Kerberos Key Present, Service Provisioned"
+msgstr ""
+
+#: ipalib/plugins/internal.py:267
+msgid "Are you sure you want to unprovision this service?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:271
+msgid "Add Sudo Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:275
+msgid "Add Sudo Command Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:276 ipalib/plugins/sudocmdgroup.py:80
+msgid "Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:279
+msgid "Add Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:287
+msgid "Access this host"
+msgstr ""
+
+#: ipalib/plugins/internal.py:290
+msgid "Run Commands"
+msgstr ""
+
+#: ipalib/plugins/internal.py:291
+msgid "Any Command"
+msgstr ""
+
+#: ipalib/plugins/internal.py:292
+msgid "Specified Commands and Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:293
+msgid "As Whom"
+msgstr ""
+
+#: ipalib/plugins/internal.py:294
+msgid "Any Group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:295
+msgid "Specified Groups"
+msgstr ""
+
+#: ipalib/plugins/internal.py:297
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:300
+msgid "Add User"
+msgstr ""
+
+#: ipalib/plugins/internal.py:301
+msgid "Account Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:302
+msgid "Contact Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:303
+msgid "Mailing Address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:304
+msgid "Employee Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:305
+msgid "Misc. Information"
+msgstr ""
+
+#: ipalib/plugins/internal.py:307
+msgid "Click to Deactivate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:309
+msgid "Click to Activate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:310
+msgid "Error changing account status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:311
+msgid "Reset Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:312
+msgid "New Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:313
+msgid "Repeat Password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:314
+msgid "Password change complete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:315
+msgid "Passwords must match"
+msgstr ""
+
+#: ipalib/plugins/internal.py:319
msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:42
+#: ipalib/plugins/internal.py:320
+msgid "Add and Add Another"
+msgstr ""
+
+#: ipalib/plugins/internal.py:321
+msgid "Add and Edit"
+msgstr ""
+
+#: ipalib/plugins/internal.py:322
+msgid "Add and Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:323
+msgid "Add Many"
+msgstr ""
+
+#: ipalib/plugins/internal.py:324
+msgid "Back to List"
+msgstr ""
+
+#: ipalib/plugins/internal.py:325
+msgid "Cancel"
+msgstr ""
+
+#: ipalib/plugins/internal.py:326
+msgid "Close"
+msgstr ""
+
+#: ipalib/plugins/internal.py:327
+msgid "Enroll"
+msgstr ""
+
+#: ipalib/plugins/internal.py:328
msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:43
+#: ipalib/plugins/internal.py:329
+msgid "Get"
+msgstr ""
+
+#: ipalib/plugins/internal.py:330
+msgid "Issue"
+msgstr ""
+
+#: ipalib/plugins/internal.py:331
+msgid "OK"
+msgstr ""
+
+#: ipalib/plugins/internal.py:332
msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:44
+#: ipalib/plugins/internal.py:333
+msgid "Delete"
+msgstr ""
+
+#: ipalib/plugins/internal.py:334
+msgid "Restore"
+msgstr ""
+
+#: ipalib/plugins/internal.py:335
+msgid "Retry"
+msgstr ""
+
+#: ipalib/plugins/internal.py:336
+msgid "Revoke"
+msgstr ""
+
+#: ipalib/plugins/internal.py:337
msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:45
-msgid "Enroll"
+#: ipalib/plugins/internal.py:338
+msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:46
-msgid "Delete"
+#: ipalib/plugins/internal.py:341
+msgid "Available"
+msgstr ""
+
+#: ipalib/plugins/internal.py:342
+msgid "This page has unsaved changes. Please save or revert."
+msgstr ""
+
+#: ipalib/plugins/internal.py:343
+msgid "Dirty"
msgstr ""
-#: ipalib/plugins/internal.py:49
+#: ipalib/plugins/internal.py:344
+msgid "Hide already enrolled."
+msgstr ""
+
+#: ipalib/plugins/internal.py:345
+msgid "Select ${entity} to be removed."
+msgstr ""
+
+#: ipalib/plugins/internal.py:346
+msgid "Remove ${entity}."
+msgstr ""
+
+#: ipalib/plugins/internal.py:347
+msgid "Prospective"
+msgstr ""
+
+#: ipalib/plugins/internal.py:350
+msgid "Managed by"
+msgstr ""
+
+#: ipalib/plugins/internal.py:351
+msgid "Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:352
+msgid "Indirect Member"
+msgstr ""
+
+#: ipalib/plugins/internal.py:353
+msgid "Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:354
+msgid "Indirect Member Of"
+msgstr ""
+
+#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:359
+msgid "Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:358
+msgid "Search"
+msgstr ""
+
+#: ipalib/plugins/internal.py:362
msgid "Quick Links"
msgstr ""
-#: ipalib/plugins/internal.py:50
+#: ipalib/plugins/internal.py:363
msgid "Select All"
msgstr ""
-#: ipalib/plugins/internal.py:51
+#: ipalib/plugins/internal.py:364
msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/internal.py:52
-msgid "Do you really want to delete the selected entries?"
+#: ipalib/plugins/internal.py:365
+msgid "Are you sure you want to delete selected entries?"
msgstr ""
-#: ipalib/plugins/internal.py:55
-msgid "Identity Details"
+#: ipalib/plugins/internal.py:366
+msgid ""
+"Query returned more results than the configured size limit. Displaying the "
+"first ${counter} results."
msgstr ""
-#: ipalib/plugins/internal.py:56
-msgid "Account Details"
+#: ipalib/plugins/internal.py:370
+msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:57
-msgid "Contact Details"
+#: ipalib/plugins/internal.py:371
+msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:58
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:372
+msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:59
-msgid " Employee Information"
+#: ipalib/plugins/internal.py:373
+msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:60
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:377
+msgid "Policy"
msgstr ""
-#: ipalib/plugins/internal.py:61
-msgid "Back to Top"
+#: ipalib/plugins/internal.py:378
+msgid "Audit"
msgstr ""
-#: ipalib/plugins/internal.py:66
-msgid "Name of object to export"
+#: ipalib/plugins/internal.py:379
+msgid "IPA Server"
msgstr ""
-#: ipalib/plugins/internal.py:71
-msgid "Dict of JSON encoded IPA Objects"
+#: ipalib/plugins/internal.py:380
+msgid "Sudo"
+msgstr ""
+
+#: ipalib/plugins/internal.py:381
+msgid "Host Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:382
+msgid "Role Based Access Control"
+msgstr ""
+
+#: ipalib/plugins/internal.py:383
+msgid "Automount"
msgstr ""
-#: ipalib/plugins/internal.py:72
+#: ipalib/plugins/internal.py:386
+msgid "Add ${other_entity} into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:387
+msgid "${other_entity} enrolled in ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:388
+msgid "${entity} ${primary_key} is enrolled in the following ${other_entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:389
+msgid "Remove ${other_entity} from ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:392
+msgid "Text does not match field pattern"
+msgstr ""
+
+#: ipalib/plugins/internal.py:395
+msgid ""
+"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."
+msgstr ""
+
+#: ipalib/plugins/internal.py:399
msgid "Dict of I18N messages"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:59
+#: ipalib/plugins/kerberos.py:20
+msgid ""
+"\n"
+"Backend plugin for Kerberos.\n"
+"\n"
+"This wraps the python-kerberos and python-krbV bindings.\n"
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:35
+msgid ""
+"\n"
+" Kerberos backend plugin.\n"
+"\n"
+" This wraps the `krbV` bindings (and will eventually wrap the `kerberos`\n"
+" bindings also). Importantly, this plugin does correct Unicode\n"
+" encoding/decoding of values going-to/coming-from the bindings.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:44
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:50
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the default credential cache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:56
+msgid ""
+"\n"
+" Return the ``krbV.CCache`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:62
+msgid ""
+"\n"
+" Return the ``krb5.Principal`` for the ``ccname`` credential ccache.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:68
+msgid ""
+"\n"
+" Return the default ccache file name.\n"
+"\n"
+" This will return something like '/tmp/krb5cc_500'.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:79
+msgid ""
+"\n"
+" Return the principal name in default credential cache.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'. If no "
+"credential\n"
+" cache exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:91
+msgid ""
+"\n"
+" Return the realm from the default credential cache.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'. If no credential "
+"cache\n"
+" exists for the invoking user, None is returned.\n"
+"\n"
+" This cannot return anything meaningful if used in the server as a\n"
+" request is processed.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:103
+msgid ""
+"\n"
+" Return the principal from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'admin@EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/kerberos.py:111
+msgid ""
+"\n"
+" Return the realm from credential cache file at ``ccname``.\n"
+"\n"
+" This will return something like 'EXAMPLE.COM'.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:19
+msgid ""
+"\n"
+"Kerberos ticket policy\n"
+"\n"
+"There is a single Kerberos ticket policy. This policy defines the\n"
+"maximum ticket lifetime and the maximum renewal age, the period during\n"
+"which the ticket is renewable.\n"
+"\n"
+"You can also create a per-user ticket policy by specifying the user login.\n"
+"\n"
+"For changes to the global policy to take effect, restarting the KDC service\n"
+"is required, which can be achieved using:\n"
+"\n"
+"service krb5kdc restart\n"
+"\n"
+"Changes to per-user policies take effect immediately for newly requested\n"
+"tickets (e.g. when the user next runs kinit).\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Display the current Kerberos ticket policy:\n"
+" ipa krbtpolicy-show\n"
+"\n"
+" Reset the policy to the default:\n"
+" ipa krbtpolicy-reset\n"
+"\n"
+" Modify the policy to 8 hours max life, 1-day max renewal:\n"
+" ipa krbtpolicy-mod --maxlife=28800 --maxrenew=86400\n"
+"\n"
+" Display effective Kerberos ticket policy for user 'admin':\n"
+" ipa krbtpolicy-show admin\n"
+"\n"
+" Reset per-user policy for user 'admin':\n"
+" ipa krbtpolicy-reset admin\n"
+"\n"
+" Modify per-user policy for user 'admin':\n"
+" ipa krbtpolicy-mod admin --maxlife=3600\n"
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:71
+msgid ""
+"\n"
+" Kerberos Ticket Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:79
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:64 ipalib/plugins/passwd.py:52
+#: ipalib/plugins/krbtpolicy.py:84 ipalib/plugins/passwd.py:53
msgid "User name"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:65
+#: ipalib/plugins/krbtpolicy.py:85
msgid "Manage ticket policy for specific user"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:70
+#: ipalib/plugins/krbtpolicy.py:90
msgid "Max life"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:71
+#: ipalib/plugins/krbtpolicy.py:91
msgid "Maximum ticket life (seconds)"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:75
+#: ipalib/plugins/krbtpolicy.py:96
msgid "Max renew"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:76
+#: ipalib/plugins/krbtpolicy.py:97
msgid "Maximum renewable age (seconds)"
msgstr ""
-#: ipalib/plugins/migration.py:44
-#, python-format
+#: ipalib/plugins/krbtpolicy.py:111
+msgid ""
+"\n"
+" Modify Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:125
+msgid ""
+"\n"
+" Display the current Kerberos ticket policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/krbtpolicy.py:149
+msgid ""
+"\n"
+" Reset Kerberos ticket policy to the default values.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:19
+msgid ""
+"\n"
+"Migration to IPA\n"
+"\n"
+"Migrate users and groups from an LDAP server to IPA.\n"
+"\n"
+"This performs an LDAP query against the remote server searching for\n"
+"users and groups in a container. In order to migrate passwords you need\n"
+"to bind as a user that can read the userPassword attribute on the remote\n"
+"server. This is generally restricted to high-level admins such as\n"
+"cn=Directory Manager in 389-ds (this is the default bind user).\n"
+"\n"
+"The default user container is ou=People.\n"
+"\n"
+"The default group container is ou=Groups.\n"
+"\n"
+"Users and groups that already exist on the IPA server are skipped.\n"
+"\n"
+"Two LDAP schemas define how group members are stored: RFC2307 and\n"
+"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n"
+"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n"
+"\n"
+"Migrated users do not have Kerberos credentials, they have only their\n"
+"LDAP password. To complete the migration process, users need to go\n"
+"to http://ipa.example.com/ipa/migration and authenticate using their\n"
+"LDAP password in order to generate their Kerberos credentials.\n"
+"\n"
+"Migration is disabled by default. Use the command ipa config-mod to\n"
+"enable it:\n"
+"\n"
+" ipa config-mod --enable-migration=TRUE\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" The simplest migration, accepting all defaults:\n"
+" ipa migrate-ds ldap://ds.example.com:389\n"
+"\n"
+" Specify the user and group container. This can be used to migrate user and\n"
+" group data from an IPA v1 server:\n"
+" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-"
+"container='cn=groups,cn=accounts' ldap://ds.example.com:389\n"
+msgstr ""
+
+#: ipalib/plugins/migration.py:78
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:45
+#: ipalib/plugins/migration.py:79
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:169
+#: ipalib/plugins/migration.py:175
+msgid ""
+"\n"
+" Convert usernames in member attributes to work in IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:220
+msgid "Invalid LDAP URI."
+msgstr ""
+
+#: ipalib/plugins/migration.py:225
+msgid ""
+"\n"
+" Migrate users and groups from DS to IPA.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:266
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:170
+#: ipalib/plugins/migration.py:267
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:174
+#: ipalib/plugins/migration.py:272
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:181
+#: ipalib/plugins/migration.py:279
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:187
+#: ipalib/plugins/migration.py:285
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:188
+#: ipalib/plugins/migration.py:286
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:194
+#: ipalib/plugins/migration.py:292
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:195
+#: ipalib/plugins/migration.py:293
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:200
-msgid "Continous operation mode. Errors are reported but the process continues"
+#: ipalib/plugins/migration.py:299
+msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:208
+#: ipalib/plugins/migration.py:300
+msgid ""
+"Comma-separated list of objectclasses used to search for user entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:306
+msgid "Group object class"
+msgstr ""
+
+#: ipalib/plugins/migration.py:307
+msgid ""
+"Comma-separated list of objectclasses used to search for group entries in DS"
+msgstr ""
+
+#: ipalib/plugins/migration.py:313
+msgid "LDAP schema"
+msgstr ""
+
+#: ipalib/plugins/migration.py:314
+msgid ""
+"The schema used on the LDAP server. Supported values are RFC2307 and "
+"RFC2307bis. The default is RFC2307bis"
+msgstr ""
+
+#: ipalib/plugins/migration.py:320
+msgid ""
+"Continuous operation mode. Errors are reported but the process continues"
+msgstr ""
+
+#: ipalib/plugins/migration.py:328
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:212
+#: ipalib/plugins/migration.py:332
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:216
+#: ipalib/plugins/migration.py:336
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:220
-#, python-format
+#: ipalib/plugins/migration.py:340
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:222
+#: ipalib/plugins/migration.py:342
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
-"migration process might be uncomplete\n"
+"migration process might be incomplete\n"
msgstr ""
-#: ipalib/plugins/migration.py:227
+#: ipalib/plugins/migration.py:347
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:230
+#: ipalib/plugins/migration.py:350
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -1528,16 +4766,55 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:297
-#, python-format
+#: ipalib/plugins/migration.py:358
+msgid ""
+"\n"
+" Call get_options of the baseclass and add \"exclude\" options\n"
+" for each type of object being migrated.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:375
+msgid ""
+"\n"
+" Convert all \"exclude\" option values to lower-case.\n"
+"\n"
+" Also, empty List parameters are converted to None, but the "
+"migration\n"
+" plugin doesn't like that - convert back to empty lists.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:399
+msgid ""
+"\n"
+" Migrate objects from DS to LDAP.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/migration.py:425
msgid "Container for %(container)s not found"
msgstr ""
+#: ipalib/plugins/misc.py:20
+msgid ""
+"\n"
+"Misc plug-ins\n"
+msgstr ""
+
+#: ipalib/plugins/misc.py:36
+msgid "Show environment variables"
+msgstr ""
+
#: ipalib/plugins/misc.py:38
-#, python-format
msgid "%(count)d variables"
msgstr ""
+#: ipalib/plugins/misc.py:47 ipalib/plugins/misc.py:115
+msgid ""
+"retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
#: ipalib/plugins/misc.py:61
msgid "Total number of variables env (>= count)"
msgstr ""
@@ -1546,435 +4823,2391 @@ msgstr ""
msgid "Number of variables returned (<= total)"
msgstr ""
-#: ipalib/plugins/misc.py:109
-#, python-format
+#: ipalib/plugins/misc.py:106
+msgid "Show all loaded plugins"
+msgstr ""
+
+#: ipalib/plugins/misc.py:108
msgid "%(count)d plugin loaded"
msgid_plural "%(count)d plugins loaded"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/misc.py:116
+#: ipalib/plugins/misc.py:126
msgid "Number of plugins loaded"
msgstr ""
-#: ipalib/plugins/netgroup.py:57
+#: ipalib/plugins/netgroup.py:20
+msgid ""
+"\n"
+"Netgroups\n"
+"\n"
+"A netgroup is a group used for permission checking. It can contain both\n"
+"user and host values.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new netgroup:\n"
+" ipa netgroup-add --desc=\"NFS admins\" admins\n"
+"\n"
+" Add members to the netgroup:\n"
+" ipa netgroup-add-member --users=tuser1,tuser2 admins\n"
+"\n"
+" Remove a member from the netgroup:\n"
+" ipa netgroup-remove-member --users=tuser2 admins\n"
+"\n"
+" Display information about a netgroup:\n"
+" ipa netgroup-show admins\n"
+"\n"
+" Delete a netgroup:\n"
+" ipa netgroup-del admins\n"
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:59
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:63
-msgid "External host"
+#: ipalib/plugins/netgroup.py:67
+msgid ""
+"\n"
+" Netgroup object.\n"
+" "
msgstr ""
-#: ipalib/plugins/netgroup.py:85
-msgid "Net Groups"
+#: ipalib/plugins/netgroup.py:98
+msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:90
+#: ipalib/plugins/netgroup.py:103
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:97
+#: ipalib/plugins/netgroup.py:110
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:101
+#: ipalib/plugins/netgroup.py:114
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:106
+#: ipalib/plugins/netgroup.py:119
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:84
-#, python-format
+#: ipalib/plugins/netgroup.py:140
+msgid ""
+"\n"
+" Add a new netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:144
+msgid "Added netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:153
+msgid ""
+"\n"
+" Delete a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:156
+msgid "Deleted netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:162
+msgid ""
+"\n"
+" Modify a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:166
+msgid "Modified netgroup \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:180
+msgid ""
+"\n"
+" Search for a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:185
+msgid "%(count)d netgroup matched"
+msgid_plural "%(count)d netgroups matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/netgroup.py:213
+msgid ""
+"\n"
+" Display information about a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:222
+msgid ""
+"\n"
+" Add members to a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/netgroup.py:258
+msgid ""
+"\n"
+" Remove members from a netgroup.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:19
+msgid ""
+"\n"
+"Set a user's password\n"
+"\n"
+"If someone other than a user changes that user's password (e.g., Helpdesk\n"
+"resets it) then the password will need to be changed the first time it\n"
+"is used. This is so the end-user is the only one who knows the password.\n"
+"\n"
+"The IPA password policy controls how often a password may be changed,\n"
+"what strength requirements exist, and the length of the password history.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" To reset your own password:\n"
+" ipa passwd\n"
+"\n"
+" To change another user's password:\n"
+" ipa passwd tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/passwd.py:46
+msgid ""
+"\n"
+" Set a user's password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/passwd.py:64
+msgid "Changed password for \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/passwd.py:67
+msgid ""
+"\n"
+" Execute the passwd operation.\n"
+"\n"
+" The dn should not be passed as a keyword argument as it is "
+"constructed\n"
+" by this method.\n"
+"\n"
+" Returns the entry\n"
+"\n"
+" :param principal: The login name or principal of the user\n"
+" :param password: the new password\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:19
+msgid ""
+"\n"
+"Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of rights. A permission is\n"
+"a human-readable form of a 389-ds Access Control Rule, or instruction "
+"(ACI).\n"
+"A permission grants the right to perform a specific task such as adding a\n"
+"user, modifying a group, etc.\n"
+"\n"
+"A permission may not contain other permissions.\n"
+"\n"
+"* A permission grants access to read, write, add or delete.\n"
+"* A privilege combines similar permissions (for example all the permissions\n"
+" needed to add a user).\n"
+"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n"
+"\n"
+"A permission is made up of a number of different parts:\n"
+"\n"
+"1. The name of the permission.\n"
+"2. The target of the permission.\n"
+"3. The rights granted by the permission.\n"
+"\n"
+"Rights define what operations are allowed, and may be one or more\n"
+"of the following:\n"
+"1. write - write one or more attributes\n"
+"2. read - read one or more attributes\n"
+"3. add - add a new entry to the tree\n"
+"4. delete - delete an existing entry\n"
+"5. all - all permissions are granted\n"
+"\n"
+"Read permission is granted for most attributes by default so the read\n"
+"permission is not expected to be used very often.\n"
+"\n"
+"Note the distinction between attributes and entries. The permissions are\n"
+"independent, so being able to add a user does not mean that the user will\n"
+"be editable.\n"
+"\n"
+"There are a number of allowed targets:\n"
+"1. type: a type of object (user, group, etc).\n"
+"2. memberof: a member of a group or hostgroup\n"
+"3. filter: an LDAP filter\n"
+"4. subtree: an LDAP filter specifying part of the LDAP DIT. This is a\n"
+" super-set of the \"type\" target.\n"
+"5. targetgroup: grant access to modify a specific group (such as granting\n"
+" the rights to manage group membership)\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a permission that grants the creation of users:\n"
+" ipa permission-add --type=user --permissions=add \"Add Users\"\n"
+"\n"
+" Add a permission that grants the ability to manage group membership:\n"
+" ipa permission-add --attrs=member --permissions=write --type=group "
+"\"Manage Group Members\"\n"
+msgstr ""
+
+#: ipalib/plugins/permission.py:84
+msgid "Permission Type"
+msgstr ""
+
+#: ipalib/plugins/permission.py:89
+msgid ""
+"\n"
+" Permission object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:112
+msgid "Permission name"
+msgstr ""
+
+#: ipalib/plugins/permission.py:119
+msgid ""
+"Comma-separated list of permissions to grant (read, write, add, delete, all)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:132
+msgid ""
+"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
+msgstr ""
+
+#: ipalib/plugins/permission.py:138
+msgid "Member of group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:139
+msgid "Target members of a group"
+msgstr ""
+
+#: ipalib/plugins/permission.py:151
+msgid "Subtree to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:157
+msgid "User group to apply permissions to"
+msgstr ""
+
+#: ipalib/plugins/permission.py:177
+msgid ""
+"\n"
+" Add a new permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:181
+msgid "Added permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:236
+msgid ""
+"\n"
+" Delete a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:240
+msgid "Deleted permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:256
+msgid ""
+"\n"
+" Modify a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:260
+msgid "Modified permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/permission.py:352
+msgid ""
+"\n"
+" Search for permissions.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:356
+msgid "%(count)d permission matched"
+msgid_plural "%(count)d permissions matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/permission.py:405
+msgid ""
+"\n"
+" Display information about a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:428
+msgid ""
+"\n"
+" Add members to a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/permission.py:437
+msgid ""
+"\n"
+" Remove members from a permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:19
+msgid ""
+"\n"
+"Ping the remote IPA server\n"
+msgstr ""
+
+#: ipalib/plugins/ping.py:29
+msgid ""
+"\n"
+" ping a remote server\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/ping.py:37
+msgid ""
+"\n"
+" A possible enhancement would be to take an argument and echo it\n"
+" back but a fixed value works for now.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:19
+msgid ""
+"\n"
+"Kerberos pkinit options\n"
+"\n"
+"Enable or disable anonymous pkinit using the principal\n"
+"WELLKNOWN/ANONYMOUS@REALM. The server must have been installed with\n"
+"pkinit support.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Enable anonymous pkinit:\n"
+" ipa pkinit-anonymous enable\n"
+"\n"
+" Disable anonymous pkinit:\n"
+" ipa pkinit-anonymous disable\n"
+"\n"
+"For more information on anonymous pkinit see:\n"
+"\n"
+"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:46
+msgid ""
+"\n"
+" PKINIT Options\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:51
+msgid "PKINIT"
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:56
+msgid ""
+"\n"
+" Accepts only Enable/Disable.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pkinit.py:67
+msgid ""
+"\n"
+" Enable or Disable Anonymous PKINIT\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:19
+msgid ""
+"\n"
+"Privileges\n"
+"\n"
+"A privilege combines permissions into a logical task. A permission provides\n"
+"the rights to do a single task. There are some IPA operations that require\n"
+"multiple permissions to succeed. A privilege is where permissions are\n"
+"combined in order to perform a specific task.\n"
+"\n"
+"For example, adding a user requires the following permissions:\n"
+" * Creating a new user entry\n"
+" * Resetting a user password\n"
+" * Adding the new user to the default IPA users group\n"
+"\n"
+"Combining these three low-level tasks into a higher level task in the\n"
+"form of a privilege named \"Add User\" makes it easier to manage Roles.\n"
+"\n"
+"A privilege may not contain other privileges.\n"
+"\n"
+"See role and permission for additional information.\n"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:45
+msgid ""
+"\n"
+" Privilege object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:65
+msgid "Privileges"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:70
+msgid "Privilege name"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:77
+msgid "Privilege description"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:85
+msgid ""
+"\n"
+" Add a new privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:89
+msgid "Added privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:95
+msgid ""
+"\n"
+" Delete a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:99
+msgid "Deleted privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:105
+msgid ""
+"\n"
+" Modify a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:109
+msgid "Modified privilege \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/privilege.py:115
+msgid ""
+"\n"
+" Search for privileges.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:119
+msgid "%(count)d privilege matched"
+msgid_plural "%(count)d privileges matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/privilege.py:127
+msgid ""
+"\n"
+" Display information about a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:135
+msgid ""
+"\n"
+" Add members to a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:144
+msgid ""
+"\n"
+" Remove members from a privilege\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:153
+msgid ""
+"\n"
+" Add permissions to a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:169
+msgid "Number of permissions added"
+msgstr ""
+
+#: ipalib/plugins/privilege.py:177
+msgid ""
+"\n"
+" Remove permissions from a privilege.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/privilege.py:195
+msgid "Number of permissions removed"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:20
+msgid ""
+"\n"
+"Password policy\n"
+"\n"
+"A password policy sets limitations on IPA passwords, including maximum\n"
+"lifetime, minimum lifetime, the number of passwords to save in\n"
+"history, the number of character classes required (for stronger passwords)\n"
+"and the minimum password length.\n"
+"\n"
+"By default there is a single, global policy for all users. You can also\n"
+"create a password policy to apply to a group. Each user is only subject\n"
+"to one password policy, either the group policy or the global policy. A\n"
+"group policy stands alone; it is not a super-set of the global policy plus\n"
+"custom settings.\n"
+"\n"
+"Each group password policy requires a unique priority setting. If a user\n"
+"is in multiple groups that have password policies, this priority determines\n"
+"which password policy is applied. A lower value indicates a higher priority\n"
+"policy.\n"
+"\n"
+"Group password policies are automatically removed when the groups they\n"
+"are associated with are removed.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Modify the global policy:\n"
+" ipa pwpolicy-mod --minlength=10\n"
+"\n"
+" Add a new group password policy:\n"
+" ipa pwpolicy-add --maxlife=90 --minlife=1 --history=10 --minclasses=3 --"
+"minlength=8 --priority=10 localadmins\n"
+"\n"
+" Display the global password policy:\n"
+" ipa pwpolicy-show\n"
+"\n"
+" Display a group password policy:\n"
+" ipa pwpolicy-show localadmins\n"
+"\n"
+" Display the policy that would be applied to a given user:\n"
+" ipa pwpolicy-show --user=tuser1\n"
+"\n"
+" Modify a group password policy:\n"
+" ipa pwpolicy-mod --minclasses=2 localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:72
+msgid ""
+"\n"
+" Class of Service object used for linking policies with groups\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:87
msgid "priority must be a unique value (%(prio)d already used by %(gname)s)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:170
-msgid "Password Policy"
+#: ipalib/plugins/pwpolicy.py:172
+msgid ""
+"\n"
+" Password Policy object\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:201
+msgid "Max failures"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:202
+msgid "Consecutive failures before lockout"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:207
+msgid "Failure reset interval"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:175
+#: ipalib/plugins/pwpolicy.py:208
+msgid "Period after which failure count will be reset (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:213
+msgid "Lockout duration"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:214
+msgid "Period for which lockout is enforced (seconds)"
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:224
msgid "Group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:176
+#: ipalib/plugins/pwpolicy.py:225
msgid "Manage password policy for specific group"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:181
+#: ipalib/plugins/pwpolicy.py:230
msgid "Max lifetime (days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:182
+#: ipalib/plugins/pwpolicy.py:231
msgid "Maximum password lifetime (in days)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:187
+#: ipalib/plugins/pwpolicy.py:236
msgid "Min lifetime (hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:188
+#: ipalib/plugins/pwpolicy.py:237
msgid "Minimum password lifetime (in hours)"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:193
+#: ipalib/plugins/pwpolicy.py:242
msgid "History size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:194
+#: ipalib/plugins/pwpolicy.py:243
msgid "Password history size"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:199
+#: ipalib/plugins/pwpolicy.py:248
msgid "Character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:200
+#: ipalib/plugins/pwpolicy.py:249
msgid "Minimum number of character classes"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:206
+#: ipalib/plugins/pwpolicy.py:255
msgid "Min length"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:207
+#: ipalib/plugins/pwpolicy.py:256
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:212
+#: ipalib/plugins/pwpolicy.py:261
msgid "Priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:213
+#: ipalib/plugins/pwpolicy.py:262
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:265
+#: ipalib/plugins/pwpolicy.py:294
+msgid ""
+"\n"
+" Ensure that the maximum lifetime is greater than the minimum.\n"
+" If there is no minimum lifetime set then don't return an error.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:314
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:330
+#: ipalib/plugins/pwpolicy.py:333
+msgid ""
+"\n"
+" Add a new group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:361
+msgid ""
+"\n"
+" Delete a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:380
+msgid ""
+"\n"
+" Modify a group password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:391
msgid "priority cannot be set on global policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:369
+#: ipalib/plugins/pwpolicy.py:423
+msgid ""
+"\n"
+" Display information about password policy.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/pwpolicy.py:428
msgid "User"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:370
+#: ipalib/plugins/pwpolicy.py:429
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/rolegroup.py:79
-msgid "Role Groups"
+#: ipalib/plugins/pwpolicy.py:452
+msgid ""
+"\n"
+" Search for group password policies.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:84
-msgid "Role-group name"
+#: ipalib/plugins/role.py:20
+msgid ""
+"\n"
+"Roles\n"
+"\n"
+"A role is used for fine-grained delegation. A permission grants the ability\n"
+"to perform given low-level tasks (add a user, modify a group, etc.). A\n"
+"privilege combines one or more permissions into a higher-level abstraction\n"
+"such as useradmin. A useradmin would be able to add, delete and modify "
+"users.\n"
+"\n"
+"Privileges are assigned to Roles.\n"
+"\n"
+"Users, groups, hosts and hostgroups may be members of a Role.\n"
+"\n"
+"Roles can not contain other roles.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new role:\n"
+" ipa role-add --desc=\"Junior-level admin\" junioradmin\n"
+"\n"
+" Add some privileges to this role:\n"
+" ipa role-add-privilege --privileges=addusers junioradmin\n"
+" ipa role-add-privilege --privileges=change_password junioradmin\n"
+" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n"
+"\n"
+" Add a group of users to this role:\n"
+" ipa group-add --desc=\"User admins\" useradmins\n"
+" ipa role-add-member --groups=useradmins junioradmin\n"
+"\n"
+" Display information about a role:\n"
+" ipa role-show junioradmin\n"
+"\n"
+" The result of this is that any users in the group 'useradmins' can\n"
+" add users, reset passwords or add a user to the default IPA user group.\n"
+msgstr ""
+
+#: ipalib/plugins/role.py:62
+msgid ""
+"\n"
+" Role object.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:91
+#: ipalib/plugins/role.py:81
+msgid "Role"
+msgstr ""
+
+#: ipalib/plugins/role.py:86
+msgid "Role name"
+msgstr ""
+
+#: ipalib/plugins/role.py:93
msgid "A description of this role-group"
msgstr ""
-#: ipalib/plugins/rolegroup.py:102
-msgid "Member of task-groups"
+#: ipalib/plugins/role.py:101
+msgid ""
+"\n"
+" Add a new role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:115
-#, python-format
-msgid "Added rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:105
+msgid "Added role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/rolegroup.py:125
-#, python-format
-msgid "Deleted rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:111
+msgid ""
+"\n"
+" Delete a role.\n"
+" "
msgstr ""
-#: ipalib/plugins/rolegroup.py:135
-#, python-format
-msgid "Modified rolegroup \"%(value)s\""
+#: ipalib/plugins/role.py:115
+msgid "Deleted role \"%(value)s\""
msgstr ""
-#: ipalib/plugins/rolegroup.py:146
-#, python-format
-msgid "%(count)d rolegroup matched"
-msgid_plural "%(count)d rolegroups matched"
+#: ipalib/plugins/role.py:121
+msgid ""
+"\n"
+" Modify a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:125
+msgid "Modified role \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/role.py:131
+msgid ""
+"\n"
+" Search for roles.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:135
+msgid "%(count)d role matched"
+msgid_plural "%(count)d roles matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:198
+#: ipalib/plugins/role.py:143
+msgid ""
+"\n"
+" Display information about a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:151
+msgid ""
+"\n"
+" Add members to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:159
+msgid ""
+"\n"
+" Remove members from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:167
+msgid ""
+"\n"
+" Add privileges to a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:183
+msgid "Number of privileges added"
+msgstr ""
+
+#: ipalib/plugins/role.py:191
+msgid ""
+"\n"
+" Remove privileges from a role.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/role.py:207
+msgid "Number of privileges removed"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:19
+msgid ""
+"\n"
+"Self-service Permissions\n"
+"\n"
+"A permission enables fine-grained delegation of permissions. Access Control\n"
+"Rules, or instructions (ACIs), grant permission to permissions to perform\n"
+"given tasks such as adding a user, modifying a group, etc.\n"
+"\n"
+"A Self-service permission defines what an object can change in its own "
+"entry.\n"
+"\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a self-service rule to allow users to manage their address:\n"
+" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st "
+"\"Users manage their own address\"\n"
+"\n"
+" When managing the list of attributes you need to include all attributes\n"
+" in the list, including existing ones. Add telephoneNumber to the list:\n"
+" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber "
+"\"Users manage their own address\"\n"
+"\n"
+" Display our updated rule:\n"
+" ipa selfservice-show \"Users manage their own address\"\n"
+"\n"
+" Delete a rule:\n"
+" ipa selfservice-del \"Users manage their own address\"\n"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:56
+msgid ""
+"\n"
+" Determine if the ACI is a Self-service ACI and raise an exception if it\n"
+" isn't.\n"
+"\n"
+" Return the result if it is a self-service ACI.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:64
+msgid "Self-service permission '%(permission)s' not found"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:68
+msgid ""
+"\n"
+" Selfservice object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:75
+msgid "Self Service Permissions"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:80 ipalib/plugins/selfservice.py:81
+msgid "Self-service name"
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:114
+msgid ""
+"\n"
+" Add a new self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:118
+msgid "Added selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:137
+msgid ""
+"\n"
+" Delete a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:142
+msgid "Deleted selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:158
+msgid ""
+"\n"
+" Modify a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:162
+msgid "Modified selfservice \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:181
+msgid ""
+"\n"
+" Search for a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:185
+msgid "%(count)d selfservice matched"
+msgid_plural "%(count)d selfservices matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/selfservice.py:207
+msgid ""
+"\n"
+" Display information about a self-service permission.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:21
+msgid ""
+"\n"
+"Services\n"
+"\n"
+"A IPA service represents a service that runs on a host. The IPA service\n"
+"record can store a Kerberos principal, an SSL certificate, or both.\n"
+"\n"
+"An IPA service can be managed directly from a machine, provided that\n"
+"machine has been given the correct permission. This is true even for\n"
+"machines other than the one the service is associated with. For example,\n"
+"requesting an SSL certificate using the host service principal credentials\n"
+"of the host. To manage a service using host credentials you need to\n"
+"kinit as the host:\n"
+"\n"
+" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n"
+"\n"
+"Adding an IPA service allows the associated service to request an SSL\n"
+"certificate or keytab, but this is performed as a separate step; they\n"
+"are not produced as a result of adding the service.\n"
+"\n"
+"Only the public aspect of a certificate is stored in a service record;\n"
+"the private key is not stored.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new IPA service:\n"
+" ipa service-add HTTP/web.example.com\n"
+"\n"
+" Allow a host to manage an IPA service certificate:\n"
+" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n"
+" ipa role-add-member --hosts=web.example.com certadmin\n"
+"\n"
+" Delete an IPA service:\n"
+" ipa service-del HTTP/web.example.com\n"
+"\n"
+" Find all IPA services associated with a host:\n"
+" ipa service-find web.example.com\n"
+"\n"
+" Find all HTTP services:\n"
+" ipa service-find HTTP\n"
+"\n"
+" Disable the service Kerberos key and SSL certificate:\n"
+" ipa service-disable HTTP/web.example.com\n"
+"\n"
+" Request a certificate for an IPA service:\n"
+" ipa cert-request --principal=HTTP/web.example.com example.csr\n"
+"\n"
+" Generate and retrieve a keytab for an IPA service:\n"
+" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/"
+"httpd.keytab\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/service.py:162
+msgid ""
+"\n"
+" For now just verify that it is properly base64-encoded.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:175
+msgid ""
+"\n"
+" Set individual attributes from some values from a certificate.\n"
+"\n"
+" entry_attrs is a dict of an entry\n"
+"\n"
+" returns nothing\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:199
+msgid ""
+"\n"
+" Service object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:226
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:221
+#: ipalib/plugins/service.py:242
+msgid ""
+"\n"
+" Add a new IPA new service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:245
+msgid "Added service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/service.py:251
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:292
-#, python-format
+#: ipalib/plugins/service.py:284
+msgid ""
+"\n"
+" Delete an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:287
+msgid "Deleted service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/service.py:321
+msgid ""
+"\n"
+" Modify an existing IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:324
msgid "Modified service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:323
-#, python-format
+#: ipalib/plugins/service.py:356
+msgid ""
+"\n"
+" Search for IPA services.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:359
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:409
-msgid "Service principal has no kerberos key"
+#: ipalib/plugins/service.py:394
+msgid ""
+"\n"
+" Display information about an IPA service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:432
+msgid ""
+"\n"
+" Add hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:442
+msgid ""
+"\n"
+" Remove hosts that can manage this service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:452
+msgid ""
+"\n"
+" Disable the Kerberos key and SSL certificate of a service.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/service.py:456
+msgid "Disabled service \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:19
+msgid ""
+"\n"
+"Sudo Commands\n"
+"\n"
+"Commands used as building blocks for sudo\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a new command\n"
+" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n"
+"\n"
+" Remove a command\n"
+" ipa sudocmd-del /usr/bin/less\n"
+"\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:46
+msgid ""
+"\n"
+" Sudo Command object.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmd.py:60
-msgid "SudoCmds"
+#: ipalib/plugins/sudocmd.py:64
+msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:65
+#: ipalib/plugins/sudocmd.py:69
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:72
+#: ipalib/plugins/sudocmd.py:75
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:99
-#, python-format
+#: ipalib/plugins/sudocmd.py:98
+msgid ""
+"\n"
+" Create new sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:102
msgid "Added sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:108
-#, python-format
+#: ipalib/plugins/sudocmd.py:107
+msgid ""
+"\n"
+" Delete sudo command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:111
msgid "Deleted sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:117
-#, python-format
+#: ipalib/plugins/sudocmd.py:116
+msgid ""
+"\n"
+" Modify command.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:120
msgid "Modified sudo command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:127
-#, python-format
+#: ipalib/plugins/sudocmd.py:125
+msgid ""
+"\n"
+" Search for commands.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmd.py:129
msgid "%(count)d sudo command matched"
msgid_plural "%(count)d sudo command matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmdgroup.py:66 ipalib/plugins/sudocmdgroup.py:85
-#: ipalib/plugins/sudorule.py:81 ipalib/plugins/sudorule.py:85
-msgid "Sudo Command Groups"
+#: ipalib/plugins/sudocmd.py:136
+msgid ""
+"\n"
+" Display sudo command.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:71
+#: ipalib/plugins/sudocmdgroup.py:19
+msgid ""
+"\n"
+"Groups of Sudo commands\n"
+"\n"
+"Manage groups of Sudo commands.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new Sudo command group:\n"
+" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n"
+"\n"
+" Remove a Sudo command group:\n"
+" ipa sudocmdgroup-del admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim "
+"admincmds\n"
+"\n"
+" Manage Sudo command group membership, commands:\n"
+" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
+"\n"
+" Show a Sudo command group:\n"
+" ipa group-show localadmins\n"
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:50
+msgid ""
+"\n"
+" Sudo Group object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:70
msgid "Sudo Command Group"
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:81
-msgid "Commands"
+#: ipalib/plugins/sudocmdgroup.py:93
+msgid ""
+"\n"
+" Create new sudo command group.\n"
+" "
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:98
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:97
msgid "Added sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:108
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:103
+msgid ""
+"\n"
+" Delete sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:107
msgid "Deleted sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:118
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:113
+msgid ""
+"\n"
+" Modify group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:117
msgid "Modified sudo command group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmdgroup.py:129
-#, python-format
+#: ipalib/plugins/sudocmdgroup.py:123
+msgid ""
+"\n"
+" Search for sudo command groups.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:127
msgid "%(count)d sudo command group matched"
msgid_plural "%(count)d sudo command groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudorule.py:48
-msgid "SudoRule"
+#: ipalib/plugins/sudocmdgroup.py:136
+msgid ""
+"\n"
+" Display sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:144
+msgid ""
+"\n"
+" Add members to sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudocmdgroup.py:152
+msgid ""
+"\n"
+" Remove members from sudo command group.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:19
+msgid ""
+"\n"
+"Sudo (su \"do\") allows a system administrator to delegate authority to\n"
+"give certain users (or groups of users) the ability to run some (or all)\n"
+"commands as root or another user while providing an audit trail of the\n"
+"commands and their arguments.\n"
+"\n"
+"FreeIPA provides a designated binddn to use with Sudo located at:\n"
+"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
+"\n"
+"To enable the binddn run the following command to set the password:\n"
+"LDAPTLS_CACERT=/etc/ipa/ca.crt /usr/bin/ldappasswd -S -W -h ipa.example.com -"
+"ZZ -D \"cn=Directory Manager\" uid=sudo,cn=sysaccounts,cn=etc,dc=example,"
+"dc=com\n"
+"\n"
+"For more information, see the FreeIPA Documentation to Sudo.\n"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:44
+msgid ""
+"\n"
+" Sudo Rule management\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:68
+msgid "Sudo Rule"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:98
+msgid "Command category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:99
+msgid "Command category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:104
+msgid "Run As User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/sudorule.py:105
+msgid "Run As User category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:110
+msgid "Run As Group category"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:111
+msgid "Run As Group category the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:131
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:77
+#: ipalib/plugins/sudorule.py:135
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:109
-#, python-format
+#: ipalib/plugins/sudorule.py:147
+msgid "Run As User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:151
+msgid "Run As Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:156
+msgid "External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:157
+msgid "External User the rule applies to"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:161
+msgid "RunAs External User"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:162
+msgid "External User the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:166
+msgid "RunAs External Group"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:167
+msgid "External Group the commands can run as"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:175
+msgid ""
+"\n"
+" Create new Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:183
msgid "Added sudo rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/taskgroup.py:51
-msgid "Task Groups"
+#: ipalib/plugins/sudorule.py:189
+msgid ""
+"\n"
+" Delete Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:197
+msgid ""
+"\n"
+" Modify Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:56
-msgid "Task-group name"
+#: ipalib/plugins/sudorule.py:205
+msgid ""
+"\n"
+" Search for Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:63
-msgid "Task-group description"
+#: ipalib/plugins/sudorule.py:213
+msgid ""
+"\n"
+" Display Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:74
-msgid "Member role-groups"
+#: ipalib/plugins/sudorule.py:221
+msgid ""
+"\n"
+" Enable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:87
-#, python-format
-msgid "Added taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:247
+msgid ""
+"\n"
+" Disable a Sudo rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:97
-#, python-format
-msgid "Deleted taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:273 ipalib/plugins/sudorule.py:293
+msgid ""
+"\n"
+" Add commands and sudo command groups affected by Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:107
-#, python-format
-msgid "Modified taskgroup \"%(value)s\""
+#: ipalib/plugins/sudorule.py:283 ipalib/plugins/sudorule.py:303
+msgid ""
+"\n"
+" Remove commands and sudo command groups affected by Sudo Rule.\n"
+" "
msgstr ""
-#: ipalib/plugins/taskgroup.py:118
-#, python-format
-msgid "%(count)d taskgroup matched"
-msgid_plural "%(count)d taskgroups matched"
-msgstr[0] ""
-msgstr[1] ""
+#: ipalib/plugins/sudorule.py:313
+msgid ""
+"\n"
+" Add users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:349
+msgid ""
+"\n"
+" Remove users and groups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:383
+msgid ""
+"\n"
+" Add hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:419
+msgid ""
+"\n"
+" Remove hosts and hostgroups affected by Sudo Rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:453
+msgid ""
+"\n"
+" Add user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:489
+msgid ""
+"\n"
+" Remove user for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:523
+msgid ""
+"\n"
+" Add group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:559
+msgid ""
+"\n"
+" Remove group for Sudo to execute as.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:593
+msgid ""
+"\n"
+" Add an option to the Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:600 ipalib/plugins/sudorule.py:641
+msgid "Sudo Option"
+msgstr ""
-#: ipalib/plugins/user.py:84
+#: ipalib/plugins/sudorule.py:635
+msgid ""
+"\n"
+" Remove an option from Sudo rule.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:20
+msgid ""
+"\n"
+"Users\n"
+"\n"
+"Manage user entries. All users are POSIX users.\n"
+"\n"
+"IPA supports a wide range of username formats, but you need to be aware of "
+"any\n"
+"restrictions that may apply to your particular environment. For example,\n"
+"usernames that start with a digit or usernames that exceed a certain length\n"
+"may cause problems for some UNIX systems.\n"
+"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n"
+"\n"
+"Disabling a user account prevents that user from obtaining new Kerberos\n"
+"credentials. It does not invalidate any credentials that have already\n"
+"been issued.\n"
+"\n"
+"Password management is not a part of this module. For more information\n"
+"about this topic please see: ipa help passwd\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Add a new user:\n"
+" ipa user-add --first=Tim --last=User --password tuser1\n"
+"\n"
+" Find all users whose entries include the string \"Tim\":\n"
+" ipa user-find Tim\n"
+"\n"
+" Find all users with \"Tim\" as the first name:\n"
+" ipa user-find --first=Tim\n"
+"\n"
+" Disable a user account:\n"
+" ipa user-disable tuser1\n"
+"\n"
+" Enable a user account:\n"
+" ipa user-enable tuser1\n"
+"\n"
+" Delete a user:\n"
+" ipa user-del tuser1\n"
+msgstr ""
+
+#: ipalib/plugins/user.py:79
+msgid ""
+"\n"
+" User object.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:116
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:91
+#: ipalib/plugins/user.py:123
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:95
+#: ipalib/plugins/user.py:127
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:103
+#: ipalib/plugins/user.py:130
+msgid "Full name"
+msgstr ""
+
+#: ipalib/plugins/user.py:135
+msgid "Display name"
+msgstr ""
+
+#: ipalib/plugins/user.py:140
+msgid "Initials"
+msgstr ""
+
+#: ipalib/plugins/user.py:146
+msgid "Home directory"
+msgstr ""
+
+#: ipalib/plugins/user.py:150
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:109
+#: ipalib/plugins/user.py:156
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:114
+#: ipalib/plugins/user.py:161
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:120
+#: ipalib/plugins/user.py:168
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:124
-msgid "Password"
-msgstr ""
-
-#: ipalib/plugins/user.py:125
-msgid "Set the user password"
+#: ipalib/plugins/user.py:173
+msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:132
+#: ipalib/plugins/user.py:180
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:133
+#: ipalib/plugins/user.py:181
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:139
-msgid "Street address"
+#: ipalib/plugins/user.py:188
+msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:142
-msgid "Groups"
+#: ipalib/plugins/user.py:193
+msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:146
-msgid "Netgroups"
+#: ipalib/plugins/user.py:197
+msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:150
-msgid "Rolegroups"
+#: ipalib/plugins/user.py:201
+msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:154
-msgid "Taskgroups"
+#: ipalib/plugins/user.py:204
+msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:159
+#: ipalib/plugins/user.py:208
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:161
+#: ipalib/plugins/user.py:211
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:163
+#: ipalib/plugins/user.py:214
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:166
+#: ipalib/plugins/user.py:218
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:177
-#, python-format
+#: ipalib/plugins/user.py:222
+msgid "Org. Unit"
+msgstr ""
+
+#: ipalib/plugins/user.py:225
+msgid "Job Title"
+msgstr ""
+
+#: ipalib/plugins/user.py:228
+msgid "Manager"
+msgstr ""
+
+#: ipalib/plugins/user.py:231
+msgid "Car License"
+msgstr ""
+
+#: ipalib/plugins/user.py:234
+msgid "Account disabled"
+msgstr ""
+
+#: ipalib/plugins/user.py:258
+msgid ""
+"\n"
+" Given a userid verify the user's existence and return the dn.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:276
+msgid "manager %(manager)s not found"
+msgstr ""
+
+#: ipalib/plugins/user.py:281
+msgid ""
+"\n"
+" Convert a manager dn into a userid\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:295
+msgid ""
+"\n"
+" Add a new user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:298
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:226
-#, python-format
+#: ipalib/plugins/user.py:303
+msgid "Don't create user private group"
+msgstr ""
+
+#: ipalib/plugins/user.py:333
+msgid "can be at most %(len)d characters"
+msgstr ""
+
+#: ipalib/plugins/user.py:400
+msgid ""
+"\n"
+" Delete a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:404
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:240
-#, python-format
+#: ipalib/plugins/user.py:413
+msgid ""
+"\n"
+" Modify a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:417
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:252
+#: ipalib/plugins/user.py:437
+msgid ""
+"\n"
+" Search for users.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:444
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:253
+#: ipalib/plugins/user.py:445
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:263
-#, python-format
+#: ipalib/plugins/user.py:463
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:283
-#, python-format
+#: ipalib/plugins/user.py:471
+msgid ""
+"\n"
+" Display information about a user.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:484
+msgid ""
+"\n"
+" Disable a user account.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:489
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:309
-#, python-format
+#: ipalib/plugins/user.py:507
+msgid ""
+"\n"
+" Enable a user account.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:512
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipaserver/install/certs.py:599 ipaserver/plugins/dogtag.py:1313
-#: ipaserver/plugins/dogtag.py:1398 ipaserver/plugins/dogtag.py:1463
-#: ipaserver/plugins/dogtag.py:1543 ipaserver/plugins/dogtag.py:1602
+#: ipalib/plugins/user.py:529
+msgid ""
+"\n"
+" Unlock a user account\n"
+"\n"
+" An account may become locked if the password is entered incorrectly too\n"
+" many times within a specific time period as controlled by password\n"
+" policy. A locked account is a temporary condition and may be unlocked "
+"by\n"
+" an administrator.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/user.py:538
+msgid "Unlocked account \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/virtual.py:20
+msgid ""
+"\n"
+"Base classes for non-LDAP backend plugins.\n"
+msgstr ""
+
+#: ipalib/plugins/virtual.py:28
+msgid ""
+"\n"
+" A command that doesn't use the LDAP backend but wants to use the\n"
+" LDAP access control system to make authorization decisions.\n"
+"\n"
+" The class variable operation is the commonName attribute of the\n"
+" entry to be tested against.\n"
+"\n"
+" In advance, you need to create an entry of the form:\n"
+" cn=<operation>, api.env.container_virtual, api.env.basedn\n"
+"\n"
+" Ex.\n"
+" cn=request certificate, cn=virtual operations,cn=etc, dc=example, "
+"dc=com\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/virtual.py:44
+msgid ""
+"\n"
+" Perform an LDAP query to determine authorization.\n"
+"\n"
+" This should be executed before any actual work is done.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/xmlclient.py:21
+msgid ""
+"\n"
+"XML-RPC client plugin.\n"
+msgstr ""
+
+#: ipalib/cli.py:581
+#, python-format
+msgid "Enter %(label)s again to verify: "
+msgstr ""
+
+#: ipalib/cli.py:585 ipa-client/ipa-getkeytab.c:751
+#, c-format
+msgid "Passwords do not match!"
+msgstr ""
+
+#: ipalib/cli.py:590
+msgid "Cancelled."
+msgstr ""
+
+#: ipalib/cli.py:819
+msgid "Command name"
+msgstr ""
+
+#: ipalib/cli.py:1117
+msgid "No file to read"
+msgstr ""
+
+#: ipalib/errors.py:300
+#, python-format
+msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:318
+#, python-format
+msgid "unknown error %(code)d from %(server)s: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:334
+msgid "an internal error has occurred"
+msgstr ""
+
+#: ipalib/errors.py:356
+#, python-format
+msgid "an internal error has occurred on server at %(server)r"
+msgstr ""
+
+#: ipalib/errors.py:372
+#, python-format
+msgid "unknown command %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:389 ipalib/errors.py:414
+#, python-format
+msgid "error on server %(server)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:405
+#, python-format
+msgid "cannot connect to %(uri)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:423
+#, python-format
+msgid "Invalid JSON-RPC request: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:439
+#, python-format
+msgid "error marshalling data for XML-RPC transport: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:465
+#, python-format
+msgid "Kerberos error: %(major)s/%(minor)s"
+msgstr ""
+
+#: ipalib/errors.py:482
+msgid "did not receive Kerberos credentials"
+msgstr ""
+
+#: ipalib/errors.py:498
+#, python-format
+msgid "Service %(service)r not found in Kerberos database"
+msgstr ""
+
+#: ipalib/errors.py:514
+msgid "No credentials cache found"
+msgstr ""
+
+#: ipalib/errors.py:530
+msgid "Ticket expired"
+msgstr ""
+
+#: ipalib/errors.py:546
+msgid "Credentials cache permissions incorrect"
+msgstr ""
+
+#: ipalib/errors.py:562
+msgid "Bad format in credentials cache"
+msgstr ""
+
+#: ipalib/errors.py:578
+msgid "Cannot resolve KDC for requested realm"
+msgstr ""
+
+#: ipalib/errors.py:597
+#, python-format
+msgid "Insufficient access: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:641
+#, python-format
+msgid "command %(name)r takes no arguments"
+msgstr ""
+
+#: ipalib/errors.py:661
+#, python-format
+msgid "command %(name)r takes at most %(count)d argument"
+msgid_plural "command %(name)r takes at most %(count)d arguments"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/errors.py:691
+#, python-format
+msgid "overlapping arguments and options: %(names)r"
+msgstr ""
+
+#: ipalib/errors.py:707
+#, python-format
+msgid "%(name)r is required"
+msgstr ""
+
+#: ipalib/errors.py:723 ipalib/errors.py:739
+#, python-format
+msgid "invalid %(name)r: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:755
+#, python-format
+msgid "api has no such namespace: %(name)r"
+msgstr ""
+
+#: ipalib/errors.py:764
+msgid "Passwords do not match"
+msgstr ""
+
+#: ipalib/errors.py:773
+msgid "Command not implemented"
+msgstr ""
+
+#: ipalib/errors.py:782
+msgid "Client is not configured. Run ipa-client-install."
+msgstr ""
+
+#: ipalib/errors.py:810 ipalib/errors.py:1050 ipalib/errors.py:1144
+#: ipalib/errors.py:1424 ipalib/errors.py:1441
+#, python-format
+msgid "%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:826
+msgid "This entry already exists"
+msgstr ""
+
+#: ipalib/errors.py:842
+msgid "You must enroll a host in order to create a host service"
+msgstr ""
+
+#: ipalib/errors.py:858
+#, python-format
+msgid ""
+"Service principal is not of the form: service/fully-qualified host name: "
+"%(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:874
+msgid ""
+"The realm for the principal does not match the realm for this IPA server"
+msgstr ""
+
+#: ipalib/errors.py:890
+msgid "This command requires root access"
+msgstr ""
+
+#: ipalib/errors.py:906
+msgid "This is already a posix group"
+msgstr ""
+
+#: ipalib/errors.py:922
+#, python-format
+msgid "Principal is not of the form user@REALM: %(principal)r"
+msgstr ""
+
+#: ipalib/errors.py:938
+msgid "This entry is already enabled"
+msgstr ""
+
+#: ipalib/errors.py:954
+msgid "This entry is already disabled"
+msgstr ""
+
+#: ipalib/errors.py:970
+msgid "This entry cannot be enabled or disabled"
+msgstr ""
+
+#: ipalib/errors.py:986
+msgid "This entry is not a member"
+msgstr ""
+
+#: ipalib/errors.py:1002
+msgid "A group may not be a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1018
+msgid "This entry is already a member"
+msgstr ""
+
+#: ipalib/errors.py:1034
+#, python-format
+msgid "Base64 decoding failed: %(reason)s"
+msgstr ""
+
+#: ipalib/errors.py:1066
+msgid "A group may not be added as a member of itself"
+msgstr ""
+
+#: ipalib/errors.py:1082
+msgid "The default users group cannot be removed"
+msgstr ""
+
+#: ipalib/errors.py:1098
+msgid "Host does not have corresponding DNS A record"
+msgstr ""
+
+#: ipalib/errors.py:1113
+msgid "Deleting a managed group is not allowed. It must be detached first."
+msgstr ""
+
+#: ipalib/errors.py:1128
+msgid "A managed group cannot have a password policy."
+msgstr ""
+
+#: ipalib/errors.py:1160
+#, python-format
+msgid "'%(entry)s' doesn't have a certificate."
+msgstr ""
+
+#: ipalib/errors.py:1176
+#, python-format
+msgid "Unable to create private group. A group '%(group)s' already exists."
+msgstr ""
+
+#: ipalib/errors.py:1192
+#, python-format
+msgid ""
+"A problem was encountered when verifying that all members were %(verb)s: "
+"%(exc)s"
+msgstr ""
+
+#: ipalib/errors.py:1216
+#, python-format
+msgid "no command nor help topic %(topic)r"
+msgstr ""
+
+#: ipalib/errors.py:1240
+msgid "change collided with another change"
+msgstr ""
+
+#: ipalib/errors.py:1256
+msgid "no modifications to be performed"
+msgstr ""
+
+#: ipalib/errors.py:1272
+#, python-format
+msgid "%(desc)s: %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1288
+msgid "limits exceeded for this query"
+msgstr ""
+
+#: ipalib/errors.py:1303
+#, python-format
+msgid "%(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1318
+msgid "modifying primary key is not allowed"
+msgstr ""
+
+#: ipalib/errors.py:1334
+#, python-format
+msgid "%(attr)s: Only one value allowed."
+msgstr ""
+
+#: ipalib/errors.py:1350
+#, python-format
+msgid "%(attr)s: Invalid syntax."
+msgstr ""
+
+#: ipalib/errors.py:1366
+#, python-format
+msgid "Bad search filter %(info)s"
+msgstr ""
+
+#: ipalib/errors.py:1391
+#, python-format
+msgid "Certificate operation cannot be completed: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1407
+#, python-format
+msgid "Certificate format error: %(error)s"
+msgstr ""
+
+#: ipalib/errors.py:1458
+msgid "Already registered"
+msgstr ""
+
+#: ipalib/errors.py:1474
+msgid "Not registered yet"
+msgstr ""
+
+#: ipalib/frontend.py:398
+msgid "Results are truncated, try a more specific search"
+msgstr ""
+
+#: ipalib/frontend.py:850
+msgid ""
+"Retrieve and print all attributes from the server. Affects command output."
+msgstr ""
+
+#: ipalib/frontend.py:856
+msgid "Print entries as stored on the server. Only affects output format."
+msgstr ""
+
+#: ipalib/frontend.py:985
+msgid "Forward to server instead of running locally"
+msgstr ""
+
+#: ipalib/output.py:92
+msgid "A dictionary representing an LDAP entry"
+msgstr ""
+
+#: ipalib/output.py:100
+msgid "A list of LDAP entries"
+msgstr ""
+
+#: ipalib/output.py:111
+msgid "All commands should at least have a result"
+msgstr ""
+
+#: ipalib/parameters.py:296
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:299
+msgid "Only one value is allowed"
+msgstr ""
+
+#: ipalib/parameters.py:901
+msgid "must be True or False"
+msgstr ""
+
+#: ipalib/parameters.py:1002
+msgid "must be an integer"
+msgstr ""
+
+#: ipalib/parameters.py:1054
+#, python-format
+msgid "must be at least %(minvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1064
+#, python-format
+msgid "can be at most %(maxvalue)d"
+msgstr ""
+
+#: ipalib/parameters.py:1074
+msgid "must be a decimal number"
+msgstr ""
+
+#: ipalib/parameters.py:1097
+#, python-format
+msgid "must be at least %(minvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1107
+#, python-format
+msgid "can be at most %(maxvalue)f"
+msgstr ""
+
+#: ipalib/parameters.py:1174
+#, python-format
+msgid "must match pattern \"%(pattern)s\""
+msgstr ""
+
+#: ipalib/parameters.py:1192
+msgid "must be binary data"
+msgstr ""
+
+#: ipalib/parameters.py:1208
+#, python-format
+msgid "must be at least %(minlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1218
+#, python-format
+msgid "can be at most %(maxlength)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1228
+#, python-format
+msgid "must be exactly %(length)d bytes"
+msgstr ""
+
+#: ipalib/parameters.py:1246
+msgid "must be Unicode text"
+msgstr ""
+
+#: ipalib/parameters.py:1277
+#, python-format
+msgid "must be at least %(minlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1287
+#, python-format
+msgid "can be at most %(maxlength)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1297
+#, python-format
+msgid "must be exactly %(length)d characters"
+msgstr ""
+
+#: ipalib/parameters.py:1315
+#, python-format
+msgid "The character '%(char)r' is not allowed."
+msgstr ""
+
+#: ipalib/parameters.py:1355
+#, python-format
+msgid "must be one of %(values)r"
+msgstr ""
+
+#: ipalib/util.py:200
+#, python-format
+msgid "Permission denied: %(file)s"
+msgstr ""
+
+#: ipalib/x509.py:174
+#, python-format
+msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
+msgstr ""
+
+#: ipaserver/plugins/dogtag.py:1313 ipaserver/plugins/dogtag.py:1398
+#: ipaserver/plugins/dogtag.py:1463 ipaserver/plugins/dogtag.py:1541
+#: ipaserver/plugins/dogtag.py:1600
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -1995,27 +7228,27 @@ msgstr ""
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
-#: ipaserver/plugins/selfsign.py:98
+#: ipaserver/plugins/selfsign.py:99
#, python-format
msgid ""
"Request subject \"%(request_subject)s\" does not match the form "
"\"%(subject_base)s\""
msgstr ""
-#: ipaserver/plugins/selfsign.py:103
+#: ipaserver/plugins/selfsign.py:104
#, python-format
msgid "unable to decode csr: %s"
msgstr ""
-#: ipaserver/plugins/selfsign.py:124 ipaserver/plugins/selfsign.py:139
+#: ipaserver/plugins/selfsign.py:125 ipaserver/plugins/selfsign.py:140
msgid "file operation"
msgstr ""
-#: ipaserver/plugins/selfsign.py:153
+#: ipaserver/plugins/selfsign.py:154
msgid "cannot obtain next serial number"
msgstr ""
-#: ipaserver/plugins/selfsign.py:188
+#: ipaserver/plugins/selfsign.py:189
msgid "certutil failure"
msgstr ""
@@ -2029,543 +7262,573 @@ msgstr ""
msgid "cannot stat() configuration file %s\n"
msgstr ""
-#: ipa-client/config.c:75
+#: ipa-client/config.c:68
+#, c-format
+msgid "out of memory\n"
+msgstr ""
+
+#: ipa-client/config.c:79
#, c-format
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:138 ipa-client/ipa-getkeytab.c:838
+#: ipa-client/ipa-getkeytab.c:85 ipa-client/ipa-getkeytab.c:821
+#: ipa-client/ipa-rmkeytab.c:190
+#, c-format
+msgid "Kerberos context initialization failed\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:147 ipa-client/ipa-getkeytab.c:834
#, c-format
msgid "No system preferred enctypes ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:146
+#: ipa-client/ipa-getkeytab.c:155
#, c-format
msgid "Out of memory!?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:164 ipa-client/ipa-getkeytab.c:179
+#: ipa-client/ipa-getkeytab.c:173 ipa-client/ipa-getkeytab.c:188
#, c-format
msgid "Out of memory\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:194
+#: ipa-client/ipa-getkeytab.c:203
#, c-format
msgid "Warning unrecognized encryption type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:209
+#: ipa-client/ipa-getkeytab.c:218
#, c-format
msgid "Warning unrecognized salt type: [%s]\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:235
+#: ipa-client/ipa-getkeytab.c:245
#, c-format
msgid "Enctype comparison failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:297
+#: ipa-client/ipa-getkeytab.c:307
#, c-format
msgid "Failed to create random key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:310 ipa-client/ipa-getkeytab.c:327
-#: ipa-client/ipa-getkeytab.c:335 ipa-client/ipa-getkeytab.c:372
+#: ipa-client/ipa-getkeytab.c:320 ipa-client/ipa-getkeytab.c:337
+#: ipa-client/ipa-getkeytab.c:345 ipa-client/ipa-getkeytab.c:382
#, c-format
msgid "Failed to create key!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:317 ipa-client/ipa-getkeytab.c:350
+#: ipa-client/ipa-getkeytab.c:327 ipa-client/ipa-getkeytab.c:360
+#: ipa-client/ipa-join.c:417 ipa-client/ipa-join.c:426
+#: ipa-client/ipa-join.c:563 ipa-client/ipa-join.c:751
+#: ipa-client/ipa-join.c:819
#, c-format
msgid "Out of memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:361
+#: ipa-client/ipa-getkeytab.c:371
#, c-format
msgid "Bad or unsupported salt type (%d)!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:481
+#: ipa-client/ipa-getkeytab.c:492
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:496
+#: ipa-client/ipa-getkeytab.c:507
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:534
+#: ipa-client/ipa-getkeytab.c:545
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:541
+#: ipa-client/ipa-getkeytab.c:552
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:565
+#: ipa-client/ipa-getkeytab.c:576
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:572
+#: ipa-client/ipa-getkeytab.c:583
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:579
+#: ipa-client/ipa-getkeytab.c:596
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:589
+#: ipa-client/ipa-getkeytab.c:606
#, c-format
msgid "SASL Bind failed!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:605 ipa-client/ipa-getkeytab.c:618
-#: ipa-client/ipa-getkeytab.c:625 ipa-client/ipa-getkeytab.c:632
+#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-getkeytab.c:635
+#: ipa-client/ipa-getkeytab.c:642 ipa-client/ipa-getkeytab.c:649
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:638 ipa-client/ipa-getkeytab.c:648
+#: ipa-client/ipa-getkeytab.c:655 ipa-client/ipa-getkeytab.c:665
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:655
+#: ipa-client/ipa-getkeytab.c:672
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:674
+#: ipa-client/ipa-getkeytab.c:691 ipa-client/ipa-getkeytab.c:698
#, c-format
msgid "ber_scanf() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:715
+#: ipa-client/ipa-getkeytab.c:736
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:721
+#: ipa-client/ipa-getkeytab.c:742
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:779 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-getkeytab.c:776
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:781
+#: ipa-client/ipa-getkeytab.c:778
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:782
+#: ipa-client/ipa-getkeytab.c:779
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:188
+#: ipa-client/ipa-getkeytab.c:781 ipa-client/ipa-rmkeytab.c:171
msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:189
+#: ipa-client/ipa-getkeytab.c:782 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:787 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:784 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:788 ipa-client/ipa-join.c:973
-#: ipa-client/ipa-rmkeytab.c:191
+#: ipa-client/ipa-getkeytab.c:785 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:790
+#: ipa-client/ipa-getkeytab.c:787
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:791
+#: ipa-client/ipa-getkeytab.c:788
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:790
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:794
+#: ipa-client/ipa-getkeytab.c:791
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:796
+#: ipa-client/ipa-getkeytab.c:793
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798
+#: ipa-client/ipa-getkeytab.c:795
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:800 ipa-client/ipa-join.c:975
+#: ipa-client/ipa-getkeytab.c:797
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:825 ipa-client/ipa-rmkeytab.c:207
-#, c-format
-msgid "Kerberos context initialization failed\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:841
+#: ipa-client/ipa-getkeytab.c:837
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:845
+#: ipa-client/ipa-getkeytab.c:841
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:864
+#: ipa-client/ipa-getkeytab.c:860
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:877
+#: ipa-client/ipa-getkeytab.c:873
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. -P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:889
+#: ipa-client/ipa-getkeytab.c:885
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:897
+#: ipa-client/ipa-getkeytab.c:893
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:905
+#: ipa-client/ipa-getkeytab.c:901
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:913
+#: ipa-client/ipa-getkeytab.c:909
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:920
+#: ipa-client/ipa-getkeytab.c:916
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:939
+#: ipa-client/ipa-getkeytab.c:935
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:948
+#: ipa-client/ipa-getkeytab.c:944
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:954
+#: ipa-client/ipa-getkeytab.c:950
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:67
+#: ipa-client/ipa-join.c:65
#, c-format
msgid "No permission to join this host to the IPA domain.\n"
msgstr ""
-#: ipa-client/ipa-join.c:104 ipa-client/ipa-join.c:116
+#: ipa-client/ipa-join.c:94 ipa-client/ipa-join.c:106
#, c-format
msgid "No write permissions on keytab file '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:121
+#: ipa-client/ipa-join.c:111
#, c-format
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:200
+#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:197
+#, c-format
+msgid "Out of memory!"
+msgstr ""
+
+#: ipa-client/ipa-join.c:204
+#, c-format
+msgid "Unable to initialize connection to ldap server: %s"
+msgstr ""
+
+#: ipa-client/ipa-join.c:210
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:206
+#: ipa-client/ipa-join.c:216
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:216
+#: ipa-client/ipa-join.c:236
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:249
+#: ipa-client/ipa-join.c:269
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:259 ipa-client/ipa-join.c:311
+#: ipa-client/ipa-join.c:279 ipa-client/ipa-join.c:331
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:302
+#: ipa-client/ipa-join.c:322
#, c-format
msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:368
+#: ipa-client/ipa-join.c:390
#, c-format
msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:377
+#: ipa-client/ipa-join.c:399
#, c-format
msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:385
+#: ipa-client/ipa-join.c:407
#, c-format
msgid "Unable to make an LDAP connection to %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:394
+#: ipa-client/ipa-join.c:432
#, c-format
msgid "Searching with %s in %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:400
+#: ipa-client/ipa-join.c:438
#, c-format
msgid "ldap_search_ext_s: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:408
+#: ipa-client/ipa-join.c:446
#, c-format
msgid "Unable to find host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:415
+#: ipa-client/ipa-join.c:453
#, c-format
msgid "Unable to get binddn for host '%s'\n"
msgstr ""
-#: ipa-client/ipa-join.c:428
+#: ipa-client/ipa-join.c:466
#, c-format
msgid "Host already has principal, trying bind anyway\n"
msgstr ""
-#: ipa-client/ipa-join.c:442 ipa-client/ipa-join.c:579
+#: ipa-client/ipa-join.c:480 ipa-client/ipa-join.c:633
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:446
+#: ipa-client/ipa-join.c:484
#, c-format
msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:457
+#: ipa-client/ipa-join.c:495
#, c-format
msgid "principal not found in host entry\n"
msgstr ""
-#: ipa-client/ipa-join.c:564
+#: ipa-client/ipa-join.c:618
#, c-format
msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:646 ipa-client/ipa-join.c:823
+#: ipa-client/ipa-join.c:699 ipa-client/ipa-join.c:900
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:662 ipa-client/ipa-join.c:838
+#: ipa-client/ipa-join.c:715 ipa-client/ipa-join.c:915
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:671 ipa-client/ipa-join.c:848
+#: ipa-client/ipa-join.c:724 ipa-client/ipa-join.c:925
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:679
+#: ipa-client/ipa-join.c:732
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:689
+#: ipa-client/ipa-join.c:741
+#, c-format
+msgid "Error getting default Kerberos realm: %s.\n"
+msgstr ""
+
+#: ipa-client/ipa-join.c:759
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:707
+#: ipa-client/ipa-join.c:777
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:718
+#: ipa-client/ipa-join.c:788
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:726
+#: ipa-client/ipa-join.c:796
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:769
+#: ipa-client/ipa-join.c:846
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:772
+#: ipa-client/ipa-join.c:849
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:854
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:855
+#: ipa-client/ipa-join.c:932
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:863
+#: ipa-client/ipa-join.c:940
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not "
"provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:877
+#: ipa-client/ipa-join.c:954
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:906
+#: ipa-client/ipa-join.c:983
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:909
+#: ipa-client/ipa-join.c:986
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:912
+#: ipa-client/ipa-join.c:989
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:924
+#: ipa-client/ipa-join.c:1001
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:930
+#: ipa-client/ipa-join.c:1007
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "Print the raw XML-RPC output"
+#: ipa-client/ipa-join.c:1042
+msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:963
-msgid "XML-RPC debugging Output"
+#: ipa-client/ipa-join.c:1044
+msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:967
-msgid "Unenroll this host"
-msgstr ""
-
-#: ipa-client/ipa-join.c:967
+#: ipa-client/ipa-join.c:1046
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Use this hostname instead of the node name"
+#: ipa-client/ipa-join.c:1048
+msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:969
-msgid "Host Name"
+#: ipa-client/ipa-join.c:1048 ipa-client/ipa-join.c:1050
+msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:971
+#: ipa-client/ipa-join.c:1050
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:971
-msgid "IPA Server Name"
+#: ipa-client/ipa-join.c:1052
+msgid "Specifies where to store keytab information."
+msgstr ""
+
+#: ipa-client/ipa-join.c:1052
+msgid "filename"
+msgstr ""
+
+#: ipa-client/ipa-join.c:1054
+msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:44
+#: ipa-client/ipa-join.c:1054
+msgid "password"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:43
#, c-format
msgid "Unable to parse principal name\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:46
+#: ipa-client/ipa-rmkeytab.c:45
#, c-format
msgid "krb5_parse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:56
+#: ipa-client/ipa-rmkeytab.c:55
#, c-format
msgid "Removing principal %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:69
+#: ipa-client/ipa-rmkeytab.c:68
#, c-format
msgid "Failed to open keytab\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:73
+#: ipa-client/ipa-rmkeytab.c:72
#, c-format
msgid "principal not found\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:75
+#: ipa-client/ipa-rmkeytab.c:74
#, c-format
msgid "krb5_kt_get_entry %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:83
+#: ipa-client/ipa-rmkeytab.c:82
#, c-format
msgid "Unable to remove entry\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:85
+#: ipa-client/ipa-rmkeytab.c:84
#, c-format
msgid "kvno %d\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:86
+#: ipa-client/ipa-rmkeytab.c:85
#, c-format
msgid "krb5_kt_remove_entry %d: %s\n"
msgstr ""
@@ -2580,33 +7843,38 @@ msgstr ""
msgid "krb5_unparse_name %d: %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:143
+#, c-format
+msgid "realm not found\n"
+msgstr ""
+
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Print debugging information"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:186
+#: ipa-client/ipa-rmkeytab.c:169
msgid "Debugging output"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Remove all principals in this realm"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:193
+#: ipa-client/ipa-rmkeytab.c:176
msgid "Realm name"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:241
+#: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237
#, c-format
-msgid "Failed to open keytab '%s'\n"
+msgid "Failed to open keytab '%s': %s\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:255
+#: ipa-client/ipa-rmkeytab.c:253
#, c-format
msgid "Closing keytab failed\n"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:257
+#: ipa-client/ipa-rmkeytab.c:255
#, c-format
msgid "krb5_kt_close %d: %s\n"
msgstr ""