summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRob Crittenden <rcritten@redhat.com>2011-06-06 13:40:58 -0400
committerRob Crittenden <rcritten@redhat.com>2011-06-21 19:21:55 -0400
commitba42b700eb98978fa5403bf5e39f9c9e31338fb4 (patch)
tree50183759be9810e534701c61923b60d1dd826f8d
parentdd69c7dbe68e8f8674994a54ea913f2dd2e52c32 (diff)
downloadfreeipa-ba42b700eb98978fa5403bf5e39f9c9e31338fb4.zip
freeipa-ba42b700eb98978fa5403bf5e39f9c9e31338fb4.tar.gz
freeipa-ba42b700eb98978fa5403bf5e39f9c9e31338fb4.tar.xz
Update translation files
-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 0c2c9bc..445156d 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 63a43f5..7350d72 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 3244fc5..4d634e3 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 DN