diff options
author | Petr Viktorin <pviktori@redhat.com> | 2012-07-25 11:51:57 -0400 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2012-07-31 15:43:54 +0200 |
commit | 16ca564b1004eb672fe4ca3573e542f5a3ce014b (patch) | |
tree | 81ed51af60983159fc56008add6ba8b753cecf45 /install/po/ipa.pot | |
parent | 051eb5f7e4969bf6c2f45346df2f07324fa21882 (diff) | |
download | freeipa-16ca564b1004eb672fe4ca3573e542f5a3ce014b.tar.gz freeipa-16ca564b1004eb672fe4ca3573e542f5a3ce014b.tar.xz freeipa-16ca564b1004eb672fe4ca3573e542f5a3ce014b.zip |
Update translations
Update the pot file to match current source, and pull
translations from Transifex
The commands used to create this commit were:
tx pull -fa # needs an account and transifex client setup
cd install/po
make update-pot
(update LINGUAS to contain all languages with translations, and no empty ones)
make update-po
Diffstat (limited to 'install/po/ipa.pot')
-rw-r--r-- | install/po/ipa.pot | 3863 |
1 files changed, 2413 insertions, 1450 deletions
diff --git a/install/po/ipa.pot b/install/po/ipa.pot index 8d33915a..399db885 100644 --- a/install/po/ipa.pot +++ b/install/po/ipa.pot @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: ipa\n" "Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/" "newticket\n" -"POT-Creation-Date: 2012-02-21 17:18-0500\n" +"POT-Creation-Date: 2012-07-25 11:37-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -19,54 +19,54 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: ipalib/cli.py:590 +#: ipalib/cli.py:593 #, python-format msgid "Enter %(label)s again to verify: " msgstr "" -#: ipalib/cli.py:598 ipa-client/ipa-getkeytab.c:768 +#: ipalib/cli.py:601 ipa-client/ipa-getkeytab.c:420 #, c-format msgid "Passwords do not match!" msgstr "" -#: ipalib/cli.py:761 +#: ipalib/cli.py:764 #, python-format msgid "Purpose: %s" msgstr "" -#: ipalib/cli.py:778 +#: ipalib/cli.py:781 msgid "Usage: ipa [global-options] COMMAND ..." msgstr "" -#: ipalib/cli.py:780 +#: ipalib/cli.py:783 msgid "Built-in commands:" msgstr "" -#: ipalib/cli.py:782 +#: ipalib/cli.py:785 msgid "Help subtopics:" msgstr "" -#: ipalib/cli.py:785 +#: ipalib/cli.py:788 msgid "Help topics:" msgstr "" -#: ipalib/cli.py:790 +#: ipalib/cli.py:793 msgid "Try `ipa --help` for a list of global options." msgstr "" -#: ipalib/cli.py:824 +#: ipalib/cli.py:827 msgid "Topic commands:" msgstr "" -#: ipalib/cli.py:835 +#: ipalib/cli.py:838 msgid "Command name" msgstr "" -#: ipalib/cli.py:985 +#: ipalib/cli.py:988 msgid "Positional arguments" msgstr "" -#: ipalib/cli.py:1218 +#: ipalib/cli.py:1244 msgid "No file to read" msgstr "" @@ -157,263 +157,297 @@ msgstr "" msgid "Session error" msgstr "" -#: ipalib/errors.py:631 +#: ipalib/errors.py:620 +#, python-format +msgid "Principal %(principal)s cannot be authenticated: %(message)s" +msgstr "" + +#: ipalib/errors.py:638 #, python-format msgid "Insufficient access: %(info)s" msgstr "" -#: ipalib/errors.py:675 +#: ipalib/errors.py:682 #, python-format msgid "command %(name)r takes no arguments" msgstr "" -#: ipalib/errors.py:695 +#: ipalib/errors.py:702 #, 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:725 +#: ipalib/errors.py:732 #, python-format msgid "overlapping arguments and options: %(names)r" msgstr "" -#: ipalib/errors.py:741 +#: ipalib/errors.py:748 #, python-format msgid "%(name)r is required" msgstr "" -#: ipalib/errors.py:757 ipalib/errors.py:773 +#: ipalib/errors.py:764 ipalib/errors.py:780 #, python-format msgid "invalid %(name)r: %(error)s" msgstr "" -#: ipalib/errors.py:789 +#: ipalib/errors.py:796 #, python-format msgid "api has no such namespace: %(name)r" msgstr "" -#: ipalib/errors.py:798 +#: ipalib/errors.py:805 msgid "Passwords do not match" msgstr "" -#: ipalib/errors.py:807 +#: ipalib/errors.py:814 msgid "Command not implemented" msgstr "" -#: ipalib/errors.py:816 +#: ipalib/errors.py:823 msgid "Client is not configured. Run ipa-client-install." msgstr "" -#: ipalib/errors.py:825 +#: ipalib/errors.py:832 #, python-format msgid "Could not get %(name)s interactively" msgstr "" -#: ipalib/errors.py:853 ipalib/errors.py:1093 ipalib/errors.py:1187 -#: ipalib/errors.py:1502 ipalib/errors.py:1519 +#: ipalib/errors.py:860 ipalib/errors.py:1100 ipalib/errors.py:1194 +#: ipalib/errors.py:1559 ipalib/errors.py:1576 #, python-format msgid "%(reason)s" msgstr "" -#: ipalib/errors.py:869 +#: ipalib/errors.py:876 msgid "This entry already exists" msgstr "" -#: ipalib/errors.py:885 +#: ipalib/errors.py:892 msgid "You must enroll a host in order to create a host service" msgstr "" -#: ipalib/errors.py:901 +#: ipalib/errors.py:908 #, python-format msgid "" "Service principal is not of the form: service/fully-qualified host name: " "%(reason)s" msgstr "" -#: ipalib/errors.py:917 +#: ipalib/errors.py:924 msgid "" "The realm for the principal does not match the realm for this IPA server" msgstr "" -#: ipalib/errors.py:933 +#: ipalib/errors.py:940 msgid "This command requires root access" msgstr "" -#: ipalib/errors.py:949 +#: ipalib/errors.py:956 msgid "This is already a posix group" msgstr "" -#: ipalib/errors.py:965 +#: ipalib/errors.py:972 #, python-format msgid "Principal is not of the form user@REALM: %(principal)r" msgstr "" -#: ipalib/errors.py:981 +#: ipalib/errors.py:988 msgid "This entry is already enabled" msgstr "" -#: ipalib/errors.py:997 +#: ipalib/errors.py:1004 msgid "This entry is already disabled" msgstr "" -#: ipalib/errors.py:1013 +#: ipalib/errors.py:1020 msgid "This entry cannot be enabled or disabled" msgstr "" -#: ipalib/errors.py:1029 +#: ipalib/errors.py:1036 msgid "This entry is not a member" msgstr "" -#: ipalib/errors.py:1045 +#: ipalib/errors.py:1052 msgid "A group may not be a member of itself" msgstr "" -#: ipalib/errors.py:1061 +#: ipalib/errors.py:1068 msgid "This entry is already a member" msgstr "" -#: ipalib/errors.py:1077 +#: ipalib/errors.py:1084 #, python-format msgid "Base64 decoding failed: %(reason)s" msgstr "" -#: ipalib/errors.py:1109 +#: ipalib/errors.py:1116 msgid "A group may not be added as a member of itself" msgstr "" -#: ipalib/errors.py:1125 +#: ipalib/errors.py:1132 msgid "The default users group cannot be removed" msgstr "" -#: ipalib/errors.py:1141 +#: ipalib/errors.py:1148 msgid "Host does not have corresponding DNS A record" msgstr "" -#: ipalib/errors.py:1156 +#: ipalib/errors.py:1163 msgid "Deleting a managed group is not allowed. It must be detached first." msgstr "" -#: ipalib/errors.py:1171 +#: ipalib/errors.py:1178 msgid "A managed group cannot have a password policy." msgstr "" -#: ipalib/errors.py:1203 +#: ipalib/errors.py:1210 #, python-format msgid "'%(entry)s' doesn't have a certificate." msgstr "" -#: ipalib/errors.py:1219 +#: ipalib/errors.py:1226 #, python-format msgid "Unable to create private group. A group '%(group)s' already exists." msgstr "" -#: ipalib/errors.py:1235 +#: ipalib/errors.py:1242 #, python-format msgid "" "A problem was encountered when verifying that all members were %(verb)s: " "%(exc)s" msgstr "" -#: ipalib/errors.py:1253 +#: ipalib/errors.py:1260 #, python-format msgid "%(attr)s does not contain '%(value)s'" msgstr "" -#: ipalib/errors.py:1270 +#: ipalib/errors.py:1277 #, python-format msgid "" "The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" #: ipalib/errors.py:1294 +msgid "This group already allows external members" +msgstr "" + +#: ipalib/errors.py:1311 +msgid "This group cannot be posix because it is external" +msgstr "" + +#: ipalib/errors.py:1328 +msgid "This is already a posix group and cannot be converted to external one" +msgstr "" + +#: ipalib/errors.py:1351 #, python-format msgid "no command nor help topic %(topic)r" msgstr "" -#: ipalib/errors.py:1318 +#: ipalib/errors.py:1375 msgid "change collided with another change" msgstr "" -#: ipalib/errors.py:1334 +#: ipalib/errors.py:1391 msgid "no modifications to be performed" msgstr "" -#: ipalib/errors.py:1350 +#: ipalib/errors.py:1407 #, python-format msgid "%(desc)s: %(info)s" msgstr "" -#: ipalib/errors.py:1366 +#: ipalib/errors.py:1423 msgid "limits exceeded for this query" msgstr "" -#: ipalib/errors.py:1381 +#: ipalib/errors.py:1438 #, python-format msgid "%(info)s" msgstr "" -#: ipalib/errors.py:1396 +#: ipalib/errors.py:1453 msgid "modifying primary key is not allowed" msgstr "" -#: ipalib/errors.py:1412 +#: ipalib/errors.py:1469 #, python-format msgid "%(attr)s: Only one value allowed." msgstr "" -#: ipalib/errors.py:1428 +#: ipalib/errors.py:1485 #, python-format msgid "%(attr)s: Invalid syntax." msgstr "" -#: ipalib/errors.py:1444 +#: ipalib/errors.py:1501 #, python-format msgid "Bad search filter %(info)s" msgstr "" -#: ipalib/errors.py:1469 +#: ipalib/errors.py:1526 #, python-format msgid "Certificate operation cannot be completed: %(error)s" msgstr "" -#: ipalib/errors.py:1485 +#: ipalib/errors.py:1542 #, python-format msgid "Certificate format error: %(error)s" msgstr "" -#: ipalib/errors.py:1536 +#: ipalib/errors.py:1593 msgid "Already registered" msgstr "" -#: ipalib/errors.py:1552 +#: ipalib/errors.py:1609 msgid "Not registered yet" msgstr "" -#: ipalib/errors.py:1568 +#: ipalib/errors.py:1625 #, python-format msgid "%(key)s cannot be deleted because %(label)s %(dependent)s requires it" msgstr "" -#: ipalib/frontend.py:408 +#: ipalib/errors.py:1641 +#, python-format +msgid "" +"%(key)s cannot be deleted because it is the last member of %(label)s " +"%(container)s" +msgstr "" + +#: ipalib/errors.py:1657 +#, python-format +msgid "%(label)s %(key)s cannot be deleted: %(reason)s" +msgstr "" + +#: ipalib/frontend.py:411 msgid "Results are truncated, try a more specific search" msgstr "" -#: ipalib/frontend.py:821 +#: ipalib/frontend.py:531 +#, python-format +msgid "Unknown option: %(option)s" +msgstr "" + +#: ipalib/frontend.py:890 msgid "" "Retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/frontend.py:827 +#: ipalib/frontend.py:896 msgid "Print entries as stored on the server. Only affects output format." msgstr "" -#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69 +#: ipalib/frontend.py:901 ipalib/plugins/batch.py:69 msgid "Client version. Used to determine if server will accept request." msgstr "" -#: ipalib/frontend.py:967 +#: ipalib/frontend.py:1058 msgid "Forward to server instead of running locally" msgstr "" @@ -453,99 +487,106 @@ msgstr "" msgid "True means the operation was successful" msgstr "" -#: ipalib/parameters.py:361 +#: ipalib/parameters.py:370 msgid "incorrect type" msgstr "" -#: ipalib/parameters.py:364 +#: ipalib/parameters.py:373 msgid "Only one value is allowed" msgstr "" -#: ipalib/parameters.py:1033 +#: ipalib/parameters.py:998 msgid "must be True or False" msgstr "" -#: ipalib/parameters.py:1134 +#: ipalib/parameters.py:1099 msgid "must be an integer" msgstr "" -#: ipalib/parameters.py:1186 +#: ipalib/parameters.py:1151 #, python-format msgid "must be at least %(minvalue)d" msgstr "" -#: ipalib/parameters.py:1196 +#: ipalib/parameters.py:1161 #, python-format msgid "can be at most %(maxvalue)d" msgstr "" -#: ipalib/parameters.py:1242 +#: ipalib/parameters.py:1204 msgid "must be a decimal number" msgstr "" -#: ipalib/parameters.py:1283 +#: ipalib/parameters.py:1250 #, python-format msgid "must be at least %(minvalue)s" msgstr "" -#: ipalib/parameters.py:1293 +#: ipalib/parameters.py:1260 #, python-format msgid "can be at most %(maxvalue)s" msgstr "" -#: ipalib/parameters.py:1387 +#: ipalib/parameters.py:1269 +#, python-format +msgid "" +"number class '%(cls)s' is not included in a list of allowed number classes: " +"%(allowed)s" +msgstr "" + +#: ipalib/parameters.py:1393 #, python-format msgid "must match pattern \"%(pattern)s\"" msgstr "" -#: ipalib/parameters.py:1405 +#: ipalib/parameters.py:1411 msgid "must be binary data" msgstr "" -#: ipalib/parameters.py:1421 +#: ipalib/parameters.py:1427 #, python-format msgid "must be at least %(minlength)d bytes" msgstr "" -#: ipalib/parameters.py:1431 +#: ipalib/parameters.py:1437 #, python-format msgid "can be at most %(maxlength)d bytes" msgstr "" -#: ipalib/parameters.py:1441 +#: ipalib/parameters.py:1447 #, python-format msgid "must be exactly %(length)d bytes" msgstr "" -#: ipalib/parameters.py:1471 +#: ipalib/parameters.py:1477 msgid "must be Unicode text" msgstr "" -#: ipalib/parameters.py:1504 +#: ipalib/parameters.py:1510 msgid "Leading and trailing spaces are not allowed" msgstr "" -#: ipalib/parameters.py:1512 +#: ipalib/parameters.py:1518 #, python-format msgid "must be at least %(minlength)d characters" msgstr "" -#: ipalib/parameters.py:1522 +#: ipalib/parameters.py:1528 #, python-format msgid "can be at most %(maxlength)d characters" msgstr "" -#: ipalib/parameters.py:1532 +#: ipalib/parameters.py:1538 #, python-format msgid "must be exactly %(length)d characters" msgstr "" -#: ipalib/parameters.py:1550 +#: ipalib/parameters.py:1557 #, python-format msgid "The character '%(char)r' is not allowed." msgstr "" -#: ipalib/parameters.py:1594 +#: ipalib/parameters.py:1601 #, python-format msgid "must be one of %(values)r" msgstr "" @@ -617,7 +658,7 @@ msgstr "" msgid "ACI name" msgstr "" -#: ipalib/plugins/aci.py:436 ipalib/plugins/permission.py:112 +#: ipalib/plugins/aci.py:436 ipalib/plugins/permission.py:121 msgid "Permission" msgstr "" @@ -625,17 +666,17 @@ msgstr "" msgid "Permission ACI grants access to" msgstr "" -#: ipalib/plugins/aci.py:442 ipalib/plugins/delegation.py:103 +#: ipalib/plugins/aci.py:442 ipalib/plugins/delegation.py:102 msgid "User group" msgstr "" -#: ipalib/plugins/aci.py:443 ipalib/plugins/delegation.py:104 +#: ipalib/plugins/aci.py:443 ipalib/plugins/delegation.py:103 msgid "User group ACI grants access to" msgstr "" #: ipalib/plugins/aci.py:448 ipalib/plugins/baseldap.py:65 -#: ipalib/plugins/delegation.py:84 ipalib/plugins/permission.py:111 -#: ipalib/plugins/permission.py:122 ipalib/plugins/selfservice.py:83 +#: ipalib/plugins/delegation.py:83 ipalib/plugins/permission.py:120 +#: ipalib/plugins/permission.py:133 ipalib/plugins/selfservice.py:85 msgid "Permissions" msgstr "" @@ -644,17 +685,17 @@ msgid "" "comma-separated list of permissions to grant(read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/aci.py:457 ipalib/plugins/delegation.py:91 -#: ipalib/plugins/permission.py:129 ipalib/plugins/selfservice.py:90 +#: ipalib/plugins/aci.py:457 ipalib/plugins/delegation.py:90 +#: ipalib/plugins/permission.py:140 ipalib/plugins/selfservice.py:92 msgid "Attributes" msgstr "" -#: ipalib/plugins/aci.py:458 ipalib/plugins/delegation.py:92 -#: ipalib/plugins/permission.py:130 ipalib/plugins/selfservice.py:91 +#: ipalib/plugins/aci.py:458 ipalib/plugins/delegation.py:91 +#: ipalib/plugins/permission.py:141 ipalib/plugins/selfservice.py:93 msgid "Comma-separated list of attributes" msgstr "" -#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:137 +#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:148 msgid "Type" msgstr "" @@ -670,15 +711,15 @@ msgstr "" msgid "Member of a group" msgstr "" -#: ipalib/plugins/aci.py:477 ipalib/plugins/permission.py:150 +#: ipalib/plugins/aci.py:477 ipalib/plugins/permission.py:161 msgid "Filter" msgstr "" -#: ipalib/plugins/aci.py:478 ipalib/plugins/permission.py:151 +#: ipalib/plugins/aci.py:478 ipalib/plugins/permission.py:162 msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" -#: ipalib/plugins/aci.py:483 ipalib/plugins/permission.py:156 +#: ipalib/plugins/aci.py:483 ipalib/plugins/permission.py:167 msgid "Subtree" msgstr "" @@ -686,7 +727,7 @@ msgstr "" msgid "Subtree to apply ACI to" msgstr "" -#: ipalib/plugins/aci.py:489 ipalib/plugins/permission.py:162 +#: ipalib/plugins/aci.py:489 ipalib/plugins/permission.py:173 msgid "Target group" msgstr "" @@ -716,29 +757,29 @@ msgstr "" msgid "Deleted ACI \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:608 ipalib/plugins/aci.py:871 -#: ipalib/plugins/aci.py:912 ipalib/plugins/delegation.py:60 -#: ipalib/plugins/permission.py:88 ipalib/plugins/selfservice.py:59 +#: ipalib/plugins/aci.py:607 ipalib/plugins/aci.py:880 +#: ipalib/plugins/aci.py:921 ipalib/plugins/delegation.py:59 +#: ipalib/plugins/permission.py:87 ipalib/plugins/selfservice.py:58 msgid "ACI" msgstr "" -#: ipalib/plugins/aci.py:614 +#: ipalib/plugins/aci.py:615 #, python-format msgid "Modified ACI \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:692 +#: ipalib/plugins/aci.py:690 #, python-format msgid "%(count)d ACI matched" msgid_plural "%(count)d ACIs matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/aci.py:919 +#: ipalib/plugins/aci.py:928 msgid "New ACI name" msgstr "" -#: ipalib/plugins/aci.py:923 +#: ipalib/plugins/aci.py:932 #, python-format msgid "Renamed ACI to \"%(value)s\"" msgstr "" @@ -753,12 +794,17 @@ msgid "" "a group or hostgroup based upon attribute information.\n" "\n" "A rule is directly associated with a group by name, so you cannot create\n" -"a rule without an accompanying group or hostgroup\n" +"a rule without an accompanying group or hostgroup.\n" "\n" "A condition is a regular expression used by 389-ds to match a new incoming\n" "entry with an automember rule. If it matches an inclusive rule then the\n" "entry is added to the appropriate group or hostgroup.\n" "\n" +"A default group or hostgroup could be specified for entries that do not\n" +"match any rule. In case of user entries this group will be a fallback group\n" +"because all users are by default members of group specified in IPA config.\n" +"\n" +"\n" "EXAMPLES:\n" "\n" " Add the initial group or hostgroup:\n" @@ -804,16 +850,16 @@ msgid "" " Modify the automember rule:\n" " ipa automember-mod\n" "\n" -" Set the default target group:\n" +" Set the default (fallback) target group:\n" " ipa automember-default-group-set --default-group=webservers --" "type=hostgroup\n" " ipa automember-default-group-set --default-group=ipausers --type=group\n" "\n" -" Remove the default target group:\n" +" Remove the default (fallback) target group:\n" " ipa automember-default-group-remove --type=hostgroup\n" " ipa automember-default-group-remove --type=group\n" "\n" -" Show the default target group:\n" +" Show the default (fallback) target group:\n" " ipa automember-default-group-show --type=hostgroup\n" " ipa automember-default-group-show --type=group\n" "\n" @@ -829,119 +875,119 @@ msgid "" " ipa automember-del --type=group devel\n" msgstr "" -#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115 +#: ipalib/plugins/automember.py:119 ipalib/plugins/automember.py:120 msgid "Inclusive Regex" msgstr "" -#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122 +#: ipalib/plugins/automember.py:126 ipalib/plugins/automember.py:127 msgid "Exclusive Regex" msgstr "" -#: ipalib/plugins/automember.py:127 +#: ipalib/plugins/automember.py:132 msgid "Attribute Key" msgstr "" -#: ipalib/plugins/automember.py:128 +#: ipalib/plugins/automember.py:133 msgid "" "Attribute to filter via regex. For example fqdn for a host, or manager for a " "user" msgstr "" -#: ipalib/plugins/automember.py:135 +#: ipalib/plugins/automember.py:140 msgid "Grouping Type" msgstr "" -#: ipalib/plugins/automember.py:136 +#: ipalib/plugins/automember.py:141 msgid "Grouping to which the rule applies" msgstr "" -#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145 +#: ipalib/plugins/automember.py:149 ipalib/plugins/automember.py:150 msgid "Automember Rule" msgstr "" -#: ipalib/plugins/automember.py:166 +#: ipalib/plugins/automember.py:171 msgid "Auto Membership Rule" msgstr "" -#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:574 -#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:184 +#: ipalib/plugins/automember.py:176 ipalib/plugins/automount.py:574 +#: ipalib/plugins/group.py:123 ipalib/plugins/hbacrule.py:184 #: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 -#: ipalib/plugins/host.py:284 ipalib/plugins/hostgroup.py:87 -#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76 +#: ipalib/plugins/host.py:244 ipalib/plugins/hostgroup.py:90 +#: ipalib/plugins/netgroup.py:122 ipalib/plugins/privilege.py:73 #: ipalib/plugins/role.py:92 ipalib/plugins/selinuxusermap.py:173 #: ipalib/plugins/sudocmd.py:76 ipalib/plugins/sudocmdgroup.py:78 -#: ipalib/plugins/sudorule.py:106 +#: ipalib/plugins/sudorule.py:111 msgid "Description" msgstr "" -#: ipalib/plugins/automember.py:172 +#: ipalib/plugins/automember.py:177 msgid "A description of this auto member rule" msgstr "" -#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509 -msgid "Default Group" +#: ipalib/plugins/automember.py:181 ipalib/plugins/automember.py:514 +msgid "Default (fallback) Group" msgstr "" -#: ipalib/plugins/automember.py:177 +#: ipalib/plugins/automember.py:182 msgid "Default group for entries to land" msgstr "" -#: ipalib/plugins/automember.py:188 +#: ipalib/plugins/automember.py:193 #, python-format msgid "Group: %s not found!" msgstr "" -#: ipalib/plugins/automember.py:215 +#: ipalib/plugins/automember.py:220 #, python-format msgid "%s is not a valid attribute." msgstr "" -#: ipalib/plugins/automember.py:228 +#: ipalib/plugins/automember.py:233 msgid "" "\n" " Add an automember rule.\n" " " msgstr "" -#: ipalib/plugins/automember.py:233 +#: ipalib/plugins/automember.py:238 #, python-format msgid "Added automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/automember.py:239 +#: ipalib/plugins/automember.py:244 msgid "Auto Membership is not configured" msgstr "" -#: ipalib/plugins/automember.py:252 +#: ipalib/plugins/automember.py:257 msgid "" "\n" " Add conditions to an automember rule.\n" " " msgstr "" -#: ipalib/plugins/automember.py:257 +#: ipalib/plugins/automember.py:262 msgid "Failed to add" msgstr "" -#: ipalib/plugins/automember.py:264 +#: ipalib/plugins/automember.py:269 #, python-format msgid "Added condition(s) to \"%(value)s\"" msgstr "" -#: ipalib/plugins/automember.py:273 +#: ipalib/plugins/automember.py:278 msgid "Conditions that could not be added" msgstr "" -#: ipalib/plugins/automember.py:277 +#: ipalib/plugins/automember.py:282 msgid "Number of conditions added" msgstr "" -#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372 +#: ipalib/plugins/automember.py:291 ipalib/plugins/automember.py:377 #, python-format msgid "Auto member rule: %s not found!" msgstr "" -#: ipalib/plugins/automember.py:329 +#: ipalib/plugins/automember.py:334 msgid "" "\n" " Override this so we can add completed and failed to the return " @@ -949,114 +995,115 @@ msgid "" " " msgstr "" -#: ipalib/plugins/automember.py:345 +#: ipalib/plugins/automember.py:350 msgid "" "\n" " Remove conditions from an automember rule.\n" " " msgstr "" -#: ipalib/plugins/automember.py:350 +#: ipalib/plugins/automember.py:355 #, python-format msgid "Removed condition(s) from \"%(value)s\"" msgstr "" -#: ipalib/plugins/automember.py:359 +#: ipalib/plugins/automember.py:364 msgid "Conditions that could not be removed" msgstr "" -#: ipalib/plugins/automember.py:363 +#: ipalib/plugins/automember.py:368 msgid "Number of conditions removed" msgstr "" -#: ipalib/plugins/automember.py:418 +#: ipalib/plugins/automember.py:423 msgid "" "\n" " Override this so we can set completed and failed.\n" " " msgstr "" -#: ipalib/plugins/automember.py:434 +#: ipalib/plugins/automember.py:439 msgid "" "\n" " Modify an automember rule.\n" " " msgstr "" -#: ipalib/plugins/automember.py:439 +#: ipalib/plugins/automember.py:444 #, python-format msgid "Modified automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/automember.py:450 +#: ipalib/plugins/automember.py:455 msgid "" "\n" " Delete an automember rule.\n" " " msgstr "" -#: ipalib/plugins/automember.py:455 +#: ipalib/plugins/automember.py:460 #, python-format msgid "Deleted automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/automember.py:466 +#: ipalib/plugins/automember.py:471 msgid "" "\n" " Search for automember rules.\n" " " msgstr "" -#: ipalib/plugins/automember.py:473 +#: ipalib/plugins/automember.py:478 #, python-format msgid "%(count)d rules matched" msgid_plural "%(count)d rules matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/automember.py:486 +#: ipalib/plugins/automember.py:491 msgid "" "\n" " Display information about an automember rule.\n" " " msgstr "" -#: ipalib/plugins/automember.py:502 +#: ipalib/plugins/automember.py:507 msgid "" "\n" -" Set default group for all unmatched entries.\n" +" Set default (fallback) group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/automember.py:510 -msgid "Default group for entires to land" +#: ipalib/plugins/automember.py:515 +msgid "Default (fallback) group for entries to land" msgstr "" -#: ipalib/plugins/automember.py:514 +#: ipalib/plugins/automember.py:519 #, python-format -msgid "Set default group for automember \"%(value)s\"" +msgid "Set default (fallback) group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/automember.py:531 +#: ipalib/plugins/automember.py:536 msgid "" "\n" -" Remove default group for all unmatched entries.\n" +" Remove default (fallback) group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/automember.py:536 +#: ipalib/plugins/automember.py:541 #, python-format -msgid "Removed default group for automember \"%(value)s\"" +msgid "Removed default (fallback) group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/automember.py:548 -msgid "No default group set" +#: ipalib/plugins/automember.py:553 ipalib/plugins/automember.py:560 +#: ipalib/plugins/automember.py:584 +msgid "No default (fallback) group set" msgstr "" -#: ipalib/plugins/automember.py:567 +#: ipalib/plugins/automember.py:572 msgid "" "\n" -" Display information about the default automember groups.\n" +" Display information about the default (fallback) automember groups.\n" " " msgstr "" @@ -1184,7 +1231,7 @@ msgstr "" msgid "Automount Location" msgstr "" -#: ipalib/plugins/automount.py:215 ipalib/plugins/host.py:294 +#: ipalib/plugins/automount.py:215 ipalib/plugins/host.py:254 msgid "Location" msgstr "" @@ -1333,18 +1380,18 @@ msgstr "" msgid "automount keys" msgstr "" -#: ipalib/plugins/automount.py:654 ipalib/plugins/automount.py:870 -#: ipalib/plugins/automount.py:977 +#: ipalib/plugins/automount.py:654 ipalib/plugins/automount.py:876 +#: ipalib/plugins/automount.py:985 msgid "Key" msgstr "" -#: ipalib/plugins/automount.py:655 ipalib/plugins/automount.py:871 -#: ipalib/plugins/automount.py:978 +#: ipalib/plugins/automount.py:655 ipalib/plugins/automount.py:877 +#: ipalib/plugins/automount.py:986 msgid "Automount key name." msgstr "" -#: ipalib/plugins/automount.py:660 ipalib/plugins/automount.py:875 -#: ipalib/plugins/automount.py:982 +#: ipalib/plugins/automount.py:660 ipalib/plugins/automount.py:881 +#: ipalib/plugins/automount.py:990 msgid "Mount information" msgstr "" @@ -1384,79 +1431,80 @@ msgid "" "entry." msgstr "" -#: ipalib/plugins/automount.py:784 +#: ipalib/plugins/automount.py:786 msgid "Create a new automount key." msgstr "" -#: ipalib/plugins/automount.py:786 +#: ipalib/plugins/automount.py:788 #, python-format msgid "Added automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:809 +#: ipalib/plugins/automount.py:815 msgid "Create a new indirect mount point." msgstr "" -#: ipalib/plugins/automount.py:811 +#: ipalib/plugins/automount.py:817 #, python-format msgid "Added automount indirect map \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:816 +#: ipalib/plugins/automount.py:822 msgid "Mount point" msgstr "" -#: ipalib/plugins/automount.py:820 +#: ipalib/plugins/automount.py:826 msgid "Parent map" msgstr "" -#: ipalib/plugins/automount.py:821 +#: ipalib/plugins/automount.py:827 msgid "Name of parent automount map (default: auto.master)." msgstr "" -#: ipalib/plugins/automount.py:832 +#: ipalib/plugins/automount.py:841 msgid "mount point is relative to parent map, cannot begin with /" msgstr "" -#: ipalib/plugins/automount.py:863 +#: ipalib/plugins/automount.py:869 msgid "Delete an automount key." msgstr "" -#: ipalib/plugins/automount.py:865 +#: ipalib/plugins/automount.py:871 #, python-format msgid "Deleted automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:905 +#: ipalib/plugins/automount.py:911 msgid "Modify an automount key." msgstr "" -#: ipalib/plugins/automount.py:907 +#: ipalib/plugins/automount.py:913 #, python-format msgid "Modified automount key \"%(value)s\"" msgstr "" -#: ipalib/plugins/automount.py:912 +#: ipalib/plugins/automount.py:920 msgid "New mount information" msgstr "" -#: ipalib/plugins/automount.py:961 +#: ipalib/plugins/automount.py:969 msgid "Search for an automount key." msgstr "" -#: ipalib/plugins/automount.py:964 +#: ipalib/plugins/automount.py:972 #, python-format msgid "%(count)d automount key matched" msgid_plural "%(count)d automount keys matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/automount.py:972 +#: ipalib/plugins/automount.py:980 msgid "Display an automount key." msgstr "" -#: ipalib/plugins/baseldap.py:41 ipalib/plugins/entitle.py:487 -#: ipalib/plugins/migration.py:340 ipalib/plugins/user.py:240 +#: ipalib/plugins/baseldap.py:41 ipalib/plugins/entitle.py:488 +#: ipalib/plugins/internal.py:273 ipalib/plugins/internal.py:591 +#: ipalib/plugins/migration.py:420 ipalib/plugins/user.py:266 msgid "Password" msgstr "" @@ -1562,204 +1610,216 @@ msgid "Indirect Member netgroups" msgstr "" #: ipalib/plugins/baseldap.py:161 -msgid "External host" -msgstr "" - -#: ipalib/plugins/baseldap.py:164 msgid "Failed source hosts/hostgroups" msgstr "" -#: ipalib/plugins/baseldap.py:167 +#: ipalib/plugins/baseldap.py:164 msgid "Failed hosts/hostgroups" msgstr "" -#: ipalib/plugins/baseldap.py:170 +#: ipalib/plugins/baseldap.py:167 msgid "Failed users/groups" msgstr "" -#: ipalib/plugins/baseldap.py:173 +#: ipalib/plugins/baseldap.py:170 msgid "Failed service/service groups" msgstr "" -#: ipalib/plugins/baseldap.py:176 +#: ipalib/plugins/baseldap.py:173 msgid "Failed managedby" msgstr "" -#: ipalib/plugins/baseldap.py:179 +#: ipalib/plugins/baseldap.py:176 msgid "Failed to remove" msgstr "" -#: ipalib/plugins/baseldap.py:183 +#: ipalib/plugins/baseldap.py:180 msgid "Failed RunAs" msgstr "" -#: ipalib/plugins/baseldap.py:186 +#: ipalib/plugins/baseldap.py:183 msgid "Failed RunAsGroup" msgstr "" -#: ipalib/plugins/baseldap.py:400 +#: ipalib/plugins/baseldap.py:322 +msgid "External host" +msgstr "" + +#: ipalib/plugins/baseldap.py:446 +msgid "An IPA master host cannot be deleted or disabled" +msgstr "" + +#: ipalib/plugins/baseldap.py:461 msgid "entry" msgstr "" -#: ipalib/plugins/baseldap.py:401 +#: ipalib/plugins/baseldap.py:462 msgid "entries" msgstr "" -#: ipalib/plugins/baseldap.py:433 ipalib/plugins/baseldap.py:434 +#: ipalib/plugins/baseldap.py:494 ipalib/plugins/baseldap.py:495 msgid "Entry" msgstr "" -#: ipalib/plugins/baseldap.py:436 +#: ipalib/plugins/baseldap.py:497 #, python-format msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/baseldap.py:437 +#: ipalib/plugins/baseldap.py:498 #, python-format msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/baseldap.py:438 +#: ipalib/plugins/baseldap.py:499 #, python-format msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/baseldap.py:439 +#: ipalib/plugins/baseldap.py:500 #, python-format msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/baseldap.py:726 +#: ipalib/plugins/baseldap.py:761 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:732 +#: ipalib/plugins/baseldap.py:767 msgid "" "Add an attribute/value pair. Format is attr=value. The attribute\n" "must be part of the schema." msgstr "" -#: ipalib/plugins/baseldap.py:738 +#: ipalib/plugins/baseldap.py:773 msgid "" "Delete an attribute/value pair. The option will be evaluated\n" "last, after all sets and adds." msgstr "" -#: ipalib/plugins/baseldap.py:1062 +#: ipalib/plugins/baseldap.py:801 +msgid "attribute is not configurable" +msgstr "" + +#: ipalib/plugins/baseldap.py:892 +msgid "No such attribute on this entry" +msgstr "" + +#: ipalib/plugins/baseldap.py:1141 msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/baseldap.py:1087 ipalib/plugins/baseldap.py:1159 -#: ipalib/plugins/internal.py:437 +#: ipalib/plugins/baseldap.py:1166 ipalib/plugins/baseldap.py:1226 +#: ipalib/plugins/internal.py:487 msgid "Rights" msgstr "" -#: ipalib/plugins/baseldap.py:1088 ipalib/plugins/baseldap.py:1160 +#: ipalib/plugins/baseldap.py:1167 ipalib/plugins/baseldap.py:1227 msgid "" "Display the access rights of this entry (requires --all). See ipa man page " "for details." msgstr "" -#: ipalib/plugins/baseldap.py:1169 +#: ipalib/plugins/baseldap.py:1236 msgid "Rename" msgstr "" -#: ipalib/plugins/baseldap.py:1170 +#: ipalib/plugins/baseldap.py:1237 #, python-format msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/baseldap.py:1262 +#: ipalib/plugins/baseldap.py:1313 msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/baseldap.py:1387 ipalib/plugins/baseldap.py:1889 +#: ipalib/plugins/baseldap.py:1423 ipalib/plugins/baseldap.py:1867 #, python-format msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/baseldap.py:1399 +#: ipalib/plugins/baseldap.py:1435 #, python-format msgid "member %s" msgstr "" -#: ipalib/plugins/baseldap.py:1429 ipalib/plugins/baseldap.py:1914 +#: ipalib/plugins/baseldap.py:1465 ipalib/plugins/baseldap.py:1892 #, python-format msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/baseldap.py:1437 ipalib/plugins/baseldap.py:1926 -#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178 +#: ipalib/plugins/baseldap.py:1473 ipalib/plugins/baseldap.py:1904 +#: ipalib/plugins/privilege.py:150 ipalib/plugins/privilege.py:175 #: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/baseldap.py:1441 ipalib/plugins/baseldap.py:1930 +#: ipalib/plugins/baseldap.py:1477 ipalib/plugins/baseldap.py:1908 msgid "Number of members added" msgstr "" -#: ipalib/plugins/baseldap.py:1535 ipalib/plugins/baseldap.py:2027 +#: ipalib/plugins/baseldap.py:1554 ipalib/plugins/baseldap.py:1988 #, python-format msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/baseldap.py:1542 ipalib/plugins/baseldap.py:2039 +#: ipalib/plugins/baseldap.py:1561 ipalib/plugins/baseldap.py:2000 msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/baseldap.py:1546 ipalib/plugins/baseldap.py:2043 +#: ipalib/plugins/baseldap.py:1565 ipalib/plugins/baseldap.py:2004 msgid "Number of members removed" msgstr "" -#: ipalib/plugins/baseldap.py:1642 +#: ipalib/plugins/baseldap.py:1644 msgid "Primary key only" msgstr "" -#: ipalib/plugins/baseldap.py:1643 +#: ipalib/plugins/baseldap.py:1645 #, python-format msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/baseldap.py:1651 +#: ipalib/plugins/baseldap.py:1653 #, python-format msgid "" "Search for %(searched_object)s with these %(relationship)s %(ldap_object)s." msgstr "" -#: ipalib/plugins/baseldap.py:1652 +#: ipalib/plugins/baseldap.py:1654 #, python-format msgid "" "Search for %(searched_object)s without these %(relationship)s " "%(ldap_object)s." msgstr "" -#: ipalib/plugins/baseldap.py:1660 +#: ipalib/plugins/baseldap.py:1663 msgid "Time Limit" msgstr "" -#: ipalib/plugins/baseldap.py:1661 +#: ipalib/plugins/baseldap.py:1664 msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/baseldap.py:1667 ipalib/plugins/hbactest.py:214 +#: ipalib/plugins/baseldap.py:1670 ipalib/plugins/hbactest.py:214 msgid "Size Limit" msgstr "" -#: ipalib/plugins/baseldap.py:1668 +#: ipalib/plugins/baseldap.py:1671 msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/baseldap.py:1681 +#: ipalib/plugins/baseldap.py:1684 msgid "A string searched in all relevant object attributes" msgstr "" -#: ipalib/plugins/baseldap.py:1988 +#: ipalib/plugins/baseldap.py:1955 msgid "added" msgstr "" -#: ipalib/plugins/baseldap.py:2101 +#: ipalib/plugins/baseldap.py:2051 msgid "removed" msgstr "" @@ -1852,7 +1912,7 @@ msgstr "" msgid "CSR" msgstr "" -#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228 +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:244 msgid "Principal" msgstr "" @@ -1864,113 +1924,117 @@ msgstr "" msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439 -#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:323 -#: ipalib/plugins/internal.py:348 ipalib/plugins/service.py:235 +#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:434 +#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:283 +#: ipalib/plugins/internal.py:386 ipalib/plugins/service.py:251 msgid "Certificate" msgstr "" -#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442 -#: ipalib/plugins/host.py:195 ipalib/plugins/service.py:94 +#: ipalib/plugins/cert.py:239 ipalib/plugins/cert.py:437 +#: ipalib/plugins/host.py:149 ipalib/plugins/service.py:94 msgid "Subject" msgstr "" -#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445 -#: ipalib/plugins/host.py:201 ipalib/plugins/service.py:100 +#: ipalib/plugins/cert.py:242 ipalib/plugins/cert.py:440 +#: ipalib/plugins/host.py:158 ipalib/plugins/service.py:103 msgid "Issuer" msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448 -#: ipalib/plugins/host.py:204 ipalib/plugins/service.py:103 +#: ipalib/plugins/cert.py:245 ipalib/plugins/cert.py:443 +#: ipalib/plugins/host.py:161 ipalib/plugins/service.py:106 msgid "Not Before" msgstr "" -#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451 -#: ipalib/plugins/host.py:207 ipalib/plugins/service.py:106 +#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:446 +#: ipalib/plugins/host.py:164 ipalib/plugins/service.py:109 msgid "Not After" msgstr "" -#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454 -#: ipalib/plugins/host.py:210 ipalib/plugins/service.py:109 +#: ipalib/plugins/cert.py:251 ipalib/plugins/cert.py:449 +#: ipalib/plugins/host.py:167 ipalib/plugins/service.py:112 msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457 -#: ipalib/plugins/host.py:213 ipalib/plugins/service.py:112 +#: ipalib/plugins/cert.py:254 ipalib/plugins/cert.py:452 +#: ipalib/plugins/host.py:170 ipalib/plugins/service.py:115 msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427 +#: ipalib/plugins/cert.py:257 ipalib/plugins/cert.py:422 msgid "Serial number" msgstr "" -#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230 -#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57 +#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:458 +msgid "Serial number (hex)" +msgstr "" + +#: ipalib/plugins/cert.py:267 ipalib/plugins/entitle.py:230 +#: ipalib/plugins/entitle.py:584 ipalib/plugins/misc.py:57 msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/cert.py:400 +#: ipalib/plugins/cert.py:395 msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/cert.py:404 +#: ipalib/plugins/cert.py:399 msgid "Request id" msgstr "" -#: ipalib/plugins/cert.py:410 +#: ipalib/plugins/cert.py:405 msgid "Request status" msgstr "" -#: ipalib/plugins/cert.py:428 +#: ipalib/plugins/cert.py:423 msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ipalib/plugins/cert.py:433 +#: ipalib/plugins/cert.py:428 msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:216 -#: ipalib/plugins/service.py:115 +#: ipalib/plugins/cert.py:455 ipalib/plugins/host.py:173 +#: ipalib/plugins/service.py:118 msgid "Revocation reason" msgstr "" -#: ipalib/plugins/cert.py:466 +#: ipalib/plugins/cert.py:464 msgid "Output filename" msgstr "" -#: ipalib/plugins/cert.py:467 +#: ipalib/plugins/cert.py:465 msgid "File to store the certificate in." msgstr "" -#: ipalib/plugins/cert.py:518 +#: ipalib/plugins/cert.py:516 msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/cert.py:524 +#: ipalib/plugins/cert.py:522 msgid "Revoked" msgstr "" -#: ipalib/plugins/cert.py:532 +#: ipalib/plugins/cert.py:530 msgid "Reason" msgstr "" -#: ipalib/plugins/cert.py:533 +#: ipalib/plugins/cert.py:531 msgid "Reason for revoking the certificate (0-10)" msgstr "" -#: ipalib/plugins/cert.py:554 +#: ipalib/plugins/cert.py:552 msgid "7 is not a valid revocation reason" msgstr "" -#: ipalib/plugins/cert.py:563 +#: ipalib/plugins/cert.py:561 msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/cert.py:569 +#: ipalib/plugins/cert.py:567 msgid "Unrevoked" msgstr "" -#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:229 +#: ipalib/plugins/cert.py:570 ipalib/plugins/internal.py:248 msgid "Error" msgstr "" @@ -2141,57 +2205,57 @@ msgstr "" msgid "Extra hashes to generate in password plug-in" msgstr "" -#: ipalib/plugins/config.py:184 +#: ipalib/plugins/config.py:185 msgid "SELinux user map order" msgstr "" -#: ipalib/plugins/config.py:185 +#: ipalib/plugins/config.py:186 msgid "Order in increasing priority of SELinux users, delimited by $" msgstr "" -#: ipalib/plugins/config.py:188 +#: ipalib/plugins/config.py:189 msgid "Default SELinux user" msgstr "" -#: ipalib/plugins/config.py:189 +#: ipalib/plugins/config.py:190 msgid "Default SELinux user when no match is found in SELinux map rule" msgstr "" -#: ipalib/plugins/config.py:200 +#: ipalib/plugins/config.py:201 msgid "Modify configuration options." msgstr "" -#: ipalib/plugins/config.py:208 +#: ipalib/plugins/config.py:209 msgid "The group doesn't exist" msgstr "" -#: ipalib/plugins/config.py:223 +#: ipalib/plugins/config.py:224 #, python-format msgid "attribute \"%s\" not allowed" msgstr "" -#: ipalib/plugins/config.py:231 +#: ipalib/plugins/config.py:232 msgid "May not be empty" msgstr "" -#: ipalib/plugins/config.py:244 +#: ipalib/plugins/config.py:250 #, python-format msgid "%(obj)s default attribute %(attr)s would not be allowed!" msgstr "" -#: ipalib/plugins/config.py:249 +#: ipalib/plugins/config.py:255 msgid "SELinux user map default user may not be empty" msgstr "" -#: ipalib/plugins/config.py:270 +#: ipalib/plugins/config.py:276 msgid "Default SELinux user map default user not in order list" msgstr "" -#: ipalib/plugins/config.py:278 +#: ipalib/plugins/config.py:284 msgid "Show the current configuration." msgstr "" -#: ipalib/plugins/delegation.py:30 +#: ipalib/plugins/delegation.py:29 msgid "" "\n" "Group to Group Delegation\n" @@ -2221,99 +2285,140 @@ msgid "" " ipa delegation-del \"managers edit employees' street\"\n" msgstr "" -#: ipalib/plugins/delegation.py:70 +#: ipalib/plugins/delegation.py:69 msgid "delegation" msgstr "" -#: ipalib/plugins/delegation.py:71 +#: ipalib/plugins/delegation.py:70 msgid "delegations" msgstr "" -#: ipalib/plugins/delegation.py:72 +#: ipalib/plugins/delegation.py:71 msgid "Delegations" msgstr "" -#: ipalib/plugins/delegation.py:73 +#: ipalib/plugins/delegation.py:72 msgid "Delegation" msgstr "" -#: ipalib/plugins/delegation.py:78 ipalib/plugins/delegation.py:79 +#: ipalib/plugins/delegation.py:77 ipalib/plugins/delegation.py:78 msgid "Delegation name" msgstr "" -#: ipalib/plugins/delegation.py:85 ipalib/plugins/selfservice.py:84 +#: ipalib/plugins/delegation.py:84 ipalib/plugins/selfservice.py:86 msgid "" "Comma-separated list of permissions to grant (read, write). Default is write." msgstr "" -#: ipalib/plugins/delegation.py:98 +#: ipalib/plugins/delegation.py:97 msgid "Member user group" msgstr "" -#: ipalib/plugins/delegation.py:99 +#: ipalib/plugins/delegation.py:98 msgid "User group to apply delegation to" msgstr "" -#: ipalib/plugins/delegation.py:132 +#: ipalib/plugins/delegation.py:131 msgid "Add a new delegation." msgstr "" -#: ipalib/plugins/delegation.py:134 +#: ipalib/plugins/delegation.py:133 #, python-format msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/delegation.py:153 +#: ipalib/plugins/delegation.py:152 msgid "Delete a delegation." msgstr "" -#: ipalib/plugins/delegation.py:156 +#: ipalib/plugins/delegation.py:155 #, python-format msgid "Deleted delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/delegation.py:171 +#: ipalib/plugins/delegation.py:170 msgid "Modify a delegation." msgstr "" -#: ipalib/plugins/delegation.py:173 +#: ipalib/plugins/delegation.py:172 #, python-format msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/delegation.py:190 +#: ipalib/plugins/delegation.py:189 msgid "Search for delegations." msgstr "" -#: ipalib/plugins/delegation.py:193 +#: ipalib/plugins/delegation.py:192 #, python-format msgid "%(count)d delegation matched" msgid_plural "%(count)d delegations matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/delegation.py:216 +#: ipalib/plugins/delegation.py:215 msgid "Display information about a delegation." msgstr "" -#: ipalib/plugins/dns.py:36 +#: ipalib/plugins/dns.py:40 msgid "" "\n" "Domain Name System (DNS)\n" "\n" "Manage DNS zone and resource records.\n" "\n" +"\n" +"USING STRUCTURED PER-TYPE OPTIONS\n" +"\n" +"There are many structured DNS RR types where DNS data stored in LDAP server\n" +"is not just a scalar value, for example an IP address or a domain name, but\n" +"a data structure which may be often complex. A good example is a LOC record\n" +"[RFC1876] which consists of many mandatory and optional parts (degrees,\n" +"minutes, seconds of latitude and longitude, altitude or precision).\n" +"\n" +"It may be difficult to manipulate such DNS records without making a mistake\n" +"and entering an invalid value. DNS module provides an abstraction over " +"these\n" +"raw records and allows to manipulate each RR type with specific options. " +"For\n" +"each supported RR type, DNS module provides a standard option to manipulate\n" +"a raw records with format --<rrtype>-rec, e.g. --mx-rec, and special " +"options\n" +"for every part of the RR structure with format --<rrtype>-<partname>, e.g.\n" +"--mx-preference and --mx-exchanger.\n" +"\n" +"When adding a record, either RR specific options or standard option for a " +"raw\n" +"value can be used, they just should not be combined in one add operation. " +"When\n" +"modifying an existing entry, new RR specific options can be used to change\n" +"one part of a DNS record, where the standard option for raw value is used\n" +"to specify the modified value. The following example demonstrates\n" +"a modification of MX record preference form 0 to 1 in a record without\n" +"modifying the exchanger:\n" +"ipa dnsrecord-mod --mx-rec=\"0 mx.example.com.\" --mx-preference=1\n" +"\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 system permission that can be used for per-zone privilege delegation:\n" +" ipa dnszone-add-permission example.com\n" +"\n" " Modify the zone to allow dynamic updates for hosts own records in realm " "EXAMPLE.COM:\n" -" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" -" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM " -"krb5-self * AAAA;\"\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE\n" +"\n" +" This is the equivalent of:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM " +"krb5-self * AAAA; grant EXAMPLE.COM krb5-self * SSHFP;\"\n" +"\n" +" Modify the zone to allow zone transfers for local network only:\n" +" ipa dnszone-mod example.com --allow-transfer=10.0.0.0/8\n" "\n" " Add new reverse zone specified by network IP address:\n" " ipa dnszone-add --name-from-ip=80.142.15.0/24 \\\n" @@ -2349,8 +2454,12 @@ msgid "" " ipa dnsrecord-add example.com @ --loc-rec=\"49 11 42.4 N 16 36 29.6 E " "227.64m\"\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" +" Add new A record for www.example.com. Create a reverse record in " +"appropriate\n" +" reverse zone as well. In this case a PTR record \"2\" pointing to www." +"example.com.\n" +" will be created in zone 15.142.80.in-addr.arpa.\n" +" ipa dnsrecord-add example.com www --a-rec=80.142.15.2 --a-create-reverse\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" @@ -2373,7 +2482,7 @@ msgid "" " SRV record: 0 3 389 fast.example.com, 0 1 389 slow.example.com, 1 1 389 " "backup.example.com\n" "\n" -" Modify SRV record '0 3 389 fast.example.com'? Yes/No (default No): \n" +" Modify SRV record '0 3 389 fast.example.com'? Yes/No (default No):\n" " Modify SRV record '0 1 389 slow.example.com'? Yes/No (default No): y\n" " SRV Priority [0]: (keep the default value)\n" " SRV Weight [1]: 2 (modified value)\n" @@ -2417,6 +2526,14 @@ msgid "" " Show records for resource www in zone example.com\n" " ipa dnsrecord-show example.com www\n" "\n" +" Forward all request for a zone external.com to another nameserver using\n" +" a \"first\" policy (it will send the queries to the selected forwarder and " +"if\n" +" not answered it will use global resolvers):\n" +" ipa dnszone-add external.com\n" +" ipa dnszone-mod external.com --forwarder=10.20.0.1 \\\n" +" --forward-policy=first\n" +"\n" " Delete zone example.com with all resource records:\n" " ipa dnszone-del example.com\n" "\n" @@ -2424,198 +2541,266 @@ msgid "" " if one is not included):\n" " ipa dns-resolve www.example.com\n" " ipa dns-resolve www\n" +"\n" +"\n" +"GLOBAL DNS CONFIGURATION\n" +"\n" +"DNS configuration passed to command line install script is stored in a " +"local\n" +"configuration file on each IPA server where DNS service is configured. " +"These\n" +"local settings can be overridden with a common configuration stored in LDAP\n" +"server:\n" +"\n" +" Show global DNS configuration:\n" +" ipa dnsconfig-show\n" +"\n" +" Modify global DNS configuration and set a list of global forwarders:\n" +" ipa dnsconfig-mod --forwarder=10.0.0.1\n" msgstr "" -#: ipalib/plugins/dns.py:203 +#: ipalib/plugins/dns.py:273 #, python-format msgid "invalid IP address version (is %(value)d, must be %(required_value)d)!" msgstr "" -#: ipalib/plugins/dns.py:206 +#: ipalib/plugins/dns.py:276 msgid "invalid IP address format" msgstr "" -#: ipalib/plugins/dns.py:219 +#: ipalib/plugins/dns.py:289 msgid "invalid IP network format" msgstr "" -#: ipalib/plugins/dns.py:228 ipalib/plugins/dns.py:237 +#: ipalib/plugins/dns.py:298 +msgid "each ACL element must be terminated with a semicolon" +msgstr "" + +#: ipalib/plugins/dns.py:307 +#, python-format +msgid "ACL name \"%s\" is not supported" +msgstr "" + +#: ipalib/plugins/dns.py:318 +msgid "invalid address format" +msgstr "" + +#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:403 #, python-format msgid "invalid domain-name: %s" msgstr "" -#: ipalib/plugins/dns.py:254 +#: ipalib/plugins/dns.py:389 +#, python-format +msgid "%(port)s is not a valid port" +msgstr "" + +#: ipalib/plugins/dns.py:465 +#, python-format +msgid "DNS reverse zone for IP address %(addr)s not found" +msgstr "" + +#: ipalib/plugins/dns.py:477 +#, python-format +msgid "DNS zone %(zone)s not found" +msgstr "" + +#: ipalib/plugins/dns.py:491 +#, python-format +msgid "IP address %(ip)s is already assigned in domain %(domain)s." +msgstr "" + +#: ipalib/plugins/dns.py:504 +#, python-format +msgid "" +"Reverse record for IP address %(ip)s already exists in reverse zone %(zone)s." +msgstr "" + +#: ipalib/plugins/dns.py:540 #, python-format msgid "%s record" msgstr "" -#: ipalib/plugins/dns.py:256 +#: ipalib/plugins/dns.py:542 #, python-format msgid "Comma-separated list of raw %s records" msgstr "" -#: ipalib/plugins/dns.py:257 +#: ipalib/plugins/dns.py:543 #, python-format msgid "%s Record" msgstr "" -#: ipalib/plugins/dns.py:258 +#: ipalib/plugins/dns.py:544 #, python-format msgid "(see RFC %s for details)" msgstr "" -#: ipalib/plugins/dns.py:313 +#: ipalib/plugins/dns.py:600 #, python-format msgid "'%s' is a required part of DNS record" msgstr "" -#: ipalib/plugins/dns.py:320 +#: ipalib/plugins/dns.py:607 msgid "Invalid number of parts!" msgstr "" -#: ipalib/plugins/dns.py:375 +#: ipalib/plugins/dns.py:662 #, python-format msgid "DNS RR type \"%s\" is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/dns.py:391 +#: ipalib/plugins/dns.py:678 #, python-format msgid "format must be specified as \"%(format)s\" %(rfcs)s" msgstr "" -#: ipalib/plugins/dns.py:462 ipalib/plugins/dns.py:485 -#: ipalib/plugins/host.py:419 +#: ipalib/plugins/dns.py:813 +msgid "Create reverse" +msgstr "" + +#: ipalib/plugins/dns.py:814 +msgid "Create reverse record for this IP Address" +msgstr "" + +#: ipalib/plugins/dns.py:847 +#, python-format +msgid "Cannot create reverse record for \"%(value)s\": %(exc)s" +msgstr "" + +#: ipalib/plugins/dns.py:856 ipalib/plugins/dns.py:879 +#: ipalib/plugins/host.py:377 msgid "IP Address" msgstr "" -#: ipalib/plugins/dns.py:471 ipalib/plugins/dns.py:1082 +#: ipalib/plugins/dns.py:865 ipalib/plugins/dns.py:1476 msgid "Record data" msgstr "" -#: ipalib/plugins/dns.py:494 +#: ipalib/plugins/dns.py:888 msgid "Subtype" msgstr "" -#: ipalib/plugins/dns.py:500 ipalib/plugins/dns.py:539 -#: ipalib/plugins/dns.py:792 ipalib/plugins/dns.py:889 -#: ipalib/plugins/dns.py:2050 +#: ipalib/plugins/dns.py:894 ipalib/plugins/dns.py:933 +#: ipalib/plugins/dns.py:1186 ipalib/plugins/dns.py:1283 +#: ipalib/plugins/dns.py:2750 msgid "Hostname" msgstr "" -#: ipalib/plugins/dns.py:514 +#: ipalib/plugins/dns.py:908 msgid "Certificate Type" msgstr "" -#: ipalib/plugins/dns.py:519 ipalib/plugins/dns.py:574 -#: ipalib/plugins/dns.py:972 +#: ipalib/plugins/dns.py:913 ipalib/plugins/dns.py:968 +#: ipalib/plugins/dns.py:1366 msgid "Key Tag" msgstr "" -#: ipalib/plugins/dns.py:524 ipalib/plugins/dns.py:579 -#: ipalib/plugins/dns.py:613 ipalib/plugins/dns.py:950 -#: ipalib/plugins/dns.py:998 +#: ipalib/plugins/dns.py:918 ipalib/plugins/dns.py:973 +#: ipalib/plugins/dns.py:1007 ipalib/plugins/dns.py:1344 +#: ipalib/plugins/dns.py:1392 msgid "Algorithm" msgstr "" -#: ipalib/plugins/dns.py:529 +#: ipalib/plugins/dns.py:923 msgid "Certificate/CRL" msgstr "" -#: ipalib/plugins/dns.py:540 +#: ipalib/plugins/dns.py:934 msgid "A hostname which this alias hostname points to" msgstr "" -#: ipalib/plugins/dns.py:560 ipalib/plugins/dns.py:926 -#: ipalib/plugins/internal.py:438 +#: ipalib/plugins/dns.py:954 ipalib/plugins/dns.py:1320 +#: ipalib/plugins/internal.py:488 msgid "Target" msgstr "" -#: ipalib/plugins/dns.py:584 +#: ipalib/plugins/dns.py:978 msgid "Digest Type" msgstr "" -#: ipalib/plugins/dns.py:589 +#: ipalib/plugins/dns.py:983 msgid "Digest" msgstr "" -#: ipalib/plugins/dns.py:603 ipalib/plugins/dns.py:868 +#: ipalib/plugins/dns.py:997 ipalib/plugins/dns.py:1262 msgid "Flags" msgstr "" -#: ipalib/plugins/dns.py:608 +#: ipalib/plugins/dns.py:1002 msgid "Protocol" msgstr "" -#: ipalib/plugins/dns.py:618 +#: ipalib/plugins/dns.py:1012 msgid "Public Key" msgstr "" -#: ipalib/plugins/dns.py:632 ipalib/plugins/dns.py:773 -#: ipalib/plugins/dns.py:862 +#: ipalib/plugins/dns.py:1026 ipalib/plugins/dns.py:1167 +#: ipalib/plugins/dns.py:1256 msgid "Preference" msgstr "" -#: ipalib/plugins/dns.py:633 ipalib/plugins/dns.py:774 +#: ipalib/plugins/dns.py:1027 ipalib/plugins/dns.py:1168 msgid "Preference given to this exchanger. Lower values are more preferred" msgstr "" -#: ipalib/plugins/dns.py:639 ipalib/plugins/dns.py:780 +#: ipalib/plugins/dns.py:1033 ipalib/plugins/dns.py:1174 msgid "Exchanger" msgstr "" -#: ipalib/plugins/dns.py:640 +#: ipalib/plugins/dns.py:1034 msgid "A host willing to act as a key exchanger" msgstr "" -#: ipalib/plugins/dns.py:649 +#: ipalib/plugins/dns.py:1043 msgid "Degrees Latitude" msgstr "" -#: ipalib/plugins/dns.py:654 +#: ipalib/plugins/dns.py:1048 msgid "Minutes Latitude" msgstr "" -#: ipalib/plugins/dns.py:659 +#: ipalib/plugins/dns.py:1053 msgid "Seconds Latitude" msgstr "" -#: ipalib/plugins/dns.py:665 +#: ipalib/plugins/dns.py:1059 msgid "Direction Latitude" msgstr "" -#: ipalib/plugins/dns.py:669 -msgid "Degrees Longtitude" +#: ipalib/plugins/dns.py:1063 +msgid "Degrees Longitude" msgstr "" -#: ipalib/plugins/dns.py:674 -msgid "Minutes Longtitude" +#: ipalib/plugins/dns.py:1068 +msgid "Minutes Longitude" msgstr "" -#: ipalib/plugins/dns.py:679 -msgid "Seconds Longtitude" +#: ipalib/plugins/dns.py:1073 +msgid "Seconds Longitude" msgstr "" -#: ipalib/plugins/dns.py:685 -msgid "Direction Longtitude" +#: ipalib/plugins/dns.py:1079 +msgid "Direction Longitude" msgstr "" -#: ipalib/plugins/dns.py:689 +#: ipalib/plugins/dns.py:1083 msgid "Altitude" msgstr "" -#: ipalib/plugins/dns.py:695 +#: ipalib/plugins/dns.py:1089 msgid "Size" msgstr "" -#: ipalib/plugins/dns.py:701 +#: ipalib/plugins/dns.py:1095 msgid "Horizontal Precision" msgstr "" -#: ipalib/plugins/dns.py:707 +#: ipalib/plugins/dns.py:1101 msgid "Vertical Precision" msgstr "" -#: ipalib/plugins/dns.py:714 +#: ipalib/plugins/dns.py:1108 msgid "" "format must be specified as\n" " \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz" @@ -2630,418 +2815,495 @@ msgid "" " See RFC 1876 for details" msgstr "" -#: ipalib/plugins/dns.py:763 +#: ipalib/plugins/dns.py:1157 #, python-format msgid "'%(required)s' must not be empty when '%(name)s' is set" msgstr "" -#: ipalib/plugins/dns.py:781 +#: ipalib/plugins/dns.py:1175 msgid "A host willing to act as a mail exchanger" msgstr "" -#: ipalib/plugins/dns.py:799 +#: ipalib/plugins/dns.py:1193 msgid "" "format must be specified as \"NEXT TYPE1 [TYPE2 [TYPE3 [...]]]\" (see RFC " "4034 for details)" msgstr "" -#: ipalib/plugins/dns.py:806 +#: ipalib/plugins/dns.py:1200 msgid "Next Domain Name" msgstr "" -#: ipalib/plugins/dns.py:809 +#: ipalib/plugins/dns.py:1203 msgid "Type Map" msgstr "" -#: ipalib/plugins/dns.py:849 +#: ipalib/plugins/dns.py:1243 msgid "flags must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" -#: ipalib/plugins/dns.py:857 +#: ipalib/plugins/dns.py:1251 msgid "Order" msgstr "" -#: ipalib/plugins/dns.py:872 ipalib/plugins/hbactest.py:194 -#: ipalib/plugins/internal.py:466 ipalib/plugins/service.py:223 +#: ipalib/plugins/dns.py:1266 ipalib/plugins/hbactest.py:194 +#: ipalib/plugins/internal.py:516 ipalib/plugins/service.py:239 msgid "Service" msgstr "" -#: ipalib/plugins/dns.py:875 +#: ipalib/plugins/dns.py:1269 msgid "Regular Expression" msgstr "" -#: ipalib/plugins/dns.py:878 +#: ipalib/plugins/dns.py:1272 msgid "Replacement" msgstr "" -#: ipalib/plugins/dns.py:890 +#: ipalib/plugins/dns.py:1284 msgid "The hostname this reverse record points to" msgstr "" -#: ipalib/plugins/dns.py:910 ipalib/plugins/pwpolicy.py:263 +#: ipalib/plugins/dns.py:1304 ipalib/plugins/pwpolicy.py:263 msgid "Priority" msgstr "" -#: ipalib/plugins/dns.py:915 +#: ipalib/plugins/dns.py:1309 msgid "Weight" msgstr "" -#: ipalib/plugins/dns.py:920 +#: ipalib/plugins/dns.py:1314 msgid "Port" msgstr "" -#: ipalib/plugins/dns.py:927 +#: ipalib/plugins/dns.py:1321 msgid "" "The domain name of the target host or '.' if the service is decidedly not " "available at this domain" msgstr "" -#: ipalib/plugins/dns.py:936 +#: ipalib/plugins/dns.py:1330 msgid "the value does not follow \"YYYYMMDDHHMMSS\" time format" msgstr "" -#: ipalib/plugins/dns.py:946 +#: ipalib/plugins/dns.py:1340 msgid "Type Covered" msgstr "" -#: ipalib/plugins/dns.py:955 +#: ipalib/plugins/dns.py:1349 msgid "Labels" msgstr "" -#: ipalib/plugins/dns.py:960 +#: ipalib/plugins/dns.py:1354 msgid "Original TTL" msgstr "" -#: ipalib/plugins/dns.py:965 +#: ipalib/plugins/dns.py:1359 msgid "Signature Expiration" msgstr "" -#: ipalib/plugins/dns.py:969 +#: ipalib/plugins/dns.py:1363 msgid "Signature Inception" msgstr "" -#: ipalib/plugins/dns.py:977 +#: ipalib/plugins/dns.py:1371 msgid "Signer's Name" msgstr "" -#: ipalib/plugins/dns.py:980 +#: ipalib/plugins/dns.py:1374 msgid "Signature" msgstr "" -#: ipalib/plugins/dns.py:1003 +#: ipalib/plugins/dns.py:1397 msgid "Fingerprint Type" msgstr "" -#: ipalib/plugins/dns.py:1008 +#: ipalib/plugins/dns.py:1402 msgid "Fingerprint" msgstr "" -#: ipalib/plugins/dns.py:1029 +#: ipalib/plugins/dns.py:1423 msgid "Text Data" msgstr "" -#: ipalib/plugins/dns.py:1076 +#: ipalib/plugins/dns.py:1470 msgid "Records" msgstr "" -#: ipalib/plugins/dns.py:1079 +#: ipalib/plugins/dns.py:1473 msgid "Record type" msgstr "" -#: ipalib/plugins/dns.py:1114 +#: ipalib/plugins/dns.py:1517 #, python-format msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/dns.py:1141 +#: ipalib/plugins/dns.py:1538 msgid "DNS zone" msgstr "" -#: ipalib/plugins/dns.py:1142 +#: ipalib/plugins/dns.py:1539 msgid "DNS zones" msgstr "" -#: ipalib/plugins/dns.py:1149 +#: ipalib/plugins/dns.py:1548 msgid "DNS Zones" msgstr "" -#: ipalib/plugins/dns.py:1150 +#: ipalib/plugins/dns.py:1549 msgid "DNS Zone" msgstr "" -#: ipalib/plugins/dns.py:1155 +#: ipalib/plugins/dns.py:1555 msgid "Zone name" msgstr "" -#: ipalib/plugins/dns.py:1156 +#: ipalib/plugins/dns.py:1556 msgid "Zone name (FQDN)" msgstr "" -#: ipalib/plugins/dns.py:1162 +#: ipalib/plugins/dns.py:1562 msgid "Reverse zone IP network" msgstr "" -#: ipalib/plugins/dns.py:1163 +#: ipalib/plugins/dns.py:1563 msgid "IP network to create reverse zone name from" msgstr "" -#: ipalib/plugins/dns.py:1168 +#: ipalib/plugins/dns.py:1568 msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/dns.py:1169 +#: ipalib/plugins/dns.py:1569 msgid "Authoritative nameserver domain name" msgstr "" -#: ipalib/plugins/dns.py:1174 ipalib/plugins/dns.py:1175 +#: ipalib/plugins/dns.py:1574 ipalib/plugins/dns.py:1575 msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/dns.py:1181 +#: ipalib/plugins/dns.py:1581 msgid "SOA serial" msgstr "" -#: ipalib/plugins/dns.py:1182 +#: ipalib/plugins/dns.py:1582 msgid "SOA record serial number" msgstr "" -#: ipalib/plugins/dns.py:1189 +#: ipalib/plugins/dns.py:1589 msgid "SOA refresh" msgstr "" -#: ipalib/plugins/dns.py:1190 +#: ipalib/plugins/dns.py:1590 msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/dns.py:1197 +#: ipalib/plugins/dns.py:1597 msgid "SOA retry" msgstr "" -#: ipalib/plugins/dns.py:1198 +#: ipalib/plugins/dns.py:1598 msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/dns.py:1205 +#: ipalib/plugins/dns.py:1605 msgid "SOA expire" msgstr "" -#: ipalib/plugins/dns.py:1206 +#: ipalib/plugins/dns.py:1606 msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/dns.py:1213 +#: ipalib/plugins/dns.py:1613 msgid "SOA minimum" msgstr "" -#: ipalib/plugins/dns.py:1214 +#: ipalib/plugins/dns.py:1614 msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/dns.py:1222 +#: ipalib/plugins/dns.py:1622 msgid "SOA time to live" msgstr "" -#: ipalib/plugins/dns.py:1223 +#: ipalib/plugins/dns.py:1623 msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/dns.py:1227 +#: ipalib/plugins/dns.py:1627 msgid "SOA class" msgstr "" -#: ipalib/plugins/dns.py:1228 +#: ipalib/plugins/dns.py:1628 msgid "SOA record class" msgstr "" -#: ipalib/plugins/dns.py:1233 ipalib/plugins/dns.py:1234 +#: ipalib/plugins/dns.py:1633 ipalib/plugins/dns.py:1634 msgid "BIND update policy" msgstr "" -#: ipalib/plugins/dns.py:1238 +#: ipalib/plugins/dns.py:1640 msgid "Active zone" msgstr "" -#: ipalib/plugins/dns.py:1239 +#: ipalib/plugins/dns.py:1641 msgid "Is zone active?" msgstr "" -#: ipalib/plugins/dns.py:1245 +#: ipalib/plugins/dns.py:1647 msgid "Dynamic update" msgstr "" -#: ipalib/plugins/dns.py:1246 +#: ipalib/plugins/dns.py:1648 msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/dns.py:1257 +#: ipalib/plugins/dns.py:1657 +msgid "Allow query" +msgstr "" + +#: ipalib/plugins/dns.py:1658 +msgid "" +"Semicolon separated list of IP addresses or networks which are allowed to " +"issue queries" +msgstr "" + +#: ipalib/plugins/dns.py:1666 +msgid "Allow transfer" +msgstr "" + +#: ipalib/plugins/dns.py:1667 +msgid "" +"Semicolon separated list of IP addresses or networks which are allowed to " +"transfer the zone" +msgstr "" + +#: ipalib/plugins/dns.py:1674 +msgid "Zone forwarders" +msgstr "" + +#: ipalib/plugins/dns.py:1675 +msgid "" +"A list of per-zone forwarders. A custom port can be specified for each " +"forwarder using a standard format \"IP_ADDRESS port PORT\"" +msgstr "" + +#: ipalib/plugins/dns.py:1681 ipalib/plugins/dns.py:2820 +msgid "Forward policy" +msgstr "" + +#: ipalib/plugins/dns.py:1686 ipalib/plugins/dns.py:2825 +msgid "Allow PTR sync" +msgstr "" + +#: ipalib/plugins/dns.py:1687 +msgid "" +"Allow synchronization of forward (A, AAAA) and reverse (PTR) records in the " +"zone" +msgstr "" + +#: ipalib/plugins/dns.py:1717 msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:1261 ipalib/plugins/dns.py:1595 -#: ipalib/plugins/host.py:411 ipalib/plugins/service.py:252 +#: ipalib/plugins/dns.py:1721 ipalib/plugins/dns.py:2188 +#: ipalib/plugins/host.py:369 ipalib/plugins/permission.py:293 +#: ipalib/plugins/service.py:268 msgid "Force" msgstr "" -#: ipalib/plugins/dns.py:1262 +#: ipalib/plugins/dns.py:1722 msgid "Force DNS zone creation even if nameserver not in DNS." msgstr "" -#: ipalib/plugins/dns.py:1265 +#: ipalib/plugins/dns.py:1725 msgid "Add the nameserver to DNS with this IP address" msgstr "" -#: ipalib/plugins/dns.py:1278 +#: ipalib/plugins/dns.py:1731 msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/dns.py:1288 +#: ipalib/plugins/dns.py:1741 msgid "Nameserver address is not a fully qualified domain name" msgstr "" -#: ipalib/plugins/dns.py:1314 +#: ipalib/plugins/dns.py:1767 msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:1320 +#: ipalib/plugins/dns.py:1781 msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:1333 +#: ipalib/plugins/dns.py:1787 msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/dns.py:1351 +#: ipalib/plugins/dns.py:1809 msgid "Forward zones only" msgstr "" -#: ipalib/plugins/dns.py:1353 +#: ipalib/plugins/dns.py:1811 msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/dns.py:1372 +#: ipalib/plugins/dns.py:1830 msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:1378 +#: ipalib/plugins/dns.py:1836 msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/dns.py:1381 +#: ipalib/plugins/dns.py:1839 #, python-format msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:1399 +#: ipalib/plugins/dns.py:1857 msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/dns.py:1402 +#: ipalib/plugins/dns.py:1860 #, python-format msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:1425 +#: ipalib/plugins/dns.py:1877 +msgid "Add a permission for per-zone access delegation." +msgstr "" + +#: ipalib/plugins/dns.py:1880 +#, python-format +msgid "Added system permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/dns.py:1913 +msgid "Remove a permission for per-zone access delegation." +msgstr "" + +#: ipalib/plugins/dns.py:1916 +#, python-format +msgid "Removed system permission \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/dns.py:1947 msgid "DNS resource record" msgstr "" -#: ipalib/plugins/dns.py:1426 +#: ipalib/plugins/dns.py:1948 msgid "DNS resource records" msgstr "" -#: ipalib/plugins/dns.py:1430 +#: ipalib/plugins/dns.py:1953 msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/dns.py:1431 +#: ipalib/plugins/dns.py:1954 msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/dns.py:1436 ipalib/plugins/dns.py:1437 +#: ipalib/plugins/dns.py:1960 ipalib/plugins/dns.py:1961 msgid "Record name" msgstr "" -#: ipalib/plugins/dns.py:1442 ipalib/plugins/dns.py:1443 +#: ipalib/plugins/dns.py:1966 ipalib/plugins/dns.py:1967 msgid "Time to live" msgstr "" -#: ipalib/plugins/dns.py:1447 +#: ipalib/plugins/dns.py:1971 msgid "Class" msgstr "" -#: ipalib/plugins/dns.py:1448 +#: ipalib/plugins/dns.py:1972 msgid "DNS class" msgstr "" -#: ipalib/plugins/dns.py:1454 +#: ipalib/plugins/dns.py:1978 msgid "Structured" msgstr "" -#: ipalib/plugins/dns.py:1455 +#: ipalib/plugins/dns.py:1979 msgid "Parse all raw DNS records and return them in a structured way" msgstr "" -#: ipalib/plugins/dns.py:1480 +#: ipalib/plugins/dns.py:2008 #, python-format msgid "" "Reverse zone for PTR record should be a sub-zone of one the following fully " "qualified domains: %s" msgstr "" -#: ipalib/plugins/dns.py:1485 +#: ipalib/plugins/dns.py:2014 #, python-format msgid "" "Reverse zone %(name)s requires exactly %(count)d IP address components, " "%(user_count)d given" msgstr "" -#: ipalib/plugins/dns.py:1589 +#: ipalib/plugins/dns.py:2175 +msgid "" +"CNAME record is not allowed to coexist with any other records except PTR" +msgstr "" + +#: ipalib/plugins/dns.py:2182 msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:1597 +#: ipalib/plugins/dns.py:2190 msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -#: ipalib/plugins/dns.py:1623 +#: ipalib/plugins/dns.py:2227 msgid "Please choose a type of DNS resource record to be added" msgstr "" -#: ipalib/plugins/dns.py:1624 +#: ipalib/plugins/dns.py:2228 #, python-format msgid "The most common types for this type of zone are: %s\n" msgstr "" -#: ipalib/plugins/dns.py:1629 +#: ipalib/plugins/dns.py:2233 msgid "DNS resource record type" msgstr "" -#: ipalib/plugins/dns.py:1642 +#: ipalib/plugins/dns.py:2249 +#, python-format +msgid "Invalid or unsupported type. Allowed values are: %s" +msgstr "" + +#: ipalib/plugins/dns.py:2276 #, python-format -msgid "Invalid type. Allowed values are: %s" +msgid "Raw value of a DNS record was already set by \"%(name)s\" option" msgstr "" -#: ipalib/plugins/dns.py:1707 +#: ipalib/plugins/dns.py:2372 msgid "Modify a DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:1744 +#: ipalib/plugins/dns.py:2388 +msgid "DNS zone root record cannot be renamed" +msgstr "" + +#: ipalib/plugins/dns.py:2406 msgid "DNS records can be only updated one at a time" msgstr "" -#: ipalib/plugins/dns.py:1815 +#: ipalib/plugins/dns.py:2488 msgid "No option to modify specific record provided." msgstr "" -#: ipalib/plugins/dns.py:1818 ipalib/plugins/dns.py:1972 +#: ipalib/plugins/dns.py:2491 ipalib/plugins/dns.py:2661 msgid "Current DNS record contents:\n" msgstr "" -#: ipalib/plugins/dns.py:1840 +#: ipalib/plugins/dns.py:2513 #, python-format msgid "Modify %(name)s '%(value)s'?" msgstr "" -#: ipalib/plugins/dns.py:1848 +#: ipalib/plugins/dns.py:2521 #, python-format msgid "" "%(count)d %(type)s record skipped. Only one value per DNS record type can be " @@ -3052,65 +3314,107 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/dns.py:1860 +#: ipalib/plugins/dns.py:2533 #, python-format msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:1867 +#: ipalib/plugins/dns.py:2540 msgid "Delete DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:1869 +#: ipalib/plugins/dns.py:2542 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:1875 +#: ipalib/plugins/dns.py:2548 msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/dns.py:1928 +#: ipalib/plugins/dns.py:2616 #, python-format msgid "Zone record '%s' cannot be deleted" msgstr "" -#: ipalib/plugins/dns.py:1964 +#: ipalib/plugins/dns.py:2653 msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/dns.py:1965 +#: ipalib/plugins/dns.py:2654 msgid "Delete all?" msgstr "" -#: ipalib/plugins/dns.py:1993 +#: ipalib/plugins/dns.py:2682 #, python-format msgid "Delete %(name)s '%(value)s'?" msgstr "" -#: ipalib/plugins/dns.py:2005 +#: ipalib/plugins/dns.py:2693 msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/dns.py:2021 +#: ipalib/plugins/dns.py:2709 msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/dns.py:2043 +#: ipalib/plugins/dns.py:2743 msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/dns.py:2046 +#: ipalib/plugins/dns.py:2746 #, python-format msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/dns.py:2072 +#: ipalib/plugins/dns.py:2763 #, python-format msgid "Host '%(host)s' not found" msgstr "" +#: ipalib/plugins/dns.py:2800 +msgid "DNS configuration options" +msgstr "" + +#: ipalib/plugins/dns.py:2806 ipalib/plugins/dns.py:2807 +msgid "DNS Global Configuration" +msgstr "" + +#: ipalib/plugins/dns.py:2813 +msgid "Global forwarders" +msgstr "" + +#: ipalib/plugins/dns.py:2814 +msgid "" +"A list of global forwarders. A custom port can be specified for each " +"forwarder using a standard format \"IP_ADDRESS port PORT\"" +msgstr "" + +#: ipalib/plugins/dns.py:2826 +msgid "Allow synchronization of forward (A, AAAA) and reverse (PTR) records" +msgstr "" + +#: ipalib/plugins/dns.py:2830 +msgid "Zone refresh interval" +msgstr "" + +#: ipalib/plugins/dns.py:2831 +msgid "An interval between regular polls of the name server for new DNS zones" +msgstr "" + +#: ipalib/plugins/dns.py:2847 +msgid "Global DNS configuration is empty" +msgstr "" + +#: ipalib/plugins/dns.py:2853 +msgid "Modify global DNS configuration." +msgstr "" + +#: ipalib/plugins/dns.py:2864 +msgid "Show the current global DNS configuration." +msgstr "" + #: ipalib/plugins/entitle.py:52 msgid "" "\n" @@ -3168,25 +3472,25 @@ msgstr "" msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597 +#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:598 msgid "UUID" msgstr "" #: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304 -#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570 -#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:361 +#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:571 +#: ipalib/plugins/entitle.py:684 ipalib/plugins/internal.py:399 msgid "Product" msgstr "" #: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284 #: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387 -#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673 +#: ipalib/plugins/entitle.py:574 ipalib/plugins/entitle.py:674 msgid "Quantity" msgstr "" #: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307 -#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686 -#: ipalib/plugins/internal.py:352 +#: ipalib/plugins/entitle.py:577 ipalib/plugins/entitle.py:687 +#: ipalib/plugins/internal.py:390 msgid "Consumed" msgstr "" @@ -3203,21 +3507,21 @@ msgstr "" msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:364 +#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:402 msgid "Start" msgstr "" -#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:355 +#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:393 msgid "End" msgstr "" -#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:198 -#: ipalib/plugins/internal.py:307 ipalib/plugins/service.py:97 +#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:152 +#: ipalib/plugins/internal.py:337 ipalib/plugins/service.py:97 msgid "Serial Number" msgstr "" -#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621 -#: ipalib/plugins/entitle.py:623 +#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:622 +#: ipalib/plugins/entitle.py:624 msgid "Not an entitlement certificate" msgstr "" @@ -3225,43 +3529,43 @@ msgstr "" msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/entitle.py:468 +#: ipalib/plugins/entitle.py:469 msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/entitle.py:472 +#: ipalib/plugins/entitle.py:473 msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/entitle.py:476 +#: ipalib/plugins/entitle.py:477 ipalib/plugins/internal.py:274 msgid "Username" msgstr "" -#: ipalib/plugins/entitle.py:483 +#: ipalib/plugins/entitle.py:484 msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/entitle.py:488 +#: ipalib/plugins/entitle.py:489 msgid "Registration password" msgstr "" -#: ipalib/plugins/entitle.py:566 +#: ipalib/plugins/entitle.py:567 msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/entitle.py:598 +#: ipalib/plugins/entitle.py:599 msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/entitle.py:662 +#: ipalib/plugins/entitle.py:663 msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/entitle.py:666 +#: ipalib/plugins/entitle.py:667 msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/group.py:26 +#: ipalib/plugins/group.py:32 msgid "" "\n" "Groups of users\n" @@ -3313,119 +3617,175 @@ msgid "" " ipa group-show localadmins\n" msgstr "" -#: ipalib/plugins/group.py:80 +#: ipalib/plugins/group.py:88 ipalib/plugins/group.py:188 +#: ipalib/plugins/group.py:376 ipalib/plugins/user.py:550 msgid "group" msgstr "" -#: ipalib/plugins/group.py:81 +#: ipalib/plugins/group.py:89 msgid "groups" msgstr "" -#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:195 -#: ipalib/plugins/selinuxusermap.py:184 ipalib/plugins/sudorule.py:147 +#: ipalib/plugins/group.py:108 ipalib/plugins/hbacrule.py:195 +#: ipalib/plugins/internal.py:481 ipalib/plugins/selinuxusermap.py:184 +#: ipalib/plugins/sudorule.py:159 msgid "User Groups" msgstr "" -#: ipalib/plugins/group.py:101 +#: ipalib/plugins/group.py:109 msgid "User Group" msgstr "" -#: ipalib/plugins/group.py:109 +#: ipalib/plugins/group.py:117 msgid "Group name" msgstr "" -#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79 +#: ipalib/plugins/group.py:124 ipalib/plugins/sudocmdgroup.py:79 msgid "Group description" msgstr "" -#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:264 +#: ipalib/plugins/group.py:128 ipalib/plugins/user.py:290 msgid "GID" msgstr "" -#: ipalib/plugins/group.py:121 +#: ipalib/plugins/group.py:129 msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/group.py:129 +#: ipalib/plugins/group.py:138 msgid "Create a new group." msgstr "" -#: ipalib/plugins/group.py:131 +#: ipalib/plugins/group.py:140 #, python-format msgid "Added group \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:136 +#: ipalib/plugins/group.py:145 msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/group.py:153 +#: ipalib/plugins/group.py:150 +msgid "Allow adding external non-IPA members from trusted domains" +msgstr "" + +#: ipalib/plugins/group.py:174 msgid "Delete group." msgstr "" -#: ipalib/plugins/group.py:155 +#: ipalib/plugins/group.py:176 #, python-format msgid "Deleted group \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:183 +#: ipalib/plugins/group.py:189 +msgid "privileged group" +msgstr "" + +#: ipalib/plugins/group.py:206 msgid "Modify a group." msgstr "" -#: ipalib/plugins/group.py:185 +#: ipalib/plugins/group.py:208 #, python-format msgid "Modified group \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:190 +#: ipalib/plugins/group.py:213 msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/group.py:222 +#: ipalib/plugins/group.py:217 +msgid "change to support external non-IPA members from trusted domains" +msgstr "" + +#: ipalib/plugins/group.py:262 msgid "Search for groups." msgstr "" -#: ipalib/plugins/group.py:227 +#: ipalib/plugins/group.py:267 #, python-format msgid "%(count)d group matched" msgid_plural "%(count)d groups matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/group.py:233 +#: ipalib/plugins/group.py:273 msgid "search for private groups" msgstr "" -#: ipalib/plugins/group.py:263 +#: ipalib/plugins/group.py:303 msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/group.py:269 +#: ipalib/plugins/group.py:309 msgid "Add members to a group." msgstr "" -#: ipalib/plugins/group.py:275 +#: ipalib/plugins/group.py:314 ipalib/plugins/group.py:362 +msgid "External member" +msgstr "" + +#: ipalib/plugins/group.py:315 ipalib/plugins/group.py:363 +msgid "comma-separated SIDs of members of a trusted domain" +msgstr "" + +#: ipalib/plugins/group.py:325 +msgid "AD Trust" +msgstr "" + +#: ipalib/plugins/group.py:326 +msgid "" +"Cannot perform external member validation without Samba 4 support " +"installed.\n" +" Make sure you have installed server-trust-" +"ad sub-package of IPA on the server" +msgstr "" + +#: ipalib/plugins/group.py:330 ipalib/plugins/trust.py:164 +#: ipalib/plugins/trust.py:175 ipalib/plugins/trust.py:188 +#: ipalib/plugins/trust.py:193 ipalib/plugins/trust.py:199 +#: ipalib/plugins/trust.py:209 +msgid "AD Trust setup" +msgstr "" + +#: ipalib/plugins/group.py:331 +msgid "" +"Cannot perform join operation without own domain configured.\n" +" Make sure you have run ipa-adtrust-install " +"on the IPA server first" +msgstr "" + +#: ipalib/plugins/group.py:341 +msgid "external member" +msgstr "" + +#: ipalib/plugins/group.py:342 +msgid "values are not recognized as valid SIDs from trusted domain" +msgstr "" + +#: ipalib/plugins/group.py:357 msgid "Remove members from a group." msgstr "" -#: ipalib/plugins/group.py:281 +#: ipalib/plugins/group.py:397 msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/group.py:284 +#: ipalib/plugins/group.py:400 #, python-format msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:305 +#: ipalib/plugins/group.py:421 msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/group.py:311 +#: ipalib/plugins/group.py:427 msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/group.py:330 +#: ipalib/plugins/group.py:446 msgid "Not a managed group" msgstr "" @@ -3505,7 +3865,7 @@ msgid "HBAC Rule" msgstr "" #: ipalib/plugins/hbacrule.py:140 ipalib/plugins/selinuxusermap.py:147 -#: ipalib/plugins/sudorule.py:101 +#: ipalib/plugins/sudorule.py:106 msgid "Rule name" msgstr "" @@ -3517,23 +3877,23 @@ msgstr "" msgid "Rule type" msgstr "" -#: ipalib/plugins/hbacrule.py:156 ipalib/plugins/netgroup.py:126 -#: ipalib/plugins/selinuxusermap.py:161 ipalib/plugins/sudorule.py:114 +#: ipalib/plugins/hbacrule.py:156 ipalib/plugins/netgroup.py:139 +#: ipalib/plugins/selinuxusermap.py:161 ipalib/plugins/sudorule.py:119 msgid "User category" msgstr "" -#: ipalib/plugins/hbacrule.py:157 ipalib/plugins/netgroup.py:127 -#: ipalib/plugins/selinuxusermap.py:162 ipalib/plugins/sudorule.py:115 +#: ipalib/plugins/hbacrule.py:157 ipalib/plugins/netgroup.py:140 +#: ipalib/plugins/selinuxusermap.py:162 ipalib/plugins/sudorule.py:120 msgid "User category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:162 ipalib/plugins/netgroup.py:132 -#: ipalib/plugins/selinuxusermap.py:167 ipalib/plugins/sudorule.py:120 +#: ipalib/plugins/hbacrule.py:162 ipalib/plugins/netgroup.py:145 +#: ipalib/plugins/selinuxusermap.py:167 ipalib/plugins/sudorule.py:125 msgid "Host category" msgstr "" -#: ipalib/plugins/hbacrule.py:163 ipalib/plugins/netgroup.py:133 -#: ipalib/plugins/selinuxusermap.py:168 ipalib/plugins/sudorule.py:121 +#: ipalib/plugins/hbacrule.py:163 ipalib/plugins/netgroup.py:146 +#: ipalib/plugins/selinuxusermap.py:168 ipalib/plugins/sudorule.py:126 msgid "Host category the rule applies to" msgstr "" @@ -3553,23 +3913,26 @@ msgstr "" msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:187 ipalib/plugins/internal.py:542 -#: ipalib/plugins/selinuxusermap.py:176 ipalib/plugins/sudorule.py:109 +#: ipalib/plugins/hbacrule.py:187 ipalib/plugins/internal.py:611 +#: ipalib/plugins/selinuxusermap.py:176 ipalib/plugins/sudorule.py:114 msgid "Enabled" msgstr "" -#: ipalib/plugins/hbacrule.py:191 ipalib/plugins/selinuxusermap.py:180 -#: ipalib/plugins/sudorule.py:143 ipalib/plugins/user.py:176 +#: ipalib/plugins/hbacrule.py:191 ipalib/plugins/internal.py:482 +#: ipalib/plugins/selinuxusermap.py:180 ipalib/plugins/sudorule.py:155 +#: ipalib/plugins/user.py:202 msgid "Users" msgstr "" -#: ipalib/plugins/hbacrule.py:199 ipalib/plugins/host.py:269 -#: ipalib/plugins/selinuxusermap.py:188 ipalib/plugins/sudorule.py:151 +#: ipalib/plugins/hbacrule.py:199 ipalib/plugins/host.py:232 +#: ipalib/plugins/internal.py:476 ipalib/plugins/selinuxusermap.py:188 +#: ipalib/plugins/sudorule.py:163 msgid "Hosts" msgstr "" -#: ipalib/plugins/hbacrule.py:203 ipalib/plugins/hostgroup.py:74 -#: ipalib/plugins/selinuxusermap.py:192 ipalib/plugins/sudorule.py:155 +#: ipalib/plugins/hbacrule.py:203 ipalib/plugins/hostgroup.py:75 +#: ipalib/plugins/internal.py:475 ipalib/plugins/selinuxusermap.py:192 +#: ipalib/plugins/sudorule.py:167 msgid "Host Groups" msgstr "" @@ -3581,8 +3944,8 @@ msgstr "" msgid "Source Host Groups" msgstr "" -#: ipalib/plugins/hbacrule.py:215 ipalib/plugins/internal.py:387 -#: ipalib/plugins/service.py:222 +#: ipalib/plugins/hbacrule.py:215 ipalib/plugins/internal.py:425 +#: ipalib/plugins/service.py:238 msgid "Services" msgstr "" @@ -3590,118 +3953,118 @@ msgstr "" msgid "Service Groups" msgstr "" -#: ipalib/plugins/hbacrule.py:228 +#: ipalib/plugins/hbacrule.py:229 msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:230 +#: ipalib/plugins/hbacrule.py:231 #, python-format msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:241 +#: ipalib/plugins/hbacrule.py:242 msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:243 +#: ipalib/plugins/hbacrule.py:244 #, python-format msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:257 +#: ipalib/plugins/hbacrule.py:258 msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:259 +#: ipalib/plugins/hbacrule.py:260 #, python-format msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:268 +#: ipalib/plugins/hbacrule.py:269 msgid "user category cannot be set to 'all' while there are allowed users" msgstr "" -#: ipalib/plugins/hbacrule.py:270 +#: ipalib/plugins/hbacrule.py:271 msgid "host category cannot be set to 'all' while there are allowed hosts" msgstr "" -#: ipalib/plugins/hbacrule.py:272 +#: ipalib/plugins/hbacrule.py:273 msgid "" "sourcehost category cannot be set to 'all' while there are allowed " "sourcehosts" msgstr "" -#: ipalib/plugins/hbacrule.py:274 +#: ipalib/plugins/hbacrule.py:275 msgid "" "service category cannot be set to 'all' while there are allowed services" msgstr "" -#: ipalib/plugins/hbacrule.py:281 +#: ipalib/plugins/hbacrule.py:282 msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/hbacrule.py:284 +#: ipalib/plugins/hbacrule.py:285 #, python-format msgid "%(count)d HBAC rule matched" msgid_plural "%(count)d HBAC rules matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/hbacrule.py:291 +#: ipalib/plugins/hbacrule.py:292 msgid "Display the properties of an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:297 +#: ipalib/plugins/hbacrule.py:298 msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:299 +#: ipalib/plugins/hbacrule.py:300 #, python-format msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:324 +#: ipalib/plugins/hbacrule.py:325 msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:326 +#: ipalib/plugins/hbacrule.py:327 #, python-format msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:358 ipalib/plugins/hbacrule.py:398 +#: ipalib/plugins/hbacrule.py:359 ipalib/plugins/hbacrule.py:399 msgid "Access time" msgstr "" -#: ipalib/plugins/hbacrule.py:432 +#: ipalib/plugins/hbacrule.py:433 msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:451 +#: ipalib/plugins/hbacrule.py:452 msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:460 +#: ipalib/plugins/hbacrule.py:461 msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:479 +#: ipalib/plugins/hbacrule.py:480 msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:488 +#: ipalib/plugins/hbacrule.py:489 msgid "Add source hosts and hostgroups from a HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:510 +#: ipalib/plugins/hbacrule.py:511 msgid "Remove source hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:522 +#: ipalib/plugins/hbacrule.py:523 msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:541 +#: ipalib/plugins/hbacrule.py:542 msgid "Remove service and service groups from an HBAC rule." msgstr "" @@ -4090,7 +4453,7 @@ msgstr "" msgid "Access granted: %s" msgstr "" -#: ipalib/plugins/host.py:43 +#: ipalib/plugins/host.py:46 msgid "" "\n" "Hosts/Machines\n" @@ -4150,215 +4513,206 @@ msgid "" " ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/host.py:105 -msgid "Fully-qualified hostname required" -msgstr "" - -#: ipalib/plugins/host.py:146 -#, python-format -msgid "DNS reverse zone for IP address %(addr)s not found" +#: ipalib/plugins/host.py:140 ipalib/plugins/service.py:88 +msgid "Keytab" msgstr "" -#: ipalib/plugins/host.py:186 ipalib/plugins/service.py:88 -msgid "Keytab" +#: ipalib/plugins/host.py:155 ipalib/plugins/internal.py:338 +#: ipalib/plugins/service.py:100 +msgid "Serial Number (hex)" msgstr "" -#: ipalib/plugins/host.py:236 +#: ipalib/plugins/host.py:199 msgid "host" msgstr "" -#: ipalib/plugins/host.py:237 +#: ipalib/plugins/host.py:200 msgid "hosts" msgstr "" -#: ipalib/plugins/host.py:270 ipalib/plugins/internal.py:454 +#: ipalib/plugins/host.py:233 ipalib/plugins/internal.py:474 +#: ipalib/plugins/internal.py:504 msgid "Host" msgstr "" -#: ipalib/plugins/host.py:278 +#: ipalib/plugins/host.py:238 msgid "Host name" msgstr "" -#: ipalib/plugins/host.py:285 +#: ipalib/plugins/host.py:245 msgid "A description of this host" msgstr "" -#: ipalib/plugins/host.py:289 +#: ipalib/plugins/host.py:249 msgid "Locality" msgstr "" -#: ipalib/plugins/host.py:290 +#: ipalib/plugins/host.py:250 msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" -#: ipalib/plugins/host.py:295 +#: ipalib/plugins/host.py:255 msgid "Host location (e.g. \"Lab 2\")" msgstr "" -#: ipalib/plugins/host.py:299 +#: ipalib/plugins/host.py:259 msgid "Platform" msgstr "" -#: ipalib/plugins/host.py:300 +#: ipalib/plugins/host.py:260 msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "" -#: ipalib/plugins/host.py:304 +#: ipalib/plugins/host.py:264 msgid "Operating system" msgstr "" -#: ipalib/plugins/host.py:305 +#: ipalib/plugins/host.py:265 msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "" -#: ipalib/plugins/host.py:309 +#: ipalib/plugins/host.py:269 msgid "User password" msgstr "" -#: ipalib/plugins/host.py:310 +#: ipalib/plugins/host.py:270 msgid "Password used in bulk enrollment" msgstr "" -#: ipalib/plugins/host.py:313 +#: ipalib/plugins/host.py:273 msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/host.py:318 ipalib/plugins/user.py:252 +#: ipalib/plugins/host.py:278 ipalib/plugins/user.py:278 msgid "Random password" msgstr "" -#: ipalib/plugins/host.py:324 ipalib/plugins/service.py:236 +#: ipalib/plugins/host.py:284 ipalib/plugins/service.py:252 msgid "Base-64 encoded server certificate" msgstr "" -#: ipalib/plugins/host.py:327 ipalib/plugins/host.py:666 +#: ipalib/plugins/host.py:287 ipalib/plugins/host.py:591 msgid "Principal name" msgstr "" -#: ipalib/plugins/host.py:335 +#: ipalib/plugins/host.py:295 msgid "MAC address" msgstr "" -#: ipalib/plugins/host.py:336 +#: ipalib/plugins/host.py:296 msgid "Hardware MAC address(es) on this host" msgstr "" -#: ipalib/plugins/host.py:340 ipalib/plugins/user.py:317 +#: ipalib/plugins/host.py:300 ipalib/plugins/user.py:344 msgid "Base-64 encoded SSH public key" msgstr "" -#: ipalib/plugins/host.py:344 ipalib/plugins/user.py:321 +#: ipalib/plugins/host.py:304 ipalib/plugins/user.py:348 msgid "SSH public key fingerprint" msgstr "" -#: ipalib/plugins/host.py:404 +#: ipalib/plugins/host.py:362 msgid "Add a new host." msgstr "" -#: ipalib/plugins/host.py:407 +#: ipalib/plugins/host.py:365 #, python-format msgid "Added host \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:412 +#: ipalib/plugins/host.py:370 msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/host.py:415 +#: ipalib/plugins/host.py:373 msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/host.py:418 +#: ipalib/plugins/host.py:376 msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:435 ipalib/plugins/host.py:597 -#: ipalib/plugins/host.py:757 -#, python-format -msgid "DNS zone %(zone)s not found" -msgstr "" - -#: ipalib/plugins/host.py:524 +#: ipalib/plugins/host.py:453 #, python-format msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/host.py:544 +#: ipalib/plugins/host.py:473 msgid "Delete a host." msgstr "" -#: ipalib/plugins/host.py:546 +#: ipalib/plugins/host.py:475 #, python-format msgid "Deleted host \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:551 +#: ipalib/plugins/host.py:480 msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/host.py:657 +#: ipalib/plugins/host.py:582 msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/host.py:660 +#: ipalib/plugins/host.py:585 #, python-format msgid "Modified host \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:667 +#: ipalib/plugins/host.py:592 msgid "Kerberos principal name for this host" msgstr "" -#: ipalib/plugins/host.py:671 +#: ipalib/plugins/host.py:596 msgid "Update DNS entries" msgstr "" -#: ipalib/plugins/host.py:683 +#: ipalib/plugins/host.py:608 msgid "Password cannot be set on enrolled host." msgstr "" -#: ipalib/plugins/host.py:795 +#: ipalib/plugins/host.py:715 msgid "Search for hosts." msgstr "" -#: ipalib/plugins/host.py:799 +#: ipalib/plugins/host.py:719 #, python-format msgid "%(count)d host matched" msgid_plural "%(count)d hosts matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/host.py:877 +#: ipalib/plugins/host.py:799 msgid "Display information about a host." msgstr "" -#: ipalib/plugins/host.py:882 ipalib/plugins/service.py:396 +#: ipalib/plugins/host.py:804 ipalib/plugins/service.py:423 msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/host.py:912 ipalib/plugins/service.py:414 +#: ipalib/plugins/host.py:834 ipalib/plugins/service.py:441 #, python-format msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/host.py:923 +#: ipalib/plugins/host.py:845 msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/host.py:926 +#: ipalib/plugins/host.py:848 #, python-format msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:1013 +#: ipalib/plugins/host.py:937 msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/host.py:1027 +#: ipalib/plugins/host.py:951 msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/hostgroup.py:25 +#: ipalib/plugins/hostgroup.py:26 msgid "" "\n" "Groups of hosts.\n" @@ -4390,84 +4744,84 @@ msgid "" " ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/hostgroup.py:60 +#: ipalib/plugins/hostgroup.py:61 msgid "host group" msgstr "" -#: ipalib/plugins/hostgroup.py:61 +#: ipalib/plugins/hostgroup.py:62 msgid "host groups" msgstr "" -#: ipalib/plugins/hostgroup.py:75 +#: ipalib/plugins/hostgroup.py:76 msgid "Host Group" msgstr "" -#: ipalib/plugins/hostgroup.py:80 +#: ipalib/plugins/hostgroup.py:83 msgid "Host-group" msgstr "" -#: ipalib/plugins/hostgroup.py:81 +#: ipalib/plugins/hostgroup.py:84 msgid "Name of host-group" msgstr "" -#: ipalib/plugins/hostgroup.py:88 +#: ipalib/plugins/hostgroup.py:91 msgid "A description of this host-group" msgstr "" -#: ipalib/plugins/hostgroup.py:114 +#: ipalib/plugins/hostgroup.py:117 msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/hostgroup.py:116 +#: ipalib/plugins/hostgroup.py:119 #, python-format msgid "Added hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/hostgroup.py:131 +#: ipalib/plugins/hostgroup.py:134 #, python-format msgid "" "netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " "common namespace" msgstr "" -#: ipalib/plugins/hostgroup.py:153 +#: ipalib/plugins/hostgroup.py:156 msgid "Delete a hostgroup." msgstr "" -#: ipalib/plugins/hostgroup.py:155 +#: ipalib/plugins/hostgroup.py:158 #, python-format msgid "Deleted hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/hostgroup.py:161 +#: ipalib/plugins/hostgroup.py:164 msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/hostgroup.py:163 +#: ipalib/plugins/hostgroup.py:166 #, python-format msgid "Modified hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/hostgroup.py:173 +#: ipalib/plugins/hostgroup.py:176 msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/hostgroup.py:177 +#: ipalib/plugins/hostgroup.py:180 #, python-format msgid "%(count)d hostgroup matched" msgid_plural "%(count)d hostgroups matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/hostgroup.py:191 +#: ipalib/plugins/hostgroup.py:195 msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/hostgroup.py:201 +#: ipalib/plugins/hostgroup.py:205 msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/hostgroup.py:211 +#: ipalib/plugins/hostgroup.py:215 msgid "Remove members from a hostgroup." msgstr "" @@ -4496,1210 +4850,1387 @@ msgid "Dict of JSON encoded IPA Commands" msgstr "" #: ipalib/plugins/internal.py:147 -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." +msgid "Your session has expired. Please re-login." +msgstr "" + +#: ipalib/plugins/internal.py:151 +msgid "Apply" msgstr "" -#: ipalib/plugins/internal.py:148 -msgid "Kerberos ticket no longer valid." +#: ipalib/plugins/internal.py:152 +msgid "Are you sure you want to proceed with the action." msgstr "" #: ipalib/plugins/internal.py:153 -msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}" +msgid "Are you sure you want to delete ${object}" msgstr "" #: ipalib/plugins/internal.py:154 -msgid "Add RunAs Groups into ${entity} ${primary_key}" +msgid "Are you sure you want to disable ${object}" msgstr "" #: ipalib/plugins/internal.py:155 -msgid "Add ${other_entity} Managing ${entity} ${primary_key}" +msgid "Are you sure you want to enable ${object}" msgstr "" #: ipalib/plugins/internal.py:156 +msgid "Actions" +msgstr "" + +#: ipalib/plugins/internal.py:160 +msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:161 +msgid "Add RunAs Groups into ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:162 +msgid "Add ${other_entity} Managing ${entity} ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:163 msgid "Add ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:157 +#: ipalib/plugins/internal.py:164 msgid "Add Allow ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:158 +#: ipalib/plugins/internal.py:165 msgid "Add Deny ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:159 +#: ipalib/plugins/internal.py:166 msgid "Add ${entity} ${primary_key} into ${other_entity}" msgstr "" -#: ipalib/plugins/internal.py:160 +#: ipalib/plugins/internal.py:167 msgid "Add Source ${other_entity} into ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:162 +#: ipalib/plugins/internal.py:169 msgid "Direct Membership" msgstr "" -#: ipalib/plugins/internal.py:163 +#: ipalib/plugins/internal.py:170 msgid "Indirect Membership" msgstr "" -#: ipalib/plugins/internal.py:164 +#: ipalib/plugins/internal.py:171 msgid "No entries." msgstr "" -#: ipalib/plugins/internal.py:165 +#: ipalib/plugins/internal.py:172 msgid "Showing ${start} to ${end} of ${total} entries." msgstr "" -#: ipalib/plugins/internal.py:167 +#: ipalib/plugins/internal.py:174 msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:168 +#: ipalib/plugins/internal.py:175 msgid "Remove RunAs Groups from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:169 +#: ipalib/plugins/internal.py:176 msgid "Remove ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:170 +#: ipalib/plugins/internal.py:177 msgid "Remove ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:171 +#: ipalib/plugins/internal.py:178 msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:172 +#: ipalib/plugins/internal.py:179 msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:173 +#: ipalib/plugins/internal.py:180 msgid "Remove ${entity} ${primary_key} from ${other_entity}" msgstr "" -#: ipalib/plugins/internal.py:174 +#: ipalib/plugins/internal.py:181 msgid "Remove Source ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:176 +#: ipalib/plugins/internal.py:183 msgid "Show Results" msgstr "" -#: ipalib/plugins/internal.py:179 +#: ipalib/plugins/internal.py:186 msgid "Add" msgstr "" -#: ipalib/plugins/internal.py:180 +#: ipalib/plugins/internal.py:187 msgid "Add and Add Another" msgstr "" -#: ipalib/plugins/internal.py:181 +#: ipalib/plugins/internal.py:188 msgid "Add and Close" msgstr "" -#: ipalib/plugins/internal.py:182 +#: ipalib/plugins/internal.py:189 msgid "Add and Edit" msgstr "" -#: ipalib/plugins/internal.py:183 +#: ipalib/plugins/internal.py:190 msgid "Add Many" msgstr "" -#: ipalib/plugins/internal.py:184 +#: ipalib/plugins/internal.py:191 +msgid "Back" +msgstr "" + +#: ipalib/plugins/internal.py:192 msgid "Cancel" msgstr "" -#: ipalib/plugins/internal.py:185 +#: ipalib/plugins/internal.py:193 msgid "Close" msgstr "" -#: ipalib/plugins/internal.py:186 +#: ipalib/plugins/internal.py:194 ipalib/plugins/internal.py:608 +msgid "Disable" +msgstr "" + +#: ipalib/plugins/internal.py:195 msgid "Edit" msgstr "" -#: ipalib/plugins/internal.py:187 +#: ipalib/plugins/internal.py:196 ipalib/plugins/internal.py:610 +msgid "Enable" +msgstr "" + +#: ipalib/plugins/internal.py:197 msgid "Find" msgstr "" -#: ipalib/plugins/internal.py:188 +#: ipalib/plugins/internal.py:198 msgid "Get" msgstr "" -#: ipalib/plugins/internal.py:189 +#: ipalib/plugins/internal.py:199 msgid "Issue" msgstr "" -#: ipalib/plugins/internal.py:190 +#: ipalib/plugins/internal.py:200 msgid "OK" msgstr "" -#: ipalib/plugins/internal.py:191 +#: ipalib/plugins/internal.py:201 msgid "Refresh" msgstr "" -#: ipalib/plugins/internal.py:192 +#: ipalib/plugins/internal.py:202 msgid "Delete" msgstr "" -#: ipalib/plugins/internal.py:193 +#: ipalib/plugins/internal.py:203 msgid "Reset" msgstr "" -#: ipalib/plugins/internal.py:194 +#: ipalib/plugins/internal.py:204 +msgid "Reset Password and Login" +msgstr "" + +#: ipalib/plugins/internal.py:205 msgid "Restore" msgstr "" -#: ipalib/plugins/internal.py:195 +#: ipalib/plugins/internal.py:206 msgid "Retry" msgstr "" -#: ipalib/plugins/internal.py:196 +#: ipalib/plugins/internal.py:207 msgid "Revoke" msgstr "" -#: ipalib/plugins/internal.py:197 +#: ipalib/plugins/internal.py:208 msgid "Set" msgstr "" -#: ipalib/plugins/internal.py:198 +#: ipalib/plugins/internal.py:209 msgid "Update" msgstr "" -#: ipalib/plugins/internal.py:199 +#: ipalib/plugins/internal.py:210 msgid "View" msgstr "" -#: ipalib/plugins/internal.py:202 +#: ipalib/plugins/internal.py:213 msgid "Collapse All" msgstr "" -#: ipalib/plugins/internal.py:203 +#: ipalib/plugins/internal.py:214 msgid "Expand All" msgstr "" -#: ipalib/plugins/internal.py:204 +#: ipalib/plugins/internal.py:215 msgid "General" msgstr "" -#: ipalib/plugins/internal.py:205 +#: ipalib/plugins/internal.py:216 msgid "Identity Settings" msgstr "" -#: ipalib/plugins/internal.py:206 +#: ipalib/plugins/internal.py:217 msgid "${entity} ${primary_key} Settings" msgstr "" -#: ipalib/plugins/internal.py:207 +#: ipalib/plugins/internal.py:218 msgid "Back to Top" msgstr "" -#: ipalib/plugins/internal.py:210 +#: ipalib/plugins/internal.py:221 msgid "${entity} successfully added" msgstr "" -#: ipalib/plugins/internal.py:211 +#: ipalib/plugins/internal.py:222 msgid "Add ${entity}" msgstr "" -#: ipalib/plugins/internal.py:212 +#: ipalib/plugins/internal.py:223 msgid "Available" msgstr "" -#: ipalib/plugins/internal.py:213 +#: ipalib/plugins/internal.py:224 msgid "Some operations failed." msgstr "" -#: ipalib/plugins/internal.py:214 +#: ipalib/plugins/internal.py:225 msgid "Operations Error" msgstr "" -#: ipalib/plugins/internal.py:215 +#: ipalib/plugins/internal.py:226 msgid "Confirmation" msgstr "" -#: ipalib/plugins/internal.py:216 +#: ipalib/plugins/internal.py:227 msgid "This page has unsaved changes. Please save or revert." msgstr "" -#: ipalib/plugins/internal.py:217 +#: ipalib/plugins/internal.py:228 msgid "Unsaved Changes" msgstr "" -#: ipalib/plugins/internal.py:218 +#: ipalib/plugins/internal.py:229 msgid "Edit ${entity}" msgstr "" -#: ipalib/plugins/internal.py:219 +#: ipalib/plugins/internal.py:230 msgid "Hide details" msgstr "" -#: ipalib/plugins/internal.py:220 +#: ipalib/plugins/internal.py:231 msgid "Prospective" msgstr "" -#: ipalib/plugins/internal.py:221 +#: ipalib/plugins/internal.py:232 msgid "Redirection" msgstr "" -#: ipalib/plugins/internal.py:222 +#: ipalib/plugins/internal.py:233 msgid "Select entries to be removed." msgstr "" -#: ipalib/plugins/internal.py:223 +#: ipalib/plugins/internal.py:234 msgid "Remove ${entity}" msgstr "" -#: ipalib/plugins/internal.py:224 +#: ipalib/plugins/internal.py:235 msgid "Show details" msgstr "" -#: ipalib/plugins/internal.py:225 +#: ipalib/plugins/internal.py:236 msgid "Validation error" msgstr "" -#: ipalib/plugins/internal.py:226 +#: ipalib/plugins/internal.py:237 msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/internal.py:230 +#: ipalib/plugins/internal.py:240 +msgid "Please try the following options:" +msgstr "" + +#: ipalib/plugins/internal.py:241 +msgid "If the problem persists please contact the system administrator." +msgstr "" + +#: ipalib/plugins/internal.py:242 +msgid "Refresh the page." +msgstr "" + +#: ipalib/plugins/internal.py:243 +msgid "Reload the browser." +msgstr "" + +#: ipalib/plugins/internal.py:244 +msgid "Return to the main page and retry the operation" +msgstr "" + +#: ipalib/plugins/internal.py:245 +msgid "An error has occured (${error})" +msgstr "" + +#: ipalib/plugins/internal.py:249 msgid "HTTP Error" msgstr "" -#: ipalib/plugins/internal.py:231 +#: ipalib/plugins/internal.py:250 msgid "Internal Error" msgstr "" -#: ipalib/plugins/internal.py:232 +#: ipalib/plugins/internal.py:251 msgid "IPA Error" msgstr "" -#: ipalib/plugins/internal.py:233 +#: ipalib/plugins/internal.py:252 msgid "No response" msgstr "" -#: ipalib/plugins/internal.py:234 +#: ipalib/plugins/internal.py:253 msgid "Unknown Error" msgstr "" -#: ipalib/plugins/internal.py:235 +#: ipalib/plugins/internal.py:254 msgid "URL" msgstr "" -#: ipalib/plugins/internal.py:238 +#: ipalib/plugins/internal.py:257 msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/internal.py:239 +#: ipalib/plugins/internal.py:258 msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/internal.py:240 +#: ipalib/plugins/internal.py:259 msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/internal.py:243 +#: ipalib/plugins/internal.py:262 msgid "Settings" msgstr "" -#: ipalib/plugins/internal.py:244 +#: ipalib/plugins/internal.py:263 msgid "Search" msgstr "" -#: ipalib/plugins/internal.py:246 +#: ipalib/plugins/internal.py:265 msgid "False" msgstr "" -#: ipalib/plugins/internal.py:248 +#: ipalib/plugins/internal.py:267 +msgid "" +"To login with username and password, enter them in the fields below then " +"click Login." +msgstr "" + +#: ipalib/plugins/internal.py:268 msgid "Logged In As" msgstr "" -#: ipalib/plugins/internal.py:252 ipalib/plugins/internal.py:257 +#: ipalib/plugins/internal.py:269 +msgid "" +"To login with Kerberos, please make sure you have valid tickets (obtainable " +"via kinit) and <a href='/ipa/config/unauthorized.html'>configured</a> the " +"browser correctly, then click Login." +msgstr "" + +#: ipalib/plugins/internal.py:270 +msgid "Login" +msgstr "" + +#: ipalib/plugins/internal.py:271 +msgid "Logout" +msgstr "" + +#: ipalib/plugins/internal.py:272 +msgid "Logout error" +msgstr "" + +#: ipalib/plugins/internal.py:277 +msgid "number of passwords" +msgstr "" + +#: ipalib/plugins/internal.py:278 +msgid "seconds" +msgstr "" + +#: ipalib/plugins/internal.py:282 ipalib/plugins/internal.py:287 msgid "Attribute" msgstr "" -#: ipalib/plugins/internal.py:255 +#: ipalib/plugins/internal.py:285 msgid "Add Condition into ${pkey}" msgstr "" -#: ipalib/plugins/internal.py:256 +#: ipalib/plugins/internal.py:286 msgid "Add Rule" msgstr "" -#: ipalib/plugins/internal.py:258 +#: ipalib/plugins/internal.py:288 msgid "Default host group" msgstr "" -#: ipalib/plugins/internal.py:259 +#: ipalib/plugins/internal.py:289 msgid "Default user group" msgstr "" -#: ipalib/plugins/internal.py:260 +#: ipalib/plugins/internal.py:290 msgid "Exclusive" msgstr "" -#: ipalib/plugins/internal.py:261 +#: ipalib/plugins/internal.py:291 msgid "Expression" msgstr "" -#: ipalib/plugins/internal.py:262 +#: ipalib/plugins/internal.py:292 msgid "Host group rule" msgstr "" -#: ipalib/plugins/internal.py:263 +#: ipalib/plugins/internal.py:293 msgid "Host group rules" msgstr "" -#: ipalib/plugins/internal.py:264 +#: ipalib/plugins/internal.py:294 msgid "Inclusive" msgstr "" -#: ipalib/plugins/internal.py:265 +#: ipalib/plugins/internal.py:295 msgid "User group rule" msgstr "" -#: ipalib/plugins/internal.py:266 +#: ipalib/plugins/internal.py:296 msgid "User group rules" msgstr "" -#: ipalib/plugins/internal.py:271 +#: ipalib/plugins/internal.py:301 msgid "Automount Location Settings" msgstr "" -#: ipalib/plugins/internal.py:274 +#: ipalib/plugins/internal.py:304 msgid "Map Type" msgstr "" -#: ipalib/plugins/internal.py:275 +#: ipalib/plugins/internal.py:305 msgid "Direct" msgstr "" -#: ipalib/plugins/internal.py:276 +#: ipalib/plugins/internal.py:306 msgid "Indirect" msgstr "" -#: ipalib/plugins/internal.py:279 +#: ipalib/plugins/internal.py:309 msgid "AA Compromise" msgstr "" -#: ipalib/plugins/internal.py:280 +#: ipalib/plugins/internal.py:310 msgid "Affiliation Changed" msgstr "" -#: ipalib/plugins/internal.py:281 +#: ipalib/plugins/internal.py:311 msgid "CA Compromise" msgstr "" -#: ipalib/plugins/internal.py:282 +#: ipalib/plugins/internal.py:312 msgid "Certificate Hold" msgstr "" -#: ipalib/plugins/internal.py:283 +#: ipalib/plugins/internal.py:313 msgid "Cessation of Operation" msgstr "" -#: ipalib/plugins/internal.py:284 +#: ipalib/plugins/internal.py:314 msgid "Common Name" msgstr "" -#: ipalib/plugins/internal.py:285 +#: ipalib/plugins/internal.py:315 msgid "Expires On" msgstr "" -#: ipalib/plugins/internal.py:286 +#: ipalib/plugins/internal.py:316 msgid "Fingerprints" msgstr "" -#: ipalib/plugins/internal.py:287 +#: ipalib/plugins/internal.py:317 msgid "Issue New Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:288 +#: ipalib/plugins/internal.py:318 msgid "Issued By" msgstr "" -#: ipalib/plugins/internal.py:289 +#: ipalib/plugins/internal.py:319 msgid "Issued On" msgstr "" -#: ipalib/plugins/internal.py:290 +#: ipalib/plugins/internal.py:320 msgid "Issued To" msgstr "" -#: ipalib/plugins/internal.py:291 +#: ipalib/plugins/internal.py:321 msgid "Key Compromise" msgstr "" -#: ipalib/plugins/internal.py:292 +#: ipalib/plugins/internal.py:322 msgid "MD5 Fingerprint" msgstr "" -#: ipalib/plugins/internal.py:293 +#: ipalib/plugins/internal.py:323 msgid "No Valid Certificate" msgstr "" -#: ipalib/plugins/internal.py:294 +#: ipalib/plugins/internal.py:324 msgid "New Certificate" msgstr "" -#: ipalib/plugins/internal.py:295 +#: ipalib/plugins/internal.py:325 msgid "Note" msgstr "" -#: ipalib/plugins/internal.py:296 +#: ipalib/plugins/internal.py:326 msgid "Organization" msgstr "" -#: ipalib/plugins/internal.py:297 +#: ipalib/plugins/internal.py:327 msgid "Organizational Unit" msgstr "" -#: ipalib/plugins/internal.py:298 +#: ipalib/plugins/internal.py:328 msgid "Privilege Withdrawn" msgstr "" -#: ipalib/plugins/internal.py:299 +#: ipalib/plugins/internal.py:329 msgid "Reason for Revocation" msgstr "" -#: ipalib/plugins/internal.py:300 +#: ipalib/plugins/internal.py:330 msgid "Remove from CRL" msgstr "" -#: ipalib/plugins/internal.py:301 +#: ipalib/plugins/internal.py:331 msgid "" -"<ol><li>Create a private key in a secure location, for example:<br/># " -"openssl genrsa -out key.pem</li><li>Create a CSR with subject CN=${hostname}," -"O=${realm}, for example:<br/># openssl req -new -key key.pem -out cert.csr " -"\\<br/> -subj '/O=${realm}/CN=${hostname}'</" -"li><li>Copy and paste the CSR below:</li></ol>" +"<ol><li>Examples uses NSS database located in current directory. Replace \"-" +"d .\" in example with \"-d /path/to/database\" if NSS database is located " +"elsewhere. If you don't have a NSS database you can create one in current " +"directory by \"certutil -N -d .\" </li><li>Create a CSR with \"CN=" +"${hostname},O=${realm}\", for example:<br/># certutil -R -d . -a <em title=" +"\"key size in bits\">-g 2048</em> -s 'CN=${hostname},O=${realm}'</" +"li><li>Copy and paste the CSR (the text block which starts with \"-----BEGIN " +"NEW CERTIFICATE REQUEST-----\" and ends with \"-----END NEW CERTIFICATE " +"REQUEST-----\") below:</li></ol>" msgstr "" -#: ipalib/plugins/internal.py:302 +#: ipalib/plugins/internal.py:332 msgid "Restore Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:303 +#: ipalib/plugins/internal.py:333 msgid "" "To confirm your intention to restore this certificate, click the \"Restore\" " "button." msgstr "" -#: ipalib/plugins/internal.py:304 +#: ipalib/plugins/internal.py:334 msgid "Revoke Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:305 +#: ipalib/plugins/internal.py:335 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:306 +#: ipalib/plugins/internal.py:336 msgid "Certificate Revoked" msgstr "" -#: ipalib/plugins/internal.py:308 +#: ipalib/plugins/internal.py:339 msgid "SHA1 Fingerprint" msgstr "" -#: ipalib/plugins/internal.py:309 +#: ipalib/plugins/internal.py:340 msgid "Superseded" msgstr "" -#: ipalib/plugins/internal.py:310 +#: ipalib/plugins/internal.py:341 msgid "Unspecified" msgstr "" -#: ipalib/plugins/internal.py:311 +#: ipalib/plugins/internal.py:342 msgid "Valid Certificate Present" msgstr "" -#: ipalib/plugins/internal.py:312 +#: ipalib/plugins/internal.py:343 msgid "Validity" msgstr "" -#: ipalib/plugins/internal.py:313 +#: ipalib/plugins/internal.py:344 msgid "Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:316 +#: ipalib/plugins/internal.py:347 msgid "Group Options" msgstr "" -#: ipalib/plugins/internal.py:317 +#: ipalib/plugins/internal.py:348 msgid "Search Options" msgstr "" -#: ipalib/plugins/internal.py:318 +#: ipalib/plugins/internal.py:349 msgid "SELinux Options" msgstr "" -#: ipalib/plugins/internal.py:319 +#: ipalib/plugins/internal.py:350 msgid "User Options" msgstr "" -#: ipalib/plugins/internal.py:324 +#: ipalib/plugins/internal.py:355 +msgid "Forward first" +msgstr "" + +#: ipalib/plugins/internal.py:356 +msgid "Forward only" +msgstr "" + +#: ipalib/plugins/internal.py:357 ipalib/plugins/internal.py:550 +msgid "Options" +msgstr "" + +#: ipalib/plugins/internal.py:360 msgid "Data" msgstr "" -#: ipalib/plugins/internal.py:325 +#: ipalib/plugins/internal.py:361 msgid "DNS record was deleted because it contained no data." msgstr "" -#: ipalib/plugins/internal.py:326 +#: ipalib/plugins/internal.py:362 msgid "Other Record Types" msgstr "" -#: ipalib/plugins/internal.py:327 +#: ipalib/plugins/internal.py:363 msgid "Address not valid, can't redirect" msgstr "" -#: ipalib/plugins/internal.py:328 +#: ipalib/plugins/internal.py:364 msgid "Create dns record" msgstr "" -#: ipalib/plugins/internal.py:329 +#: ipalib/plugins/internal.py:365 msgid "Creating record." msgstr "" -#: ipalib/plugins/internal.py:330 +#: ipalib/plugins/internal.py:366 msgid "Record creation failed." msgstr "" -#: ipalib/plugins/internal.py:331 +#: ipalib/plugins/internal.py:367 msgid "Checking if record exists." msgstr "" -#: ipalib/plugins/internal.py:332 +#: ipalib/plugins/internal.py:368 msgid "Record not found." msgstr "" -#: ipalib/plugins/internal.py:333 +#: ipalib/plugins/internal.py:369 msgid "Redirection to PTR record" msgstr "" -#: ipalib/plugins/internal.py:334 +#: ipalib/plugins/internal.py:370 msgid "Zone found: ${zone}" msgstr "" -#: ipalib/plugins/internal.py:335 +#: ipalib/plugins/internal.py:371 msgid "Target reverse zone not found." msgstr "" -#: ipalib/plugins/internal.py:336 +#: ipalib/plugins/internal.py:372 msgid "Fetching DNS zones." msgstr "" -#: ipalib/plugins/internal.py:337 -msgid "An error occurd while fetching dns zones." +#: ipalib/plugins/internal.py:373 +msgid "An error occurred while fetching dns zones." msgstr "" -#: ipalib/plugins/internal.py:338 +#: ipalib/plugins/internal.py:374 msgid "You will be redirected to DNS Zone." msgstr "" -#: ipalib/plugins/internal.py:339 +#: ipalib/plugins/internal.py:375 msgid "Standard Record Types" msgstr "" -#: ipalib/plugins/internal.py:340 +#: ipalib/plugins/internal.py:376 msgid "Records for DNS Zone" msgstr "" -#: ipalib/plugins/internal.py:341 +#: ipalib/plugins/internal.py:377 msgid "Record Type" msgstr "" -#: ipalib/plugins/internal.py:344 +#: ipalib/plugins/internal.py:380 msgid "DNS Zone Settings" msgstr "" -#: ipalib/plugins/internal.py:347 +#: ipalib/plugins/internal.py:381 +msgid "Add Permission" +msgstr "" + +#: ipalib/plugins/internal.py:382 +msgid "Remove Permission" +msgstr "" + +#: ipalib/plugins/internal.py:385 ipalib/plugins/internal.py:559 msgid "Account" msgstr "" -#: ipalib/plugins/internal.py:349 +#: ipalib/plugins/internal.py:387 msgid "Certificates" msgstr "" -#: ipalib/plugins/internal.py:350 +#: ipalib/plugins/internal.py:388 msgid "Consume" msgstr "" -#: ipalib/plugins/internal.py:351 +#: ipalib/plugins/internal.py:389 msgid "Consume Entitlement" msgstr "" -#: ipalib/plugins/internal.py:353 +#: ipalib/plugins/internal.py:391 msgid "Download" msgstr "" -#: ipalib/plugins/internal.py:354 +#: ipalib/plugins/internal.py:392 msgid "Download Certificate" msgstr "" -#: ipalib/plugins/internal.py:356 +#: ipalib/plugins/internal.py:394 msgid "Import" msgstr "" -#: ipalib/plugins/internal.py:357 +#: ipalib/plugins/internal.py:395 msgid "Import Certificate" msgstr "" -#: ipalib/plugins/internal.py:358 +#: ipalib/plugins/internal.py:396 msgid "Enter the Base64-encoded entitlement certificate below:" msgstr "" -#: ipalib/plugins/internal.py:359 +#: ipalib/plugins/internal.py:397 msgid "Loading..." msgstr "" -#: ipalib/plugins/internal.py:360 +#: ipalib/plugins/internal.py:398 msgid "No Certificate." msgstr "" -#: ipalib/plugins/internal.py:362 +#: ipalib/plugins/internal.py:400 msgid "Register" msgstr "" -#: ipalib/plugins/internal.py:363 +#: ipalib/plugins/internal.py:401 msgid "Registration" msgstr "" -#: ipalib/plugins/internal.py:365 ipalib/plugins/internal.py:420 -#: ipalib/plugins/internal.py:467 ipalib/plugins/internal.py:543 +#: ipalib/plugins/internal.py:403 ipalib/plugins/internal.py:459 +#: ipalib/plugins/internal.py:517 ipalib/plugins/internal.py:612 msgid "Status" msgstr "" -#: ipalib/plugins/internal.py:368 +#: ipalib/plugins/internal.py:406 msgid "Group Settings" msgstr "" -#: ipalib/plugins/internal.py:369 +#: ipalib/plugins/internal.py:407 msgid "POSIX group" msgstr "" -#: ipalib/plugins/internal.py:372 ipalib/plugins/internal.py:452 -#: ipalib/plugins/internal.py:493 +#: ipalib/plugins/internal.py:410 ipalib/plugins/internal.py:471 +#: ipalib/plugins/internal.py:502 ipalib/plugins/internal.py:543 msgid "Any Host" msgstr "" -#: ipalib/plugins/internal.py:373 +#: ipalib/plugins/internal.py:411 msgid "Any Service" msgstr "" -#: ipalib/plugins/internal.py:374 ipalib/plugins/internal.py:453 -#: ipalib/plugins/internal.py:494 +#: ipalib/plugins/internal.py:412 ipalib/plugins/internal.py:472 +#: ipalib/plugins/internal.py:503 ipalib/plugins/internal.py:544 msgid "Anyone" msgstr "" -#: ipalib/plugins/internal.py:375 +#: ipalib/plugins/internal.py:413 msgid "Accessing" msgstr "" -#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:499 +#: ipalib/plugins/internal.py:414 ipalib/plugins/internal.py:549 msgid "Rule status" msgstr "" -#: ipalib/plugins/internal.py:377 +#: ipalib/plugins/internal.py:415 msgid "Via Service" msgstr "" -#: ipalib/plugins/internal.py:378 +#: ipalib/plugins/internal.py:416 msgid "From" msgstr "" -#: ipalib/plugins/internal.py:379 ipalib/plugins/internal.py:455 -#: ipalib/plugins/internal.py:504 +#: ipalib/plugins/internal.py:417 ipalib/plugins/internal.py:478 +#: ipalib/plugins/internal.py:505 ipalib/plugins/internal.py:554 msgid "Specified Hosts and Groups" msgstr "" -#: ipalib/plugins/internal.py:380 +#: ipalib/plugins/internal.py:418 msgid "Specified Services and Groups" msgstr "" -#: ipalib/plugins/internal.py:381 ipalib/plugins/internal.py:456 -#: ipalib/plugins/internal.py:505 +#: ipalib/plugins/internal.py:419 ipalib/plugins/internal.py:479 +#: ipalib/plugins/internal.py:506 ipalib/plugins/internal.py:555 msgid "Specified Users and Groups" msgstr "" -#: ipalib/plugins/internal.py:382 ipalib/plugins/internal.py:506 +#: ipalib/plugins/internal.py:420 ipalib/plugins/internal.py:556 msgid "Who" msgstr "" -#: ipalib/plugins/internal.py:390 +#: ipalib/plugins/internal.py:428 msgid "Access Denied" msgstr "" -#: ipalib/plugins/internal.py:391 +#: ipalib/plugins/internal.py:429 msgid "Access Granted" msgstr "" -#: ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:430 msgid "Include Disabled" msgstr "" -#: ipalib/plugins/internal.py:393 +#: ipalib/plugins/internal.py:431 msgid "Include Enabled" msgstr "" -#: ipalib/plugins/internal.py:394 +#: ipalib/plugins/internal.py:432 msgid "HBAC Test" msgstr "" -#: ipalib/plugins/internal.py:395 +#: ipalib/plugins/internal.py:433 msgid "Matched" msgstr "" -#: ipalib/plugins/internal.py:396 +#: ipalib/plugins/internal.py:434 +msgid "Missing values: " +msgstr "" + +#: ipalib/plugins/internal.py:435 msgid "New Test" msgstr "" -#: ipalib/plugins/internal.py:397 +#: ipalib/plugins/internal.py:436 msgid "Rules" msgstr "" -#: ipalib/plugins/internal.py:398 +#: ipalib/plugins/internal.py:437 msgid "Run Test" msgstr "" -#: ipalib/plugins/internal.py:399 +#: ipalib/plugins/internal.py:438 msgid "Specify external ${entity}" msgstr "" -#: ipalib/plugins/internal.py:400 +#: ipalib/plugins/internal.py:439 msgid "Unmatched" msgstr "" -#: ipalib/plugins/internal.py:403 +#: ipalib/plugins/internal.py:442 msgid "Host Certificate" msgstr "" -#: ipalib/plugins/internal.py:404 ipalib/plugins/internal.py:463 +#: ipalib/plugins/internal.py:443 ipalib/plugins/internal.py:513 msgid "Host Name" msgstr "" -#: ipalib/plugins/internal.py:405 ipalib/plugins/internal.py:461 +#: ipalib/plugins/internal.py:444 ipalib/plugins/internal.py:511 msgid "Delete Key, Unprovision" msgstr "" -#: ipalib/plugins/internal.py:406 +#: ipalib/plugins/internal.py:445 msgid "Host Settings" msgstr "" -#: ipalib/plugins/internal.py:407 +#: ipalib/plugins/internal.py:446 msgid "Enrolled" msgstr "" -#: ipalib/plugins/internal.py:408 +#: ipalib/plugins/internal.py:447 msgid "Enrollment" msgstr "" -#: ipalib/plugins/internal.py:409 +#: ipalib/plugins/internal.py:448 msgid "Fully Qualified Host Name" msgstr "" -#: ipalib/plugins/internal.py:410 +#: ipalib/plugins/internal.py:449 msgid "Kerberos Key" msgstr "" -#: ipalib/plugins/internal.py:411 ipalib/plugins/internal.py:464 +#: ipalib/plugins/internal.py:450 ipalib/plugins/internal.py:514 msgid "Kerberos Key Not Present" msgstr "" -#: ipalib/plugins/internal.py:412 +#: ipalib/plugins/internal.py:451 msgid "Kerberos Key Present, Host Provisioned" msgstr "" -#: ipalib/plugins/internal.py:413 +#: ipalib/plugins/internal.py:452 msgid "One-Time-Password" msgstr "" -#: ipalib/plugins/internal.py:414 +#: ipalib/plugins/internal.py:453 msgid "One-Time-Password Not Present" msgstr "" -#: ipalib/plugins/internal.py:415 +#: ipalib/plugins/internal.py:454 msgid "One-Time-Password Present" msgstr "" -#: ipalib/plugins/internal.py:416 +#: ipalib/plugins/internal.py:455 msgid "Reset OTP" msgstr "" -#: ipalib/plugins/internal.py:417 +#: ipalib/plugins/internal.py:456 msgid "Reset One-Time-Password" msgstr "" -#: ipalib/plugins/internal.py:418 +#: ipalib/plugins/internal.py:457 msgid "Set OTP" msgstr "" -#: ipalib/plugins/internal.py:419 +#: ipalib/plugins/internal.py:458 msgid "Set One-Time-Password" msgstr "" -#: ipalib/plugins/internal.py:421 ipalib/plugins/internal.py:468 +#: ipalib/plugins/internal.py:460 ipalib/plugins/internal.py:518 msgid "Unprovision" msgstr "" -#: ipalib/plugins/internal.py:422 +#: ipalib/plugins/internal.py:461 msgid "Are you sure you want to unprovision this host?" msgstr "" -#: ipalib/plugins/internal.py:423 ipalib/plugins/internal.py:470 +#: ipalib/plugins/internal.py:462 ipalib/plugins/internal.py:520 msgid "Unprovisioning ${entity}" msgstr "" -#: ipalib/plugins/internal.py:426 +#: ipalib/plugins/internal.py:465 msgid "Host Group Settings" msgstr "" -#: ipalib/plugins/internal.py:429 ipalib/plugins/krbtpolicy.py:79 +#: ipalib/plugins/internal.py:468 ipalib/plugins/krbtpolicy.py:79 #: ipalib/plugins/krbtpolicy.py:80 msgid "Kerberos Ticket Policy" msgstr "" -#: ipalib/plugins/internal.py:432 +#: ipalib/plugins/internal.py:473 ipalib/plugins/internal.py:547 +msgid "External" +msgstr "" + +#: ipalib/plugins/internal.py:477 msgid "Netgroup Settings" msgstr "" -#: ipalib/plugins/internal.py:435 ipalib/plugins/internal.py:551 +#: ipalib/plugins/internal.py:480 ipalib/plugins/internal.py:507 +#: ipalib/plugins/pwpolicy.py:433 ipalib/plugins/user.py:203 +msgid "User" +msgstr "" + +#: ipalib/plugins/internal.py:485 ipalib/plugins/internal.py:620 msgid "Identity" msgstr "" -#: ipalib/plugins/internal.py:436 +#: ipalib/plugins/internal.py:486 msgid "Permission with invalid target specification" msgstr "" -#: ipalib/plugins/internal.py:441 +#: ipalib/plugins/internal.py:491 msgid "Privilege Settings" msgstr "" -#: ipalib/plugins/internal.py:444 ipalib/plugins/pwpolicy.py:221 +#: ipalib/plugins/internal.py:494 ipalib/plugins/pwpolicy.py:221 msgid "Password Policy" msgstr "" -#: ipalib/plugins/internal.py:447 +#: ipalib/plugins/internal.py:497 msgid "Role Settings" msgstr "" -#: ipalib/plugins/internal.py:457 ipalib/plugins/pwpolicy.py:432 -#: ipalib/plugins/user.py:177 -msgid "User" -msgstr "" - -#: ipalib/plugins/internal.py:460 +#: ipalib/plugins/internal.py:510 msgid "Service Certificate" msgstr "" -#: ipalib/plugins/internal.py:462 +#: ipalib/plugins/internal.py:512 msgid "Service Settings" msgstr "" -#: ipalib/plugins/internal.py:465 +#: ipalib/plugins/internal.py:515 msgid "Provisioning" msgstr "" -#: ipalib/plugins/internal.py:469 +#: ipalib/plugins/internal.py:519 msgid "Are you sure you want to unprovision this service?" msgstr "" -#: ipalib/plugins/internal.py:471 +#: ipalib/plugins/internal.py:521 msgid "Kerberos Key Present, Service Provisioned" msgstr "" -#: ipalib/plugins/internal.py:474 +#: ipalib/plugins/internal.py:524 msgid "SSH public keys" msgstr "" -#: ipalib/plugins/internal.py:475 +#: ipalib/plugins/internal.py:525 msgid "Base-64 encoded SSH public key:" msgstr "" -#: ipalib/plugins/internal.py:476 +#: ipalib/plugins/internal.py:526 msgid "Set SSH key" msgstr "" -#: ipalib/plugins/internal.py:477 +#: ipalib/plugins/internal.py:527 msgid "Show/Set key" msgstr "" -#: ipalib/plugins/internal.py:478 +#: ipalib/plugins/internal.py:528 msgid "Modified: key not set" msgstr "" -#: ipalib/plugins/internal.py:479 +#: ipalib/plugins/internal.py:529 msgid "Modified" msgstr "" -#: ipalib/plugins/internal.py:480 +#: ipalib/plugins/internal.py:530 msgid "New: key not set" msgstr "" -#: ipalib/plugins/internal.py:481 +#: ipalib/plugins/internal.py:531 msgid "New: key set" msgstr "" -#: ipalib/plugins/internal.py:484 +#: ipalib/plugins/internal.py:534 msgid "Groups" msgstr "" -#: ipalib/plugins/internal.py:487 ipalib/plugins/sudocmdgroup.py:82 +#: ipalib/plugins/internal.py:537 ipalib/plugins/sudocmdgroup.py:82 msgid "Commands" msgstr "" -#: ipalib/plugins/internal.py:490 +#: ipalib/plugins/internal.py:540 msgid "Allow" msgstr "" -#: ipalib/plugins/internal.py:491 +#: ipalib/plugins/internal.py:541 msgid "Any Command" msgstr "" -#: ipalib/plugins/internal.py:492 +#: ipalib/plugins/internal.py:542 msgid "Any Group" msgstr "" -#: ipalib/plugins/internal.py:495 +#: ipalib/plugins/internal.py:545 msgid "Run Commands" msgstr "" -#: ipalib/plugins/internal.py:496 +#: ipalib/plugins/internal.py:546 msgid "Deny" msgstr "" -#: ipalib/plugins/internal.py:497 -msgid "External" -msgstr "" - -#: ipalib/plugins/internal.py:498 +#: ipalib/plugins/internal.py:548 msgid "Access this host" msgstr "" -#: ipalib/plugins/internal.py:500 -msgid "Options" -msgstr "" - -#: ipalib/plugins/internal.py:501 +#: ipalib/plugins/internal.py:551 msgid "As Whom" msgstr "" -#: ipalib/plugins/internal.py:502 +#: ipalib/plugins/internal.py:552 msgid "Specified Commands and Groups" msgstr "" -#: ipalib/plugins/internal.py:503 +#: ipalib/plugins/internal.py:553 msgid "Specified Groups" msgstr "" -#: ipalib/plugins/internal.py:509 +#: ipalib/plugins/internal.py:560 +msgid "Administrative account" +msgstr "" + +#: ipalib/plugins/internal.py:561 +msgid "Trust Settings" +msgstr "" + +#: ipalib/plugins/internal.py:562 +msgid "Domain" +msgstr "" + +#: ipalib/plugins/internal.py:563 +msgid "Establish using" +msgstr "" + +#: ipalib/plugins/internal.py:564 ipalib/plugins/trust.py:40 +msgid "Domain NetBIOS name" +msgstr "" + +#: ipalib/plugins/internal.py:565 ipalib/plugins/trust.py:42 +msgid "Domain Security Identifier" +msgstr "" + +#: ipalib/plugins/internal.py:566 +msgid "Pre-shared password" +msgstr "" + +#: ipalib/plugins/internal.py:567 ipalib/plugins/trust.py:44 +msgid "Trust direction" +msgstr "" + +#: ipalib/plugins/internal.py:568 ipalib/plugins/trust.py:48 +msgid "Trust status" +msgstr "" + +#: ipalib/plugins/internal.py:569 ipalib/plugins/trust.py:46 +msgid "Trust type" +msgstr "" + +#: ipalib/plugins/internal.py:572 msgid "Account Settings" msgstr "" -#: ipalib/plugins/internal.py:510 +#: ipalib/plugins/internal.py:573 msgid "Account Status" msgstr "" -#: ipalib/plugins/internal.py:511 +#: ipalib/plugins/internal.py:574 msgid "Contact Settings" msgstr "" -#: ipalib/plugins/internal.py:512 +#: ipalib/plugins/internal.py:575 msgid "Employee Information" msgstr "" -#: ipalib/plugins/internal.py:513 +#: ipalib/plugins/internal.py:576 msgid "Error changing account status" msgstr "" -#: ipalib/plugins/internal.py:514 +#: ipalib/plugins/internal.py:577 msgid "Password expiration" msgstr "" -#: ipalib/plugins/internal.py:515 +#: ipalib/plugins/internal.py:578 msgid "Mailing Address" msgstr "" -#: ipalib/plugins/internal.py:516 +#: ipalib/plugins/internal.py:579 msgid "Misc. Information" msgstr "" -#: ipalib/plugins/internal.py:517 +#: ipalib/plugins/internal.py:580 msgid "" "Are you sure you want to ${action} the user?<br/>The change will take effect " "immediately." msgstr "" -#: ipalib/plugins/internal.py:518 +#: ipalib/plugins/internal.py:581 msgid "Click to ${action}" msgstr "" -#: ipalib/plugins/internal.py:522 ipalib/plugins/passwd.py:79 +#: ipalib/plugins/internal.py:585 ipalib/plugins/passwd.py:79 msgid "Current Password" msgstr "" -#: ipalib/plugins/internal.py:523 +#: ipalib/plugins/internal.py:586 msgid "Current password is required" msgstr "" -#: ipalib/plugins/internal.py:524 ipalib/plugins/passwd.py:76 +#: ipalib/plugins/internal.py:587 +msgid "Your password expires in ${days} days." +msgstr "" + +#: ipalib/plugins/internal.py:588 +msgid "The password or username you entered is incorrect." +msgstr "" + +#: ipalib/plugins/internal.py:589 ipalib/plugins/passwd.py:76 msgid "New Password" msgstr "" -#: ipalib/plugins/internal.py:525 +#: ipalib/plugins/internal.py:590 +msgid "New password is required" +msgstr "" + +#: ipalib/plugins/internal.py:592 msgid "Password change complete" msgstr "" -#: ipalib/plugins/internal.py:526 +#: ipalib/plugins/internal.py:593 msgid "Passwords must match" msgstr "" -#: ipalib/plugins/internal.py:527 +#: ipalib/plugins/internal.py:594 +msgid "Password reset was not successful." +msgstr "" + +#: ipalib/plugins/internal.py:595 msgid "Reset Password" msgstr "" -#: ipalib/plugins/internal.py:528 +#: ipalib/plugins/internal.py:596 +msgid "Reset your password." +msgstr "" + +#: ipalib/plugins/internal.py:597 msgid "Verify Password" msgstr "" -#: ipalib/plugins/internal.py:531 +#: ipalib/plugins/internal.py:600 msgid "Are you sure you want to delete selected entries?" msgstr "" -#: ipalib/plugins/internal.py:532 +#: ipalib/plugins/internal.py:601 msgid "Some entries were not deleted" msgstr "" -#: ipalib/plugins/internal.py:533 +#: ipalib/plugins/internal.py:602 msgid "Quick Links" msgstr "" -#: ipalib/plugins/internal.py:534 +#: ipalib/plugins/internal.py:603 msgid "Select All" msgstr "" -#: ipalib/plugins/internal.py:535 +#: ipalib/plugins/internal.py:604 msgid "" "Query returned more results than the configured size limit. Displaying the " "first ${counter} results." msgstr "" -#: ipalib/plugins/internal.py:536 +#: ipalib/plugins/internal.py:605 msgid "Unselect All" msgstr "" -#: ipalib/plugins/internal.py:539 -msgid "Disable" -msgstr "" - -#: ipalib/plugins/internal.py:540 +#: ipalib/plugins/internal.py:609 msgid "Disabled" msgstr "" -#: ipalib/plugins/internal.py:541 -msgid "Enable" -msgstr "" - -#: ipalib/plugins/internal.py:546 +#: ipalib/plugins/internal.py:615 msgid "Audit" msgstr "" -#: ipalib/plugins/internal.py:547 +#: ipalib/plugins/internal.py:616 msgid "Automember" msgstr "" -#: ipalib/plugins/internal.py:548 +#: ipalib/plugins/internal.py:617 msgid "Automount" msgstr "" -#: ipalib/plugins/internal.py:549 +#: ipalib/plugins/internal.py:618 msgid "DNS" msgstr "" -#: ipalib/plugins/internal.py:550 +#: ipalib/plugins/internal.py:619 msgid "Host Based Access Control" msgstr "" -#: ipalib/plugins/internal.py:552 +#: ipalib/plugins/internal.py:621 msgid "IPA Server" msgstr "" -#: ipalib/plugins/internal.py:553 +#: ipalib/plugins/internal.py:622 msgid "Policy" msgstr "" -#: ipalib/plugins/internal.py:554 +#: ipalib/plugins/internal.py:623 msgid "Role Based Access Control" msgstr "" -#: ipalib/plugins/internal.py:555 +#: ipalib/plugins/internal.py:624 msgid "Sudo" msgstr "" -#: ipalib/plugins/internal.py:557 +#: ipalib/plugins/internal.py:626 msgid "True" msgstr "" -#: ipalib/plugins/internal.py:559 +#: ipalib/plugins/internal.py:628 msgid "Next" msgstr "" -#: ipalib/plugins/internal.py:560 +#: ipalib/plugins/internal.py:629 msgid "Page" msgstr "" -#: ipalib/plugins/internal.py:561 +#: ipalib/plugins/internal.py:630 msgid "Prev" msgstr "" -#: ipalib/plugins/internal.py:562 +#: ipalib/plugins/internal.py:631 msgid "undo" msgstr "" -#: ipalib/plugins/internal.py:563 +#: ipalib/plugins/internal.py:632 msgid "undo all" msgstr "" -#: ipalib/plugins/internal.py:565 +#: ipalib/plugins/internal.py:634 msgid "Text does not match field pattern" msgstr "" -#: ipalib/plugins/internal.py:566 +#: ipalib/plugins/internal.py:635 msgid "Must be an integer" msgstr "" -#: ipalib/plugins/internal.py:567 +#: ipalib/plugins/internal.py:636 msgid "Not a valid IP address" msgstr "" -#: ipalib/plugins/internal.py:568 +#: ipalib/plugins/internal.py:637 msgid "Not a valid IPv4 address" msgstr "" -#: ipalib/plugins/internal.py:569 +#: ipalib/plugins/internal.py:638 msgid "Not a valid IPv6 address" msgstr "" -#: ipalib/plugins/internal.py:570 +#: ipalib/plugins/internal.py:639 msgid "Maximum value is ${value}" msgstr "" -#: ipalib/plugins/internal.py:571 +#: ipalib/plugins/internal.py:640 msgid "Minimum value is ${value}" msgstr "" -#: ipalib/plugins/internal.py:572 +#: ipalib/plugins/internal.py:641 +msgid "Not a valid network address" +msgstr "" + +#: ipalib/plugins/internal.py:642 +msgid "'${port}' is not a valid port" +msgstr "" + +#: ipalib/plugins/internal.py:643 msgid "Required field" msgstr "" -#: ipalib/plugins/internal.py:577 +#: ipalib/plugins/internal.py:644 +msgid "Unsupported value" +msgstr "" + +#: ipalib/plugins/internal.py:649 msgid "Dict of I18N messages" msgstr "" @@ -5779,7 +6310,7 @@ msgstr "" msgid "Reset Kerberos ticket policy to the default values." msgstr "" -#: ipalib/plugins/migration.py:34 +#: ipalib/plugins/migration.py:36 msgid "" "\n" "Migration to IPA\n" @@ -5802,6 +6333,11 @@ msgid "" "RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" "members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" "\n" +"The schema compat feature allows IPA to reformat data for systems that\n" +"do not support RFC2307bis. It is recommended that this feature is disabled\n" +"during migration to reduce system overhead. It can be re-enabled after\n" +"migration. To migrate with it enabled use the \"--with-compat\" option.\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" @@ -5812,6 +6348,10 @@ msgid "" "\n" " ipa config-mod --enable-migration=TRUE\n" "\n" +"If a base DN is not provided with --basedn then IPA will use either\n" +"the value of defaultNamingContext if it is set or the first value\n" +"in namingContexts set in the root of the remote LDAP server.\n" +"\n" "EXAMPLES:\n" "\n" " The simplest migration, accepting all defaults:\n" @@ -5846,183 +6386,208 @@ msgid "" " ldap://ds.example.com:389\n" msgstr "" -#: ipalib/plugins/migration.py:99 +#: ipalib/plugins/migration.py:110 #, python-format msgid "" "Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." msgstr "" -#: ipalib/plugins/migration.py:100 +#: ipalib/plugins/migration.py:111 msgid "" "Failed to add user to the default group. Use 'ipa group-add-member' to add " "manually." msgstr "" -#: ipalib/plugins/migration.py:101 +#: ipalib/plugins/migration.py:112 msgid "Migration of LDAP search reference is not supported." msgstr "" -#: ipalib/plugins/migration.py:102 +#: ipalib/plugins/migration.py:113 msgid "Malformed DN" msgstr "" -#: ipalib/plugins/migration.py:268 +#: ipalib/plugins/migration.py:137 +#, python-format +msgid "%(user)s is not a POSIX user" +msgstr "" + +#: ipalib/plugins/migration.py:348 msgid "" ". Check GID of the existing group. Use --group-overwrite-gid option to " "overwrite the GID" msgstr "" -#: ipalib/plugins/migration.py:283 +#: ipalib/plugins/migration.py:363 msgid "Invalid LDAP URI." msgstr "" -#: ipalib/plugins/migration.py:288 +#: ipalib/plugins/migration.py:368 msgid "Migrate users and groups from DS to IPA." msgstr "" -#: ipalib/plugins/migration.py:335 +#: ipalib/plugins/migration.py:415 msgid "LDAP URI" msgstr "" -#: ipalib/plugins/migration.py:336 +#: ipalib/plugins/migration.py:416 msgid "LDAP URI of DS server to migrate from" msgstr "" -#: ipalib/plugins/migration.py:342 +#: ipalib/plugins/migration.py:422 msgid "bind password" msgstr "" -#: ipalib/plugins/migration.py:349 +#: ipalib/plugins/migration.py:429 msgid "Bind DN" msgstr "" -#: ipalib/plugins/migration.py:355 +#: ipalib/plugins/migration.py:435 msgid "User container" msgstr "" -#: ipalib/plugins/migration.py:356 -msgid "RDN of container for users in DS" +#: ipalib/plugins/migration.py:436 +msgid "DN of container for users in DS relative to base DN" msgstr "" -#: ipalib/plugins/migration.py:362 +#: ipalib/plugins/migration.py:442 msgid "Group container" msgstr "" -#: ipalib/plugins/migration.py:363 -msgid "RDN of container for groups in DS" +#: ipalib/plugins/migration.py:443 +msgid "DN of container for groups in DS relative to base DN" msgstr "" -#: ipalib/plugins/migration.py:369 +#: ipalib/plugins/migration.py:449 msgid "User object class" msgstr "" -#: ipalib/plugins/migration.py:370 +#: ipalib/plugins/migration.py:450 msgid "" "Comma-separated list of objectclasses used to search for user entries in DS" msgstr "" -#: ipalib/plugins/migration.py:377 +#: ipalib/plugins/migration.py:457 msgid "Group object class" msgstr "" -#: ipalib/plugins/migration.py:378 +#: ipalib/plugins/migration.py:458 msgid "" "Comma-separated list of objectclasses used to search for group entries in DS" msgstr "" -#: ipalib/plugins/migration.py:385 +#: ipalib/plugins/migration.py:465 msgid "Ignore user object class" msgstr "" -#: ipalib/plugins/migration.py:386 +#: ipalib/plugins/migration.py:466 msgid "" "Comma-separated list of objectclasses to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/migration.py:393 +#: ipalib/plugins/migration.py:473 msgid "Ignore user attribute" msgstr "" -#: ipalib/plugins/migration.py:394 +#: ipalib/plugins/migration.py:474 msgid "Comma-separated list of attributes to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/migration.py:401 +#: ipalib/plugins/migration.py:481 msgid "Ignore group object class" msgstr "" -#: ipalib/plugins/migration.py:402 +#: ipalib/plugins/migration.py:482 msgid "" "Comma-separated list of objectclasses to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/migration.py:409 +#: ipalib/plugins/migration.py:489 msgid "Ignore group attribute" msgstr "" -#: ipalib/plugins/migration.py:410 +#: ipalib/plugins/migration.py:490 msgid "" "Comma-separated list of attributes to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/migration.py:417 +#: ipalib/plugins/migration.py:497 msgid "Overwrite GID" msgstr "" -#: ipalib/plugins/migration.py:418 +#: ipalib/plugins/migration.py:498 msgid "" "When migrating a group already existing in IPA domain overwrite the group " "GID and report as success" msgstr "" -#: ipalib/plugins/migration.py:423 +#: ipalib/plugins/migration.py:503 msgid "LDAP schema" msgstr "" -#: ipalib/plugins/migration.py:424 +#: ipalib/plugins/migration.py:504 msgid "" "The schema used on the LDAP server. Supported values are RFC2307 and " "RFC2307bis. The default is RFC2307bis" msgstr "" -#: ipalib/plugins/migration.py:430 +#: ipalib/plugins/migration.py:510 msgid "Continue" msgstr "" -#: ipalib/plugins/migration.py:431 +#: ipalib/plugins/migration.py:511 msgid "" "Continuous operation mode. Errors are reported but the process continues" msgstr "" -#: ipalib/plugins/migration.py:439 +#: ipalib/plugins/migration.py:516 +msgid "Base DN" +msgstr "" + +#: ipalib/plugins/migration.py:517 +msgid "Base DN on remote LDAP server" +msgstr "" + +#: ipalib/plugins/migration.py:521 +msgid "Ignore compat plugin" +msgstr "" + +#: ipalib/plugins/migration.py:522 +msgid "Allows migration despite the usage of compat plugin" +msgstr "" + +#: ipalib/plugins/migration.py:530 msgid "Lists of objects migrated; categorized by type." msgstr "" -#: ipalib/plugins/migration.py:443 +#: ipalib/plugins/migration.py:534 msgid "Lists of objects that could not be migrated; categorized by type." msgstr "" -#: ipalib/plugins/migration.py:447 +#: ipalib/plugins/migration.py:538 msgid "False if migration mode was disabled." msgstr "" -#: ipalib/plugins/migration.py:451 +#: ipalib/plugins/migration.py:542 +msgid "False if migration fails because the compatibility plug-in is enabled." +msgstr "" + +#: ipalib/plugins/migration.py:546 #, python-format msgid "comma-separated list of %s to exclude from migration" msgstr "" -#: ipalib/plugins/migration.py:453 +#: ipalib/plugins/migration.py:548 msgid "" "search results for objects to be migrated\n" "have been truncated by the server;\n" "migration process might be incomplete\n" msgstr "" -#: ipalib/plugins/migration.py:458 +#: ipalib/plugins/migration.py:553 msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." msgstr "" -#: ipalib/plugins/migration.py:461 +#: ipalib/plugins/migration.py:556 msgid "" "Passwords have been migrated in pre-hashed format.\n" "IPA is unable to generate Kerberos keys unless provided\n" @@ -6031,9 +6596,15 @@ msgid "" "can use their Kerberos accounts." msgstr "" -#: ipalib/plugins/migration.py:536 +#: ipalib/plugins/migration.py:642 #, python-format -msgid "Container for %(container)s not found" +msgid "" +"%(container)s LDAP search did not return any result (search base: " +"%(search_base)s, objectclass: %(objectclass)s)" +msgstr "" + +#: ipalib/plugins/migration.py:674 ipalib/plugins/user.py:478 +msgid "Default group for new users not found" msgstr "" #: ipalib/plugins/misc.py:25 @@ -6105,100 +6676,100 @@ msgid "" " ipa netgroup-del admins\n" msgstr "" -#: ipalib/plugins/netgroup.py:60 +#: ipalib/plugins/netgroup.py:69 msgid "Member Host" msgstr "" -#: ipalib/plugins/netgroup.py:72 +#: ipalib/plugins/netgroup.py:81 msgid "netgroup" msgstr "" -#: ipalib/plugins/netgroup.py:73 +#: ipalib/plugins/netgroup.py:82 msgid "netgroups" msgstr "" -#: ipalib/plugins/netgroup.py:99 +#: ipalib/plugins/netgroup.py:108 msgid "Netgroups" msgstr "" -#: ipalib/plugins/netgroup.py:100 +#: ipalib/plugins/netgroup.py:109 msgid "Netgroup" msgstr "" -#: ipalib/plugins/netgroup.py:105 +#: ipalib/plugins/netgroup.py:116 msgid "Netgroup name" msgstr "" -#: ipalib/plugins/netgroup.py:112 +#: ipalib/plugins/netgroup.py:123 msgid "Netgroup description" msgstr "" -#: ipalib/plugins/netgroup.py:116 +#: ipalib/plugins/netgroup.py:129 msgid "NIS domain name" msgstr "" -#: ipalib/plugins/netgroup.py:121 +#: ipalib/plugins/netgroup.py:134 msgid "IPA unique ID" msgstr "" -#: ipalib/plugins/netgroup.py:142 +#: ipalib/plugins/netgroup.py:156 msgid "Add a new netgroup." msgstr "" -#: ipalib/plugins/netgroup.py:145 +#: ipalib/plugins/netgroup.py:159 #, python-format msgid "Added netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/netgroup.py:147 +#: ipalib/plugins/netgroup.py:161 #, python-format msgid "" "hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " "common namespace" msgstr "" -#: ipalib/plugins/netgroup.py:178 +#: ipalib/plugins/netgroup.py:192 msgid "Delete a netgroup." msgstr "" -#: ipalib/plugins/netgroup.py:180 +#: ipalib/plugins/netgroup.py:194 #, python-format msgid "Deleted netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/netgroup.py:186 +#: ipalib/plugins/netgroup.py:200 msgid "Modify a netgroup." msgstr "" -#: ipalib/plugins/netgroup.py:189 +#: ipalib/plugins/netgroup.py:203 #, python-format msgid "Modified netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/netgroup.py:203 +#: ipalib/plugins/netgroup.py:220 msgid "Search for a netgroup." msgstr "" -#: ipalib/plugins/netgroup.py:208 +#: ipalib/plugins/netgroup.py:225 #, python-format msgid "%(count)d netgroup matched" msgid_plural "%(count)d netgroups matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/netgroup.py:218 +#: ipalib/plugins/netgroup.py:235 msgid "search for managed groups" msgstr "" -#: ipalib/plugins/netgroup.py:240 +#: ipalib/plugins/netgroup.py:257 msgid "Display information about a netgroup." msgstr "" -#: ipalib/plugins/netgroup.py:248 +#: ipalib/plugins/netgroup.py:265 msgid "Add members to a netgroup." msgstr "" -#: ipalib/plugins/netgroup.py:259 +#: ipalib/plugins/netgroup.py:278 msgid "Remove members from a netgroup." msgstr "" @@ -6232,7 +6803,7 @@ msgstr "" msgid "Changed password for \"%(value)s\"" msgstr "" -#: ipalib/plugins/permission.py:27 +#: ipalib/plugins/permission.py:26 msgid "" "\n" "Permissions\n" @@ -6290,87 +6861,103 @@ msgid "" "\"Manage Group Members\"\n" msgstr "" -#: ipalib/plugins/permission.py:85 +#: ipalib/plugins/permission.py:84 msgid "Permission Type" msgstr "" -#: ipalib/plugins/permission.py:97 +#: ipalib/plugins/permission.py:106 msgid "permission" msgstr "" -#: ipalib/plugins/permission.py:98 +#: ipalib/plugins/permission.py:107 msgid "permissions" msgstr "" -#: ipalib/plugins/permission.py:117 +#: ipalib/plugins/permission.py:126 msgid "Permission name" msgstr "" -#: ipalib/plugins/permission.py:123 +#: ipalib/plugins/permission.py:134 msgid "" "Comma-separated list of permissions to grant (read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/permission.py:138 +#: ipalib/plugins/permission.py:149 msgid "" "Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" msgstr "" -#: ipalib/plugins/permission.py:144 +#: ipalib/plugins/permission.py:155 msgid "Member of group" msgstr "" -#: ipalib/plugins/permission.py:145 +#: ipalib/plugins/permission.py:156 msgid "Target members of a group" msgstr "" -#: ipalib/plugins/permission.py:157 +#: ipalib/plugins/permission.py:168 msgid "Subtree to apply permissions to" msgstr "" -#: ipalib/plugins/permission.py:163 +#: ipalib/plugins/permission.py:174 msgid "User group to apply permissions to" msgstr "" -#: ipalib/plugins/permission.py:183 +#: ipalib/plugins/permission.py:199 msgid "Add a new permission." msgstr "" -#: ipalib/plugins/permission.py:185 +#: ipalib/plugins/permission.py:201 ipalib/plugins/permission.py:255 #, python-format msgid "Added permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/permission.py:241 +#: ipalib/plugins/permission.py:253 +msgid "Add a system permission without an ACI" +msgstr "" + +#: ipalib/plugins/permission.py:261 +msgid "Permission type" +msgstr "" + +#: ipalib/plugins/permission.py:287 msgid "Delete a permission." msgstr "" -#: ipalib/plugins/permission.py:243 +#: ipalib/plugins/permission.py:289 #, python-format msgid "Deleted permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/permission.py:259 +#: ipalib/plugins/permission.py:295 +msgid "force delete of SYSTEM permissions" +msgstr "" + +#: ipalib/plugins/permission.py:313 msgid "Modify a permission." msgstr "" -#: ipalib/plugins/permission.py:261 +#: ipalib/plugins/permission.py:315 #, python-format msgid "Modified permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/permission.py:353 +#: ipalib/plugins/permission.py:344 +msgid "New name can not be empty" +msgstr "" + +#: ipalib/plugins/permission.py:397 msgid "Search for permissions." msgstr "" -#: ipalib/plugins/permission.py:356 +#: ipalib/plugins/permission.py:400 #, python-format msgid "%(count)d permission matched" msgid_plural "%(count)d permissions matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/permission.py:408 +#: ipalib/plugins/permission.py:479 msgid "Display information about a permission." msgstr "" @@ -6474,81 +7061,81 @@ msgstr "" msgid "privileges" msgstr "" -#: ipalib/plugins/privilege.py:65 +#: ipalib/plugins/privilege.py:62 msgid "Privileges" msgstr "" -#: ipalib/plugins/privilege.py:66 +#: ipalib/plugins/privilege.py:63 msgid "Privilege" msgstr "" -#: ipalib/plugins/privilege.py:71 +#: ipalib/plugins/privilege.py:68 msgid "Privilege name" msgstr "" -#: ipalib/plugins/privilege.py:77 +#: ipalib/plugins/privilege.py:74 msgid "Privilege description" msgstr "" -#: ipalib/plugins/privilege.py:85 +#: ipalib/plugins/privilege.py:82 msgid "Add a new privilege." msgstr "" -#: ipalib/plugins/privilege.py:87 +#: ipalib/plugins/privilege.py:84 #, python-format msgid "Added privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/privilege.py:93 +#: ipalib/plugins/privilege.py:90 msgid "Delete a privilege." msgstr "" -#: ipalib/plugins/privilege.py:95 +#: ipalib/plugins/privilege.py:92 #, python-format msgid "Deleted privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/privilege.py:101 +#: ipalib/plugins/privilege.py:98 msgid "Modify a privilege." msgstr "" -#: ipalib/plugins/privilege.py:103 +#: ipalib/plugins/privilege.py:100 #, python-format msgid "Modified privilege \"%(value)s\"" msgstr "" -#: ipalib/plugins/privilege.py:109 +#: ipalib/plugins/privilege.py:106 msgid "Search for privileges." msgstr "" -#: ipalib/plugins/privilege.py:112 +#: ipalib/plugins/privilege.py:109 #, python-format msgid "%(count)d privilege matched" msgid_plural "%(count)d privileges matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/privilege.py:119 +#: ipalib/plugins/privilege.py:116 msgid "Display information about a privilege." msgstr "" -#: ipalib/plugins/privilege.py:125 +#: ipalib/plugins/privilege.py:122 msgid "Add members to a privilege." msgstr "" -#: ipalib/plugins/privilege.py:142 +#: ipalib/plugins/privilege.py:139 msgid "Add permissions to a privilege." msgstr "" -#: ipalib/plugins/privilege.py:157 +#: ipalib/plugins/privilege.py:154 msgid "Number of permissions added" msgstr "" -#: ipalib/plugins/privilege.py:165 +#: ipalib/plugins/privilege.py:162 msgid "Remove permissions from a privilege." msgstr "" -#: ipalib/plugins/privilege.py:182 +#: ipalib/plugins/privilege.py:179 msgid "Number of permissions removed" msgstr "" @@ -6715,18 +7302,118 @@ msgstr "" msgid "priority cannot be set on global policy" msgstr "" -#: ipalib/plugins/pwpolicy.py:428 +#: ipalib/plugins/pwpolicy.py:429 msgid "Display information about password policy." msgstr "" -#: ipalib/plugins/pwpolicy.py:433 +#: ipalib/plugins/pwpolicy.py:434 msgid "Display effective policy for a specific user" msgstr "" -#: ipalib/plugins/pwpolicy.py:456 +#: ipalib/plugins/pwpolicy.py:457 msgid "Search for group password policies." msgstr "" +#: ipalib/plugins/range.py:29 +msgid "" +"\n" +"Manage ID ranges\n" +msgstr "" + +#: ipalib/plugins/range.py:48 +msgid "Ranges" +msgstr "" + +#: ipalib/plugins/range.py:49 +msgid "Range" +msgstr "" + +#: ipalib/plugins/range.py:54 +msgid "Range name" +msgstr "" + +#: ipalib/plugins/range.py:59 +msgid "First Posix ID of the range" +msgstr "" + +#: ipalib/plugins/range.py:63 +msgid "Number of IDs in the range" +msgstr "" + +#: ipalib/plugins/range.py:67 +msgid "First RID of the corresponding RID range" +msgstr "" + +#: ipalib/plugins/range.py:71 +msgid "First RID of the secondary RID range" +msgstr "" + +#: ipalib/plugins/range.py:75 +msgid "Domain SID of the trusted domain" +msgstr "" + +#: ipalib/plugins/range.py:78 +msgid "Range type" +msgstr "" + +#: ipalib/plugins/range.py:86 +msgid "Active Directory domain range" +msgstr "" + +#: ipalib/plugins/range.py:88 +msgid "local domain range" +msgstr "" + +#: ipalib/plugins/range.py:94 +msgid "Add new ID range." +msgstr "" + +#: ipalib/plugins/range.py:96 +#, python-format +msgid "Added ID range \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/range.py:101 +msgid "Range setup" +msgstr "" + +#: ipalib/plugins/range.py:102 +msgid "Ranges for local domain must have a secondary RID base" +msgstr "" + +#: ipalib/plugins/range.py:117 +msgid "Delete an ID range." +msgstr "" + +#: ipalib/plugins/range.py:119 +#, python-format +msgid "Deleted ID range \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/range.py:122 +msgid "Search for ranges." +msgstr "" + +#: ipalib/plugins/range.py:125 +#, python-format +msgid "%(count)d range matched" +msgid_plural "%(count)d ranges matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/range.py:140 +msgid "Display information about a range." +msgstr "" + +#: ipalib/plugins/range.py:151 +msgid "Modify ID range." +msgstr "" + +#: ipalib/plugins/range.py:153 +#, python-format +msgid "Modified ID range \"%(value)s\"" +msgstr "" + #: ipalib/plugins/role.py:26 msgid "" "\n" @@ -6852,7 +7539,7 @@ msgstr "" msgid "Number of privileges removed" msgstr "" -#: ipalib/plugins/selfservice.py:29 +#: ipalib/plugins/selfservice.py:28 msgid "" "\n" "Self-service Permissions\n" @@ -6903,45 +7590,45 @@ msgstr "" msgid "Self-service name" msgstr "" -#: ipalib/plugins/selfservice.py:120 +#: ipalib/plugins/selfservice.py:122 msgid "Add a new self-service permission." msgstr "" -#: ipalib/plugins/selfservice.py:122 +#: ipalib/plugins/selfservice.py:124 #, python-format msgid "Added selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:142 +#: ipalib/plugins/selfservice.py:144 msgid "Delete a self-service permission." msgstr "" -#: ipalib/plugins/selfservice.py:145 +#: ipalib/plugins/selfservice.py:147 #, python-format msgid "Deleted selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:161 +#: ipalib/plugins/selfservice.py:162 msgid "Modify a self-service permission." msgstr "" -#: ipalib/plugins/selfservice.py:163 +#: ipalib/plugins/selfservice.py:164 #, python-format msgid "Modified selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:183 +#: ipalib/plugins/selfservice.py:184 msgid "Search for a self-service permission." msgstr "" -#: ipalib/plugins/selfservice.py:186 +#: ipalib/plugins/selfservice.py:187 #, python-format msgid "%(count)d selfservice matched" msgid_plural "%(count)d selfservices matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/selfservice.py:210 +#: ipalib/plugins/selfservice.py:211 msgid "Display information about a self-service permission." msgstr "" @@ -6993,7 +7680,7 @@ msgid "" "SEEALSO:\n" "\n" " The list controlling the order in which the SELinux user map is applied\n" -" and the default SELinux user are available in the config-show commond.\n" +" and the default SELinux user are available in the config-show command.\n" msgstr "" #: ipalib/plugins/selinuxusermap.py:71 @@ -7089,41 +7776,41 @@ msgid_plural "%(count)d SELinux User Maps matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/selinuxusermap.py:330 +#: ipalib/plugins/selinuxusermap.py:331 msgid "Display the properties of a SELinux User Map rule." msgstr "" -#: ipalib/plugins/selinuxusermap.py:340 +#: ipalib/plugins/selinuxusermap.py:341 msgid "Enable an SELinux User Map rule." msgstr "" -#: ipalib/plugins/selinuxusermap.py:342 +#: ipalib/plugins/selinuxusermap.py:343 #, python-format msgid "Enabled SELinux User Map \"%(value)s\"" msgstr "" -#: ipalib/plugins/selinuxusermap.py:367 +#: ipalib/plugins/selinuxusermap.py:368 msgid "Disable an SELinux User Map rule." msgstr "" -#: ipalib/plugins/selinuxusermap.py:369 +#: ipalib/plugins/selinuxusermap.py:370 #, python-format msgid "Disabled SELinux User Map \"%(value)s\"" msgstr "" -#: ipalib/plugins/selinuxusermap.py:394 +#: ipalib/plugins/selinuxusermap.py:395 msgid "Add users and groups to an SELinux User Map rule." msgstr "" -#: ipalib/plugins/selinuxusermap.py:415 +#: ipalib/plugins/selinuxusermap.py:416 msgid "Remove users and groups from an SELinux User Map rule." msgstr "" -#: ipalib/plugins/selinuxusermap.py:424 +#: ipalib/plugins/selinuxusermap.py:425 msgid "Add target hosts and hostgroups to an SELinux User Map rule." msgstr "" -#: ipalib/plugins/selinuxusermap.py:445 +#: ipalib/plugins/selinuxusermap.py:446 msgid "Remove target hosts and hostgroups from an SELinux User Map rule." msgstr "" @@ -7181,77 +7868,81 @@ msgid "" "\n" msgstr "" -#: ipalib/plugins/service.py:204 +#: ipalib/plugins/service.py:213 +msgid "This principal is required by the IPA master" +msgstr "" + +#: ipalib/plugins/service.py:220 msgid "service" msgstr "" -#: ipalib/plugins/service.py:205 +#: ipalib/plugins/service.py:221 msgid "services" msgstr "" -#: ipalib/plugins/service.py:229 +#: ipalib/plugins/service.py:245 msgid "Service principal" msgstr "" -#: ipalib/plugins/service.py:245 +#: ipalib/plugins/service.py:261 msgid "Add a new IPA new service." msgstr "" -#: ipalib/plugins/service.py:247 +#: ipalib/plugins/service.py:263 #, python-format msgid "Added service \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:253 +#: ipalib/plugins/service.py:269 msgid "force principal name even if not in DNS" msgstr "" -#: ipalib/plugins/service.py:286 +#: ipalib/plugins/service.py:307 msgid "Delete an IPA service." msgstr "" -#: ipalib/plugins/service.py:288 +#: ipalib/plugins/service.py:309 #, python-format msgid "Deleted service \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:322 +#: ipalib/plugins/service.py:348 msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/service.py:324 +#: ipalib/plugins/service.py:350 #, python-format msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:356 +#: ipalib/plugins/service.py:382 msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/service.py:359 +#: ipalib/plugins/service.py:385 #, python-format msgid "%(count)d service matched" msgid_plural "%(count)d services matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/service.py:391 +#: ipalib/plugins/service.py:418 msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/service.py:424 +#: ipalib/plugins/service.py:451 msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/service.py:433 +#: ipalib/plugins/service.py:460 msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/service.py:442 +#: ipalib/plugins/service.py:469 msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/service.py:445 +#: ipalib/plugins/service.py:472 #, python-format msgid "Disabled service \"%(value)s\"" msgstr "" @@ -7448,6 +8139,10 @@ msgid "" " RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n" " Options: The various Sudoers Options that can modify Sudo's behavior.\n" "\n" +"An order can be added to a sudorule to control the order in which they\n" +"are evaluated (if the client supports it). This order is an integer and\n" +"must be unique.\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" @@ -7459,295 +8154,470 @@ msgid "" "For more information, see the FreeIPA Documentation to Sudo.\n" msgstr "" -#: ipalib/plugins/sudorule.py:54 +#: ipalib/plugins/sudorule.py:58 msgid "Commands for controlling sudo configuration" msgstr "" -#: ipalib/plugins/sudorule.py:57 +#: ipalib/plugins/sudorule.py:61 msgid "this option has been deprecated." msgstr "" -#: ipalib/plugins/sudorule.py:73 +#: ipalib/plugins/sudorule.py:77 msgid "sudo rule" msgstr "" -#: ipalib/plugins/sudorule.py:74 +#: ipalib/plugins/sudorule.py:78 msgid "sudo rules" msgstr "" -#: ipalib/plugins/sudorule.py:95 +#: ipalib/plugins/sudorule.py:100 msgid "Sudo Rules" msgstr "" -#: ipalib/plugins/sudorule.py:96 +#: ipalib/plugins/sudorule.py:101 msgid "Sudo Rule" msgstr "" -#: ipalib/plugins/sudorule.py:126 +#: ipalib/plugins/sudorule.py:131 msgid "Command category" msgstr "" -#: ipalib/plugins/sudorule.py:127 +#: ipalib/plugins/sudorule.py:132 msgid "Command category the rule applies to" msgstr "" -#: ipalib/plugins/sudorule.py:132 +#: ipalib/plugins/sudorule.py:137 msgid "RunAs User category" msgstr "" -#: ipalib/plugins/sudorule.py:133 +#: ipalib/plugins/sudorule.py:138 msgid "RunAs User category the rule applies to" msgstr "" -#: ipalib/plugins/sudorule.py:138 +#: ipalib/plugins/sudorule.py:143 msgid "RunAs Group category" msgstr "" -#: ipalib/plugins/sudorule.py:139 +#: ipalib/plugins/sudorule.py:144 msgid "RunAs Group category the rule applies to" msgstr "" -#: ipalib/plugins/sudorule.py:159 +#: ipalib/plugins/sudorule.py:149 +msgid "Sudo order" +msgstr "" + +#: ipalib/plugins/sudorule.py:150 +msgid "integer to order the Sudo rules" +msgstr "" + +#: ipalib/plugins/sudorule.py:171 msgid "Sudo Allow Commands" msgstr "" -#: ipalib/plugins/sudorule.py:163 +#: ipalib/plugins/sudorule.py:175 msgid "Sudo Deny Commands" msgstr "" -#: ipalib/plugins/sudorule.py:167 +#: ipalib/plugins/sudorule.py:179 msgid "Sudo Allow Command Groups" msgstr "" -#: ipalib/plugins/sudorule.py:171 +#: ipalib/plugins/sudorule.py:183 msgid "Sudo Deny Command Groups" msgstr "" -#: ipalib/plugins/sudorule.py:175 +#: ipalib/plugins/sudorule.py:187 msgid "RunAs Users" msgstr "" -#: ipalib/plugins/sudorule.py:176 +#: ipalib/plugins/sudorule.py:188 msgid "Run as a user" msgstr "" -#: ipalib/plugins/sudorule.py:180 +#: ipalib/plugins/sudorule.py:192 msgid "Groups of RunAs Users" msgstr "" -#: ipalib/plugins/sudorule.py:181 +#: ipalib/plugins/sudorule.py:193 msgid "Run as any user within a specified group" msgstr "" -#: ipalib/plugins/sudorule.py:186 +#: ipalib/plugins/sudorule.py:198 msgid "External User" msgstr "" -#: ipalib/plugins/sudorule.py:187 +#: ipalib/plugins/sudorule.py:199 msgid "External User the rule applies to (sudorule-find only)" msgstr "" -#: ipalib/plugins/sudorule.py:191 +#: ipalib/plugins/sudorule.py:203 msgid "RunAs External User" msgstr "" -#: ipalib/plugins/sudorule.py:192 +#: ipalib/plugins/sudorule.py:204 msgid "External User the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/plugins/sudorule.py:196 +#: ipalib/plugins/sudorule.py:208 msgid "RunAs External Group" msgstr "" -#: ipalib/plugins/sudorule.py:197 +#: ipalib/plugins/sudorule.py:209 msgid "External Group the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/plugins/sudorule.py:200 ipalib/plugins/sudorule.py:553 -#: ipalib/plugins/sudorule.py:605 +#: ipalib/plugins/sudorule.py:212 ipalib/plugins/sudorule.py:595 +#: ipalib/plugins/sudorule.py:647 msgid "Sudo Option" msgstr "" -#: ipalib/plugins/sudorule.py:204 +#: ipalib/plugins/sudorule.py:216 msgid "RunAs Groups" msgstr "" -#: ipalib/plugins/sudorule.py:205 +#: ipalib/plugins/sudorule.py:217 msgid "Run with the gid of a specified POSIX group" msgstr "" -#: ipalib/plugins/sudorule.py:214 +#: ipalib/plugins/sudorule.py:224 +#, python-format +msgid "order must be a unique value (%(order)d already used by %(rule)s)" +msgstr "" + +#: ipalib/plugins/sudorule.py:246 msgid "Create new Sudo Rule." msgstr "" -#: ipalib/plugins/sudorule.py:221 +#: ipalib/plugins/sudorule.py:254 #, python-format msgid "Added Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:227 +#: ipalib/plugins/sudorule.py:260 msgid "Delete Sudo Rule." msgstr "" -#: ipalib/plugins/sudorule.py:229 +#: ipalib/plugins/sudorule.py:262 #, python-format msgid "Deleted Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:235 +#: ipalib/plugins/sudorule.py:268 msgid "Modify Sudo Rule." msgstr "" -#: ipalib/plugins/sudorule.py:237 +#: ipalib/plugins/sudorule.py:270 #, python-format msgid "Modified Sudo Rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:245 +#: ipalib/plugins/sudorule.py:287 msgid "user category cannot be set to 'all' while there are users" msgstr "" -#: ipalib/plugins/sudorule.py:247 +#: ipalib/plugins/sudorule.py:289 msgid "host category cannot be set to 'all' while there are hosts" msgstr "" -#: ipalib/plugins/sudorule.py:250 +#: ipalib/plugins/sudorule.py:292 msgid "" "command category cannot be set to 'all' while there are allow or deny " "commands" msgstr "" -#: ipalib/plugins/sudorule.py:252 +#: ipalib/plugins/sudorule.py:294 msgid "user runAs category cannot be set to 'all' while there are users" msgstr "" -#: ipalib/plugins/sudorule.py:254 +#: ipalib/plugins/sudorule.py:296 msgid "group runAs category cannot be set to 'all' while there are groups" msgstr "" -#: ipalib/plugins/sudorule.py:262 +#: ipalib/plugins/sudorule.py:304 msgid "Search for Sudo Rule." msgstr "" -#: ipalib/plugins/sudorule.py:265 +#: ipalib/plugins/sudorule.py:307 #, python-format msgid "%(count)d Sudo Rule matched" msgid_plural "%(count)d Sudo Rules matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/sudorule.py:272 +#: ipalib/plugins/sudorule.py:314 msgid "Display Sudo Rule." msgstr "" -#: ipalib/plugins/sudorule.py:278 +#: ipalib/plugins/sudorule.py:320 msgid "Enable a Sudo Rule." msgstr "" -#: ipalib/plugins/sudorule.py:296 +#: ipalib/plugins/sudorule.py:338 #, python-format msgid "Enabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/plugins/sudorule.py:302 +#: ipalib/plugins/sudorule.py:344 msgid "Disable a Sudo Rule." msgstr "" -#: ipalib/plugins/sudorule.py:320 +#: ipalib/plugins/sudorule.py:362 #, python-format msgid "Disabled Sudo Rule \"%s\"" msgstr "" -#: ipalib/plugins/sudorule.py:326 ipalib/plugins/sudorule.py:354 +#: ipalib/plugins/sudorule.py:368 ipalib/plugins/sudorule.py:396 msgid "Add commands and sudo command groups affected by Sudo Rule." msgstr "" -#: ipalib/plugins/sudorule.py:337 ipalib/plugins/sudorule.py:365 +#: ipalib/plugins/sudorule.py:379 ipalib/plugins/sudorule.py:407 msgid "commands cannot be added when command category='all'" msgstr "" -#: ipalib/plugins/sudorule.py:345 ipalib/plugins/sudorule.py:372 +#: ipalib/plugins/sudorule.py:387 ipalib/plugins/sudorule.py:414 msgid "Remove commands and sudo command groups affected by Sudo Rule." msgstr "" -#: ipalib/plugins/sudorule.py:381 +#: ipalib/plugins/sudorule.py:423 msgid "Add users and groups affected by Sudo Rule." msgstr "" -#: ipalib/plugins/sudorule.py:392 +#: ipalib/plugins/sudorule.py:434 msgid "users cannot be added when user category='all'" msgstr "" -#: ipalib/plugins/sudorule.py:402 +#: ipalib/plugins/sudorule.py:444 msgid "Remove users and groups affected by Sudo Rule." msgstr "" -#: ipalib/plugins/sudorule.py:414 +#: ipalib/plugins/sudorule.py:456 msgid "Add hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/plugins/sudorule.py:425 +#: ipalib/plugins/sudorule.py:467 msgid "hosts cannot be added when host category='all'" msgstr "" -#: ipalib/plugins/sudorule.py:435 +#: ipalib/plugins/sudorule.py:477 msgid "Remove hosts and hostgroups affected by Sudo Rule." msgstr "" -#: ipalib/plugins/sudorule.py:446 +#: ipalib/plugins/sudorule.py:488 msgid "Add users and groups for Sudo to execute as." msgstr "" -#: ipalib/plugins/sudorule.py:464 ipalib/plugins/sudorule.py:518 +#: ipalib/plugins/sudorule.py:506 ipalib/plugins/sudorule.py:560 msgid "users cannot be added when runAs user or runAs group category='all'" msgstr "" -#: ipalib/plugins/sudorule.py:470 +#: ipalib/plugins/sudorule.py:512 #, python-format msgid "RunAsUser does not accept '%(name)s' as a user name" msgstr "" -#: ipalib/plugins/sudorule.py:476 +#: ipalib/plugins/sudorule.py:518 #, python-format msgid "RunAsUser does not accept '%(name)s' as a group name" msgstr "" -#: ipalib/plugins/sudorule.py:488 +#: ipalib/plugins/sudorule.py:530 msgid "Remove users and groups for Sudo to execute as." msgstr "" -#: ipalib/plugins/sudorule.py:500 +#: ipalib/plugins/sudorule.py:542 msgid "Add group for Sudo to execute as." msgstr "" -#: ipalib/plugins/sudorule.py:524 +#: ipalib/plugins/sudorule.py:566 #, python-format msgid "RunAsGroup does not accept '%(name)s' as a group name" msgstr "" -#: ipalib/plugins/sudorule.py:536 +#: ipalib/plugins/sudorule.py:578 msgid "Remove group for Sudo to execute as." msgstr "" -#: ipalib/plugins/sudorule.py:548 +#: ipalib/plugins/sudorule.py:590 msgid "Add an option to the Sudo Rule." msgstr "" -#: ipalib/plugins/sudorule.py:590 +#: ipalib/plugins/sudorule.py:632 #, python-format msgid "Added option \"%(option)s\" to Sudo Rule \"%(rule)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:600 +#: ipalib/plugins/sudorule.py:642 msgid "Remove an option from Sudo Rule." msgstr "" -#: ipalib/plugins/sudorule.py:645 +#: ipalib/plugins/sudorule.py:687 #, python-format msgid "Removed option \"%(option)s\" from Sudo Rule \"%(rule)s\"" msgstr "" -#: ipalib/plugins/user.py:34 +#: ipalib/plugins/trust.py:34 +msgid "" +"\n" +"Manage trust relationship between realms\n" +msgstr "" + +#: ipalib/plugins/trust.py:51 +msgid "Non-Active Directory domain" +msgstr "" + +#: ipalib/plugins/trust.py:52 +msgid "Active Directory domain" +msgstr "" + +#: ipalib/plugins/trust.py:53 +msgid "RFC4120-compliant Kerberos realm" +msgstr "" + +#: ipalib/plugins/trust.py:54 +msgid "Trusting forest" +msgstr "" + +#: ipalib/plugins/trust.py:55 +msgid "Trusted forest" +msgstr "" + +#: ipalib/plugins/trust.py:56 +msgid "Two-way trust" +msgstr "" + +#: ipalib/plugins/trust.py:57 +msgid "Established and verified" +msgstr "" + +#: ipalib/plugins/trust.py:58 +msgid "Waiting for confirmation by remote side" +msgstr "" + +#: ipalib/plugins/trust.py:59 +msgid "Unknown" +msgstr "" + +#: ipalib/plugins/trust.py:90 +msgid "trust" +msgstr "" + +#: ipalib/plugins/trust.py:91 +msgid "trusts" +msgstr "" + +#: ipalib/plugins/trust.py:98 +msgid "Trusts" +msgstr "" + +#: ipalib/plugins/trust.py:99 +msgid "Trust" +msgstr "" + +#: ipalib/plugins/trust.py:104 ipa-client/ipa-rmkeytab.c:176 +msgid "Realm name" +msgstr "" + +#: ipalib/plugins/trust.py:116 +msgid "Add new trust to use" +msgstr "" + +#: ipalib/plugins/trust.py:121 +msgid "Trust type (ad for Active Directory, default)" +msgstr "" + +#: ipalib/plugins/trust.py:128 +msgid "Active Directory domain administrator" +msgstr "" + +#: ipalib/plugins/trust.py:132 +msgid "Active directory domain adminstrator's password" +msgstr "" + +#: ipalib/plugins/trust.py:137 +msgid "Domain controller for the Active Directory domain (optional)" +msgstr "" + +#: ipalib/plugins/trust.py:141 +msgid "Shared secret for the trust" +msgstr "" + +#: ipalib/plugins/trust.py:147 +#, python-format +msgid "Added Active Directory trust for realm \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/trust.py:154 ipalib/plugins/trust.py:156 +msgid "trust type" +msgstr "" + +#: ipalib/plugins/trust.py:154 +msgid "only \"ad\" is supported" +msgstr "" + +#: ipalib/plugins/trust.py:165 +msgid "" +"Cannot perform join operation without Samba 4 support installed.\n" +" Make sure you have installed server-trust-ad " +"sub-package of IPA" +msgstr "" + +#: ipalib/plugins/trust.py:176 +msgid "" +"Cannot perform join operation without own domain configured.\n" +" Make sure you have run ipa-adtrust-install on " +"the IPA server first" +msgstr "" + +#: ipalib/plugins/trust.py:189 +msgid "Trusted domain and administrator account use different realms" +msgstr "" + +#: ipalib/plugins/trust.py:193 +msgid "Realm administrator password should be specified" +msgstr "" + +#: ipalib/plugins/trust.py:199 +msgid "Unable to verify write permissions to the AD" +msgstr "" + +#: ipalib/plugins/trust.py:209 +msgid "Not enough arguments specified to perform trust setup" +msgstr "" + +#: ipalib/plugins/trust.py:212 +msgid "Delete a trust." +msgstr "" + +#: ipalib/plugins/trust.py:214 +#, python-format +msgid "Deleted trust \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/trust.py:224 +msgid "Modify a trust." +msgstr "" + +#: ipalib/plugins/trust.py:226 +#, python-format +msgid "Modified trust \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/trust.py:239 +msgid "Search for trusts." +msgstr "" + +#: ipalib/plugins/trust.py:242 +#, python-format +msgid "%(count)d trust matched" +msgid_plural "%(count)d trusts matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/trust.py:251 +msgid "Display information about a trust." +msgstr "" + +#: ipalib/plugins/user.py:37 msgid "" "\n" "Users\n" @@ -7768,6 +8638,10 @@ msgid "" "Password management is not a part of this module. For more information\n" "about this topic please see: ipa help passwd\n" "\n" +"Account lockout on password failure happens per IPA master. The user-status\n" +"command can be used to identify which master the user is locked out on.\n" +"It is on that master the the administrator must unlock the user.\n" +"\n" "EXAMPLES:\n" "\n" " Add a new user:\n" @@ -7789,217 +8663,241 @@ msgid "" " ipa user-del tuser1\n" msgstr "" -#: ipalib/plugins/user.py:78 +#: ipalib/plugins/user.py:86 msgid "Kerberos keys available" msgstr "" -#: ipalib/plugins/user.py:148 +#: ipalib/plugins/user.py:92 +msgid "Server" +msgstr "" + +#: ipalib/plugins/user.py:95 +msgid "Failed logins" +msgstr "" + +#: ipalib/plugins/user.py:98 +msgid "Last successful authentication" +msgstr "" + +#: ipalib/plugins/user.py:101 +msgid "Last failed authentication" +msgstr "" + +#: ipalib/plugins/user.py:104 +msgid "Time now" +msgstr "" + +#: ipalib/plugins/user.py:174 msgid "user" msgstr "" -#: ipalib/plugins/user.py:149 +#: ipalib/plugins/user.py:175 msgid "users" msgstr "" -#: ipalib/plugins/user.py:185 +#: ipalib/plugins/user.py:211 msgid "User login" msgstr "" -#: ipalib/plugins/user.py:192 +#: ipalib/plugins/user.py:218 msgid "First name" msgstr "" -#: ipalib/plugins/user.py:196 +#: ipalib/plugins/user.py:222 msgid "Last name" msgstr "" -#: ipalib/plugins/user.py:199 +#: ipalib/plugins/user.py:225 msgid "Full name" msgstr "" -#: ipalib/plugins/user.py:204 +#: ipalib/plugins/user.py:230 msgid "Display name" msgstr "" -#: ipalib/plugins/user.py:209 +#: ipalib/plugins/user.py:235 msgid "Initials" msgstr "" -#: ipalib/plugins/user.py:215 +#: ipalib/plugins/user.py:241 msgid "Home directory" msgstr "" -#: ipalib/plugins/user.py:218 +#: ipalib/plugins/user.py:244 msgid "GECOS field" msgstr "" -#: ipalib/plugins/user.py:224 +#: ipalib/plugins/user.py:250 msgid "Login shell" msgstr "" -#: ipalib/plugins/user.py:228 +#: ipalib/plugins/user.py:254 msgid "Kerberos principal" msgstr "" -#: ipalib/plugins/user.py:236 +#: ipalib/plugins/user.py:262 msgid "Email address" msgstr "" -#: ipalib/plugins/user.py:241 +#: ipalib/plugins/user.py:267 msgid "Prompt to set the user password" msgstr "" -#: ipalib/plugins/user.py:247 +#: ipalib/plugins/user.py:273 msgid "Generate a random user password" msgstr "" -#: ipalib/plugins/user.py:257 +#: ipalib/plugins/user.py:283 msgid "UID" msgstr "" -#: ipalib/plugins/user.py:258 +#: ipalib/plugins/user.py:284 msgid "User ID Number (system will assign one if not provided)" msgstr "" -#: ipalib/plugins/user.py:265 +#: ipalib/plugins/user.py:291 msgid "Group ID Number" msgstr "" -#: ipalib/plugins/user.py:271 +#: ipalib/plugins/user.py:298 msgid "Street address" msgstr "" -#: ipalib/plugins/user.py:275 +#: ipalib/plugins/user.py:302 msgid "City" msgstr "" -#: ipalib/plugins/user.py:279 +#: ipalib/plugins/user.py:306 msgid "State/Province" msgstr "" -#: ipalib/plugins/user.py:282 +#: ipalib/plugins/user.py:309 msgid "ZIP" msgstr "" -#: ipalib/plugins/user.py:286 +#: ipalib/plugins/user.py:313 msgid "Telephone Number" msgstr "" -#: ipalib/plugins/user.py:289 +#: ipalib/plugins/user.py:316 msgid "Mobile Telephone Number" msgstr "" -#: ipalib/plugins/user.py:292 +#: ipalib/plugins/user.py:319 msgid "Pager Number" msgstr "" -#: ipalib/plugins/user.py:296 +#: ipalib/plugins/user.py:323 msgid "Fax Number" msgstr "" -#: ipalib/plugins/user.py:300 +#: ipalib/plugins/user.py:327 msgid "Org. Unit" msgstr "" -#: ipalib/plugins/user.py:303 +#: ipalib/plugins/user.py:330 msgid "Job Title" msgstr "" -#: ipalib/plugins/user.py:306 +#: ipalib/plugins/user.py:333 msgid "Manager" msgstr "" -#: ipalib/plugins/user.py:309 +#: ipalib/plugins/user.py:336 msgid "Car License" msgstr "" -#: ipalib/plugins/user.py:312 +#: ipalib/plugins/user.py:339 msgid "Account disabled" msgstr "" -#: ipalib/plugins/user.py:363 +#: ipalib/plugins/user.py:390 #, python-format msgid "manager %(manager)s not found" msgstr "" -#: ipalib/plugins/user.py:382 +#: ipalib/plugins/user.py:409 msgid "Add a new user." msgstr "" -#: ipalib/plugins/user.py:384 +#: ipalib/plugins/user.py:411 #, python-format msgid "Added user \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:391 +#: ipalib/plugins/user.py:418 msgid "Don't create user private group" msgstr "" -#: ipalib/plugins/user.py:421 +#: ipalib/plugins/user.py:448 ipalib/plugins/user.py:571 #, python-format msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/plugins/user.py:512 +#: ipalib/plugins/user.py:481 +msgid "Default group for new users is not POSIX" +msgstr "" + +#: ipalib/plugins/user.py:542 msgid "Delete a user." msgstr "" -#: ipalib/plugins/user.py:514 +#: ipalib/plugins/user.py:544 #, python-format msgid "Deleted user \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:523 +#: ipalib/plugins/user.py:558 msgid "Modify a user." msgstr "" -#: ipalib/plugins/user.py:525 +#: ipalib/plugins/user.py:560 #, python-format msgid "Modified user \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:566 +#: ipalib/plugins/user.py:611 msgid "Search for users." msgstr "" -#: ipalib/plugins/user.py:573 +#: ipalib/plugins/user.py:618 msgid "Self" msgstr "" -#: ipalib/plugins/user.py:574 +#: ipalib/plugins/user.py:619 msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/plugins/user.py:596 +#: ipalib/plugins/user.py:642 #, python-format msgid "%(count)d user matched" msgid_plural "%(count)d users matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/user.py:603 +#: ipalib/plugins/user.py:649 msgid "Display information about a user." msgstr "" -#: ipalib/plugins/user.py:618 +#: ipalib/plugins/user.py:664 msgid "Disable a user account." msgstr "" -#: ipalib/plugins/user.py:621 +#: ipalib/plugins/user.py:667 #, python-format msgid "Disabled user account \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:639 +#: ipalib/plugins/user.py:685 msgid "Enable a user account." msgstr "" -#: ipalib/plugins/user.py:643 +#: ipalib/plugins/user.py:689 #, python-format msgid "Enabled user account \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:660 +#: ipalib/plugins/user.py:706 msgid "" "\n" " Unlock a user account\n" @@ -8011,85 +8909,152 @@ msgid "" " an administrator." msgstr "" -#: ipalib/plugins/user.py:669 +#: ipalib/plugins/user.py:715 #, python-format msgid "Unlocked account \"%(value)s\"" msgstr "" -#: ipalib/session.py:696 ipalib/session.py:800 +#: ipalib/plugins/user.py:731 +msgid "" +"\n" +" Lockout status of 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" +"\n" +" This connects to each IPA master and displays the lockout status on\n" +" each one.\n" +"\n" +" To determine whether an account is locked on a given server you need\n" +" to compare the number of failed logins and the time of the last " +"failure.\n" +" For an account to be locked it must exceed the maxfail failures within\n" +" the failinterval duration as specified in the password policy " +"associated\n" +" with the user.\n" +"\n" +" The failed login counter is modified only when a user attempts a log in\n" +" so it is possible that an account may appear locked but the last failed\n" +" login attempt is older than the lockouttime of the password policy. " +"This\n" +" means that the user may attempt a login again. " +msgstr "" + +#: ipalib/plugins/user.py:790 +#, python-format +msgid "%(host)s failed: %(error)s" +msgstr "" + +#: ipalib/plugins/user.py:828 +#, python-format +msgid "%(host)s failed" +msgstr "" + +#: ipalib/plugins/user.py:838 +#, python-format +msgid "Account disabled: %(disabled)s" +msgstr "" + +#: ipalib/session.py:775 ipalib/session.py:878 msgid "could not allocate unique new session_id" msgstr "" -#: ipalib/util.py:194 +#: ipalib/util.py:150 #, python-format msgid "Permission denied: %(file)s" msgstr "" -#: ipalib/util.py:222 +#: ipalib/util.py:182 +msgid "empty DNS label" +msgstr "" + +#: ipalib/util.py:185 +msgid "DNS label cannot be longer that 63 characters" +msgstr "" + +#: ipalib/util.py:188 +#, python-format msgid "" -"mail account may only include letters, numbers, -, _ and a dot. There may " -"not be consecutive -, _ and . characters" +"only letters, numbers,%(underscore)s and - are allowed. DNS label may not " +"start or end with -" msgstr "" -#: ipalib/util.py:225 ipalib/util.py:267 -msgid "cannot be longer that 255 characters" +#: ipalib/util.py:203 +msgid "top level domain label must be alphabetic" msgstr "" -#: ipalib/util.py:235 ipalib/util.py:243 -msgid "missing address domain" +#: ipalib/util.py:209 +msgid "" +"mail account may only include letters, numbers, -, _ and a dot. There may " +"not be consecutive -, _ and . characters. Its parts may not start or end " +"with - or _" msgstr "" -#: ipalib/util.py:237 +#: ipalib/util.py:215 ipalib/util.py:254 +msgid "cannot be longer that 255 characters" +msgstr "" + +#: ipalib/util.py:223 msgid "too many '@' characters" msgstr "" -#: ipalib/util.py:256 -msgid "domain name may only include letters, numbers, and -" +#: ipalib/util.py:236 +msgid "missing address domain" msgstr "" -#: ipalib/util.py:273 -msgid "not fully qualified" +#: ipalib/util.py:241 +msgid "missing mail account" msgstr "" -#: ipalib/util.py:276 -msgid "" -"only letters, numbers, and - are allowed. - must not be the last name " -"character" +#: ipalib/util.py:261 +msgid "not fully qualified" msgstr "" -#: ipalib/util.py:283 +#: ipalib/util.py:270 msgid "invalid SSH public key" msgstr "" -#: ipalib/x509.py:213 +#: ipalib/x509.py:227 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipaserver/plugins/dogtag.py:1371 ipaserver/plugins/dogtag.py:1456 -#: ipaserver/plugins/dogtag.py:1521 ipaserver/plugins/dogtag.py:1599 -#: ipaserver/plugins/dogtag.py:1658 +#: ipaserver/dcerpc.py:45 +msgid "" +"\n" +"Classes to manage trust joins using DCE-RPC calls\n" +"\n" +"The code in this module relies heavily on samba4-python package\n" +"and Samba4 python bindings.\n" +msgstr "" + +#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460 +#: ipaserver/plugins/dogtag.py:1526 ipaserver/plugins/dogtag.py:1605 +#: ipaserver/plugins/dogtag.py:1664 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "" -#: ipaserver/plugins/join.py:54 +#: ipaserver/plugins/join.py:56 msgid "The hostname to register as" msgstr "" -#: ipaserver/plugins/join.py:62 +#: ipaserver/plugins/join.py:64 msgid "The IPA realm" msgstr "" -#: ipaserver/plugins/join.py:68 +#: ipaserver/plugins/join.py:70 msgid "Hardware platform of the host (e.g. Lenovo T61)" msgstr "" -#: ipaserver/plugins/join.py:72 +#: ipaserver/plugins/join.py:74 msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "" -#: ipaserver/plugins/ldap2.py:401 +#: ipaserver/plugins/ldap2.py:399 #, python-format msgid "objectclass %s not found" msgstr "" @@ -8138,275 +9103,236 @@ msgstr "" msgid "read error\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:85 -#, c-format -msgid "Kerberos context initialization failed: %s (%d)\n" -msgstr "" - -#: ipa-client/ipa-getkeytab.c:96 -#, c-format -msgid "Unable to parse principal: %s (%d)\n" -msgstr "" - -#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851 -#, c-format -msgid "No system preferred enctypes ?!\n" -msgstr "" - -#: ipa-client/ipa-getkeytab.c:165 -#, c-format -msgid "Out of memory!?\n" -msgstr "" - -#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198 -#, c-format -msgid "Out of memory\n" -msgstr "" - -#: ipa-client/ipa-getkeytab.c:213 -#, c-format -msgid "Warning unrecognized encryption type: [%s]\n" -msgstr "" - -#: ipa-client/ipa-getkeytab.c:228 -#, c-format -msgid "Warning unrecognized salt type: [%s]\n" -msgstr "" - -#: ipa-client/ipa-getkeytab.c:255 +#: ipa-client/ipa-getkeytab.c:61 #, c-format -msgid "Enctype comparison failed!\n" +msgid "Kerberos context initialization failed: %1$s (%2$d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:317 +#: ipa-client/ipa-getkeytab.c:72 #, c-format -msgid "Failed to create random key!\n" -msgstr "" - -#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347 -#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392 -#, c-format -msgid "Failed to create key!\n" +msgid "Unable to parse principal: %1$s (%2$d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370 -#: ipa-client/ipa-join.c:378 ipa-client/ipa-join.c:453 -#: ipa-client/ipa-join.c:471 ipa-client/ipa-join.c:572 -#: ipa-client/ipa-join.c:766 ipa-client/ipa-join.c:834 -#, c-format -msgid "Out of memory!\n" -msgstr "" - -#: ipa-client/ipa-getkeytab.c:381 -#, c-format -msgid "Bad or unsupported salt type (%d)!\n" -msgstr "" - -#: ipa-client/ipa-getkeytab.c:502 +#: ipa-client/ipa-getkeytab.c:127 #, c-format msgid "No keys accepted by KDC\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:517 +#: ipa-client/ipa-getkeytab.c:142 #, c-format msgid "Out of memory \n" msgstr "" -#: ipa-client/ipa-getkeytab.c:555 +#: ipa-client/ipa-getkeytab.c:181 #, c-format msgid "Out of Memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:562 +#: ipa-client/ipa-getkeytab.c:188 #, c-format msgid "Failed to create control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:586 +#: ipa-client/ipa-getkeytab.c:212 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:240 +#: ipa-client/ipa-getkeytab.c:220 ipa-client/ipa-join.c:240 #, c-format msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:600 +#: ipa-client/ipa-getkeytab.c:228 #, c-format msgid "Unable to set ldap options!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:613 +#: ipa-client/ipa-getkeytab.c:241 #, c-format msgid "Simple bind failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:623 -#, c-format -msgid "SASL Bind failed!\n" -msgstr "" - -#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652 -#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666 +#: ipa-client/ipa-getkeytab.c:273 ipa-client/ipa-getkeytab.c:286 +#: ipa-client/ipa-getkeytab.c:293 ipa-client/ipa-getkeytab.c:300 #, c-format msgid "Operation failed! %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682 +#: ipa-client/ipa-getkeytab.c:306 ipa-client/ipa-getkeytab.c:316 #, c-format msgid "Missing reply control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:689 +#: ipa-client/ipa-getkeytab.c:323 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715 +#: ipa-client/ipa-getkeytab.c:342 #, c-format -msgid "ber_scanf() failed, Invalid control ?!\n" +msgid "ber_scanf() failed, unable to find kvno ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:753 +#: ipa-client/ipa-getkeytab.c:354 +#, c-format +msgid "Failed to retrieve encryption type type #%d\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:358 +#, c-format +msgid "Failed to retrieve encryption type %1$s (#%2$d)\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:368 +#, c-format +msgid "Failed to retrieve any keys" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:405 msgid "New Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:759 +#: ipa-client/ipa-getkeytab.c:411 msgid "Verify Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:445 msgid "Print as little as possible" msgstr "" -#: ipa-client/ipa-getkeytab.c:793 +#: ipa-client/ipa-getkeytab.c:445 msgid "Output only on errors" msgstr "" -#: ipa-client/ipa-getkeytab.c:795 +#: ipa-client/ipa-getkeytab.c:447 msgid "Contact this specific KDC Server" msgstr "" -#: ipa-client/ipa-getkeytab.c:796 +#: ipa-client/ipa-getkeytab.c:448 msgid "Server Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:450 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:799 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:451 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:453 ipa-client/ipa-rmkeytab.c:174 msgid "File were to store the keytab information" msgstr "" -#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:454 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:804 +#: ipa-client/ipa-getkeytab.c:456 msgid "Encryption types to request" msgstr "" -#: ipa-client/ipa-getkeytab.c:805 +#: ipa-client/ipa-getkeytab.c:457 msgid "Comma separated encryption types list" msgstr "" -#: ipa-client/ipa-getkeytab.c:807 +#: ipa-client/ipa-getkeytab.c:459 msgid "Show the list of permitted encryption types and exit" msgstr "" -#: ipa-client/ipa-getkeytab.c:808 +#: ipa-client/ipa-getkeytab.c:460 msgid "Permitted Encryption Types" msgstr "" -#: ipa-client/ipa-getkeytab.c:810 +#: ipa-client/ipa-getkeytab.c:462 msgid "Asks for a non-random password to use for the principal" msgstr "" -#: ipa-client/ipa-getkeytab.c:812 +#: ipa-client/ipa-getkeytab.c:464 msgid "LDAP DN" msgstr "" -#: ipa-client/ipa-getkeytab.c:812 +#: ipa-client/ipa-getkeytab.c:464 msgid "DN to bind as if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:814 +#: ipa-client/ipa-getkeytab.c:466 msgid "LDAP password" msgstr "" -#: ipa-client/ipa-getkeytab.c:814 +#: ipa-client/ipa-getkeytab.c:466 msgid "password to use if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:491 ipa-client/ipa-rmkeytab.c:190 #, c-format msgid "Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:854 +#: ipa-client/ipa-getkeytab.c:504 util/ipa_krb5.c:642 +#, c-format +msgid "No system preferred enctypes ?!\n" +msgstr "" + +#: ipa-client/ipa-getkeytab.c:507 #, c-format msgid "Supported encryption types:\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:858 +#: ipa-client/ipa-getkeytab.c:511 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:877 +#: ipa-client/ipa-getkeytab.c:530 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:890 +#: ipa-client/ipa-getkeytab.c:543 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. -P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:902 +#: ipa-client/ipa-getkeytab.c:555 #, c-format msgid "Invalid Service Principal Name\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:910 +#: ipa-client/ipa-getkeytab.c:563 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:918 +#: ipa-client/ipa-getkeytab.c:571 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:926 +#: ipa-client/ipa-getkeytab.c:579 #, c-format msgid "Failed to open Keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:933 +#: ipa-client/ipa-getkeytab.c:589 #, c-format msgid "Failed to create key material\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:952 +#: ipa-client/ipa-getkeytab.c:608 #, c-format msgid "Failed to add key to the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:961 +#: ipa-client/ipa-getkeytab.c:617 #, c-format msgid "Failed to close the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:967 +#: ipa-client/ipa-getkeytab.c:623 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" @@ -8423,7 +9349,7 @@ msgstr "" #: ipa-client/ipa-join.c:111 #, c-format -msgid "access() on %s failed: errno = %d\n" +msgid "access() on %1$s failed: errno = %2$d\n" msgstr "" #: ipa-client/ipa-join.c:134 ipa-client/ipa-join.c:163 @@ -8452,213 +9378,221 @@ msgstr "" msgid "Bind failed: %s\n" msgstr "" -#: ipa-client/ipa-join.c:301 +#: ipa-client/ipa-join.c:337 #, c-format -msgid "Search for %s on rootdse failed with error %d" +msgid "Search for %1$s on rootdse failed with error %2$d\n" msgstr "" -#: ipa-client/ipa-join.c:313 ipa-client/ipa-join.c:398 +#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:428 #, c-format msgid "No values for %s" msgstr "" -#: ipa-client/ipa-join.c:337 +#: ipa-client/ipa-join.c:367 #, c-format msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:343 +#: ipa-client/ipa-join.c:373 #, c-format msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:389 +#: ipa-client/ipa-join.c:408 ipa-client/ipa-join.c:483 +#: ipa-client/ipa-join.c:501 ipa-client/ipa-join.c:602 +#: ipa-client/ipa-join.c:796 ipa-client/ipa-join.c:864 util/ipa_krb5.c:823 +#: util/ipa_krb5.c:857 +#, c-format +msgid "Out of memory!\n" +msgstr "" + +#: ipa-client/ipa-join.c:419 #, c-format msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:460 +#: ipa-client/ipa-join.c:490 #, c-format msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:478 +#: ipa-client/ipa-join.c:508 #, c-format msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:486 +#: ipa-client/ipa-join.c:516 #, c-format msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:502 +#: ipa-client/ipa-join.c:532 #, c-format msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:631 +#: ipa-client/ipa-join.c:661 #, c-format msgid "principal not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:646 +#: ipa-client/ipa-join.c:676 #, c-format msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:714 ipa-client/ipa-join.c:920 +#: ipa-client/ipa-join.c:744 ipa-client/ipa-join.c:950 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:730 ipa-client/ipa-join.c:935 +#: ipa-client/ipa-join.c:760 ipa-client/ipa-join.c:965 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:739 ipa-client/ipa-join.c:951 +#: ipa-client/ipa-join.c:769 ipa-client/ipa-join.c:981 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:747 +#: ipa-client/ipa-join.c:777 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:756 +#: ipa-client/ipa-join.c:786 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:774 +#: ipa-client/ipa-join.c:804 #, c-format -msgid "Error parsing \"%s\": %s.\n" +msgid "Error parsing \"%1$s\": %2$s.\n" msgstr "" -#: ipa-client/ipa-join.c:792 +#: ipa-client/ipa-join.c:822 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:803 +#: ipa-client/ipa-join.c:833 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:811 +#: ipa-client/ipa-join.c:841 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:865 +#: ipa-client/ipa-join.c:895 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: ipa-client/ipa-join.c:868 +#: ipa-client/ipa-join.c:898 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: ipa-client/ipa-join.c:873 +#: ipa-client/ipa-join.c:903 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:941 +#: ipa-client/ipa-join.c:971 #, c-format msgid "The hostname must not be: %s\n" msgstr "" -#: ipa-client/ipa-join.c:958 +#: ipa-client/ipa-join.c:988 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:966 +#: ipa-client/ipa-join.c:996 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not " "provided.\n" msgstr "" -#: ipa-client/ipa-join.c:980 +#: ipa-client/ipa-join.c:1010 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:1009 +#: ipa-client/ipa-join.c:1039 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:1012 +#: ipa-client/ipa-join.c:1042 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:1015 +#: ipa-client/ipa-join.c:1045 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1027 +#: ipa-client/ipa-join.c:1057 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1033 +#: ipa-client/ipa-join.c:1063 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1070 +#: ipa-client/ipa-join.c:1100 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1072 +#: ipa-client/ipa-join.c:1102 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1074 +#: ipa-client/ipa-join.c:1104 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1076 +#: ipa-client/ipa-join.c:1106 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1076 ipa-client/ipa-join.c:1078 +#: ipa-client/ipa-join.c:1106 ipa-client/ipa-join.c:1108 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1078 +#: ipa-client/ipa-join.c:1108 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1080 +#: ipa-client/ipa-join.c:1110 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1080 +#: ipa-client/ipa-join.c:1110 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1082 +#: ipa-client/ipa-join.c:1112 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1082 +#: ipa-client/ipa-join.c:1112 msgid "password" msgstr "" -#: ipa-client/ipa-join.c:1084 +#: ipa-client/ipa-join.c:1114 msgid "LDAP basedn" msgstr "" -#: ipa-client/ipa-join.c:1084 +#: ipa-client/ipa-join.c:1114 msgid "basedn" msgstr "" @@ -8669,7 +9603,7 @@ msgstr "" #: ipa-client/ipa-rmkeytab.c:45 #, c-format -msgid "krb5_parse_name %d: %s\n" +msgid "krb5_parse_name %1$d: %2$s\n" msgstr "" #: ipa-client/ipa-rmkeytab.c:55 @@ -8689,7 +9623,7 @@ msgstr "" #: ipa-client/ipa-rmkeytab.c:74 #, c-format -msgid "krb5_kt_get_entry %d: %s\n" +msgid "krb5_kt_get_entry %1$d: %2$s\n" msgstr "" #: ipa-client/ipa-rmkeytab.c:82 @@ -8704,7 +9638,7 @@ msgstr "" #: ipa-client/ipa-rmkeytab.c:85 #, c-format -msgid "krb5_kt_remove_entry %d: %s\n" +msgid "krb5_kt_remove_entry %1$d: %2$s\n" msgstr "" #: ipa-client/ipa-rmkeytab.c:119 @@ -8714,7 +9648,7 @@ msgstr "" #: ipa-client/ipa-rmkeytab.c:121 #, c-format -msgid "krb5_unparse_name %d: %s\n" +msgid "krb5_unparse_name %1$d: %2$s\n" msgstr "" #: ipa-client/ipa-rmkeytab.c:143 @@ -8734,13 +9668,9 @@ msgstr "" msgid "Remove all principals in this realm" msgstr "" -#: ipa-client/ipa-rmkeytab.c:176 -msgid "Realm name" -msgstr "" - #: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237 #, c-format -msgid "Failed to open keytab '%s': %s\n" +msgid "Failed to open keytab '%1$s': %2$s\n" msgstr "" #: ipa-client/ipa-rmkeytab.c:253 @@ -8750,5 +9680,38 @@ msgstr "" #: ipa-client/ipa-rmkeytab.c:255 #, c-format -msgid "krb5_kt_close %d: %s\n" +msgid "krb5_kt_close %1$d: %2$s\n" +msgstr "" + +#: util/ipa_krb5.c:650 +msgid "Out of memory!?\n" +msgstr "" + +#: util/ipa_krb5.c:668 util/ipa_krb5.c:683 +msgid "Out of memory\n" +msgstr "" + +#: util/ipa_krb5.c:697 +msgid "Warning unrecognized encryption type.\n" +msgstr "" + +#: util/ipa_krb5.c:711 +msgid "Warning unrecognized salt type.\n" +msgstr "" + +#: util/ipa_krb5.c:738 +msgid "Enctype comparison failed!\n" +msgstr "" + +#: util/ipa_krb5.c:803 +msgid "Failed to create random key!\n" +msgstr "" + +#: util/ipa_krb5.c:816 util/ipa_krb5.c:834 util/ipa_krb5.c:842 +#: util/ipa_krb5.c:882 +msgid "Failed to create key!\n" +msgstr "" + +#: util/ipa_krb5.c:868 +msgid "Bad or unsupported salt type.\n" msgstr "" |