diff options
author | Tomas Babej <tbabej@redhat.com> | 2015-06-24 13:48:02 +0200 |
---|---|---|
committer | Tomas Babej <tbabej@redhat.com> | 2015-07-07 12:07:15 +0200 |
commit | 12b053df300cb58aad157797f4e30283e45033f5 (patch) | |
tree | df8a7dddc9a59130fd5a7f94b6e6eca805b471d6 /install/po/ipa.pot | |
parent | c6e6b216e943ec9457e7c3bd04b473af8b906ca8 (diff) | |
download | freeipa-12b053df300cb58aad157797f4e30283e45033f5.tar.gz freeipa-12b053df300cb58aad157797f4e30283e45033f5.tar.xz freeipa-12b053df300cb58aad157797f4e30283e45033f5.zip |
l10n: Update translation strings
* Generate new l10n strings
* Include newly created python implicit files
* Merges already translated strings from Zanata
https://fedorahosted.org/freeipa/ticket/4832
Reviewed-By: Martin Basti <mbasti@redhat.com>
Diffstat (limited to 'install/po/ipa.pot')
-rw-r--r-- | install/po/ipa.pot | 6635 |
1 files changed, 4651 insertions, 1984 deletions
diff --git a/install/po/ipa.pot b/install/po/ipa.pot index bc24273f3..fc5a84db3 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: 2014-07-07 15:24+0200\n" +"POT-Creation-Date: 2015-06-24 13:48+0200\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" @@ -24,7 +24,7 @@ msgstr "" msgid "Enter %(label)s again to verify: " msgstr "" -#: ipalib/cli.py:607 ipa-client/ipa-getkeytab.c:739 +#: ipalib/cli.py:607 ipa-client/ipa-getkeytab.c:587 #, c-format msgid "Passwords do not match!" msgstr "" @@ -41,36 +41,36 @@ msgstr "" msgid "The topic or command name." msgstr "" -#: ipalib/cli.py:844 +#: ipalib/cli.py:847 msgid "Topic commands:" msgstr "" -#: ipalib/cli.py:849 +#: ipalib/cli.py:852 msgid "To get command help, use:" msgstr "" -#: ipalib/cli.py:850 +#: ipalib/cli.py:853 msgid " ipa <command> --help" msgstr "" -#: ipalib/cli.py:859 +#: ipalib/cli.py:862 msgid "Command name" msgstr "" -#: ipalib/cli.py:1027 +#: ipalib/cli.py:1030 msgid "Positional arguments" msgstr "" -#: ipalib/cli.py:1175 +#: ipalib/cli.py:1178 #, python-format msgid "Same as --%s" msgstr "" -#: ipalib/cli.py:1178 +#: ipalib/cli.py:1181 msgid "Deprecated options" msgstr "" -#: ipalib/cli.py:1300 +#: ipalib/cli.py:1303 msgid "No file to read" msgstr "" @@ -170,320 +170,325 @@ msgstr "" msgid "Principal %(principal)s cannot be authenticated: %(message)s" msgstr "" -#: ipalib/errors.py:603 +#: ipalib/errors.py:609 #, python-format msgid "Insufficient access: %(info)s" msgstr "" -#: ipalib/errors.py:647 +#: ipalib/errors.py:653 #, python-format msgid "command '%(name)s' takes no arguments" msgstr "" -#: ipalib/errors.py:667 +#: ipalib/errors.py:673 #, python-format msgid "command '%(name)s' takes at most %(count)d argument" msgid_plural "command '%(name)s' takes at most %(count)d arguments" msgstr[0] "" msgstr[1] "" -#: ipalib/errors.py:697 +#: ipalib/errors.py:703 #, python-format msgid "overlapping arguments and options: %(names)s" msgstr "" -#: ipalib/errors.py:713 +#: ipalib/errors.py:719 #, python-format msgid "'%(name)s' is required" msgstr "" -#: ipalib/errors.py:729 ipalib/errors.py:745 +#: ipalib/errors.py:735 ipalib/errors.py:751 #, python-format msgid "invalid '%(name)s': %(error)s" msgstr "" -#: ipalib/errors.py:761 +#: ipalib/errors.py:767 #, python-format msgid "api has no such namespace: '%(name)s'" msgstr "" -#: ipalib/errors.py:770 +#: ipalib/errors.py:776 msgid "Passwords do not match" msgstr "" -#: ipalib/errors.py:779 +#: ipalib/errors.py:785 msgid "Command not implemented" msgstr "" -#: ipalib/errors.py:788 +#: ipalib/errors.py:794 msgid "Client is not configured. Run ipa-client-install." msgstr "" -#: ipalib/errors.py:797 +#: ipalib/errors.py:803 #, python-format msgid "Could not get %(name)s interactively" msgstr "" -#: ipalib/errors.py:812 +#: ipalib/errors.py:818 #, python-format msgid "Command '%(name)s' has been deprecated" msgstr "" -#: ipalib/errors.py:840 ipalib/errors.py:1080 ipalib/errors.py:1174 -#: ipalib/errors.py:1605 ipalib/errors.py:1622 +#: ipalib/errors.py:834 +#, python-format +msgid "Domain '%(domain)s' is not a root domain for forest '%(forest)s'" +msgstr "" + +#: ipalib/errors.py:862 ipalib/errors.py:1102 ipalib/errors.py:1196 +#: ipalib/errors.py:1658 ipalib/errors.py:1675 #, python-format msgid "%(reason)s" msgstr "" -#: ipalib/errors.py:856 +#: ipalib/errors.py:878 msgid "This entry already exists" msgstr "" -#: ipalib/errors.py:872 +#: ipalib/errors.py:894 msgid "You must enroll a host in order to create a host service" msgstr "" -#: ipalib/errors.py:888 +#: ipalib/errors.py:910 #, python-format msgid "" "Service principal is not of the form: service/fully-qualified host name: " "%(reason)s" msgstr "" -#: ipalib/errors.py:904 +#: ipalib/errors.py:926 msgid "" "The realm for the principal does not match the realm for this IPA server" msgstr "" -#: ipalib/errors.py:920 +#: ipalib/errors.py:942 msgid "This command requires root access" msgstr "" -#: ipalib/errors.py:936 +#: ipalib/errors.py:958 msgid "This is already a posix group" msgstr "" -#: ipalib/errors.py:952 +#: ipalib/errors.py:974 #, python-format msgid "Principal is not of the form user@REALM: '%(principal)s'" msgstr "" -#: ipalib/errors.py:968 +#: ipalib/errors.py:990 msgid "This entry is already enabled" msgstr "" -#: ipalib/errors.py:984 +#: ipalib/errors.py:1006 msgid "This entry is already disabled" msgstr "" -#: ipalib/errors.py:1000 +#: ipalib/errors.py:1022 msgid "This entry cannot be enabled or disabled" msgstr "" -#: ipalib/errors.py:1016 +#: ipalib/errors.py:1038 msgid "This entry is not a member" msgstr "" -#: ipalib/errors.py:1032 +#: ipalib/errors.py:1054 msgid "A group may not be a member of itself" msgstr "" -#: ipalib/errors.py:1048 +#: ipalib/errors.py:1070 msgid "This entry is already a member" msgstr "" -#: ipalib/errors.py:1064 +#: ipalib/errors.py:1086 #, python-format msgid "Base64 decoding failed: %(reason)s" msgstr "" -#: ipalib/errors.py:1096 +#: ipalib/errors.py:1118 msgid "A group may not be added as a member of itself" msgstr "" -#: ipalib/errors.py:1112 +#: ipalib/errors.py:1134 msgid "The default users group cannot be removed" msgstr "" -#: ipalib/errors.py:1128 -msgid "Host does not have corresponding DNS A record" +#: ipalib/errors.py:1150 +msgid "Host does not have corresponding DNS A/AAAA record" msgstr "" -#: ipalib/errors.py:1143 +#: ipalib/errors.py:1165 msgid "Deleting a managed group is not allowed. It must be detached first." msgstr "" -#: ipalib/errors.py:1158 +#: ipalib/errors.py:1180 msgid "A managed group cannot have a password policy." msgstr "" -#: ipalib/errors.py:1190 +#: ipalib/errors.py:1212 #, python-format msgid "'%(entry)s' doesn't have a certificate." msgstr "" -#: ipalib/errors.py:1206 +#: ipalib/errors.py:1228 #, python-format msgid "Unable to create private group. A group '%(group)s' already exists." msgstr "" -#: ipalib/errors.py:1222 +#: ipalib/errors.py:1244 #, python-format msgid "" "A problem was encountered when verifying that all members were %(verb)s: " "%(exc)s" msgstr "" -#: ipalib/errors.py:1240 +#: ipalib/errors.py:1262 #, python-format msgid "%(attr)s does not contain '%(value)s'" msgstr "" -#: ipalib/errors.py:1257 +#: ipalib/errors.py:1279 #, python-format msgid "" "The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" -#: ipalib/errors.py:1274 +#: ipalib/errors.py:1296 msgid "This group already allows external members" msgstr "" -#: ipalib/errors.py:1291 +#: ipalib/errors.py:1313 msgid "This group cannot be posix because it is external" msgstr "" -#: ipalib/errors.py:1308 +#: ipalib/errors.py:1330 msgid "This is already a posix group and cannot be converted to external one" msgstr "" -#: ipalib/errors.py:1331 +#: ipalib/errors.py:1384 #, python-format msgid "no command nor help topic '%(topic)s'" msgstr "" -#: ipalib/errors.py:1355 +#: ipalib/errors.py:1408 msgid "change collided with another change" msgstr "" -#: ipalib/errors.py:1371 +#: ipalib/errors.py:1424 msgid "no modifications to be performed" msgstr "" -#: ipalib/errors.py:1387 +#: ipalib/errors.py:1440 #, python-format msgid "%(desc)s: %(info)s" msgstr "" -#: ipalib/errors.py:1403 +#: ipalib/errors.py:1456 msgid "limits exceeded for this query" msgstr "" -#: ipalib/errors.py:1418 +#: ipalib/errors.py:1471 #, python-format msgid "%(info)s" msgstr "" -#: ipalib/errors.py:1433 +#: ipalib/errors.py:1486 msgid "modifying primary key is not allowed" msgstr "" -#: ipalib/errors.py:1449 +#: ipalib/errors.py:1502 #, python-format msgid "%(attr)s: Only one value allowed." msgstr "" -#: ipalib/errors.py:1465 +#: ipalib/errors.py:1518 #, python-format msgid "%(attr)s: Invalid syntax." msgstr "" -#: ipalib/errors.py:1481 +#: ipalib/errors.py:1534 #, python-format msgid "Bad search filter %(info)s" msgstr "" -#: ipalib/errors.py:1497 +#: ipalib/errors.py:1550 msgid "Not allowed on non-leaf entry" msgstr "" -#: ipalib/errors.py:1513 +#: ipalib/errors.py:1566 msgid "LDAP timeout" msgstr "" -#: ipalib/errors.py:1531 +#: ipalib/errors.py:1584 #, python-format msgid "DNS check failed: Expected {%(expected)s} got {%(got)s}" msgstr "" -#: ipalib/errors.py:1547 +#: ipalib/errors.py:1600 #, python-format msgid "%(task)s LDAP task timeout, Task DN: '%(task_dn)s'" msgstr "" -#: ipalib/errors.py:1572 +#: ipalib/errors.py:1625 #, python-format msgid "Certificate operation cannot be completed: %(error)s" msgstr "" -#: ipalib/errors.py:1588 +#: ipalib/errors.py:1641 #, python-format msgid "Certificate format error: %(error)s" msgstr "" -#: ipalib/errors.py:1639 +#: ipalib/errors.py:1692 msgid "Already registered" msgstr "" -#: ipalib/errors.py:1655 +#: ipalib/errors.py:1708 msgid "Not registered yet" msgstr "" -#: ipalib/errors.py:1671 +#: ipalib/errors.py:1724 #, python-format msgid "%(key)s cannot be deleted because %(label)s %(dependent)s requires it" msgstr "" -#: ipalib/errors.py:1687 +#: ipalib/errors.py:1740 #, python-format msgid "" "%(key)s cannot be deleted or disabled because it is the last member of " "%(label)s %(container)s" msgstr "" -#: ipalib/errors.py:1703 +#: ipalib/errors.py:1756 #, python-format msgid "%(label)s %(key)s cannot be deleted/modified: %(reason)s" msgstr "" -#: ipalib/errors.py:1720 +#: ipalib/errors.py:1773 #, python-format msgid "%(name)s certificate is not valid" msgstr "" -#: ipalib/frontend.py:412 +#: ipalib/frontend.py:416 msgid "Results are truncated, try a more specific search" msgstr "" -#: ipalib/frontend.py:535 +#: ipalib/frontend.py:541 #, python-format msgid "Unknown option: %(option)s" msgstr "" -#: ipalib/frontend.py:898 +#: ipalib/frontend.py:904 msgid "" "Retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/frontend.py:904 +#: ipalib/frontend.py:910 msgid "Print entries as stored on the server. Only affects output format." msgstr "" -#: ipalib/frontend.py:910 ipalib/plugins/batch.py:73 +#: ipalib/frontend.py:916 ipalib/plugins/batch.py:73 msgid "Client version. Used to determine if server will accept request." msgstr "" -#: ipalib/frontend.py:1087 +#: ipalib/frontend.py:1093 msgid "Forward to server instead of running locally" msgstr "" @@ -512,6 +517,53 @@ msgid "" "%(additional_info)s" msgstr "" +#: ipalib/messages.py:168 +#, python-format +msgid "'%(option)s' option is deprecated. %(additional_info)s" +msgstr "" + +#: ipalib/messages.py:178 +#, python-format +msgid "" +"Semantic of %(label)s was changed. %(current_behavior)s\n" +"%(hint)s" +msgstr "" + +#: ipalib/messages.py:189 +#, python-format +msgid "DNS server %(server)s: %(error)s." +msgstr "" + +#: ipalib/messages.py:199 +#, python-format +msgid "" +"DNS server %(server)s does not support DNSSEC: %(error)s.\n" +"If DNSSEC validation is enabled on IPA server(s), please disable it." +msgstr "" + +#: ipalib/messages.py:212 +#, python-format +msgid "" +"forward zone \"%(fwzone)s\" is not effective because of missing proper NS " +"delegation in authoritative zone \"%(authzone)s\". Please add NS record " +"\"%(ns_rec)s\" to parent zone \"%(authzone)s\"." +msgstr "" + +#: ipalib/messages.py:226 +#, python-format +msgid "" +"DNS server %(server)s does not support EDNS0 (RFC 6891): %(error)s.\n" +"If DNSSEC validation is enabled on IPA server(s), please disable it." +msgstr "" + +#: ipalib/messages.py:239 +#, python-format +msgid "" +"DNSSEC validation failed: %(error)s.\n" +"Please verify your DNSSEC configuration or disable DNSSEC validation on all " +"IPA servers." +msgstr "" + #: ipalib/output.py:93 msgid "A dictionary representing an LDAP entry" msgstr "" @@ -544,7 +596,7 @@ msgstr "" msgid "List of deletions that failed" msgstr "" -#: ipalib/output.py:193 ipalib/plugins/dns.py:308 +#: ipalib/output.py:193 ipalib/plugins/dns.py:313 msgid "True means the operation was successful" msgstr "" @@ -677,36 +729,11 @@ msgstr "" msgid "must be DNS name" msgstr "" -#: ipalib/parameters.py:1955 -msgid "invalid escape code in domain name" -msgstr "" - -#: ipalib/parameters.py:1957 ipalib/util.py:240 -msgid "empty DNS label" -msgstr "" - -#: ipalib/parameters.py:1959 -msgid "domain name cannot be longer than 255 characters" -msgstr "" - -#: ipalib/parameters.py:1961 -msgid "DNS label cannot be longer than 63 characters" -msgstr "" - -#: ipalib/parameters.py:1963 -msgid "invalid domain name" -msgstr "" - -#: ipalib/parameters.py:1975 -#, python-format -msgid "domain name '%(domain)s' should be normalized to: %(normalized)s" -msgstr "" - -#: ipalib/parameters.py:1991 +#: ipalib/parameters.py:1966 msgid "must be absolute" msgstr "" -#: ipalib/parameters.py:1995 +#: ipalib/parameters.py:1970 msgid "must be relative" msgstr "" @@ -817,8 +844,8 @@ msgstr "" msgid "Attributes" msgstr "" -#: ipalib/plugins/aci.py:472 ipalib/plugins/otptoken.py:141 -#: ipalib/plugins/permission.py:315 +#: ipalib/plugins/aci.py:472 ipalib/plugins/otptoken.py:160 +#: ipalib/plugins/permission.py:333 msgid "Type" msgstr "" @@ -834,7 +861,8 @@ msgstr "" msgid "Member of a group" msgstr "" -#: ipalib/plugins/aci.py:485 ipalib/plugins/internal.py:206 +#: ipalib/plugins/aci.py:485 ipalib/plugins/internal.py:216 +#: ipalib/plugins/internal.py:591 msgid "Filter" msgstr "" @@ -842,7 +870,7 @@ msgstr "" msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" -#: ipalib/plugins/aci.py:491 ipalib/plugins/permission.py:277 +#: ipalib/plugins/aci.py:491 ipalib/plugins/permission.py:278 msgid "Subtree" msgstr "" @@ -850,7 +878,7 @@ msgstr "" msgid "Subtree to apply ACI to" msgstr "" -#: ipalib/plugins/aci.py:497 ipalib/plugins/permission.py:309 +#: ipalib/plugins/aci.py:497 ipalib/plugins/permission.py:327 msgid "Target group" msgstr "" @@ -957,10 +985,11 @@ msgid "" "against existing entries, thus rebuilding their membership.\n" msgstr "" -#: ipalib/plugins/automember.py:50 ipalib/plugins/host.py:79 -#: ipalib/plugins/otptoken.py:46 ipalib/plugins/otptoken_yubikey.py:37 +#: ipalib/plugins/automember.py:50 ipalib/plugins/host.py:80 +#: ipalib/plugins/otptoken.py:46 ipalib/plugins/otptoken_yubikey.py:38 #: ipalib/plugins/permission.py:90 ipalib/plugins/radiusproxy.py:35 -#: ipalib/plugins/sudorule.py:66 +#: ipalib/plugins/server.py:19 ipalib/plugins/sudorule.py:66 +#: ipalib/plugins/vault.py:52 msgid "" "\n" "EXAMPLES:\n" @@ -1157,14 +1186,16 @@ msgid "Auto Membership Rule" msgstr "" #: ipalib/plugins/automember.py:237 ipalib/plugins/automount.py:600 -#: ipalib/plugins/group.py:222 ipalib/plugins/hbacrule.py:233 -#: ipalib/plugins/hbacsvc.py:108 ipalib/plugins/hbacsvcgroup.py:112 -#: ipalib/plugins/host.py:385 ipalib/plugins/hostgroup.py:144 -#: ipalib/plugins/netgroup.py:179 ipalib/plugins/otptoken.py:149 -#: ipalib/plugins/privilege.py:107 ipalib/plugins/radiusproxy.py:109 -#: ipalib/plugins/role.py:139 ipalib/plugins/selinuxusermap.py:227 -#: ipalib/plugins/sudocmd.py:119 ipalib/plugins/sudocmdgroup.py:122 -#: ipalib/plugins/sudorule.py:223 +#: ipalib/plugins/caacl.py:222 ipalib/plugins/group.py:242 +#: ipalib/plugins/hbacrule.py:233 ipalib/plugins/hbacsvc.py:108 +#: ipalib/plugins/hbacsvcgroup.py:112 ipalib/plugins/host.py:459 +#: ipalib/plugins/hostgroup.py:156 ipalib/plugins/idviews.py:82 +#: ipalib/plugins/idviews.py:553 ipalib/plugins/netgroup.py:189 +#: ipalib/plugins/otptoken.py:169 ipalib/plugins/privilege.py:107 +#: ipalib/plugins/radiusproxy.py:109 ipalib/plugins/role.py:141 +#: ipalib/plugins/selinuxusermap.py:227 ipalib/plugins/sudocmd.py:119 +#: ipalib/plugins/sudocmdgroup.py:122 ipalib/plugins/sudorule.py:223 +#: ipalib/plugins/vault.py:195 msgid "Description" msgstr "" @@ -1363,9 +1394,10 @@ msgstr "" msgid "Rebuild membership for all members of a grouping" msgstr "" -#: ipalib/plugins/automember.py:657 ipalib/plugins/hbacrule.py:240 -#: ipalib/plugins/internal.py:513 ipalib/plugins/selinuxusermap.py:234 -#: ipalib/plugins/sudorule.py:267 ipalib/plugins/user.py:429 +#: ipalib/plugins/automember.py:657 ipalib/plugins/baseuser.py:208 +#: ipalib/plugins/caacl.py:269 ipalib/plugins/hbacrule.py:240 +#: ipalib/plugins/internal.py:573 ipalib/plugins/selinuxusermap.py:234 +#: ipalib/plugins/sudorule.py:267 ipalib/plugins/user.py:125 msgid "Users" msgstr "" @@ -1373,9 +1405,10 @@ msgstr "" msgid "Rebuild membership for specified users" msgstr "" -#: ipalib/plugins/automember.py:662 ipalib/plugins/hbacrule.py:248 -#: ipalib/plugins/host.py:373 ipalib/plugins/internal.py:507 -#: ipalib/plugins/selinuxusermap.py:242 ipalib/plugins/sudorule.py:280 +#: ipalib/plugins/automember.py:662 ipalib/plugins/caacl.py:277 +#: ipalib/plugins/hbacrule.py:248 ipalib/plugins/host.py:447 +#: ipalib/plugins/internal.py:567 ipalib/plugins/selinuxusermap.py:242 +#: ipalib/plugins/sudorule.py:280 msgid "Hosts" msgstr "" @@ -1415,20 +1448,20 @@ msgstr "" msgid "users cannot be set when type is 'hostgroup'" msgstr "" -#: ipalib/plugins/automember.py:759 +#: ipalib/plugins/automember.py:762 msgid "Automember rebuild membership task started" msgstr "" -#: ipalib/plugins/automember.py:763 ipalib/plugins/internal.py:158 +#: ipalib/plugins/automember.py:766 ipalib/plugins/internal.py:158 msgid "Automember rebuild membership task completed" msgstr "" -#: ipalib/plugins/automember.py:780 +#: ipalib/plugins/automember.py:783 #, python-format msgid "Task DN = '%s'" msgstr "" -#: ipalib/plugins/automember.py:783 ipalib/plugins/internal.py:702 +#: ipalib/plugins/automember.py:786 ipalib/plugins/internal.py:792 msgid "Automember" msgstr "" @@ -1556,7 +1589,7 @@ msgstr "" msgid "Automount Location" msgstr "" -#: ipalib/plugins/automount.py:243 ipalib/plugins/host.py:395 +#: ipalib/plugins/automount.py:243 ipalib/plugins/host.py:469 msgid "Location" msgstr "" @@ -1716,7 +1749,7 @@ msgid "automount keys" msgstr "" #: ipalib/plugins/automount.py:701 ipalib/plugins/automount.py:950 -#: ipalib/plugins/automount.py:1057 ipalib/plugins/otptoken.py:191 +#: ipalib/plugins/automount.py:1057 ipalib/plugins/otptoken.py:214 msgid "Key" msgstr "" @@ -1837,13 +1870,14 @@ msgstr[1] "" msgid "Display an automount key." msgstr "" -#: ipalib/plugins/baseldap.py:43 ipalib/plugins/internal.py:292 -#: ipalib/plugins/internal.py:666 ipalib/plugins/migration.py:502 -#: ipalib/plugins/otptoken.py:442 ipalib/plugins/user.py:497 +#: ipalib/plugins/baseldap.py:43 ipalib/plugins/baseuser.py:276 +#: ipalib/plugins/internal.py:196 ipalib/plugins/internal.py:314 +#: ipalib/plugins/internal.py:756 ipalib/plugins/migration.py:500 +#: ipalib/plugins/otptoken.py:522 msgid "Password" msgstr "" -#: ipalib/plugins/baseldap.py:46 +#: ipalib/plugins/baseldap.py:46 ipalib/plugins/servicedelegation.py:100 msgid "Failed members" msgstr "" @@ -1871,7 +1905,7 @@ msgstr "" msgid "Member of host-groups" msgstr "" -#: ipalib/plugins/baseldap.py:73 ipalib/plugins/role.py:128 +#: ipalib/plugins/baseldap.py:73 ipalib/plugins/role.py:130 msgid "Roles" msgstr "" @@ -1976,190 +2010,762 @@ msgstr "" msgid "Invalid format. Should be name=value" msgstr "" -#: ipalib/plugins/baseldap.py:311 +#: ipalib/plugins/baseldap.py:319 msgid "External host" msgstr "" -#: ipalib/plugins/baseldap.py:483 +#: ipalib/plugins/baseldap.py:491 msgid "An IPA master host cannot be deleted or disabled" msgstr "" -#: ipalib/plugins/baseldap.py:497 +#: ipalib/plugins/baseldap.py:522 msgid "entry" msgstr "" -#: ipalib/plugins/baseldap.py:498 +#: ipalib/plugins/baseldap.py:523 msgid "entries" msgstr "" -#: ipalib/plugins/baseldap.py:531 ipalib/plugins/baseldap.py:532 +#: ipalib/plugins/baseldap.py:556 ipalib/plugins/baseldap.py:557 msgid "Entry" msgstr "" -#: ipalib/plugins/baseldap.py:535 +#: ipalib/plugins/baseldap.py:560 #, python-format msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/baseldap.py:536 +#: ipalib/plugins/baseldap.py:561 #, python-format msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/baseldap.py:537 +#: ipalib/plugins/baseldap.py:562 #, python-format msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/baseldap.py:538 +#: ipalib/plugins/baseldap.py:563 #, python-format msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/baseldap.py:738 ipalib/plugins/baseldap.py:746 -#: ipalib/plugins/baseldap.py:751 +#: ipalib/plugins/baseldap.py:844 ipalib/plugins/baseldap.py:852 +#: ipalib/plugins/baseldap.py:857 #, python-format msgid "attribute \"%(attribute)s\" not allowed" msgstr "" -#: ipalib/plugins/baseldap.py:813 +#: ipalib/plugins/baseldap.py:919 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:819 +#: ipalib/plugins/baseldap.py:925 msgid "" "Add an attribute/value pair. Format is attr=value. The attribute\n" "must be part of the schema." msgstr "" -#: ipalib/plugins/baseldap.py:825 +#: ipalib/plugins/baseldap.py:931 msgid "" "Delete an attribute/value pair. The option will be evaluated\n" "last, after all sets and adds." msgstr "" -#: ipalib/plugins/baseldap.py:859 +#: ipalib/plugins/baseldap.py:965 msgid "attribute is not configurable" msgstr "" -#: ipalib/plugins/baseldap.py:962 +#: ipalib/plugins/baseldap.py:1068 msgid "No such attribute on this entry" msgstr "" -#: ipalib/plugins/baseldap.py:1058 +#: ipalib/plugins/baseldap.py:1164 msgid "Suppress processing of membership attributes." msgstr "" -#: ipalib/plugins/baseldap.py:1235 +#: ipalib/plugins/baseldap.py:1343 msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/baseldap.py:1256 ipalib/plugins/baseldap.py:1332 +#: ipalib/plugins/baseldap.py:1364 ipalib/plugins/baseldap.py:1442 msgid "Rights" msgstr "" -#: ipalib/plugins/baseldap.py:1257 ipalib/plugins/baseldap.py:1333 +#: ipalib/plugins/baseldap.py:1365 ipalib/plugins/baseldap.py:1443 msgid "" "Display the access rights of this entry (requires --all). See ipa man page " "for details." msgstr "" -#: ipalib/plugins/baseldap.py:1342 +#: ipalib/plugins/baseldap.py:1452 msgid "Rename" msgstr "" -#: ipalib/plugins/baseldap.py:1343 +#: ipalib/plugins/baseldap.py:1453 #, python-format msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/baseldap.py:1424 +#: ipalib/plugins/baseldap.py:1543 msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/baseldap.py:1555 ipalib/plugins/baseldap.py:2023 +#: ipalib/plugins/baseldap.py:1676 ipalib/plugins/baseldap.py:2151 #, python-format msgid "%s" msgstr "" -#: ipalib/plugins/baseldap.py:1567 +#: ipalib/plugins/baseldap.py:1688 ipalib/plugins/servicedelegation.py:184 +#: ipalib/plugins/servicedelegation.py:267 #, python-format msgid "member %s" msgstr "" -#: ipalib/plugins/baseldap.py:1597 ipalib/plugins/baseldap.py:2048 +#: ipalib/plugins/baseldap.py:1718 ipalib/plugins/baseldap.py:2176 #, python-format msgid "%s to add" msgstr "" -#: ipalib/plugins/baseldap.py:1605 ipalib/plugins/baseldap.py:2060 +#: ipalib/plugins/baseldap.py:1726 ipalib/plugins/baseldap.py:2188 #: ipalib/plugins/privilege.py:176 ipalib/plugins/privilege.py:231 -#: ipalib/plugins/role.py:211 ipalib/plugins/role.py:234 +#: ipalib/plugins/role.py:213 ipalib/plugins/role.py:236 msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/baseldap.py:1609 ipalib/plugins/baseldap.py:2064 +#: ipalib/plugins/baseldap.py:1730 ipalib/plugins/baseldap.py:2192 msgid "Number of members added" msgstr "" -#: ipalib/plugins/baseldap.py:1697 ipalib/plugins/baseldap.py:2152 +#: ipalib/plugins/baseldap.py:1820 ipalib/plugins/baseldap.py:2277 #, python-format msgid "%s to remove" msgstr "" -#: ipalib/plugins/baseldap.py:1704 ipalib/plugins/baseldap.py:2164 +#: ipalib/plugins/baseldap.py:1827 ipalib/plugins/baseldap.py:2289 msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/baseldap.py:1708 ipalib/plugins/baseldap.py:2168 +#: ipalib/plugins/baseldap.py:1831 ipalib/plugins/baseldap.py:2293 msgid "Number of members removed" msgstr "" -#: ipalib/plugins/baseldap.py:1797 +#: ipalib/plugins/baseldap.py:1922 msgid "Primary key only" msgstr "" -#: ipalib/plugins/baseldap.py:1798 +#: ipalib/plugins/baseldap.py:1923 #, python-format msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/baseldap.py:1806 +#: ipalib/plugins/baseldap.py:1931 #, python-format msgid "" "Search for %(searched_object)s with these %(relationship)s %(ldap_object)s." msgstr "" -#: ipalib/plugins/baseldap.py:1807 +#: ipalib/plugins/baseldap.py:1932 #, python-format msgid "" "Search for %(searched_object)s without these %(relationship)s " "%(ldap_object)s." msgstr "" -#: ipalib/plugins/baseldap.py:1816 +#: ipalib/plugins/baseldap.py:1941 msgid "Time Limit" msgstr "" -#: ipalib/plugins/baseldap.py:1817 +#: ipalib/plugins/baseldap.py:1942 msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/baseldap.py:1823 ipalib/plugins/cert.py:721 +#: ipalib/plugins/baseldap.py:1948 ipalib/plugins/cert.py:786 #: ipalib/plugins/hbactest.py:289 msgid "Size Limit" msgstr "" -#: ipalib/plugins/baseldap.py:1824 +#: ipalib/plugins/baseldap.py:1949 msgid "Maximum number of entries returned" msgstr "" +#: ipalib/plugins/baseuser.py:44 +msgid "" +"\n" +"Baseuser\n" +"\n" +"This contains common definitions for user/stageuser\n" +msgstr "" + +#: ipalib/plugins/baseuser.py:56 +msgid "Kerberos keys available" +msgstr "" + +#: ipalib/plugins/baseuser.py:59 ipalib/plugins/host.py:217 +msgid "SSH public key fingerprint" +msgstr "" + +#: ipalib/plugins/baseuser.py:65 ipalib/plugins/radiusproxy.py:114 +msgid "Server" +msgstr "" + +#: ipalib/plugins/baseuser.py:68 +msgid "Failed logins" +msgstr "" + +#: ipalib/plugins/baseuser.py:71 +msgid "Last successful authentication" +msgstr "" + +#: ipalib/plugins/baseuser.py:74 +msgid "Last failed authentication" +msgstr "" + +#: ipalib/plugins/baseuser.py:77 +msgid "Time now" +msgstr "" + +#: ipalib/plugins/baseuser.py:98 +msgid "must be TRUE or FALSE" +msgstr "" + +#: ipalib/plugins/baseuser.py:209 ipalib/plugins/internal.py:571 +#: ipalib/plugins/internal.py:637 ipalib/plugins/pwpolicy.py:524 +#: ipalib/plugins/user.py:126 +msgid "User" +msgstr "" + +#: ipalib/plugins/baseuser.py:217 ipalib/plugins/idviews.py:690 +msgid "User login" +msgstr "" + +#: ipalib/plugins/baseuser.py:224 +msgid "First name" +msgstr "" + +#: ipalib/plugins/baseuser.py:228 +msgid "Last name" +msgstr "" + +#: ipalib/plugins/baseuser.py:231 +msgid "Full name" +msgstr "" + +#: ipalib/plugins/baseuser.py:236 +msgid "Display name" +msgstr "" + +#: ipalib/plugins/baseuser.py:241 +msgid "Initials" +msgstr "" + +#: ipalib/plugins/baseuser.py:247 ipalib/plugins/idviews.py:709 +msgid "Home directory" +msgstr "" + +#: ipalib/plugins/baseuser.py:250 ipalib/plugins/idviews.py:700 +msgid "GECOS" +msgstr "" + +#: ipalib/plugins/baseuser.py:256 ipalib/plugins/idviews.py:713 +msgid "Login shell" +msgstr "" + +#: ipalib/plugins/baseuser.py:260 +msgid "Kerberos principal" +msgstr "" + +#: ipalib/plugins/baseuser.py:268 +msgid "Kerberos principal expiration" +msgstr "" + +#: ipalib/plugins/baseuser.py:272 +msgid "Email address" +msgstr "" + +#: ipalib/plugins/baseuser.py:277 +msgid "Prompt to set the user password" +msgstr "" + +#: ipalib/plugins/baseuser.py:283 +msgid "Generate a random user password" +msgstr "" + +#: ipalib/plugins/baseuser.py:288 ipalib/plugins/host.py:493 +msgid "Random password" +msgstr "" + +#: ipalib/plugins/baseuser.py:293 ipalib/plugins/idviews.py:695 +msgid "UID" +msgstr "" + +#: ipalib/plugins/baseuser.py:294 +msgid "User ID Number (system will assign one if not provided)" +msgstr "" + +#: ipalib/plugins/baseuser.py:298 ipalib/plugins/group.py:247 +#: ipalib/plugins/idviews.py:703 ipalib/plugins/idviews.py:775 +msgid "GID" +msgstr "" + +#: ipalib/plugins/baseuser.py:299 ipalib/plugins/idviews.py:704 +#: ipalib/plugins/idviews.py:776 +msgid "Group ID Number" +msgstr "" + +#: ipalib/plugins/baseuser.py:304 +msgid "Street address" +msgstr "" + +#: ipalib/plugins/baseuser.py:308 +msgid "City" +msgstr "" + +#: ipalib/plugins/baseuser.py:312 +msgid "State/Province" +msgstr "" + +#: ipalib/plugins/baseuser.py:315 +msgid "ZIP" +msgstr "" + +#: ipalib/plugins/baseuser.py:319 +msgid "Telephone Number" +msgstr "" + +#: ipalib/plugins/baseuser.py:322 +msgid "Mobile Telephone Number" +msgstr "" + +#: ipalib/plugins/baseuser.py:325 +msgid "Pager Number" +msgstr "" + +#: ipalib/plugins/baseuser.py:329 +msgid "Fax Number" +msgstr "" + +#: ipalib/plugins/baseuser.py:333 +msgid "Org. Unit" +msgstr "" + +#: ipalib/plugins/baseuser.py:336 +msgid "Job Title" +msgstr "" + +#: ipalib/plugins/baseuser.py:339 ipalib/plugins/otptoken.py:178 +msgid "Manager" +msgstr "" + +#: ipalib/plugins/baseuser.py:342 +msgid "Car License" +msgstr "" + +#: ipalib/plugins/baseuser.py:346 ipalib/plugins/host.py:516 +#: ipalib/plugins/idviews.py:720 +msgid "SSH public key" +msgstr "" + +#: ipalib/plugins/baseuser.py:353 +msgid "User authentication types" +msgstr "" + +#: ipalib/plugins/baseuser.py:354 +msgid "Types of supported user authentication" +msgstr "" + +#: ipalib/plugins/baseuser.py:360 ipalib/plugins/host.py:523 +msgid "Class" +msgstr "" + +#: ipalib/plugins/baseuser.py:361 +msgid "" +"User category (semantics placed on this attribute are for local " +"interpretation)" +msgstr "" + +#: ipalib/plugins/baseuser.py:366 +msgid "RADIUS proxy configuration" +msgstr "" + +#: ipalib/plugins/baseuser.py:370 +msgid "RADIUS proxy username" +msgstr "" + +#: ipalib/plugins/baseuser.py:373 +msgid "Department Number" +msgstr "" + +#: ipalib/plugins/baseuser.py:376 +msgid "Employee Number" +msgstr "" + +#: ipalib/plugins/baseuser.py:379 +msgid "Employee Type" +msgstr "" + +#: ipalib/plugins/baseuser.py:382 +msgid "Preferred Language" +msgstr "" + +#: ipalib/plugins/baseuser.py:389 ipalib/plugins/cert.py:258 +#: ipalib/plugins/cert.py:566 ipalib/plugins/host.py:498 +#: ipalib/plugins/internal.py:354 ipalib/plugins/service.py:453 +msgid "Certificate" +msgstr "" + +#: ipalib/plugins/baseuser.py:390 ipalib/plugins/host.py:499 +#: ipalib/plugins/service.py:454 +msgid "Base-64 encoded server certificate" +msgstr "" + +#: ipalib/plugins/baseuser.py:409 ipalib/plugins/baseuser.py:413 +#, python-format +msgid "invalid e-mail format: %(email)s" +msgstr "" + +#: ipalib/plugins/baseuser.py:439 +#, python-format +msgid "manager %(manager)s not found" +msgstr "" + +#: ipalib/plugins/baseuser.py:491 ipalib/plugins/stageuser.py:300 +#: ipalib/plugins/stageuser.py:526 ipalib/plugins/user.py:442 +#, python-format +msgid "can be at most %(len)d characters" +msgstr "" + #: ipalib/plugins/batch.py:66 msgid "Nested Methods to execute" msgstr "" +#: ipalib/plugins/caacl.py:20 +msgid "" +"\n" +"Manage CA ACL rules.\n" +"\n" +"This plugin is used to define rules governing which principals are\n" +"permitted to have certificates issued using a given certificate\n" +"profile.\n" +"\n" +"PROFILE ID SYNTAX:\n" +"\n" +"A Profile ID is a string without spaces or punctuation starting with a " +"letter\n" +"and followed by a sequence of letters, digits or underscore (\"_\").\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a CA ACL \"test\" that grants all users access to the\n" +" \"UserCert\" profile:\n" +" ipa caacl-add test --usercat=all\n" +" ipa caacl-add-profile test --certprofiles UserCert\n" +"\n" +" Display the properties of a named CA ACL:\n" +" ipa caacl-show test\n" +"\n" +" Create a CA ACL to let user \"alice\" use the \"DNP3\" profile:\n" +" ipa caacl-add-profile alice_dnp3 --certprofiles DNP3\n" +" ipa caacl-add-user alice_dnp3 --user=alice\n" +"\n" +" Disable a CA ACL:\n" +" ipa caacl-disable test\n" +"\n" +" Remove a CA ACL:\n" +" ipa caacl-del test\n" +msgstr "" + +#: ipalib/plugins/caacl.py:135 ipalib/plugins/caacl.py:212 +msgid "CA ACL" +msgstr "" + +#: ipalib/plugins/caacl.py:136 ipalib/plugins/caacl.py:211 +msgid "CA ACLs" +msgstr "" + +#: ipalib/plugins/caacl.py:217 +msgid "ACL name" +msgstr "" + +#: ipalib/plugins/caacl.py:225 ipalib/plugins/hbacrule.py:236 +#: ipalib/plugins/internal.py:785 ipalib/plugins/selinuxusermap.py:230 +#: ipalib/plugins/sudorule.py:226 +msgid "Enabled" +msgstr "" + +#: ipalib/plugins/caacl.py:237 +msgid "Profile category" +msgstr "" + +#: ipalib/plugins/caacl.py:238 +msgid "Profile category the ACL applies to" +msgstr "" + +#: ipalib/plugins/caacl.py:243 ipalib/plugins/hbacrule.py:210 +#: ipalib/plugins/netgroup.py:206 ipalib/plugins/selinuxusermap.py:215 +#: ipalib/plugins/sudorule.py:231 +msgid "User category" +msgstr "" + +#: ipalib/plugins/caacl.py:244 +msgid "User category the ACL applies to" +msgstr "" + +#: ipalib/plugins/caacl.py:249 ipalib/plugins/hbacrule.py:216 +#: ipalib/plugins/netgroup.py:212 ipalib/plugins/selinuxusermap.py:221 +#: ipalib/plugins/sudorule.py:237 +msgid "Host category" +msgstr "" + +#: ipalib/plugins/caacl.py:250 +msgid "Host category the ACL applies to" +msgstr "" + +#: ipalib/plugins/caacl.py:255 ipalib/plugins/hbacrule.py:223 +msgid "Service category" +msgstr "" + +#: ipalib/plugins/caacl.py:256 +msgid "Service category the ACL applies to" +msgstr "" + +#: ipalib/plugins/caacl.py:265 +msgid "Profiles" +msgstr "" + +#: ipalib/plugins/caacl.py:273 ipalib/plugins/group.py:227 +#: ipalib/plugins/hbacrule.py:244 ipalib/plugins/internal.py:572 +#: ipalib/plugins/selinuxusermap.py:238 ipalib/plugins/sudorule.py:271 +msgid "User Groups" +msgstr "" + +#: ipalib/plugins/caacl.py:281 ipalib/plugins/hbacrule.py:252 +#: ipalib/plugins/hostgroup.py:141 ipalib/plugins/internal.py:566 +#: ipalib/plugins/selinuxusermap.py:246 ipalib/plugins/sudorule.py:284 +msgid "Host Groups" +msgstr "" + +#: ipalib/plugins/caacl.py:285 ipalib/plugins/hbacrule.py:258 +#: ipalib/plugins/internal.py:485 ipalib/plugins/service.py:440 +msgid "Services" +msgstr "" + +#: ipalib/plugins/caacl.py:293 +msgid "Create a new CA ACL." +msgstr "" + +#: ipalib/plugins/caacl.py:295 +#, python-format +msgid "Added CA ACL \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/caacl.py:305 +msgid "Delete a CA ACL." +msgstr "" + +#: ipalib/plugins/caacl.py:307 +#, python-format +msgid "Deleted CA ACL \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/caacl.py:312 +msgid "Modify a CA ACL." +msgstr "" + +#: ipalib/plugins/caacl.py:314 +#, python-format +msgid "Modified CA ACL \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/caacl.py:332 +msgid "" +"profile category cannot be set to 'all' while there are allowed profiles" +msgstr "" + +#: ipalib/plugins/caacl.py:336 ipalib/plugins/hbacrule.py:316 +#: ipalib/plugins/netgroup.py:279 +msgid "user category cannot be set to 'all' while there are allowed users" +msgstr "" + +#: ipalib/plugins/caacl.py:340 ipalib/plugins/hbacrule.py:318 +#: ipalib/plugins/netgroup.py:281 +msgid "host category cannot be set to 'all' while there are allowed hosts" +msgstr "" + +#: ipalib/plugins/caacl.py:344 ipalib/plugins/hbacrule.py:320 +msgid "" +"service category cannot be set to 'all' while there are allowed services" +msgstr "" + +#: ipalib/plugins/caacl.py:351 +msgid "Search for CA ACLs." +msgstr "" + +#: ipalib/plugins/caacl.py:354 +#, python-format +msgid "%(count)d CA ACL matched" +msgid_plural "%(count)d CA ACLs matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/caacl.py:360 +msgid "Display the properties of a CA ACL." +msgstr "" + +#: ipalib/plugins/caacl.py:365 +msgid "Enable a CA ACL." +msgstr "" + +#: ipalib/plugins/caacl.py:367 +#, python-format +msgid "Enabled CA ACL \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/caacl.py:394 +msgid "Disable a CA ACL." +msgstr "" + +#: ipalib/plugins/caacl.py:396 +#, python-format +msgid "Disabled CA ACL \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/caacl.py:423 +msgid "Add users and groups to a CA ACL." +msgstr "" + +#: ipalib/plugins/caacl.py:427 +#, python-format +msgid "%i user or group added." +msgstr "" + +#: ipalib/plugins/caacl.py:428 +#, python-format +msgid "%i users or groups added." +msgstr "" + +#: ipalib/plugins/caacl.py:439 ipalib/plugins/hbacrule.py:499 +#: ipalib/plugins/selinuxusermap.py:509 ipalib/plugins/sudorule.py:590 +msgid "users cannot be added when user category='all'" +msgstr "" + +#: ipalib/plugins/caacl.py:445 +msgid "Remove users and groups from a CA ACL." +msgstr "" + +#: ipalib/plugins/caacl.py:449 +#, python-format +msgid "%i user or group removed." +msgstr "" + +#: ipalib/plugins/caacl.py:450 +#, python-format +msgid "%i users or groups removed." +msgstr "" + +#: ipalib/plugins/caacl.py:455 +msgid "Add target hosts and hostgroups to a CA ACL." +msgstr "" + +#: ipalib/plugins/caacl.py:459 +#, python-format +msgid "%i host or hostgroup added." +msgstr "" + +#: ipalib/plugins/caacl.py:460 +#, python-format +msgid "%i hosts or hostgroups added." +msgstr "" + +#: ipalib/plugins/caacl.py:471 ipalib/plugins/hbacrule.py:530 +#: ipalib/plugins/selinuxusermap.py:542 ipalib/plugins/sudorule.py:644 +msgid "hosts cannot be added when host category='all'" +msgstr "" + +#: ipalib/plugins/caacl.py:477 +msgid "Remove target hosts and hostgroups from a CA ACL." +msgstr "" + +#: ipalib/plugins/caacl.py:481 +#, python-format +msgid "%i host or hostgroup removed." +msgstr "" + +#: ipalib/plugins/caacl.py:482 +#, python-format +msgid "%i hosts or hostgroups removed." +msgstr "" + +#: ipalib/plugins/caacl.py:487 +msgid "Add services to a CA ACL." +msgstr "" + +#: ipalib/plugins/caacl.py:490 +#, python-format +msgid "%i service added." +msgstr "" + +#: ipalib/plugins/caacl.py:490 +#, python-format +msgid "%i services added." +msgstr "" + +#: ipalib/plugins/caacl.py:501 ipalib/plugins/hbacrule.py:585 +msgid "services cannot be added when service category='all'" +msgstr "" + +#: ipalib/plugins/caacl.py:507 +msgid "Remove services from a CA ACL." +msgstr "" + +#: ipalib/plugins/caacl.py:510 +#, python-format +msgid "%i service removed." +msgstr "" + +#: ipalib/plugins/caacl.py:510 +#, python-format +msgid "%i services removed." +msgstr "" + +#: ipalib/plugins/caacl.py:515 +msgid "Failed profiles" +msgstr "" + +#: ipalib/plugins/caacl.py:526 +msgid "Add profiles to a CA ACL." +msgstr "" + +#: ipalib/plugins/caacl.py:531 +#, python-format +msgid "%i profile added." +msgstr "" + +#: ipalib/plugins/caacl.py:531 +#, python-format +msgid "%i profiles added." +msgstr "" + +#: ipalib/plugins/caacl.py:542 +msgid "profiles cannot be added when profile category='all'" +msgstr "" + +#: ipalib/plugins/caacl.py:548 +msgid "Remove profiles from a CA ACL." +msgstr "" + +#: ipalib/plugins/caacl.py:553 +#, python-format +msgid "%i profile removed." +msgstr "" + +#: ipalib/plugins/caacl.py:553 +#, python-format +msgid "%i profiles removed." +msgstr "" + #: ipalib/plugins/cert.py:47 msgid "" "\n" @@ -2244,274 +2850,425 @@ msgid "" "\n" msgstr "" -#: ipalib/plugins/cert.py:155 ipalib/plugins/cert.py:320 +#: ipalib/plugins/cert.py:157 ipalib/plugins/cert.py:366 #, python-format msgid "Failure decoding Certificate Signing Request: %s" msgstr "" -#: ipalib/plugins/cert.py:219 +#: ipalib/plugins/cert.py:221 ipalib/plugins/certprofile.py:65 +msgid "CA is not configured" +msgstr "" + +#: ipalib/plugins/cert.py:225 msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/cert.py:223 +#: ipalib/plugins/cert.py:229 msgid "CSR" msgstr "" -#: ipalib/plugins/cert.py:232 ipalib/plugins/service.py:371 +#: ipalib/plugins/cert.py:238 ipalib/plugins/service.py:446 msgid "Principal" msgstr "" -#: ipalib/plugins/cert.py:233 -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +#: ipalib/plugins/cert.py:239 +msgid "Principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -#: ipalib/plugins/cert.py:240 +#: ipalib/plugins/cert.py:246 msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:504 -#: ipalib/plugins/host.py:424 ipalib/plugins/internal.py:332 -#: ipalib/plugins/service.py:378 -msgid "Certificate" +#: ipalib/plugins/cert.py:251 ipalib/plugins/certprofile.py:102 +msgid "Profile ID" +msgstr "" + +#: ipalib/plugins/cert.py:252 +msgid "Certificate Profile to use" msgstr "" -#: ipalib/plugins/cert.py:251 ipalib/plugins/cert.py:507 -#: ipalib/plugins/cert.py:661 ipalib/plugins/cert.py:662 -#: ipalib/plugins/host.py:169 ipalib/plugins/internal.py:345 -#: ipalib/plugins/service.py:105 +#: ipalib/plugins/cert.py:261 ipalib/plugins/cert.py:569 +#: ipalib/plugins/cert.py:726 ipalib/plugins/cert.py:727 +#: ipalib/plugins/host.py:187 ipalib/plugins/internal.py:367 +#: ipalib/plugins/service.py:108 msgid "Subject" msgstr "" -#: ipalib/plugins/cert.py:254 ipalib/plugins/cert.py:510 -#: ipalib/plugins/host.py:178 ipalib/plugins/service.py:114 +#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:572 +#: ipalib/plugins/host.py:196 ipalib/plugins/service.py:117 msgid "Issuer" msgstr "" -#: ipalib/plugins/cert.py:257 ipalib/plugins/cert.py:513 -#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:117 +#: ipalib/plugins/cert.py:267 ipalib/plugins/cert.py:575 +#: ipalib/plugins/host.py:199 ipalib/plugins/service.py:120 msgid "Not Before" msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:516 -#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:120 +#: ipalib/plugins/cert.py:270 ipalib/plugins/cert.py:578 +#: ipalib/plugins/host.py:202 ipalib/plugins/service.py:123 msgid "Not After" msgstr "" -#: ipalib/plugins/cert.py:263 ipalib/plugins/cert.py:519 -#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:123 +#: ipalib/plugins/cert.py:273 ipalib/plugins/cert.py:581 +#: ipalib/plugins/host.py:205 ipalib/plugins/service.py:126 msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/cert.py:266 ipalib/plugins/cert.py:522 -#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:126 +#: ipalib/plugins/cert.py:276 ipalib/plugins/cert.py:584 +#: ipalib/plugins/host.py:208 ipalib/plugins/service.py:129 msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/cert.py:269 ipalib/plugins/cert.py:491 -#: ipalib/plugins/cert.py:735 +#: ipalib/plugins/cert.py:279 ipalib/plugins/cert.py:553 +#: ipalib/plugins/cert.py:800 msgid "Serial number" msgstr "" -#: ipalib/plugins/cert.py:272 ipalib/plugins/cert.py:528 -#: ipalib/plugins/cert.py:732 +#: ipalib/plugins/cert.py:282 ipalib/plugins/cert.py:590 +#: ipalib/plugins/cert.py:797 msgid "Serial number (hex)" msgstr "" -#: ipalib/plugins/cert.py:279 ipalib/plugins/misc.py:61 +#: ipalib/plugins/cert.py:289 ipalib/plugins/misc.py:61 msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/cert.py:332 -msgid "No hostname was found in subject of request." -msgstr "" - -#: ipalib/plugins/cert.py:337 +#: ipalib/plugins/cert.py:336 #, python-format msgid "" -"hostname in subject of request '%(subject_host)s' does not match principal " -"hostname '%(hostname)s'" +"Principal '%(principal)s' is not permitted to use CA '%(ca)s' with profile " +"'%(profile_id)s' for certificate issuance." msgstr "" -#: ipalib/plugins/cert.py:344 -#, python-format -msgid "extension %s is forbidden" +#: ipalib/plugins/cert.py:391 +msgid "The principal for this request doesn't exist." +msgstr "" + +#: ipalib/plugins/cert.py:399 +msgid "No Common Name was found in subject of request." msgstr "" -#: ipalib/plugins/cert.py:352 +#: ipalib/plugins/cert.py:404 #, python-format -msgid "subject alt name type %s is forbidden" +msgid "" +"hostname in subject of request '%(cn)s' does not match principal hostname " +"'%(hostname)s'" msgstr "" -#: ipalib/plugins/cert.py:366 -msgid "The service principal for this request doesn't exist." +#: ipalib/plugins/cert.py:413 +msgid "DN commonName does not match any of user's email addresses" msgstr "" -#: ipalib/plugins/cert.py:371 -msgid "You need to be a member of the serviceadmin role to add services" +#: ipalib/plugins/cert.py:423 +msgid "DN emailAddress does not match any of user's email addresses" msgstr "" -#: ipalib/plugins/cert.py:378 +#: ipalib/plugins/cert.py:430 +#, python-format +msgid "extension %s is forbidden" +msgstr "" + +#: ipalib/plugins/cert.py:434 #, python-format msgid "" "Insufficient 'write' privilege to the 'userCertificate' attribute of entry " "'%s'." msgstr "" -#: ipalib/plugins/cert.py:396 +#: ipalib/plugins/cert.py:452 +#, python-format +msgid "subject alt name type %s is forbidden for user principals" +msgstr "" + +#: ipalib/plugins/cert.py:459 #, python-format msgid "" "The service principal for subject alt name %s in certificate request does " "not exist" msgstr "" -#: ipalib/plugins/cert.py:402 +#: ipalib/plugins/cert.py:466 #, python-format msgid "" "Insufficient privilege to create a certificate with subject alt name '%s'." msgstr "" -#: ipalib/plugins/cert.py:408 +#: ipalib/plugins/cert.py:472 #, python-format -msgid "" -"Principal '%s' in subject alt name does not match requested service principal" +msgid "Principal '%s' in subject alt name does not match requested principal" +msgstr "" + +#: ipalib/plugins/cert.py:480 +msgid "RFC822Name does not match any of user's email addresses" +msgstr "" + +#: ipalib/plugins/cert.py:486 +#, python-format +msgid "subject alt name type %s is forbidden for non-user principals" msgstr "" -#: ipalib/plugins/cert.py:412 +#: ipalib/plugins/cert.py:491 #, python-format msgid "Subject alt name type %s is forbidden" msgstr "" -#: ipalib/plugins/cert.py:465 +#: ipalib/plugins/cert.py:526 msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/cert.py:469 +#: ipalib/plugins/cert.py:530 msgid "Request id" msgstr "" -#: ipalib/plugins/cert.py:475 +#: ipalib/plugins/cert.py:536 msgid "Request status" msgstr "" -#: ipalib/plugins/cert.py:492 +#: ipalib/plugins/cert.py:554 msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ipalib/plugins/cert.py:498 +#: ipalib/plugins/cert.py:560 msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/cert.py:525 ipalib/plugins/host.py:193 -#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:372 -#: ipalib/plugins/service.py:129 +#: ipalib/plugins/cert.py:587 ipalib/plugins/host.py:211 +#: ipalib/plugins/internal.py:364 ipalib/plugins/internal.py:394 +#: ipalib/plugins/service.py:132 msgid "Revocation reason" msgstr "" -#: ipalib/plugins/cert.py:534 +#: ipalib/plugins/cert.py:596 msgid "Output filename" msgstr "" -#: ipalib/plugins/cert.py:535 +#: ipalib/plugins/cert.py:597 msgid "File to store the certificate in." msgstr "" -#: ipalib/plugins/cert.py:586 +#: ipalib/plugins/cert.py:649 msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/cert.py:592 +#: ipalib/plugins/cert.py:655 msgid "Revoked" msgstr "" -#: ipalib/plugins/cert.py:600 ipalib/plugins/cert.py:666 +#: ipalib/plugins/cert.py:663 ipalib/plugins/cert.py:731 msgid "Reason" msgstr "" -#: ipalib/plugins/cert.py:601 ipalib/plugins/cert.py:667 +#: ipalib/plugins/cert.py:664 ipalib/plugins/cert.py:732 msgid "Reason for revoking the certificate (0-10)" msgstr "" -#: ipalib/plugins/cert.py:623 +#: ipalib/plugins/cert.py:687 msgid "7 is not a valid revocation reason" msgstr "" -#: ipalib/plugins/cert.py:633 +#: ipalib/plugins/cert.py:697 msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/cert.py:639 +#: ipalib/plugins/cert.py:703 msgid "Unrevoked" msgstr "" -#: ipalib/plugins/cert.py:642 ipalib/plugins/internal.py:261 +#: ipalib/plugins/cert.py:706 ipalib/plugins/internal.py:275 msgid "Error" msgstr "" -#: ipalib/plugins/cert.py:657 +#: ipalib/plugins/cert.py:722 msgid "Search for existing certificates." msgstr "" -#: ipalib/plugins/cert.py:673 +#: ipalib/plugins/cert.py:738 msgid "minimum serial number" msgstr "" -#: ipalib/plugins/cert.py:679 +#: ipalib/plugins/cert.py:744 msgid "maximum serial number" msgstr "" -#: ipalib/plugins/cert.py:685 +#: ipalib/plugins/cert.py:750 msgid "match the common name exactly" msgstr "" -#: ipalib/plugins/cert.py:689 +#: ipalib/plugins/cert.py:754 msgid "Valid not after from this date (YYYY-mm-dd)" msgstr "" -#: ipalib/plugins/cert.py:693 +#: ipalib/plugins/cert.py:758 msgid "Valid not after to this date (YYYY-mm-dd)" msgstr "" -#: ipalib/plugins/cert.py:697 +#: ipalib/plugins/cert.py:762 msgid "Valid not before from this date (YYYY-mm-dd)" msgstr "" -#: ipalib/plugins/cert.py:701 +#: ipalib/plugins/cert.py:766 msgid "Valid not before to this date (YYYY-mm-dd)" msgstr "" -#: ipalib/plugins/cert.py:705 +#: ipalib/plugins/cert.py:770 msgid "Issued on from this date (YYYY-mm-dd)" msgstr "" -#: ipalib/plugins/cert.py:709 +#: ipalib/plugins/cert.py:774 msgid "Issued on to this date (YYYY-mm-dd)" msgstr "" -#: ipalib/plugins/cert.py:713 +#: ipalib/plugins/cert.py:778 msgid "Revoked on from this date (YYYY-mm-dd)" msgstr "" -#: ipalib/plugins/cert.py:717 +#: ipalib/plugins/cert.py:782 msgid "Revoked on to this date (YYYY-mm-dd)" msgstr "" -#: ipalib/plugins/cert.py:722 +#: ipalib/plugins/cert.py:787 msgid "Maximum number of certs returned" msgstr "" -#: ipalib/plugins/cert.py:738 ipalib/plugins/internal.py:380 -#: ipalib/plugins/internal.py:489 ipalib/plugins/internal.py:576 -#: ipalib/plugins/internal.py:696 +#: ipalib/plugins/cert.py:803 ipalib/plugins/internal.py:402 +#: ipalib/plugins/internal.py:520 ipalib/plugins/internal.py:647 +#: ipalib/plugins/internal.py:786 msgid "Status" msgstr "" -#: ipalib/plugins/cert.py:743 +#: ipalib/plugins/cert.py:808 #, python-format msgid "%(count)d certificate matched" msgid_plural "%(count)d certificates matched" msgstr[0] "" msgstr[1] "" +#: ipalib/plugins/certprofile.py:20 +msgid "" +"\n" +"Manage Certificate Profiles\n" +"\n" +"Certificate Profiles are used by Certificate Authority (CA) in the signing " +"of\n" +"certificates to determine if a Certificate Signing Request (CSR) is " +"acceptable,\n" +"and if so what features and extensions will be present on the certificate.\n" +"\n" +"The Certificate Profile format is the property-list format understood by " +"the\n" +"Dogtag or Red Hat Certificate System CA.\n" +"\n" +"PROFILE ID SYNTAX:\n" +"\n" +"A Profile ID is a string without spaces or punctuation starting with a " +"letter\n" +"and followed by a sequence of letters, digits or underscore (\"_\").\n" +"\n" +"EXAMPLES:\n" +"\n" +" Import a profile that will not store issued certificates:\n" +" ipa certprofile-import ShortLivedUserCert \\\n" +" --file UserCert.profile --summary \"User Certificates\" \\\n" +" --store=false\n" +"\n" +" Delete a certificate profile:\n" +" ipa certprofile-del ShortLivedUserCert\n" +"\n" +" Show information about a profile:\n" +" ipa certprofile-show ShortLivedUserCert\n" +"\n" +" Search for profiles that do not store certificates:\n" +" ipa certprofile-find --store=false\n" +"\n" +msgstr "" + +#: ipalib/plugins/certprofile.py:74 +msgid "invalid Profile ID" +msgstr "" + +#: ipalib/plugins/certprofile.py:85 ipalib/plugins/certprofile.py:96 +msgid "Certificate Profile" +msgstr "" + +#: ipalib/plugins/certprofile.py:86 ipalib/plugins/certprofile.py:95 +msgid "Certificate Profiles" +msgstr "" + +#: ipalib/plugins/certprofile.py:103 +msgid "Profile ID for referring to this profile" +msgstr "" + +#: ipalib/plugins/certprofile.py:108 +msgid "Profile description" +msgstr "" + +#: ipalib/plugins/certprofile.py:109 +msgid "Brief description of this profile" +msgstr "" + +#: ipalib/plugins/certprofile.py:114 +msgid "Store issued certificates" +msgstr "" + +#: ipalib/plugins/certprofile.py:115 +msgid "Whether to store certs issued using this profile" +msgstr "" + +#: ipalib/plugins/certprofile.py:164 +msgid "Search for Certificate Profiles." +msgstr "" + +#: ipalib/plugins/certprofile.py:166 +#, python-format +msgid "%(count)d profile matched" +msgid_plural "%(count)d profiles matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/certprofile.py:176 +msgid "Display the properties of a Certificate Profile." +msgstr "" + +#: ipalib/plugins/certprofile.py:185 +msgid "Import a Certificate Profile." +msgstr "" + +#: ipalib/plugins/certprofile.py:186 +#, python-format +msgid "Imported profile \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/certprofile.py:189 +msgid "Filename" +msgstr "" + +#: ipalib/plugins/certprofile.py:203 +msgid "Profile ID is not present in profile data" +msgstr "" + +#: ipalib/plugins/certprofile.py:206 +#, python-format +msgid "Profile ID '%(cli_value)s' does not match profile data '%(file_value)s'" +msgstr "" + +#: ipalib/plugins/certprofile.py:232 +msgid "Delete a Certificate Profile." +msgstr "" + +#: ipalib/plugins/certprofile.py:233 +#, python-format +msgid "Deleted profile \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/certprofile.py:248 +msgid "Modify Certificate Profile configuration." +msgstr "" + +#: ipalib/plugins/certprofile.py:249 +#, python-format +msgid "Modified Certificate Profile \"%(value)s\"" +msgstr "" + #: ipalib/plugins/config.py:33 msgid "" "\n" @@ -2797,6 +3554,7 @@ msgid "Delegation" msgstr "" #: ipalib/plugins/delegation.py:81 ipalib/plugins/delegation.py:82 +#: ipalib/plugins/servicedelegation.py:161 msgid "Delegation name" msgstr "" @@ -2858,19 +3616,19 @@ msgstr[1] "" msgid "Display information about a delegation." msgstr "" -#: ipalib/plugins/dns.py:49 +#: ipalib/plugins/dns.py:56 msgid "" "\n" "Domain Name System (DNS)\n" msgstr "" -#: ipalib/plugins/dns.py:51 +#: ipalib/plugins/dns.py:58 msgid "" "\n" "Manage DNS zone and resource records.\n" msgstr "" -#: ipalib/plugins/dns.py:53 +#: ipalib/plugins/dns.py:60 msgid "" "\n" "SUPPORTED ZONE TYPES\n" @@ -2881,13 +3639,13 @@ msgid "" " (a set of DNS servers).\n" msgstr "" -#: ipalib/plugins/dns.py:59 +#: ipalib/plugins/dns.py:66 msgid "" "\n" "USING STRUCTURED PER-TYPE OPTIONS\n" msgstr "" -#: ipalib/plugins/dns.py:61 +#: ipalib/plugins/dns.py:68 msgid "" "\n" "There are many structured DNS RR types where DNS data stored in LDAP server\n" @@ -2897,7 +3655,7 @@ msgid "" "minutes, seconds of latitude and longitude, altitude or precision).\n" msgstr "" -#: ipalib/plugins/dns.py:67 +#: ipalib/plugins/dns.py:74 msgid "" "\n" "It may be difficult to manipulate such DNS records without making a mistake\n" @@ -2912,7 +3670,7 @@ msgid "" "--mx-preference and --mx-exchanger.\n" msgstr "" -#: ipalib/plugins/dns.py:75 +#: ipalib/plugins/dns.py:82 msgid "" "\n" "When adding a record, either RR specific options or standard option for a " @@ -2927,30 +3685,28 @@ msgid "" "ipa dnsrecord-mod --mx-rec=\"0 mx.example.com.\" --mx-preference=1\n" msgstr "" -#: ipalib/plugins/dns.py:84 +#: ipalib/plugins/dns.py:91 msgid "" "\n" "\n" "EXAMPLES:\n" msgstr "" -#: ipalib/plugins/dns.py:87 +#: ipalib/plugins/dns.py:94 msgid "" "\n" " Add new zone:\n" -" ipa dnszone-add example.com --name-server=ns \\\n" -" --admin-email=admin@example.com \\\n" -" --ip-address=192.0.2.1\n" +" ipa dnszone-add example.com --admin-email=admin@example.com\n" msgstr "" -#: ipalib/plugins/dns.py:92 +#: ipalib/plugins/dns.py:97 msgid "" "\n" " Add system permission that can be used for per-zone privilege delegation:\n" " ipa dnszone-add-permission example.com\n" msgstr "" -#: ipalib/plugins/dns.py:95 +#: ipalib/plugins/dns.py:100 msgid "" "\n" " Modify the zone to allow dynamic updates for hosts own records in realm " @@ -2958,7 +3714,7 @@ msgid "" " ipa dnszone-mod example.com --dynamic-update=TRUE\n" msgstr "" -#: ipalib/plugins/dns.py:98 +#: ipalib/plugins/dns.py:103 msgid "" "\n" " This is the equivalent of:\n" @@ -2967,43 +3723,42 @@ msgid "" "krb5-self * AAAA; grant EXAMPLE.COM krb5-self * SSHFP;\"\n" msgstr "" -#: ipalib/plugins/dns.py:102 +#: ipalib/plugins/dns.py:107 msgid "" "\n" " Modify the zone to allow zone transfers for local network only:\n" " ipa dnszone-mod example.com --allow-transfer=192.0.2.0/24\n" msgstr "" -#: ipalib/plugins/dns.py:105 +#: ipalib/plugins/dns.py:110 msgid "" "\n" " Add new reverse zone specified by network IP address:\n" -" ipa dnszone-add --name-from-ip=192.0.2.0/24 \\\n" -" --name-server=ns.example.com.\n" +" ipa dnszone-add --name-from-ip=192.0.2.0/24\n" msgstr "" -#: ipalib/plugins/dns.py:109 +#: ipalib/plugins/dns.py:113 msgid "" "\n" " Add second nameserver for example.com:\n" " ipa dnsrecord-add example.com @ --ns-rec=nameserver2.example.com\n" msgstr "" -#: ipalib/plugins/dns.py:112 +#: ipalib/plugins/dns.py:116 msgid "" "\n" " Add a mail server for example.com:\n" " ipa dnsrecord-add example.com @ --mx-rec=\"10 mail1\"\n" msgstr "" -#: ipalib/plugins/dns.py:115 +#: ipalib/plugins/dns.py:119 msgid "" "\n" " Add another record using MX record specific options:\n" " ipa dnsrecord-add example.com @ --mx-preference=20 --mx-exchanger=mail2\n" msgstr "" -#: ipalib/plugins/dns.py:118 +#: ipalib/plugins/dns.py:122 msgid "" "\n" " Add another record using interactive mode (started when dnsrecord-add, " @@ -3021,14 +3776,14 @@ msgid "" " NS record: nameserver.example.com., nameserver2.example.com.\n" msgstr "" -#: ipalib/plugins/dns.py:131 +#: ipalib/plugins/dns.py:135 msgid "" "\n" " Delete previously added nameserver from example.com:\n" " ipa dnsrecord-del example.com @ --ns-rec=nameserver2.example.com.\n" msgstr "" -#: ipalib/plugins/dns.py:134 +#: ipalib/plugins/dns.py:138 msgid "" "\n" " Add LOC record for example.com:\n" @@ -3036,7 +3791,7 @@ msgid "" "227.64m\"\n" msgstr "" -#: ipalib/plugins/dns.py:137 +#: ipalib/plugins/dns.py:141 msgid "" "\n" " Add new A record for www.example.com. Create a reverse record in " @@ -3047,14 +3802,14 @@ msgid "" " ipa dnsrecord-add example.com www --a-rec=192.0.2.2 --a-create-reverse\n" msgstr "" -#: ipalib/plugins/dns.py:142 +#: ipalib/plugins/dns.py:146 msgid "" "\n" " Add new PTR record for www.example.com\n" " ipa dnsrecord-add 2.0.192.in-addr.arpa. 2 --ptr-rec=www.example.com.\n" msgstr "" -#: ipalib/plugins/dns.py:145 +#: ipalib/plugins/dns.py:149 msgid "" "\n" " Add new SRV records for LDAP servers. Three quarters of the requests\n" @@ -3068,7 +3823,7 @@ msgid "" "example.com\"\n" msgstr "" -#: ipalib/plugins/dns.py:152 +#: ipalib/plugins/dns.py:156 msgid "" "\n" " The interactive mode can be used for easy modification:\n" @@ -3092,14 +3847,14 @@ msgid "" "389 slow.example.com\n" msgstr "" -#: ipalib/plugins/dns.py:169 +#: ipalib/plugins/dns.py:173 msgid "" "\n" " After this modification, three fifths of the requests should go to\n" " fast.example.com and two fifths to slow.example.com.\n" msgstr "" -#: ipalib/plugins/dns.py:172 +#: ipalib/plugins/dns.py:176 msgid "" "\n" " An example of the interactive mode for dnsrecord-del command:\n" @@ -3117,42 +3872,42 @@ msgid "" "deleted)\n" msgstr "" -#: ipalib/plugins/dns.py:185 +#: ipalib/plugins/dns.py:189 msgid "" "\n" " Show zone example.com:\n" " ipa dnszone-show example.com\n" msgstr "" -#: ipalib/plugins/dns.py:188 +#: ipalib/plugins/dns.py:192 msgid "" "\n" " Find zone with \"example\" in its domain name:\n" " ipa dnszone-find example\n" msgstr "" -#: ipalib/plugins/dns.py:191 +#: ipalib/plugins/dns.py:195 msgid "" "\n" " Find records for resources with \"www\" in their name in zone example.com:\n" " ipa dnsrecord-find example.com www\n" msgstr "" -#: ipalib/plugins/dns.py:194 +#: ipalib/plugins/dns.py:198 msgid "" "\n" " Find A records with value 192.0.2.2 in zone example.com\n" " ipa dnsrecord-find example.com --a-rec=192.0.2.2\n" msgstr "" -#: ipalib/plugins/dns.py:197 +#: ipalib/plugins/dns.py:201 msgid "" "\n" " Show records for resource www in zone example.com\n" " ipa dnsrecord-show example.com www\n" msgstr "" -#: ipalib/plugins/dns.py:200 +#: ipalib/plugins/dns.py:204 msgid "" "\n" " Delegate zone sub.example to another nameserver:\n" @@ -3160,14 +3915,14 @@ msgid "" " ipa dnsrecord-add example.com sub --ns-rec=ns.sub.example.com.\n" msgstr "" -#: ipalib/plugins/dns.py:204 +#: ipalib/plugins/dns.py:208 msgid "" "\n" " Delete zone example.com with all resource records:\n" " ipa dnszone-del example.com\n" msgstr "" -#: ipalib/plugins/dns.py:207 +#: ipalib/plugins/dns.py:211 msgid "" "\n" " If a global forwarder is configured, all queries for which this server is " @@ -3177,14 +3932,15 @@ msgid "" " Global forwarding configuration can be overridden per-zone.\n" msgstr "" -#: ipalib/plugins/dns.py:211 +#: ipalib/plugins/dns.py:215 msgid "" "\n" -" Semantics of forwarding in IPA matches BIND sematics and depends on type\n" -" of the zone:\n" +" Semantics of forwarding in IPA matches BIND semantics and depends on the " +"type\n" +" of zone:\n" " * Master zone: local BIND replies authoritatively to queries for data in\n" " the given zone (including authoritative NXDOMAIN answers) and forwarding\n" -" affects only queries for names bellow zone cuts (NS records) of locally\n" +" affects only queries for names below zone cuts (NS records) of locally\n" " served zones.\n" "\n" " * Forward zone: forward zone contains no authoritative data. BIND " @@ -3193,7 +3949,7 @@ msgid "" " forwarders.\n" msgstr "" -#: ipalib/plugins/dns.py:222 +#: ipalib/plugins/dns.py:226 msgid "" "\n" " Semantics of the --forwarder-policy option:\n" @@ -3204,14 +3960,14 @@ msgid "" " return failure.\n" msgstr "" -#: ipalib/plugins/dns.py:229 +#: ipalib/plugins/dns.py:233 msgid "" "\n" " Disable global forwarding for given sub-tree:\n" " ipa dnszone-mod example.com --forward-policy=none\n" msgstr "" -#: ipalib/plugins/dns.py:232 +#: ipalib/plugins/dns.py:236 msgid "" "\n" " This configuration forwards all queries for names outside the example.com\n" @@ -3220,7 +3976,7 @@ msgid "" "etc.).\n" msgstr "" -#: ipalib/plugins/dns.py:236 +#: ipalib/plugins/dns.py:240 msgid "" "\n" " Forward all requests for the zone external.example.com to another " @@ -3232,35 +3988,35 @@ msgid "" " --forwarder=203.0.113.1\n" msgstr "" -#: ipalib/plugins/dns.py:242 +#: ipalib/plugins/dns.py:246 msgid "" "\n" " Change forward-policy for external.example.com:\n" " ipa dnsforwardzone-mod external.example.com --forward-policy=only\n" msgstr "" -#: ipalib/plugins/dns.py:245 +#: ipalib/plugins/dns.py:249 msgid "" "\n" " Show forward zone external.example.com:\n" " ipa dnsforwardzone-show external.example.com\n" msgstr "" -#: ipalib/plugins/dns.py:248 +#: ipalib/plugins/dns.py:252 msgid "" "\n" " List all forward zones:\n" " ipa dnsforwardzone-find\n" msgstr "" -#: ipalib/plugins/dns.py:251 +#: ipalib/plugins/dns.py:255 msgid "" "\n" " Delete forward zone external.example.com:\n" " ipa dnsforwardzone-del external.example.com\n" msgstr "" -#: ipalib/plugins/dns.py:254 +#: ipalib/plugins/dns.py:258 msgid "" "\n" " Resolve a host name to see if it exists (will add default IPA domain\n" @@ -3269,14 +4025,14 @@ msgid "" " ipa dns-resolve www\n" msgstr "" -#: ipalib/plugins/dns.py:259 +#: ipalib/plugins/dns.py:263 msgid "" "\n" "\n" "GLOBAL DNS CONFIGURATION\n" msgstr "" -#: ipalib/plugins/dns.py:262 +#: ipalib/plugins/dns.py:266 msgid "" "\n" "DNS configuration passed to command line install script is stored in a " @@ -3287,269 +4043,273 @@ msgid "" "server:\n" msgstr "" -#: ipalib/plugins/dns.py:267 +#: ipalib/plugins/dns.py:271 msgid "" "\n" " Show global DNS configuration:\n" " ipa dnsconfig-show\n" msgstr "" -#: ipalib/plugins/dns.py:270 +#: ipalib/plugins/dns.py:274 msgid "" "\n" " Modify global DNS configuration and set a list of global forwarders:\n" " ipa dnsconfig-mod --forwarder=203.0.113.113\n" msgstr "" -#: ipalib/plugins/dns.py:309 +#: ipalib/plugins/dns.py:314 msgid "Permission value" msgstr "" -#: ipalib/plugins/dns.py:355 +#: ipalib/plugins/dns.py:360 #, python-format msgid "invalid IP address version (is %(value)d, must be %(required_value)d)!" msgstr "" -#: ipalib/plugins/dns.py:358 +#: ipalib/plugins/dns.py:363 msgid "invalid IP address format" msgstr "" -#: ipalib/plugins/dns.py:371 +#: ipalib/plugins/dns.py:376 msgid "invalid IP network format" msgstr "" -#: ipalib/plugins/dns.py:380 +#: ipalib/plugins/dns.py:385 msgid "each ACL element must be terminated with a semicolon" msgstr "" -#: ipalib/plugins/dns.py:397 +#: ipalib/plugins/dns.py:402 msgid "invalid address format" msgstr "" -#: ipalib/plugins/dns.py:447 +#: ipalib/plugins/dns.py:452 #, python-format msgid "%(port)s is not a valid port" msgstr "" -#: ipalib/plugins/dns.py:458 +#: ipalib/plugins/dns.py:463 msgid "" "expected format: <0-255> <0-255> <0-65535> even-" "length_hexadecimal_digits_or_hyphen" msgstr "" -#: ipalib/plugins/dns.py:467 +#: ipalib/plugins/dns.py:472 msgid "algorithm value: allowed interval 0-255" msgstr "" -#: ipalib/plugins/dns.py:470 +#: ipalib/plugins/dns.py:475 msgid "flags value: allowed interval 0-255" msgstr "" -#: ipalib/plugins/dns.py:473 +#: ipalib/plugins/dns.py:478 msgid "iterations value: allowed interval 0-65535" msgstr "" -#: ipalib/plugins/dns.py:481 +#: ipalib/plugins/dns.py:486 #, python-format msgid "salt value: %(err)s" msgstr "" -#: ipalib/plugins/dns.py:488 +#: ipalib/plugins/dns.py:493 msgid "invalid domain-name: not fully qualified" msgstr "" -#: ipalib/plugins/dns.py:543 +#: ipalib/plugins/dns.py:502 +msgid "should not be a wildcard domain name (RFC 4592 section 4)" +msgstr "" + +#: ipalib/plugins/dns.py:556 #, python-format msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/dns.py:558 +#: ipalib/plugins/dns.py:571 #, python-format msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/dns.py:572 +#: ipalib/plugins/dns.py:585 #, python-format msgid "IP address %(ip)s is already assigned in domain %(domain)s." msgstr "" -#: ipalib/plugins/dns.py:585 +#: ipalib/plugins/dns.py:598 #, python-format msgid "" "Reverse record for IP address %(ip)s already exists in reverse zone %(zone)s." msgstr "" -#: ipalib/plugins/dns.py:662 +#: ipalib/plugins/dns.py:675 #, python-format msgid "%s record" msgstr "" -#: ipalib/plugins/dns.py:664 +#: ipalib/plugins/dns.py:677 #, python-format msgid "Raw %s records" msgstr "" -#: ipalib/plugins/dns.py:665 +#: ipalib/plugins/dns.py:678 #, python-format msgid "%s Record" msgstr "" -#: ipalib/plugins/dns.py:666 +#: ipalib/plugins/dns.py:679 #, python-format msgid "(see RFC %s for details)" msgstr "" -#: ipalib/plugins/dns.py:731 +#: ipalib/plugins/dns.py:744 #, python-format msgid "'%s' is a required part of DNS record" msgstr "" -#: ipalib/plugins/dns.py:738 +#: ipalib/plugins/dns.py:751 msgid "Invalid number of parts!" msgstr "" -#: ipalib/plugins/dns.py:793 +#: ipalib/plugins/dns.py:806 #, python-format msgid "DNS RR type \"%s\" is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/dns.py:809 +#: ipalib/plugins/dns.py:822 #, python-format msgid "format must be specified as \"%(format)s\" %(rfcs)s" msgstr "" -#: ipalib/plugins/dns.py:933 +#: ipalib/plugins/dns.py:947 msgid "Create reverse" msgstr "" -#: ipalib/plugins/dns.py:934 +#: ipalib/plugins/dns.py:948 msgid "Create reverse record for this IP Address" msgstr "" -#: ipalib/plugins/dns.py:969 +#: ipalib/plugins/dns.py:983 #, python-format msgid "Cannot create reverse record for \"%(value)s\": %(exc)s" msgstr "" -#: ipalib/plugins/dns.py:978 ipalib/plugins/dns.py:1001 -#: ipalib/plugins/host.py:525 +#: ipalib/plugins/dns.py:1003 ipalib/plugins/dns.py:1026 +#: ipalib/plugins/host.py:603 msgid "IP Address" msgstr "" -#: ipalib/plugins/dns.py:987 ipalib/plugins/dns.py:1530 +#: ipalib/plugins/dns.py:1012 ipalib/plugins/dns.py:1546 msgid "Record data" msgstr "" -#: ipalib/plugins/dns.py:1010 +#: ipalib/plugins/dns.py:1035 msgid "Subtype" msgstr "" -#: ipalib/plugins/dns.py:1015 ipalib/plugins/dns.py:1053 -#: ipalib/plugins/dns.py:1292 ipalib/plugins/dns.py:1356 -#: ipalib/plugins/dns.py:3691 +#: ipalib/plugins/dns.py:1040 ipalib/plugins/dns.py:1077 +#: ipalib/plugins/dns.py:1312 ipalib/plugins/dns.py:1370 +#: ipalib/plugins/dns.py:4136 msgid "Hostname" msgstr "" -#: ipalib/plugins/dns.py:1029 +#: ipalib/plugins/dns.py:1053 msgid "Certificate Type" msgstr "" -#: ipalib/plugins/dns.py:1034 ipalib/plugins/dns.py:1082 +#: ipalib/plugins/dns.py:1058 ipalib/plugins/dns.py:1104 msgid "Key Tag" msgstr "" -#: ipalib/plugins/dns.py:1039 ipalib/plugins/dns.py:1087 -#: ipalib/plugins/dns.py:1419 ipalib/plugins/otptoken.py:198 +#: ipalib/plugins/dns.py:1063 ipalib/plugins/dns.py:1109 +#: ipalib/plugins/dns.py:1431 ipalib/plugins/otptoken.py:222 msgid "Algorithm" msgstr "" -#: ipalib/plugins/dns.py:1044 +#: ipalib/plugins/dns.py:1068 msgid "Certificate/CRL" msgstr "" -#: ipalib/plugins/dns.py:1054 +#: ipalib/plugins/dns.py:1078 msgid "A hostname which this alias hostname points to" msgstr "" -#: ipalib/plugins/dns.py:1068 ipalib/plugins/dns.py:1386 -#: ipalib/plugins/internal.py:523 +#: ipalib/plugins/dns.py:1091 ipalib/plugins/dns.py:1399 +#: ipalib/plugins/internal.py:594 msgid "Target" msgstr "" -#: ipalib/plugins/dns.py:1092 +#: ipalib/plugins/dns.py:1114 msgid "Digest Type" msgstr "" -#: ipalib/plugins/dns.py:1097 +#: ipalib/plugins/dns.py:1119 msgid "Digest" msgstr "" -#: ipalib/plugins/dns.py:1130 ipalib/plugins/dns.py:1275 -#: ipalib/plugins/dns.py:1330 +#: ipalib/plugins/dns.py:1150 ipalib/plugins/dns.py:1295 +#: ipalib/plugins/dns.py:1344 msgid "Preference" msgstr "" -#: ipalib/plugins/dns.py:1131 ipalib/plugins/dns.py:1276 +#: ipalib/plugins/dns.py:1151 ipalib/plugins/dns.py:1296 msgid "Preference given to this exchanger. Lower values are more preferred" msgstr "" -#: ipalib/plugins/dns.py:1136 ipalib/plugins/dns.py:1281 +#: ipalib/plugins/dns.py:1156 ipalib/plugins/dns.py:1301 msgid "Exchanger" msgstr "" -#: ipalib/plugins/dns.py:1137 +#: ipalib/plugins/dns.py:1157 msgid "A host willing to act as a key exchanger" msgstr "" -#: ipalib/plugins/dns.py:1146 +#: ipalib/plugins/dns.py:1166 msgid "Degrees Latitude" msgstr "" -#: ipalib/plugins/dns.py:1151 +#: ipalib/plugins/dns.py:1171 msgid "Minutes Latitude" msgstr "" -#: ipalib/plugins/dns.py:1156 +#: ipalib/plugins/dns.py:1176 msgid "Seconds Latitude" msgstr "" -#: ipalib/plugins/dns.py:1162 +#: ipalib/plugins/dns.py:1182 msgid "Direction Latitude" msgstr "" -#: ipalib/plugins/dns.py:1166 +#: ipalib/plugins/dns.py:1186 msgid "Degrees Longitude" msgstr "" -#: ipalib/plugins/dns.py:1171 +#: ipalib/plugins/dns.py:1191 msgid "Minutes Longitude" msgstr "" -#: ipalib/plugins/dns.py:1176 +#: ipalib/plugins/dns.py:1196 msgid "Seconds Longitude" msgstr "" -#: ipalib/plugins/dns.py:1182 +#: ipalib/plugins/dns.py:1202 msgid "Direction Longitude" msgstr "" -#: ipalib/plugins/dns.py:1186 +#: ipalib/plugins/dns.py:1206 msgid "Altitude" msgstr "" -#: ipalib/plugins/dns.py:1192 +#: ipalib/plugins/dns.py:1212 msgid "Size" msgstr "" -#: ipalib/plugins/dns.py:1198 +#: ipalib/plugins/dns.py:1218 msgid "Horizontal Precision" msgstr "" -#: ipalib/plugins/dns.py:1204 +#: ipalib/plugins/dns.py:1224 msgid "Vertical Precision" msgstr "" -#: ipalib/plugins/dns.py:1211 +#: ipalib/plugins/dns.py:1231 msgid "" "format must be specified as\n" " \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] " @@ -3564,571 +4324,566 @@ msgid "" " See RFC 1876 for details" msgstr "" -#: ipalib/plugins/dns.py:1265 +#: ipalib/plugins/dns.py:1285 #, python-format msgid "'%(required)s' must not be empty when '%(name)s' is set" msgstr "" -#: ipalib/plugins/dns.py:1282 +#: ipalib/plugins/dns.py:1302 msgid "A host willing to act as a mail exchanger" msgstr "" -#: ipalib/plugins/dns.py:1317 +#: ipalib/plugins/dns.py:1331 msgid "flags must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" -#: ipalib/plugins/dns.py:1325 +#: ipalib/plugins/dns.py:1339 msgid "Order" msgstr "" -#: ipalib/plugins/dns.py:1336 +#: ipalib/plugins/dns.py:1350 msgid "Flags" msgstr "" -#: ipalib/plugins/dns.py:1340 ipalib/plugins/hbactest.py:269 -#: ipalib/plugins/internal.py:575 ipalib/plugins/service.py:366 +#: ipalib/plugins/dns.py:1354 ipalib/plugins/hbactest.py:269 +#: ipalib/plugins/internal.py:646 ipalib/plugins/service.py:441 msgid "Service" msgstr "" -#: ipalib/plugins/dns.py:1343 +#: ipalib/plugins/dns.py:1357 msgid "Regular Expression" msgstr "" -#: ipalib/plugins/dns.py:1346 +#: ipalib/plugins/dns.py:1360 msgid "Replacement" msgstr "" -#: ipalib/plugins/dns.py:1357 +#: ipalib/plugins/dns.py:1371 msgid "The hostname this reverse record points to" msgstr "" -#: ipalib/plugins/dns.py:1371 ipalib/plugins/pwpolicy.py:346 +#: ipalib/plugins/dns.py:1384 ipalib/plugins/pwpolicy.py:351 msgid "Priority" msgstr "" -#: ipalib/plugins/dns.py:1376 +#: ipalib/plugins/dns.py:1389 msgid "Weight" msgstr "" -#: ipalib/plugins/dns.py:1381 +#: ipalib/plugins/dns.py:1394 msgid "Port" msgstr "" -#: ipalib/plugins/dns.py:1387 +#: ipalib/plugins/dns.py:1400 msgid "" "The domain name of the target host or '.' if the service is decidedly not " "available at this domain" msgstr "" -#: ipalib/plugins/dns.py:1396 +#: ipalib/plugins/dns.py:1409 msgid "the value does not follow \"YYYYMMDDHHMMSS\" time format" msgstr "" -#: ipalib/plugins/dns.py:1424 +#: ipalib/plugins/dns.py:1436 msgid "Fingerprint Type" msgstr "" -#: ipalib/plugins/dns.py:1429 +#: ipalib/plugins/dns.py:1441 msgid "Fingerprint" msgstr "" -#: ipalib/plugins/dns.py:1443 +#: ipalib/plugins/dns.py:1462 msgid "Certificate Usage" msgstr "" -#: ipalib/plugins/dns.py:1448 +#: ipalib/plugins/dns.py:1467 msgid "Selector" msgstr "" -#: ipalib/plugins/dns.py:1453 +#: ipalib/plugins/dns.py:1472 msgid "Matching Type" msgstr "" -#: ipalib/plugins/dns.py:1458 +#: ipalib/plugins/dns.py:1477 msgid "Certificate Association Data" msgstr "" -#: ipalib/plugins/dns.py:1476 +#: ipalib/plugins/dns.py:1493 msgid "Text Data" msgstr "" -#: ipalib/plugins/dns.py:1524 +#: ipalib/plugins/dns.py:1540 msgid "Records" msgstr "" -#: ipalib/plugins/dns.py:1527 +#: ipalib/plugins/dns.py:1543 msgid "Record type" msgstr "" -#: ipalib/plugins/dns.py:1562 +#: ipalib/plugins/dns.py:1578 #, python-format msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/dns.py:1581 +#: ipalib/plugins/dns.py:1597 msgid "Managedby permission" msgstr "" -#: ipalib/plugins/dns.py:1736 +#: ipalib/plugins/dns.py:1986 msgid "Zone name" msgstr "" -#: ipalib/plugins/dns.py:1737 +#: ipalib/plugins/dns.py:1987 msgid "Zone name (FQDN)" msgstr "" -#: ipalib/plugins/dns.py:1743 +#: ipalib/plugins/dns.py:1993 msgid "Reverse zone IP network" msgstr "" -#: ipalib/plugins/dns.py:1744 +#: ipalib/plugins/dns.py:1994 msgid "IP network to create reverse zone name from" msgstr "" -#: ipalib/plugins/dns.py:1749 +#: ipalib/plugins/dns.py:1999 msgid "Active zone" msgstr "" -#: ipalib/plugins/dns.py:1750 +#: ipalib/plugins/dns.py:2000 msgid "Is zone active?" msgstr "" -#: ipalib/plugins/dns.py:1757 +#: ipalib/plugins/dns.py:2007 msgid "Zone forwarders" msgstr "" -#: ipalib/plugins/dns.py:1758 +#: ipalib/plugins/dns.py:2008 msgid "" "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:1764 ipalib/plugins/dns.py:3760 +#: ipalib/plugins/dns.py:2014 ipalib/plugins/dns.py:4205 msgid "Forward policy" msgstr "" -#: ipalib/plugins/dns.py:1765 +#: ipalib/plugins/dns.py:2015 msgid "" "Per-zone conditional forwarding policy. Set to \"none\" to disable " "forwarding to global forwarder for this zone. In that case, conditional zone " "forwarders are disregarded." msgstr "" -#: ipalib/plugins/dns.py:1837 +#: ipalib/plugins/dns.py:2105 msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/dns.py:1848 +#: ipalib/plugins/dns.py:2116 msgid "Only one zone type is allowed per zone name" msgstr "" -#: ipalib/plugins/dns.py:1878 ipalib/plugins/dns.py:2488 +#: ipalib/plugins/dns.py:2151 ipalib/plugins/dns.py:2835 msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/dns.py:1965 +#: ipalib/plugins/dns.py:2248 #, python-format msgid "Added system permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:1992 +#: ipalib/plugins/dns.py:2276 #, python-format msgid "permission \"%(value)s\" already exists" msgstr "" -#: ipalib/plugins/dns.py:2020 +#: ipalib/plugins/dns.py:2304 #, python-format msgid "Removed system permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:2059 +#: ipalib/plugins/dns.py:2340 msgid "DNS zone" msgstr "" -#: ipalib/plugins/dns.py:2060 +#: ipalib/plugins/dns.py:2341 msgid "DNS zones" msgstr "" -#: ipalib/plugins/dns.py:2067 +#: ipalib/plugins/dns.py:2348 msgid "DNS Zones" msgstr "" -#: ipalib/plugins/dns.py:2068 +#: ipalib/plugins/dns.py:2349 msgid "DNS Zone" msgstr "" -#: ipalib/plugins/dns.py:2073 +#: ipalib/plugins/dns.py:2354 msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/dns.py:2074 +#: ipalib/plugins/dns.py:2355 msgid "Authoritative nameserver domain name" msgstr "" -#: ipalib/plugins/dns.py:2080 ipalib/plugins/dns.py:2081 +#: ipalib/plugins/dns.py:2361 ipalib/plugins/dns.py:2362 msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/dns.py:2088 +#: ipalib/plugins/dns.py:2369 msgid "SOA serial" msgstr "" -#: ipalib/plugins/dns.py:2089 +#: ipalib/plugins/dns.py:2370 msgid "SOA record serial number" msgstr "" -#: ipalib/plugins/dns.py:2097 +#: ipalib/plugins/dns.py:2378 msgid "SOA refresh" msgstr "" -#: ipalib/plugins/dns.py:2098 +#: ipalib/plugins/dns.py:2379 msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/dns.py:2106 +#: ipalib/plugins/dns.py:2387 msgid "SOA retry" msgstr "" -#: ipalib/plugins/dns.py:2107 +#: ipalib/plugins/dns.py:2388 msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/dns.py:2115 +#: ipalib/plugins/dns.py:2396 msgid "SOA expire" msgstr "" -#: ipalib/plugins/dns.py:2116 +#: ipalib/plugins/dns.py:2397 msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/dns.py:2124 +#: ipalib/plugins/dns.py:2405 msgid "SOA minimum" msgstr "" -#: ipalib/plugins/dns.py:2125 +#: ipalib/plugins/dns.py:2406 msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/dns.py:2133 ipalib/plugins/dns.py:2588 -#: ipalib/plugins/dns.py:2589 +#: ipalib/plugins/dns.py:2414 ipalib/plugins/dns.py:2949 +#: ipalib/plugins/dns.py:2950 msgid "Time to live" msgstr "" -#: ipalib/plugins/dns.py:2134 +#: ipalib/plugins/dns.py:2415 msgid "Time to live for records at zone apex" msgstr "" -#: ipalib/plugins/dns.py:2140 -msgid "SOA class" -msgstr "" - -#: ipalib/plugins/dns.py:2141 -msgid "SOA record class" -msgstr "" - -#: ipalib/plugins/dns.py:2146 ipalib/plugins/dns.py:2147 +#: ipalib/plugins/dns.py:2427 ipalib/plugins/dns.py:2428 msgid "BIND update policy" msgstr "" -#: ipalib/plugins/dns.py:2153 +#: ipalib/plugins/dns.py:2434 msgid "Dynamic update" msgstr "" -#: ipalib/plugins/dns.py:2154 +#: ipalib/plugins/dns.py:2435 msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/dns.py:2163 +#: ipalib/plugins/dns.py:2444 msgid "Allow query" msgstr "" -#: ipalib/plugins/dns.py:2164 +#: ipalib/plugins/dns.py:2445 msgid "" "Semicolon separated list of IP addresses or networks which are allowed to " "issue queries" msgstr "" -#: ipalib/plugins/dns.py:2172 +#: ipalib/plugins/dns.py:2453 msgid "Allow transfer" msgstr "" -#: ipalib/plugins/dns.py:2173 +#: ipalib/plugins/dns.py:2454 msgid "" "Semicolon separated list of IP addresses or networks which are allowed to " "transfer the zone" msgstr "" -#: ipalib/plugins/dns.py:2179 ipalib/plugins/dns.py:3767 +#: ipalib/plugins/dns.py:2460 ipalib/plugins/dns.py:4212 msgid "Allow PTR sync" msgstr "" -#: ipalib/plugins/dns.py:2180 +#: ipalib/plugins/dns.py:2461 msgid "" "Allow synchronization of forward (A, AAAA) and reverse (PTR) records in the " "zone" msgstr "" -#: ipalib/plugins/dns.py:2185 +#: ipalib/plugins/dns.py:2466 msgid "Allow in-line DNSSEC signing" msgstr "" -#: ipalib/plugins/dns.py:2186 +#: ipalib/plugins/dns.py:2467 msgid "Allow inline DNSSEC signing of records in the zone" msgstr "" -#: ipalib/plugins/dns.py:2191 +#: ipalib/plugins/dns.py:2472 msgid "NSEC3PARAM record" msgstr "" -#: ipalib/plugins/dns.py:2192 +#: ipalib/plugins/dns.py:2473 msgid "" "NSEC3PARAM record for zone in format: hash_algorithm flags iterations salt" msgstr "" -#: ipalib/plugins/dns.py:2292 -msgid "" -"Manual configuration needed, please visit 'http://www.freeipa.org/page/" -"Releases/4.0.0#Experimental_DNSSEC_Support'" +#: ipalib/plugins/dns.py:2626 +msgid "Visit 'http://www.freeipa.org/page/Releases/4.1.0#DNSSEC_Support'." msgstr "" -#: ipalib/plugins/dns.py:2299 +#: ipalib/plugins/dns.py:2631 msgid "" "If you encounter any problems please report them and restart 'named' service " "on affected IPA server." msgstr "" -#: ipalib/plugins/dns.py:2307 -msgid "Create new DNS zone (SOA record)." +#: ipalib/plugins/dns.py:2641 +msgid "setting Authoritative nameserver" msgstr "" -#: ipalib/plugins/dns.py:2311 ipalib/plugins/dns.py:2460 -#: ipalib/plugins/dns.py:3080 ipalib/plugins/host.py:517 -#: ipalib/plugins/permission.py:996 ipalib/plugins/realmdomains.py:124 -#: ipalib/plugins/service.py:419 -msgid "Force" +#: ipalib/plugins/dns.py:2642 +msgid "It is used only for setting the SOA MNAME attribute." msgstr "" -#: ipalib/plugins/dns.py:2312 -msgid "Force DNS zone creation even if nameserver is not resolvable." +#: ipalib/plugins/dns.py:2644 +msgid "NS record(s) can be edited in zone apex - '@'. " msgstr "" -#: ipalib/plugins/dns.py:2315 -msgid "Add forward record for nameserver located in the created zone" +#: ipalib/plugins/dns.py:2666 +msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:2316 ipalib/plugins/dns.py:2345 -msgid "Nameserver IP address" +#: ipalib/plugins/dns.py:2670 ipalib/plugins/dns.py:2797 +#: ipalib/plugins/dns.py:3504 ipalib/plugins/host.py:595 +#: ipalib/plugins/permission.py:1041 ipalib/plugins/realmdomains.py:124 +#: ipalib/plugins/service.py:497 +msgid "Force" msgstr "" -#: ipalib/plugins/dns.py:2360 -msgid "Nameserver address is not a domain name" +#: ipalib/plugins/dns.py:2671 +msgid "Force DNS zone creation even if nameserver is not resolvable." msgstr "" -#: ipalib/plugins/dns.py:2372 +#: ipalib/plugins/dns.py:2706 msgid "Nameserver for reverse zone cannot be a relative DNS name" msgstr "" -#: ipalib/plugins/dns.py:2376 -msgid "Nameserver DNS record is created for for forward zones only" -msgstr "" - -#: ipalib/plugins/dns.py:2381 -msgid "Nameserver DNS record is created only for nameservers in current zone" -msgstr "" - -#: ipalib/plugins/dns.py:2430 +#: ipalib/plugins/dns.py:2760 msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:2432 +#: ipalib/plugins/dns.py:2762 #, python-format msgid "Deleted DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:2456 +#: ipalib/plugins/dns.py:2793 msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:2461 +#: ipalib/plugins/dns.py:2798 msgid "Force nameserver change even if nameserver not in DNS" msgstr "" -#: ipalib/plugins/dns.py:2492 +#: ipalib/plugins/dns.py:2815 +msgid "is required" +msgstr "" + +#: ipalib/plugins/dns.py:2839 msgid "Forward zones only" msgstr "" -#: ipalib/plugins/dns.py:2494 +#: ipalib/plugins/dns.py:2841 msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/dns.py:2526 +#: ipalib/plugins/dns.py:2876 msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:2542 +#: ipalib/plugins/dns.py:2893 msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/dns.py:2543 +#: ipalib/plugins/dns.py:2894 #, python-format msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:2548 +#: ipalib/plugins/dns.py:2904 msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/dns.py:2549 +#: ipalib/plugins/dns.py:2905 #, python-format msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:2554 +#: ipalib/plugins/dns.py:2915 msgid "Add a permission for per-zone access delegation." msgstr "" -#: ipalib/plugins/dns.py:2559 +#: ipalib/plugins/dns.py:2920 msgid "Remove a permission for per-zone access delegation." msgstr "" -#: ipalib/plugins/dns.py:2569 +#: ipalib/plugins/dns.py:2930 msgid "DNS resource record" msgstr "" -#: ipalib/plugins/dns.py:2570 +#: ipalib/plugins/dns.py:2931 msgid "DNS resource records" msgstr "" -#: ipalib/plugins/dns.py:2576 +#: ipalib/plugins/dns.py:2937 msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/dns.py:2577 +#: ipalib/plugins/dns.py:2938 msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/dns.py:2582 ipalib/plugins/dns.py:2583 +#: ipalib/plugins/dns.py:2943 ipalib/plugins/dns.py:2944 msgid "Record name" msgstr "" -#: ipalib/plugins/dns.py:2593 ipalib/plugins/host.py:448 -#: ipalib/plugins/user.py:585 -msgid "Class" -msgstr "" - -#: ipalib/plugins/dns.py:2594 -msgid "DNS class" -msgstr "" - -#: ipalib/plugins/dns.py:2600 +#: ipalib/plugins/dns.py:2961 msgid "Structured" msgstr "" -#: ipalib/plugins/dns.py:2601 +#: ipalib/plugins/dns.py:2962 msgid "Parse all raw DNS records and return them in a structured way" msgstr "" -#: ipalib/plugins/dns.py:2619 +#: ipalib/plugins/dns.py:2971 +msgid "DS record must not be in zone apex (RFC 4035 section 2.4)" +msgstr "" + +#: ipalib/plugins/dns.py:2988 msgid "" "out-of-zone data: record name must be a subdomain of the zone or a relative " "name" msgstr "" -#: ipalib/plugins/dns.py:2646 +#: ipalib/plugins/dns.py:2999 +#, python-format +msgid "" +"owner of %(types)s records should not be a wildcard domain name (RFC 4592 " +"section 4)" +msgstr "" + +#: ipalib/plugins/dns.py:3028 #, 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:2661 +#: ipalib/plugins/dns.py:3043 #, python-format msgid "" "Reverse zone %(name)s requires exactly %(count)d IP address components, " "%(user_count)d given" msgstr "" -#: ipalib/plugins/dns.py:2702 +#: ipalib/plugins/dns.py:3084 msgid "only master zones can contain records" msgstr "" -#: ipalib/plugins/dns.py:2871 +#: ipalib/plugins/dns.py:3254 msgid "only one CNAME record is allowed per name (RFC 2136, section 1.1.5)" msgstr "" -#: ipalib/plugins/dns.py:2877 +#: ipalib/plugins/dns.py:3260 msgid "" "CNAME record is not allowed to coexist with any other record (RFC 1034, " "section 3.6.2)" msgstr "" -#: ipalib/plugins/dns.py:2889 +#: ipalib/plugins/dns.py:3268 msgid "only one DNAME record is allowed per name (RFC 6672, section 2.4)" msgstr "" -#: ipalib/plugins/dns.py:2894 +#: ipalib/plugins/dns.py:3284 +#, python-format msgid "" -"DNAME record is not allowed to coexist with an NS record except when located " -"in a zone root record (RFC 6672, section 2.3)" +"NS record is not allowed to coexist with an %(type)s record except when " +"located in a zone root record (RFC 2181, section 6.1)" msgstr "" -#: ipalib/plugins/dns.py:3074 +#: ipalib/plugins/dns.py:3300 +msgid "" +"DS record requires to coexist with an NS record (RFC 4592 section 4.6, RFC " +"4035 section 2.4)" +msgstr "" + +#: ipalib/plugins/dns.py:3498 msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:3082 +#: ipalib/plugins/dns.py:3506 msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -#: ipalib/plugins/dns.py:3129 +#: ipalib/plugins/dns.py:3553 msgid "Please choose a type of DNS resource record to be added" msgstr "" -#: ipalib/plugins/dns.py:3130 +#: ipalib/plugins/dns.py:3554 #, python-format msgid "The most common types for this type of zone are: %s\n" msgstr "" -#: ipalib/plugins/dns.py:3135 +#: ipalib/plugins/dns.py:3559 msgid "DNS resource record type" msgstr "" -#: ipalib/plugins/dns.py:3151 +#: ipalib/plugins/dns.py:3575 #, python-format msgid "Invalid or unsupported type. Allowed values are: %s" msgstr "" -#: ipalib/plugins/dns.py:3179 +#: ipalib/plugins/dns.py:3603 #, python-format msgid "Raw value of a DNS record was already set by \"%(name)s\" option" msgstr "" -#: ipalib/plugins/dns.py:3281 +#: ipalib/plugins/dns.py:3707 msgid "Modify a DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:3298 +#: ipalib/plugins/dns.py:3724 msgid "DNS zone root record cannot be renamed" msgstr "" -#: ipalib/plugins/dns.py:3316 +#: ipalib/plugins/dns.py:3742 msgid "DNS records can be only updated one at a time" msgstr "" -#: ipalib/plugins/dns.py:3407 +#: ipalib/plugins/dns.py:3845 msgid "No option to modify specific record provided." msgstr "" -#: ipalib/plugins/dns.py:3410 ipalib/plugins/dns.py:3596 +#: ipalib/plugins/dns.py:3848 ipalib/plugins/dns.py:4041 msgid "Current DNS record contents:\n" msgstr "" -#: ipalib/plugins/dns.py:3432 +#: ipalib/plugins/dns.py:3870 #, python-format msgid "Modify %(name)s '%(value)s'?" msgstr "" -#: ipalib/plugins/dns.py:3440 +#: ipalib/plugins/dns.py:3878 #, python-format msgid "" "%(count)d %(type)s record skipped. Only one value per DNS record type can be " @@ -4139,180 +4894,222 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/dns.py:3452 +#: ipalib/plugins/dns.py:3890 #, python-format msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:3459 +#: ipalib/plugins/dns.py:3897 msgid "Delete DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:3463 +#: ipalib/plugins/dns.py:3901 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:3469 +#: ipalib/plugins/dns.py:3907 msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/dns.py:3538 +#: ipalib/plugins/dns.py:3979 #, python-format msgid "Zone record '%s' cannot be deleted" msgstr "" -#: ipalib/plugins/dns.py:3588 +#: ipalib/plugins/dns.py:4033 msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/dns.py:3589 +#: ipalib/plugins/dns.py:4034 msgid "Delete all?" msgstr "" -#: ipalib/plugins/dns.py:3617 +#: ipalib/plugins/dns.py:4062 #, python-format msgid "Delete %(name)s '%(value)s'?" msgstr "" -#: ipalib/plugins/dns.py:3628 +#: ipalib/plugins/dns.py:4073 msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/dns.py:3645 +#: ipalib/plugins/dns.py:4090 msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/dns.py:3684 +#: ipalib/plugins/dns.py:4129 msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/dns.py:3687 +#: ipalib/plugins/dns.py:4132 #, python-format msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/dns.py:3704 +#: ipalib/plugins/dns.py:4149 #, python-format msgid "Host '%(host)s' not found" msgstr "" -#: ipalib/plugins/dns.py:3741 +#: ipalib/plugins/dns.py:4186 msgid "DNS configuration options" msgstr "" -#: ipalib/plugins/dns.py:3746 ipalib/plugins/dns.py:3747 +#: ipalib/plugins/dns.py:4191 ipalib/plugins/dns.py:4192 msgid "DNS Global Configuration" msgstr "" -#: ipalib/plugins/dns.py:3753 +#: ipalib/plugins/dns.py:4198 msgid "Global forwarders" msgstr "" -#: ipalib/plugins/dns.py:3754 +#: ipalib/plugins/dns.py:4199 msgid "" "Global forwarders. A custom port can be specified for each forwarder using a " "standard format \"IP_ADDRESS port PORT\"" msgstr "" -#: ipalib/plugins/dns.py:3761 +#: ipalib/plugins/dns.py:4206 msgid "" "Global forwarding policy. Set to \"none\" to disable any configured global " "forwarders." msgstr "" -#: ipalib/plugins/dns.py:3768 +#: ipalib/plugins/dns.py:4213 msgid "Allow synchronization of forward (A, AAAA) and reverse (PTR) records" msgstr "" -#: ipalib/plugins/dns.py:3772 +#: ipalib/plugins/dns.py:4217 msgid "Zone refresh interval" msgstr "" -#: ipalib/plugins/dns.py:3816 +#: ipalib/plugins/dns.py:4261 msgid "Global DNS configuration is empty" msgstr "" -#: ipalib/plugins/dns.py:3822 +#: ipalib/plugins/dns.py:4267 msgid "Modify global DNS configuration." msgstr "" -#: ipalib/plugins/dns.py:3833 +#: ipalib/plugins/dns.py:4275 ipalib/plugins/dns.py:4436 +#: ipalib/plugins/dns.py:4482 +msgid "Server will check DNS forwarder(s)." +msgstr "" + +#: ipalib/plugins/dns.py:4277 ipalib/plugins/dns.py:4438 +#: ipalib/plugins/dns.py:4484 +msgid "This may take some time, please wait ..." +msgstr "" + +#: ipalib/plugins/dns.py:4318 msgid "Show the current global DNS configuration." msgstr "" -#: ipalib/plugins/dns.py:3846 +#: ipalib/plugins/dns.py:4331 msgid "DNS forward zone" msgstr "" -#: ipalib/plugins/dns.py:3847 +#: ipalib/plugins/dns.py:4332 msgid "DNS forward zones" msgstr "" -#: ipalib/plugins/dns.py:3849 +#: ipalib/plugins/dns.py:4334 msgid "DNS Forward Zones" msgstr "" -#: ipalib/plugins/dns.py:3850 +#: ipalib/plugins/dns.py:4335 msgid "DNS Forward Zone" msgstr "" -#: ipalib/plugins/dns.py:3859 +#: ipalib/plugins/dns.py:4429 msgid "Create new DNS forward zone." msgstr "" -#: ipalib/plugins/dns.py:3873 ipalib/plugins/dns.py:3913 +#: ipalib/plugins/dns.py:4452 ipalib/plugins/dns.py:4510 msgid "Please specify forwarders." msgstr "" -#: ipalib/plugins/dns.py:3880 +#: ipalib/plugins/dns.py:4468 msgid "Delete DNS forward zone." msgstr "" -#: ipalib/plugins/dns.py:3882 +#: ipalib/plugins/dns.py:4470 #, python-format msgid "Deleted DNS forward zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:3887 +#: ipalib/plugins/dns.py:4475 msgid "Modify DNS forward zone." msgstr "" -#: ipalib/plugins/dns.py:3920 +#: ipalib/plugins/dns.py:4523 msgid "Search for DNS forward zones." msgstr "" -#: ipalib/plugins/dns.py:3925 +#: ipalib/plugins/dns.py:4528 msgid "Display information about a DNS forward zone." msgstr "" -#: ipalib/plugins/dns.py:3932 +#: ipalib/plugins/dns.py:4535 msgid "Disable DNS Forward Zone." msgstr "" -#: ipalib/plugins/dns.py:3933 +#: ipalib/plugins/dns.py:4536 #, python-format msgid "Disabled DNS forward zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:3938 +#: ipalib/plugins/dns.py:4541 msgid "Enable DNS Forward Zone." msgstr "" -#: ipalib/plugins/dns.py:3939 +#: ipalib/plugins/dns.py:4542 #, python-format msgid "Enabled DNS forward zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:3944 +#: ipalib/plugins/dns.py:4552 msgid "Add a permission for per-forward zone access delegation." msgstr "" -#: ipalib/plugins/dns.py:3949 +#: ipalib/plugins/dns.py:4557 msgid "Remove a permission for per-forward zone access delegation." msgstr "" +#: ipalib/plugins/domainlevel.py:18 +msgid "" +"\n" +"Raise the IPA Domain Level.\n" +msgstr "" + +#: ipalib/plugins/domainlevel.py:27 +msgid "Current domain level:" +msgstr "" + +#: ipalib/plugins/domainlevel.py:76 +msgid "Query current Domain Level." +msgstr "" + +#: ipalib/plugins/domainlevel.py:92 +msgid "Change current Domain Level." +msgstr "" + +#: ipalib/plugins/domainlevel.py:99 ipalib/plugins/internal.py:456 +#: ipalib/plugins/internal.py:457 +msgid "Domain Level" +msgstr "" + +#: ipalib/plugins/domainlevel.py:122 +msgid "Domain Level cannot be lowered." +msgstr "" + +#: ipalib/plugins/domainlevel.py:130 +#, python-brace-format +msgid "Domain Level cannot be raised to {0}, server {1} does not support it." +msgstr "" + #: ipalib/plugins/group.py:34 msgid "" "\n" @@ -4405,8 +5202,8 @@ msgid "" " ipa group-show ad_admins_external\n" msgstr "" -#: ipalib/plugins/group.py:125 ipalib/plugins/group.py:295 -#: ipalib/plugins/group.py:532 ipalib/plugins/user.py:204 +#: ipalib/plugins/group.py:125 ipalib/plugins/group.py:315 +#: ipalib/plugins/group.py:552 ipalib/plugins/user.py:115 msgid "group" msgstr "" @@ -4414,160 +5211,154 @@ msgstr "" msgid "groups" msgstr "" -#: ipalib/plugins/group.py:207 ipalib/plugins/hbacrule.py:244 -#: ipalib/plugins/internal.py:512 ipalib/plugins/selinuxusermap.py:238 -#: ipalib/plugins/sudorule.py:271 -msgid "User Groups" -msgstr "" - -#: ipalib/plugins/group.py:208 +#: ipalib/plugins/group.py:228 msgid "User Group" msgstr "" -#: ipalib/plugins/group.py:216 +#: ipalib/plugins/group.py:236 ipalib/plugins/idviews.py:770 msgid "Group name" msgstr "" -#: ipalib/plugins/group.py:223 ipalib/plugins/sudocmdgroup.py:123 +#: ipalib/plugins/group.py:243 ipalib/plugins/sudocmdgroup.py:123 msgid "Group description" msgstr "" -#: ipalib/plugins/group.py:227 ipalib/plugins/user.py:519 -msgid "GID" -msgstr "" - -#: ipalib/plugins/group.py:228 +#: ipalib/plugins/group.py:248 msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/group.py:236 +#: ipalib/plugins/group.py:256 msgid "External member" msgstr "" -#: ipalib/plugins/group.py:237 +#: ipalib/plugins/group.py:257 msgid "Members of a trusted domain in DOM\\name or name@domain form" msgstr "" -#: ipalib/plugins/group.py:245 +#: ipalib/plugins/group.py:265 msgid "Create a new group." msgstr "" -#: ipalib/plugins/group.py:247 +#: ipalib/plugins/group.py:267 #, python-format msgid "Added group \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:252 +#: ipalib/plugins/group.py:272 msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/group.py:257 +#: ipalib/plugins/group.py:277 msgid "Allow adding external non-IPA members from trusted domains" msgstr "" -#: ipalib/plugins/group.py:280 +#: ipalib/plugins/group.py:290 +msgid "gid cannot be set for external group" +msgstr "" + +#: ipalib/plugins/group.py:300 msgid "Delete group." msgstr "" -#: ipalib/plugins/group.py:282 +#: ipalib/plugins/group.py:302 #, python-format msgid "Deleted group \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:296 +#: ipalib/plugins/group.py:316 msgid "privileged group" msgstr "" -#: ipalib/plugins/group.py:313 +#: ipalib/plugins/group.py:333 msgid "Modify a group." msgstr "" -#: ipalib/plugins/group.py:315 +#: ipalib/plugins/group.py:335 #, python-format msgid "Modified group \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:320 +#: ipalib/plugins/group.py:340 msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/group.py:324 +#: ipalib/plugins/group.py:344 msgid "change to support external non-IPA members from trusted domains" msgstr "" -#: ipalib/plugins/group.py:384 +#: ipalib/plugins/group.py:404 msgid "Search for groups." msgstr "" -#: ipalib/plugins/group.py:389 +#: ipalib/plugins/group.py:409 #, python-format msgid "%(count)d group matched" msgid_plural "%(count)d groups matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/group.py:395 +#: ipalib/plugins/group.py:415 msgid "search for private groups" msgstr "" -#: ipalib/plugins/group.py:399 +#: ipalib/plugins/group.py:419 msgid "search for POSIX groups" msgstr "" -#: ipalib/plugins/group.py:403 +#: ipalib/plugins/group.py:423 msgid "" "search for groups with support of external non-IPA members from trusted " "domains" msgstr "" -#: ipalib/plugins/group.py:407 +#: ipalib/plugins/group.py:427 msgid "search for non-POSIX groups" msgstr "" -#: ipalib/plugins/group.py:453 +#: ipalib/plugins/group.py:473 msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/group.py:474 +#: ipalib/plugins/group.py:494 msgid "Add members to a group." msgstr "" -#: ipalib/plugins/group.py:483 ipalib/plugins/group.py:540 +#: ipalib/plugins/group.py:503 ipalib/plugins/group.py:560 #: ipalib/plugins/hbactest.py:386 msgid "" "Cannot perform external member validation without Samba 4 support installed. " "Make sure you have installed server-trust-ad sub-package of IPA on the server" msgstr "" -#: ipalib/plugins/group.py:488 ipalib/plugins/group.py:545 -#: ipalib/plugins/trust.py:561 ipalib/plugins/trust.py:1334 +#: ipalib/plugins/group.py:508 ipalib/plugins/group.py:565 +#: ipalib/plugins/trust.py:587 ipalib/plugins/trust.py:1362 msgid "" "Cannot perform join operation without own domain configured. Make sure you " "have run ipa-adtrust-install on the IPA server first" msgstr "" -#: ipalib/plugins/group.py:519 +#: ipalib/plugins/group.py:539 msgid "Remove members from a group." msgstr "" -#: ipalib/plugins/group.py:576 +#: ipalib/plugins/group.py:596 msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/group.py:579 +#: ipalib/plugins/group.py:599 #, python-format msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:600 +#: ipalib/plugins/group.py:620 msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/group.py:606 +#: ipalib/plugins/group.py:626 msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/group.py:625 +#: ipalib/plugins/group.py:645 msgid "Not a managed group" msgstr "" @@ -4659,50 +5450,20 @@ msgstr "" msgid "Rule type" msgstr "" -#: ipalib/plugins/hbacrule.py:210 ipalib/plugins/netgroup.py:196 -#: ipalib/plugins/selinuxusermap.py:215 ipalib/plugins/sudorule.py:231 -msgid "User category" -msgstr "" - -#: ipalib/plugins/hbacrule.py:211 ipalib/plugins/netgroup.py:197 +#: ipalib/plugins/hbacrule.py:211 ipalib/plugins/netgroup.py:207 #: ipalib/plugins/selinuxusermap.py:216 ipalib/plugins/sudorule.py:232 msgid "User category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:216 ipalib/plugins/netgroup.py:202 -#: ipalib/plugins/selinuxusermap.py:221 ipalib/plugins/sudorule.py:237 -msgid "Host category" -msgstr "" - -#: ipalib/plugins/hbacrule.py:217 ipalib/plugins/netgroup.py:203 +#: ipalib/plugins/hbacrule.py:217 ipalib/plugins/netgroup.py:213 #: ipalib/plugins/selinuxusermap.py:222 ipalib/plugins/sudorule.py:238 msgid "Host category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:223 -msgid "Service category" -msgstr "" - #: ipalib/plugins/hbacrule.py:224 msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:236 ipalib/plugins/internal.py:695 -#: ipalib/plugins/selinuxusermap.py:230 ipalib/plugins/sudorule.py:226 -msgid "Enabled" -msgstr "" - -#: ipalib/plugins/hbacrule.py:252 ipalib/plugins/hostgroup.py:129 -#: ipalib/plugins/internal.py:506 ipalib/plugins/selinuxusermap.py:246 -#: ipalib/plugins/sudorule.py:284 -msgid "Host Groups" -msgstr "" - -#: ipalib/plugins/hbacrule.py:258 ipalib/plugins/internal.py:454 -#: ipalib/plugins/service.py:365 -msgid "Services" -msgstr "" - #: ipalib/plugins/hbacrule.py:262 msgid "Service Groups" msgstr "" @@ -4734,19 +5495,6 @@ msgstr "" msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:316 ipalib/plugins/netgroup.py:269 -msgid "user category cannot be set to 'all' while there are allowed users" -msgstr "" - -#: ipalib/plugins/hbacrule.py:318 ipalib/plugins/netgroup.py:271 -msgid "host category cannot be set to 'all' while there are allowed hosts" -msgstr "" - -#: ipalib/plugins/hbacrule.py:320 -msgid "" -"service category cannot be set to 'all' while there are allowed services" -msgstr "" - #: ipalib/plugins/hbacrule.py:327 msgid "Search for HBAC rules." msgstr "" @@ -4788,11 +5536,6 @@ msgstr "" msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:499 ipalib/plugins/selinuxusermap.py:509 -#: ipalib/plugins/sudorule.py:590 -msgid "users cannot be added when user category='all'" -msgstr "" - #: ipalib/plugins/hbacrule.py:506 msgid "Remove users and groups from an HBAC rule." msgstr "" @@ -4801,11 +5544,6 @@ msgstr "" msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:530 ipalib/plugins/selinuxusermap.py:542 -#: ipalib/plugins/sudorule.py:644 -msgid "hosts cannot be added when host category='all'" -msgstr "" - #: ipalib/plugins/hbacrule.py:537 msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" @@ -4814,10 +5552,6 @@ msgstr "" msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:585 -msgid "services cannot be added when service category='all'" -msgstr "" - #: ipalib/plugins/hbacrule.py:592 msgid "Remove service and service groups from an HBAC rule." msgstr "" @@ -4867,7 +5601,7 @@ msgstr "" msgid "HBAC Service" msgstr "" -#: ipalib/plugins/hbacsvc.py:101 +#: ipalib/plugins/hbacsvc.py:101 ipalib/plugins/vault.py:149 msgid "Service name" msgstr "" @@ -5280,7 +6014,7 @@ msgstr "" msgid "Access granted: %s" msgstr "" -#: ipalib/plugins/host.py:49 +#: ipalib/plugins/host.py:50 msgid "" "\n" "Hosts/Machines\n" @@ -5292,7 +6026,7 @@ msgid "" "- every enrolled client generates a host entry\n" msgstr "" -#: ipalib/plugins/host.py:57 +#: ipalib/plugins/host.py:58 msgid "" "\n" "ENROLLMENT:\n" @@ -5308,7 +6042,7 @@ msgid "" "3. The host has been created with a one-time password.\n" msgstr "" -#: ipalib/plugins/host.py:69 +#: ipalib/plugins/host.py:70 msgid "" "\n" "RE-ENROLLMENT:\n" @@ -5323,7 +6057,7 @@ msgid "" "the OS that it runs, etc.\n" msgstr "" -#: ipalib/plugins/host.py:81 +#: ipalib/plugins/host.py:82 msgid "" "\n" " Add a new host:\n" @@ -5331,279 +6065,336 @@ msgid "" "com\n" msgstr "" -#: ipalib/plugins/host.py:84 +#: ipalib/plugins/host.py:85 msgid "" "\n" " Delete a host:\n" " ipa host-del test.example.com\n" msgstr "" -#: ipalib/plugins/host.py:87 +#: ipalib/plugins/host.py:88 msgid "" "\n" " Add a new host with a one-time password:\n" " ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" msgstr "" -#: ipalib/plugins/host.py:90 +#: ipalib/plugins/host.py:91 msgid "" "\n" " Add a new host with a random one-time password:\n" " ipa host-add --os='Fedora 12' --random test.example.com\n" msgstr "" -#: ipalib/plugins/host.py:93 +#: ipalib/plugins/host.py:94 msgid "" "\n" " Modify information about a host:\n" " ipa host-mod --os='Fedora 12' test.example.com\n" msgstr "" -#: ipalib/plugins/host.py:96 +#: ipalib/plugins/host.py:97 msgid "" "\n" " Remove SSH public keys of a host and update DNS to reflect this change:\n" " ipa host-mod --sshpubkey= --updatedns test.example.com\n" msgstr "" -#: ipalib/plugins/host.py:99 +#: ipalib/plugins/host.py:100 msgid "" "\n" " Disable the host Kerberos key, SSL certificate and all of its services:\n" " ipa host-disable test.example.com\n" msgstr "" -#: ipalib/plugins/host.py:102 +#: ipalib/plugins/host.py:103 msgid "" "\n" " Add a host that can manage this host's keytab and certificate:\n" " ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/host.py:160 ipalib/plugins/service.py:99 +#: ipalib/plugins/host.py:106 +msgid "" +"\n" +" Allow user to create a keytab:\n" +" ipa host-allow-create-keytab test2 --users=tuser1\n" +msgstr "" + +#: ipalib/plugins/host.py:178 ipalib/plugins/service.py:102 msgid "Keytab" msgstr "" -#: ipalib/plugins/host.py:172 ipalib/plugins/internal.py:377 -#: ipalib/plugins/service.py:108 +#: ipalib/plugins/host.py:190 ipalib/plugins/internal.py:399 +#: ipalib/plugins/service.py:111 msgid "Serial Number" msgstr "" -#: ipalib/plugins/host.py:175 ipalib/plugins/internal.py:378 -#: ipalib/plugins/service.py:111 +#: ipalib/plugins/host.py:193 ipalib/plugins/internal.py:400 +#: ipalib/plugins/service.py:114 msgid "Serial Number (hex)" msgstr "" -#: ipalib/plugins/host.py:196 +#: ipalib/plugins/host.py:214 msgid "Failed managedby" msgstr "" -#: ipalib/plugins/host.py:199 ipalib/plugins/user.py:95 -msgid "SSH public key fingerprint" +#: ipalib/plugins/host.py:220 ipalib/plugins/service.py:135 +msgid "Users allowed to retrieve keytab" +msgstr "" + +#: ipalib/plugins/host.py:223 ipalib/plugins/service.py:138 +msgid "Groups allowed to retrieve keytab" +msgstr "" + +#: ipalib/plugins/host.py:226 ipalib/plugins/service.py:141 +msgid "Hosts allowed to retrieve keytab" +msgstr "" + +#: ipalib/plugins/host.py:229 ipalib/plugins/service.py:144 +msgid "Host Groups allowed to retrieve keytab" +msgstr "" + +#: ipalib/plugins/host.py:232 ipalib/plugins/service.py:147 +msgid "Users allowed to create keytab" +msgstr "" + +#: ipalib/plugins/host.py:235 ipalib/plugins/service.py:150 +msgid "Groups allowed to create keytab" +msgstr "" + +#: ipalib/plugins/host.py:238 ipalib/plugins/service.py:153 +msgid "Hosts allowed to create keytab" +msgstr "" + +#: ipalib/plugins/host.py:241 ipalib/plugins/service.py:156 +msgid "Host Groups allowed to create keytab" msgstr "" -#: ipalib/plugins/host.py:224 +#: ipalib/plugins/host.py:244 ipalib/plugins/service.py:159 +msgid "Failed allowed to retrieve keytab" +msgstr "" + +#: ipalib/plugins/host.py:247 ipalib/plugins/service.py:162 +msgid "Failed allowed to create keytab" +msgstr "" + +#: ipalib/plugins/host.py:275 #, python-format msgid "invalid domain-name: %s" msgstr "" -#: ipalib/plugins/host.py:235 ipalib/plugins/sudorule.py:424 +#: ipalib/plugins/host.py:286 ipalib/plugins/sudorule.py:424 msgid "host" msgstr "" -#: ipalib/plugins/host.py:236 ipalib/plugins/sudorule.py:424 +#: ipalib/plugins/host.py:287 ipalib/plugins/idviews.py:335 +#: ipalib/plugins/idviews.py:378 ipalib/plugins/sudorule.py:424 msgid "hosts" msgstr "" -#: ipalib/plugins/host.py:374 ipalib/plugins/internal.py:505 -#: ipalib/plugins/internal.py:563 +#: ipalib/plugins/host.py:448 ipalib/plugins/internal.py:565 +#: ipalib/plugins/internal.py:634 msgid "Host" msgstr "" -#: ipalib/plugins/host.py:379 +#: ipalib/plugins/host.py:453 msgid "Host name" msgstr "" -#: ipalib/plugins/host.py:386 +#: ipalib/plugins/host.py:460 msgid "A description of this host" msgstr "" -#: ipalib/plugins/host.py:390 +#: ipalib/plugins/host.py:464 msgid "Locality" msgstr "" -#: ipalib/plugins/host.py:391 +#: ipalib/plugins/host.py:465 msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" -#: ipalib/plugins/host.py:396 +#: ipalib/plugins/host.py:470 msgid "Host location (e.g. \"Lab 2\")" msgstr "" -#: ipalib/plugins/host.py:400 +#: ipalib/plugins/host.py:474 msgid "Platform" msgstr "" -#: ipalib/plugins/host.py:401 +#: ipalib/plugins/host.py:475 msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "" -#: ipalib/plugins/host.py:405 +#: ipalib/plugins/host.py:479 msgid "Operating system" msgstr "" -#: ipalib/plugins/host.py:406 +#: ipalib/plugins/host.py:480 msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "" -#: ipalib/plugins/host.py:410 +#: ipalib/plugins/host.py:484 msgid "User password" msgstr "" -#: ipalib/plugins/host.py:411 +#: ipalib/plugins/host.py:485 msgid "Password used in bulk enrollment" msgstr "" -#: ipalib/plugins/host.py:414 +#: ipalib/plugins/host.py:488 msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/host.py:419 ipalib/plugins/user.py:509 -msgid "Random password" -msgstr "" - -#: ipalib/plugins/host.py:425 ipalib/plugins/service.py:379 -msgid "Base-64 encoded server certificate" -msgstr "" - -#: ipalib/plugins/host.py:428 ipalib/plugins/host.py:751 +#: ipalib/plugins/host.py:502 ipalib/plugins/host.py:828 msgid "Principal name" msgstr "" -#: ipalib/plugins/host.py:436 +#: ipalib/plugins/host.py:511 msgid "MAC address" msgstr "" -#: ipalib/plugins/host.py:437 +#: ipalib/plugins/host.py:512 msgid "Hardware MAC address(es) on this host" msgstr "" -#: ipalib/plugins/host.py:441 ipalib/plugins/user.py:571 -msgid "SSH public key" -msgstr "" - -#: ipalib/plugins/host.py:449 +#: ipalib/plugins/host.py:524 msgid "" "Host category (semantics placed on this attribute are for local " "interpretation)" msgstr "" -#: ipalib/plugins/host.py:510 +#: ipalib/plugins/host.py:528 ipalib/plugins/internal.py:547 +msgid "Assigned ID View" +msgstr "" + +#: ipalib/plugins/host.py:588 msgid "Add a new host." msgstr "" -#: ipalib/plugins/host.py:513 +#: ipalib/plugins/host.py:591 #, python-format msgid "Added host \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:518 +#: ipalib/plugins/host.py:596 msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/host.py:521 +#: ipalib/plugins/host.py:599 msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/host.py:524 +#: ipalib/plugins/host.py:602 msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:609 +#: ipalib/plugins/host.py:687 #, python-format msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/host.py:630 +#: ipalib/plugins/host.py:708 msgid "Delete a host." msgstr "" -#: ipalib/plugins/host.py:632 +#: ipalib/plugins/host.py:710 #, python-format msgid "Deleted host \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:637 +#: ipalib/plugins/host.py:715 msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/host.py:742 +#: ipalib/plugins/host.py:819 msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/host.py:745 +#: ipalib/plugins/host.py:822 #, python-format msgid "Modified host \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:752 +#: ipalib/plugins/host.py:829 msgid "Kerberos principal name for this host" msgstr "" -#: ipalib/plugins/host.py:756 +#: ipalib/plugins/host.py:833 msgid "Update DNS entries" msgstr "" -#: ipalib/plugins/host.py:769 +#: ipalib/plugins/host.py:848 msgid "Password cannot be set on enrolled host." msgstr "" -#: ipalib/plugins/host.py:773 +#: ipalib/plugins/host.py:852 msgid "cn is immutable" msgstr "" -#: ipalib/plugins/host.py:890 +#: ipalib/plugins/host.py:978 msgid "Search for hosts." msgstr "" -#: ipalib/plugins/host.py:894 +#: ipalib/plugins/host.py:982 #, python-format msgid "%(count)d host matched" msgid_plural "%(count)d hosts matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/host.py:975 +#: ipalib/plugins/host.py:1065 msgid "Display information about a host." msgstr "" -#: ipalib/plugins/host.py:980 ipalib/plugins/service.py:608 +#: ipalib/plugins/host.py:1070 ipalib/plugins/service.py:709 msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/host.py:1012 ipalib/plugins/service.py:628 +#: ipalib/plugins/host.py:1108 ipalib/plugins/service.py:734 #, python-format -msgid "Certificate stored in file '%(file)s'" +msgid "Certificate(s) stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/host.py:1023 +#: ipalib/plugins/host.py:1120 msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/host.py:1026 +#: ipalib/plugins/host.py:1123 #, python-format msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:1120 +#: ipalib/plugins/host.py:1217 msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/host.py:1135 ipalib/plugins/otptoken.py:390 +#: ipalib/plugins/host.py:1231 ipalib/plugins/otptoken.py:470 msgid "Remove hosts that can manage this host." msgstr "" -#: ipalib/plugins/hostgroup.py:27 +#: ipalib/plugins/host.py:1244 +msgid "" +"Allow users, groups, hosts or host groups to retrieve a keytab of this host." +msgstr "" + +#: ipalib/plugins/host.py:1263 +msgid "" +"Disallow users, groups, hosts or host groups to retrieve a keytab of this " +"host." +msgstr "" + +#: ipalib/plugins/host.py:1281 +msgid "" +"Allow users, groups, hosts or host groups to create a keytab of this host." +msgstr "" + +#: ipalib/plugins/host.py:1300 +msgid "" +"Disallow users, groups, hosts or host groups to create a keytab of this host." +msgstr "" + +#: ipalib/plugins/hostgroup.py:30 msgid "" "\n" "Groups of hosts.\n" @@ -5635,84 +6426,84 @@ msgid "" " ipa hostgroup-del baltimore\n" msgstr "" -#: ipalib/plugins/hostgroup.py:65 +#: ipalib/plugins/hostgroup.py:77 msgid "host group" msgstr "" -#: ipalib/plugins/hostgroup.py:66 +#: ipalib/plugins/hostgroup.py:78 msgid "host groups" msgstr "" -#: ipalib/plugins/hostgroup.py:130 +#: ipalib/plugins/hostgroup.py:142 msgid "Host Group" msgstr "" -#: ipalib/plugins/hostgroup.py:137 +#: ipalib/plugins/hostgroup.py:149 msgid "Host-group" msgstr "" -#: ipalib/plugins/hostgroup.py:138 +#: ipalib/plugins/hostgroup.py:150 msgid "Name of host-group" msgstr "" -#: ipalib/plugins/hostgroup.py:145 +#: ipalib/plugins/hostgroup.py:157 msgid "A description of this host-group" msgstr "" -#: ipalib/plugins/hostgroup.py:172 +#: ipalib/plugins/hostgroup.py:183 msgid "Add a new hostgroup." msgstr "" -#: ipalib/plugins/hostgroup.py:174 +#: ipalib/plugins/hostgroup.py:185 #, python-format msgid "Added hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/hostgroup.py:190 +#: ipalib/plugins/hostgroup.py:201 #, python-format msgid "" "netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " "common namespace" msgstr "" -#: ipalib/plugins/hostgroup.py:213 +#: ipalib/plugins/hostgroup.py:222 msgid "Delete a hostgroup." msgstr "" -#: ipalib/plugins/hostgroup.py:215 +#: ipalib/plugins/hostgroup.py:224 #, python-format msgid "Deleted hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/hostgroup.py:221 +#: ipalib/plugins/hostgroup.py:229 msgid "Modify a hostgroup." msgstr "" -#: ipalib/plugins/hostgroup.py:223 +#: ipalib/plugins/hostgroup.py:231 #, python-format msgid "Modified hostgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/hostgroup.py:234 +#: ipalib/plugins/hostgroup.py:241 msgid "Search for hostgroups." msgstr "" -#: ipalib/plugins/hostgroup.py:238 +#: ipalib/plugins/hostgroup.py:245 #, python-format msgid "%(count)d hostgroup matched" msgid_plural "%(count)d hostgroups matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/hostgroup.py:252 +#: ipalib/plugins/hostgroup.py:258 msgid "Display information about a hostgroup." msgstr "" -#: ipalib/plugins/hostgroup.py:263 +#: ipalib/plugins/hostgroup.py:268 msgid "Add members to a hostgroup." msgstr "" -#: ipalib/plugins/hostgroup.py:274 +#: ipalib/plugins/hostgroup.py:278 msgid "Remove members from a hostgroup." msgstr "" @@ -5872,87 +6663,79 @@ msgstr "" msgid "ID Range" msgstr "" -#: ipalib/plugins/idrange.py:189 -msgid "local domain range" -msgstr "" - #: ipalib/plugins/idrange.py:190 -msgid "Active Directory winsync range" +msgid "local domain range" msgstr "" -#: ipalib/plugins/idrange.py:191 ipalib/plugins/trust.py:425 +#: ipalib/plugins/idrange.py:192 ipalib/plugins/trust.py:425 msgid "Active Directory domain range" msgstr "" -#: ipalib/plugins/idrange.py:192 ipalib/plugins/trust.py:426 +#: ipalib/plugins/idrange.py:193 ipalib/plugins/trust.py:426 msgid "Active Directory trust range with POSIX attributes" msgstr "" -#: ipalib/plugins/idrange.py:194 -msgid "IPA trust range" -msgstr "" - -#: ipalib/plugins/idrange.py:200 +#: ipalib/plugins/idrange.py:201 msgid "Range name" msgstr "" -#: ipalib/plugins/idrange.py:205 +#: ipalib/plugins/idrange.py:206 msgid "First Posix ID of the range" msgstr "" -#: ipalib/plugins/idrange.py:209 +#: ipalib/plugins/idrange.py:210 msgid "Number of IDs in the range" msgstr "" -#: ipalib/plugins/idrange.py:213 +#: ipalib/plugins/idrange.py:214 msgid "First RID of the corresponding RID range" msgstr "" -#: ipalib/plugins/idrange.py:217 +#: ipalib/plugins/idrange.py:218 msgid "First RID of the secondary RID range" msgstr "" -#: ipalib/plugins/idrange.py:222 +#: ipalib/plugins/idrange.py:223 msgid "Domain SID of the trusted domain" msgstr "" -#: ipalib/plugins/idrange.py:227 +#: ipalib/plugins/idrange.py:228 msgid "Name of the trusted domain" msgstr "" -#: ipalib/plugins/idrange.py:230 ipalib/plugins/internal.py:538 +#: ipalib/plugins/idrange.py:231 ipalib/plugins/internal.py:609 #: ipalib/plugins/trust.py:459 msgid "Range type" msgstr "" -#: ipalib/plugins/idrange.py:232 +#: ipalib/plugins/idrange.py:233 #, python-brace-format msgid "ID range type, one of {vals}" msgstr "" -#: ipalib/plugins/idrange.py:300 +#: ipalib/plugins/idrange.py:308 msgid "" "range modification leaving objects with ID out of the defined range is not " "allowed" msgstr "" -#: ipalib/plugins/idrange.py:305 +#: ipalib/plugins/idrange.py:313 msgid "" "Cannot perform SID validation without Samba 4 support installed. Make sure " "you have installed server-trust-ad sub-package of IPA on the server" msgstr "" -#: ipalib/plugins/idrange.py:312 +#: ipalib/plugins/idrange.py:320 msgid "" "Cross-realm trusts are not configured. Make sure you have run ipa-adtrust-" "install on the IPA server first" msgstr "" -#: ipalib/plugins/idrange.py:324 +#: ipalib/plugins/idrange.py:332 msgid "SID is not recognized as a valid SID for a trusted domain" msgstr "" -#: ipalib/plugins/idrange.py:361 +#: ipalib/plugins/idrange.py:369 msgid "" "\n" " Add new ID range.\n" @@ -5992,96 +6775,464 @@ msgid "" " " msgstr "" -#: ipalib/plugins/idrange.py:393 +#: ipalib/plugins/idrange.py:401 #, python-format msgid "Added ID range \"%(value)s\"" msgstr "" -#: ipalib/plugins/idrange.py:466 ipalib/plugins/idrange.py:680 +#: ipalib/plugins/idrange.py:475 ipalib/plugins/idrange.py:702 msgid "Options dom-sid and dom-name cannot be used together" msgstr "" -#: ipalib/plugins/idrange.py:476 ipalib/plugins/idrange.py:692 +#: ipalib/plugins/idrange.py:485 ipalib/plugins/idrange.py:714 msgid "" "SID for the specified trusted domain name could not be found. Please specify " "the SID directly using dom-sid option." msgstr "" -#: ipalib/plugins/idrange.py:491 -msgid "" -"IPA Range type must be one of ipa-ad-trust or ipa-ad-trust-posix when SID of " -"the trusted domain is specified." +#: ipalib/plugins/idrange.py:501 +msgid "Options dom-sid/dom-name and rid-base must be used together" msgstr "" -#: ipalib/plugins/idrange.py:497 -msgid "Options dom-sid/dom-name and secondary-rid-base cannot be used together" +#: ipalib/plugins/idrange.py:508 ipalib/plugins/idrange.py:737 +msgid "" +"Option rid-base must not be used when IPA range type is ipa-ad-trust-posix" msgstr "" -#: ipalib/plugins/idrange.py:502 -msgid "Options dom-sid/dom-name and rid-base must be used together" +#: ipalib/plugins/idrange.py:515 +msgid "" +"IPA Range type must be one of ipa-ad-trust or ipa-ad-trust-posix when SID of " +"the trusted domain is specified" msgstr "" #: ipalib/plugins/idrange.py:521 +msgid "Options dom-sid/dom-name and secondary-rid-base cannot be used together" +msgstr "" + +#: ipalib/plugins/idrange.py:540 msgid "" "IPA Range type must not be one of ipa-ad-trust or ipa-ad-trust-posix when " "SID of the trusted domain is not specified." msgstr "" -#: ipalib/plugins/idrange.py:528 ipalib/plugins/idrange.py:722 +#: ipalib/plugins/idrange.py:547 ipalib/plugins/idrange.py:756 msgid "Options secondary-rid-base and rid-base must be used together" msgstr "" -#: ipalib/plugins/idrange.py:538 ipalib/plugins/idrange.py:745 +#: ipalib/plugins/idrange.py:557 ipalib/plugins/idrange.py:779 msgid "Primary RID range and secondary RID range cannot overlap" msgstr "" -#: ipalib/plugins/idrange.py:550 +#: ipalib/plugins/idrange.py:569 msgid "" "You must specify both rid-base and secondary-rid-base options, because ipa-" "adtrust-install has already been run." msgstr "" -#: ipalib/plugins/idrange.py:566 +#: ipalib/plugins/idrange.py:586 msgid "Delete an ID range." msgstr "" -#: ipalib/plugins/idrange.py:568 +#: ipalib/plugins/idrange.py:588 #, python-format msgid "Deleted ID range \"%(value)s\"" msgstr "" -#: ipalib/plugins/idrange.py:614 +#: ipalib/plugins/idrange.py:634 msgid "Search for ranges." msgstr "" -#: ipalib/plugins/idrange.py:617 +#: ipalib/plugins/idrange.py:637 #, python-format msgid "%(count)d range matched" msgid_plural "%(count)d ranges matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/idrange.py:636 +#: ipalib/plugins/idrange.py:657 msgid "Display information about a range." msgstr "" -#: ipalib/plugins/idrange.py:651 +#: ipalib/plugins/idrange.py:673 msgid "Modify ID range." msgstr "" -#: ipalib/plugins/idrange.py:653 +#: ipalib/plugins/idrange.py:675 #, python-format msgid "Modified ID range \"%(value)s\"" msgstr "" -#: ipalib/plugins/idrange.py:699 +#: ipalib/plugins/idrange.py:721 msgid "Options dom-sid and secondary-rid-base cannot be used together" msgstr "" -#: ipalib/plugins/idrange.py:704 +#: ipalib/plugins/idrange.py:728 msgid "Options dom-sid and rid-base must be used together" msgstr "" +#: ipalib/plugins/idviews.py:40 +msgid "" +"\n" +"ID Views\n" +"Manage ID Views\n" +"IPA allows to override certain properties of users and groups per each " +"host.\n" +"This functionality is primarily used to allow migration from older systems " +"or\n" +"other Identity Management solutions.\n" +msgstr "" + +#: ipalib/plugins/idviews.py:51 ipalib/plugins/idviews.py:65 +#: ipalib/plugins/idviews.py:72 ipalib/plugins/idviews.py:248 +#: ipalib/plugins/idviews.py:593 +msgid "ID View" +msgstr "" + +#: ipalib/plugins/idviews.py:53 +msgid "system ID View" +msgstr "" + +#: ipalib/plugins/idviews.py:66 ipalib/plugins/idviews.py:71 +msgid "ID Views" +msgstr "" + +#: ipalib/plugins/idviews.py:77 +msgid "ID View Name" +msgstr "" + +#: ipalib/plugins/idviews.py:100 +msgid "Add a new ID View." +msgstr "" + +#: ipalib/plugins/idviews.py:101 +#, python-format +msgid "Added ID View \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/idviews.py:106 +msgid "Delete an ID View." +msgstr "" + +#: ipalib/plugins/idviews.py:107 +#, python-format +msgid "Deleted ID View \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/idviews.py:119 +msgid "Modify an ID View." +msgstr "" + +#: ipalib/plugins/idviews.py:120 +#, python-format +msgid "Modified an ID View \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/idviews.py:132 +msgid "Search for an ID View." +msgstr "" + +#: ipalib/plugins/idviews.py:133 +#, python-format +msgid "%(count)d ID View matched" +msgid_plural "%(count)d ID Views matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/idviews.py:139 +msgid "Display information about an ID View." +msgstr "" + +#: ipalib/plugins/idviews.py:144 +msgid "Enumerate all the hosts the view applies to." +msgstr "" + +#: ipalib/plugins/idviews.py:150 +msgid "User object overrides" +msgstr "" + +#: ipalib/plugins/idviews.py:153 +msgid "Group object overrides" +msgstr "" + +#: ipalib/plugins/idviews.py:156 +msgid "Hosts the view applies to" +msgstr "" + +#: ipalib/plugins/idviews.py:249 +msgid "Default Trust View cannot be applied on hosts" +msgstr "" + +#: ipalib/plugins/idviews.py:272 ipalib/plugins/idviews.py:295 +msgid "not found" +msgstr "" + +#: ipalib/plugins/idviews.py:293 +msgid "ID View already applied" +msgstr "" + +#: ipalib/plugins/idviews.py:313 +msgid "value" +msgstr "" + +#: ipalib/plugins/idviews.py:322 +msgid "" +"Applies ID View to specified hosts or current members of specified " +"hostgroups. If any other ID View is applied to the host, it is overriden." +msgstr "" + +#: ipalib/plugins/idviews.py:326 +#, python-format +msgid "ID View applied to %i host." +msgstr "" + +#: ipalib/plugins/idviews.py:327 +#, python-format +msgid "ID View applied to %i hosts." +msgstr "" + +#: ipalib/plugins/idviews.py:334 +msgid "Hosts to apply the ID View to" +msgstr "" + +#: ipalib/plugins/idviews.py:339 +msgid "" +"Hostgroups to whose hosts apply the ID View to. Please note that view is not " +"applied automatically to any hosts added to the hostgroup after running the " +"idview-apply command." +msgstr "" + +#: ipalib/plugins/idviews.py:342 ipalib/plugins/idviews.py:385 +msgid "hostgroups" +msgstr "" + +#: ipalib/plugins/idviews.py:350 +msgid "Hosts that this ID View was applied to." +msgstr "" + +#: ipalib/plugins/idviews.py:354 +msgid "Hosts or hostgroups that this ID View could not be applied to." +msgstr "" + +#: ipalib/plugins/idviews.py:359 +msgid "Number of hosts the ID View was applied to:" +msgstr "" + +#: ipalib/plugins/idviews.py:366 +msgid "" +"Clears ID View from specified hosts or current members of specified " +"hostgroups." +msgstr "" + +#: ipalib/plugins/idviews.py:369 +#, python-format +msgid "ID View cleared from %i host." +msgstr "" + +#: ipalib/plugins/idviews.py:370 +#, python-format +msgid "ID View cleared from %i hosts." +msgstr "" + +#: ipalib/plugins/idviews.py:377 +msgid "Hosts to clear (any) ID View from." +msgstr "" + +#: ipalib/plugins/idviews.py:382 +msgid "" +"Hostgroups whose hosts should have ID Views cleared. Note that view is not " +"cleared automatically from any host added to the hostgroup after running " +"idview-unapply command." +msgstr "" + +#: ipalib/plugins/idviews.py:393 +msgid "Hosts that ID View was cleared from." +msgstr "" + +#: ipalib/plugins/idviews.py:397 +msgid "Hosts or hostgroups that ID View could not be cleared from." +msgstr "" + +#: ipalib/plugins/idviews.py:402 +msgid "Number of hosts that had a ID View was unset:" +msgstr "" + +#: ipalib/plugins/idviews.py:445 +msgid "IPA object" +msgstr "" + +#: ipalib/plugins/idviews.py:446 +msgid "" +"system IPA objects (e.g system groups, user private groups) cannot be " +"overriden" +msgstr "" + +#: ipalib/plugins/idviews.py:527 +#, python-format +msgid "Anchor '%(anchor)s' could not be resolved." +msgstr "" + +#: ipalib/plugins/idviews.py:549 +msgid "Anchor to override" +msgstr "" + +#: ipalib/plugins/idviews.py:594 +msgid "Default Trust View cannot contain IPA users" +msgstr "" + +#: ipalib/plugins/idviews.py:598 +msgid "Add a new ID override." +msgstr "" + +#: ipalib/plugins/idviews.py:599 +#, python-format +msgid "Added ID override \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/idviews.py:612 +msgid "Delete an ID override." +msgstr "" + +#: ipalib/plugins/idviews.py:613 +#, python-format +msgid "Deleted ID override \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/idviews.py:617 +msgid "Modify an ID override." +msgstr "" + +#: ipalib/plugins/idviews.py:618 +#, python-format +msgid "Modified an ID override \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/idviews.py:623 +msgid "ID override" +msgstr "" + +#: ipalib/plugins/idviews.py:624 +msgid "ID overrides cannot be renamed" +msgstr "" + +#: ipalib/plugins/idviews.py:636 +msgid "Search for an ID override." +msgstr "" + +#: ipalib/plugins/idviews.py:637 +#, python-format +msgid "%(count)d ID override matched" +msgid_plural "%(count)d ID overrides matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/idviews.py:647 +msgid "Display information about an ID override." +msgstr "" + +#: ipalib/plugins/idviews.py:657 ipalib/plugins/idviews.py:661 +msgid "User ID override" +msgstr "" + +#: ipalib/plugins/idviews.py:658 ipalib/plugins/idviews.py:660 +msgid "User ID overrides" +msgstr "" + +#: ipalib/plugins/idviews.py:696 +msgid "User ID Number" +msgstr "" + +#: ipalib/plugins/idviews.py:740 ipalib/plugins/idviews.py:744 +msgid "Group ID override" +msgstr "" + +#: ipalib/plugins/idviews.py:741 ipalib/plugins/idviews.py:743 +msgid "Group ID overrides" +msgstr "" + +#: ipalib/plugins/idviews.py:786 +msgid "Add a new User ID override." +msgstr "" + +#: ipalib/plugins/idviews.py:787 +#, python-format +msgid "Added User ID override \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/idviews.py:809 +msgid "Delete an User ID override." +msgstr "" + +#: ipalib/plugins/idviews.py:810 +#, python-format +msgid "Deleted User ID override \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/idviews.py:815 +msgid "Modify an User ID override." +msgstr "" + +#: ipalib/plugins/idviews.py:816 +#, python-format +msgid "Modified an User ID override \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/idviews.py:844 +msgid "Search for an User ID override." +msgstr "" + +#: ipalib/plugins/idviews.py:845 +#, python-format +msgid "%(count)d User ID override matched" +msgid_plural "%(count)d User ID overrides matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/idviews.py:858 +msgid "Display information about an User ID override." +msgstr "" + +#: ipalib/plugins/idviews.py:869 +msgid "Add a new Group ID override." +msgstr "" + +#: ipalib/plugins/idviews.py:870 +#, python-format +msgid "Added Group ID override \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/idviews.py:875 +msgid "Delete an Group ID override." +msgstr "" + +#: ipalib/plugins/idviews.py:876 +#, python-format +msgid "Deleted Group ID override \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/idviews.py:881 +msgid "Modify an Group ID override." +msgstr "" + +#: ipalib/plugins/idviews.py:882 +#, python-format +msgid "Modified an Group ID override \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/idviews.py:887 +msgid "Search for an Group ID override." +msgstr "" + +#: ipalib/plugins/idviews.py:888 +#, python-format +msgid "%(count)d Group ID override matched" +msgid_plural "%(count)d Group ID overrides matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/idviews.py:894 +msgid "Display information about an Group ID override." +msgstr "" + #: ipalib/plugins/internal.py:48 ipalib/plugins/internal.py:57 msgid "Name of object to export" msgstr "" @@ -6110,7 +7261,7 @@ msgstr "" msgid "Your session has expired. Please re-login." msgstr "" -#: ipalib/plugins/internal.py:155 +#: ipalib/plugins/internal.py:155 ipalib/plugins/internal.py:209 msgid "Apply" msgstr "" @@ -6251,558 +7402,625 @@ msgstr "" msgid "Show Results" msgstr "" -#: ipalib/plugins/internal.py:194 ipalib/plugins/internal.py:242 -msgid "About" +#: ipalib/plugins/internal.py:194 +msgid "Implicit method (password) will be used if no method is chosen." msgstr "" #: ipalib/plugins/internal.py:195 +msgid "Two factor authentication (password + OTP)" +msgstr "" + +#: ipalib/plugins/internal.py:197 +msgid "Radius" +msgstr "" + +#: ipalib/plugins/internal.py:198 +msgid "Disable per-user override" +msgstr "" + +#: ipalib/plugins/internal.py:199 +msgid "" +"Per-user setting, overwrites the global setting if any option is checked." +msgstr "" + +#: ipalib/plugins/internal.py:202 ipalib/plugins/internal.py:255 +msgid "About" +msgstr "" + +#: ipalib/plugins/internal.py:203 +msgid "Activate" +msgstr "" + +#: ipalib/plugins/internal.py:204 msgid "Add" msgstr "" -#: ipalib/plugins/internal.py:196 +#: ipalib/plugins/internal.py:205 msgid "Add and Add Another" msgstr "" -#: ipalib/plugins/internal.py:197 +#: ipalib/plugins/internal.py:206 msgid "Add and Close" msgstr "" -#: ipalib/plugins/internal.py:198 +#: ipalib/plugins/internal.py:207 msgid "Add and Edit" msgstr "" -#: ipalib/plugins/internal.py:199 +#: ipalib/plugins/internal.py:208 msgid "Add Many" msgstr "" -#: ipalib/plugins/internal.py:200 +#: ipalib/plugins/internal.py:210 msgid "Back" msgstr "" -#: ipalib/plugins/internal.py:201 +#: ipalib/plugins/internal.py:211 msgid "Cancel" msgstr "" -#: ipalib/plugins/internal.py:202 +#: ipalib/plugins/internal.py:212 msgid "Close" msgstr "" -#: ipalib/plugins/internal.py:203 ipalib/plugins/internal.py:692 +#: ipalib/plugins/internal.py:213 ipalib/plugins/internal.py:782 msgid "Disable" msgstr "" -#: ipalib/plugins/internal.py:204 +#: ipalib/plugins/internal.py:214 msgid "Edit" msgstr "" -#: ipalib/plugins/internal.py:205 ipalib/plugins/internal.py:694 +#: ipalib/plugins/internal.py:215 ipalib/plugins/internal.py:784 msgid "Enable" msgstr "" -#: ipalib/plugins/internal.py:207 +#: ipalib/plugins/internal.py:217 msgid "Find" msgstr "" -#: ipalib/plugins/internal.py:208 +#: ipalib/plugins/internal.py:218 msgid "Get" msgstr "" -#: ipalib/plugins/internal.py:209 +#: ipalib/plugins/internal.py:219 msgid "Issue" msgstr "" -#: ipalib/plugins/internal.py:210 +#: ipalib/plugins/internal.py:220 msgid "OK" msgstr "" -#: ipalib/plugins/internal.py:211 +#: ipalib/plugins/internal.py:221 msgid "Refresh" msgstr "" -#: ipalib/plugins/internal.py:212 +#: ipalib/plugins/internal.py:222 msgid "Delete" msgstr "" -#: ipalib/plugins/internal.py:213 +#: ipalib/plugins/internal.py:223 msgid "Reset" msgstr "" -#: ipalib/plugins/internal.py:214 +#: ipalib/plugins/internal.py:224 msgid "Reset Password and Login" msgstr "" -#: ipalib/plugins/internal.py:215 +#: ipalib/plugins/internal.py:225 msgid "Restore" msgstr "" -#: ipalib/plugins/internal.py:216 +#: ipalib/plugins/internal.py:226 msgid "Retry" msgstr "" -#: ipalib/plugins/internal.py:217 +#: ipalib/plugins/internal.py:227 +msgid "Revert" +msgstr "" + +#: ipalib/plugins/internal.py:228 msgid "Revoke" msgstr "" -#: ipalib/plugins/internal.py:218 +#: ipalib/plugins/internal.py:229 +msgid "Save" +msgstr "" + +#: ipalib/plugins/internal.py:230 msgid "Set" msgstr "" -#: ipalib/plugins/internal.py:219 +#: ipalib/plugins/internal.py:232 msgid "Update" msgstr "" -#: ipalib/plugins/internal.py:220 +#: ipalib/plugins/internal.py:233 msgid "View" msgstr "" -#: ipalib/plugins/internal.py:223 +#: ipalib/plugins/internal.py:236 msgid "Collapse All" msgstr "" -#: ipalib/plugins/internal.py:224 +#: ipalib/plugins/internal.py:237 msgid "Expand All" msgstr "" -#: ipalib/plugins/internal.py:225 +#: ipalib/plugins/internal.py:238 msgid "General" msgstr "" -#: ipalib/plugins/internal.py:226 +#: ipalib/plugins/internal.py:239 msgid "Identity Settings" msgstr "" -#: ipalib/plugins/internal.py:227 +#: ipalib/plugins/internal.py:240 #, python-brace-format msgid "${entity} ${primary_key} Settings" msgstr "" -#: ipalib/plugins/internal.py:228 +#: ipalib/plugins/internal.py:241 msgid "Back to Top" msgstr "" -#: ipalib/plugins/internal.py:229 +#: ipalib/plugins/internal.py:242 #, python-brace-format msgid "${entity} ${primary_key} updated" msgstr "" -#: ipalib/plugins/internal.py:232 +#: ipalib/plugins/internal.py:245 #, python-brace-format msgid "${entity} successfully added" msgstr "" -#: ipalib/plugins/internal.py:233 +#: ipalib/plugins/internal.py:246 #, python-brace-format msgid "Add ${entity}" msgstr "" -#: ipalib/plugins/internal.py:234 +#: ipalib/plugins/internal.py:247 msgid "Available" msgstr "" -#: ipalib/plugins/internal.py:235 +#: ipalib/plugins/internal.py:248 msgid "Some operations failed." msgstr "" -#: ipalib/plugins/internal.py:236 +#: ipalib/plugins/internal.py:249 msgid "Operations Error" msgstr "" -#: ipalib/plugins/internal.py:237 +#: ipalib/plugins/internal.py:250 msgid "Confirmation" msgstr "" -#: ipalib/plugins/internal.py:238 +#: ipalib/plugins/internal.py:251 msgid "This page has unsaved changes. Please save or revert." msgstr "" -#: ipalib/plugins/internal.py:239 +#: ipalib/plugins/internal.py:252 msgid "Unsaved Changes" msgstr "" -#: ipalib/plugins/internal.py:240 +#: ipalib/plugins/internal.py:253 #, python-brace-format msgid "Edit ${entity}" msgstr "" -#: ipalib/plugins/internal.py:241 +#: ipalib/plugins/internal.py:254 msgid "Hide details" msgstr "" -#: ipalib/plugins/internal.py:243 +#: ipalib/plugins/internal.py:256 #, python-brace-format msgid "${product}, version: ${version}" msgstr "" -#: ipalib/plugins/internal.py:244 +#: ipalib/plugins/internal.py:257 msgid "Prospective" msgstr "" -#: ipalib/plugins/internal.py:245 +#: ipalib/plugins/internal.py:258 msgid "Redirection" msgstr "" -#: ipalib/plugins/internal.py:246 +#: ipalib/plugins/internal.py:259 msgid "Select entries to be removed." msgstr "" -#: ipalib/plugins/internal.py:247 +#: ipalib/plugins/internal.py:260 #, python-brace-format msgid "Remove ${entity}" msgstr "" -#: ipalib/plugins/internal.py:248 +#: ipalib/plugins/internal.py:261 msgid "Show details" msgstr "" -#: ipalib/plugins/internal.py:249 +#: ipalib/plugins/internal.py:262 +msgid "Success" +msgstr "" + +#: ipalib/plugins/internal.py:263 msgid "Validation error" msgstr "" -#: ipalib/plugins/internal.py:250 +#: ipalib/plugins/internal.py:264 msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/internal.py:253 +#: ipalib/plugins/internal.py:267 msgid "Please try the following options:" msgstr "" -#: ipalib/plugins/internal.py:254 +#: ipalib/plugins/internal.py:268 msgid "If the problem persists please contact the system administrator." msgstr "" -#: ipalib/plugins/internal.py:255 +#: ipalib/plugins/internal.py:269 msgid "Refresh the page." msgstr "" -#: ipalib/plugins/internal.py:256 +#: ipalib/plugins/internal.py:270 msgid "Reload the browser." msgstr "" -#: ipalib/plugins/internal.py:257 +#: ipalib/plugins/internal.py:271 msgid "Return to the main page and retry the operation" msgstr "" -#: ipalib/plugins/internal.py:258 +#: ipalib/plugins/internal.py:272 #, python-brace-format msgid "An error has occurred (${error})" msgstr "" -#: ipalib/plugins/internal.py:262 +#: ipalib/plugins/internal.py:276 msgid "HTTP Error" msgstr "" -#: ipalib/plugins/internal.py:263 +#: ipalib/plugins/internal.py:277 msgid "Internal Error" msgstr "" -#: ipalib/plugins/internal.py:264 +#: ipalib/plugins/internal.py:278 msgid "IPA Error" msgstr "" -#: ipalib/plugins/internal.py:265 +#: ipalib/plugins/internal.py:279 msgid "No response" msgstr "" -#: ipalib/plugins/internal.py:266 +#: ipalib/plugins/internal.py:280 msgid "Unknown Error" msgstr "" -#: ipalib/plugins/internal.py:267 +#: ipalib/plugins/internal.py:281 msgid "URL" msgstr "" -#: ipalib/plugins/internal.py:270 +#: ipalib/plugins/internal.py:284 #, python-brace-format msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/internal.py:271 +#: ipalib/plugins/internal.py:285 #, python-brace-format msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/internal.py:272 +#: ipalib/plugins/internal.py:286 #, python-brace-format msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/internal.py:275 +#: ipalib/plugins/internal.py:289 msgid "Settings" msgstr "" -#: ipalib/plugins/internal.py:276 ipalib/plugins/internal.py:685 +#: ipalib/plugins/internal.py:290 ipalib/plugins/internal.py:775 msgid "Search" msgstr "" -#: ipalib/plugins/internal.py:278 +#: ipalib/plugins/internal.py:292 msgid "False" msgstr "" -#: ipalib/plugins/internal.py:280 +#: ipalib/plugins/internal.py:294 +#, python-brace-format +msgid "Allow ${other_entity} to create keytab of ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:295 +#, python-brace-format +msgid "Allow ${other_entity} to retrieve keytab of ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:296 +msgid "Allowed to create keytab" +msgstr "" + +#: ipalib/plugins/internal.py:297 +msgid "Allowed to retrieve keytab" +msgstr "" + +#: ipalib/plugins/internal.py:298 +#, python-brace-format +msgid "Disallow ${other_entity} to create keytab of ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:299 +#, python-brace-format +msgid "Disallow ${other_entity} to retrieve keytab of ${primary_key}" +msgstr "" + +#: ipalib/plugins/internal.py:302 msgid "Inherited from server configuration" msgstr "" -#: ipalib/plugins/internal.py:281 +#: ipalib/plugins/internal.py:303 msgid "MS-PAC" msgstr "" -#: ipalib/plugins/internal.py:282 +#: ipalib/plugins/internal.py:304 msgid "Override inherited settings" msgstr "" -#: ipalib/plugins/internal.py:283 +#: ipalib/plugins/internal.py:305 msgid "PAD" msgstr "" -#: ipalib/plugins/internal.py:286 +#: ipalib/plugins/internal.py:308 msgid "" -"To login with username and password, enter them in the fields below then " -"click Login." +"<i class=\"fa fa-info-circle\"></i> To login with <strong>username and " +"password</strong>, enter them in the corresponding fields, then click Login." msgstr "" -#: ipalib/plugins/internal.py:287 +#: ipalib/plugins/internal.py:309 msgid "Logged In As" msgstr "" -#: ipalib/plugins/internal.py:288 +#: ipalib/plugins/internal.py:310 #, python-brace-format msgid "" -"To login with Kerberos, please make sure you have valid tickets (obtainable " -"via kinit) and <a href='http://${host}/ipa/config/unauthorized." -"html'>configured</a> the browser correctly, then click Login." +"<i class=\"fa fa-info-circle\"></i> To login with <strong>Kerberos</strong>, " +"please make sure you have valid tickets (obtainable via kinit) and <a " +"href='http://${host}/ipa/config/unauthorized.html'>configured</a> the " +"browser correctly, then click Login." msgstr "" -#: ipalib/plugins/internal.py:289 +#: ipalib/plugins/internal.py:311 msgid "Login" msgstr "" -#: ipalib/plugins/internal.py:290 +#: ipalib/plugins/internal.py:312 msgid "Logout" msgstr "" -#: ipalib/plugins/internal.py:291 +#: ipalib/plugins/internal.py:313 msgid "Logout error" msgstr "" -#: ipalib/plugins/internal.py:293 +#: ipalib/plugins/internal.py:315 msgid "Sync OTP Token" msgstr "" -#: ipalib/plugins/internal.py:294 +#: ipalib/plugins/internal.py:316 ipalib/plugins/vault.py:157 msgid "Username" msgstr "" -#: ipalib/plugins/internal.py:297 +#: ipalib/plugins/internal.py:319 msgid "number of passwords" msgstr "" -#: ipalib/plugins/internal.py:298 +#: ipalib/plugins/internal.py:320 msgid "seconds" msgstr "" -#: ipalib/plugins/internal.py:302 ipalib/plugins/internal.py:307 +#: ipalib/plugins/internal.py:324 ipalib/plugins/internal.py:329 +#: ipalib/plugins/internal.py:590 msgid "Attribute" msgstr "" -#: ipalib/plugins/internal.py:305 +#: ipalib/plugins/internal.py:327 #, python-brace-format msgid "Add Condition into ${pkey}" msgstr "" -#: ipalib/plugins/internal.py:306 +#: ipalib/plugins/internal.py:328 msgid "Add Rule" msgstr "" -#: ipalib/plugins/internal.py:308 +#: ipalib/plugins/internal.py:330 msgid "Default host group" msgstr "" -#: ipalib/plugins/internal.py:309 +#: ipalib/plugins/internal.py:331 msgid "Default user group" msgstr "" -#: ipalib/plugins/internal.py:310 +#: ipalib/plugins/internal.py:332 msgid "Exclusive" msgstr "" -#: ipalib/plugins/internal.py:311 +#: ipalib/plugins/internal.py:333 msgid "Expression" msgstr "" -#: ipalib/plugins/internal.py:312 +#: ipalib/plugins/internal.py:334 msgid "Host group rule" msgstr "" -#: ipalib/plugins/internal.py:313 +#: ipalib/plugins/internal.py:335 msgid "Host group rules" msgstr "" -#: ipalib/plugins/internal.py:314 +#: ipalib/plugins/internal.py:336 msgid "Inclusive" msgstr "" -#: ipalib/plugins/internal.py:315 +#: ipalib/plugins/internal.py:337 msgid "User group rule" msgstr "" -#: ipalib/plugins/internal.py:316 +#: ipalib/plugins/internal.py:338 msgid "User group rules" msgstr "" -#: ipalib/plugins/internal.py:321 +#: ipalib/plugins/internal.py:343 msgid "Automount Location Settings" msgstr "" -#: ipalib/plugins/internal.py:324 +#: ipalib/plugins/internal.py:346 msgid "Map Type" msgstr "" -#: ipalib/plugins/internal.py:325 +#: ipalib/plugins/internal.py:347 msgid "Direct" msgstr "" -#: ipalib/plugins/internal.py:326 +#: ipalib/plugins/internal.py:348 msgid "Indirect" msgstr "" -#: ipalib/plugins/internal.py:329 +#: ipalib/plugins/internal.py:351 msgid "AA Compromise" msgstr "" -#: ipalib/plugins/internal.py:330 +#: ipalib/plugins/internal.py:352 msgid "Affiliation Changed" msgstr "" -#: ipalib/plugins/internal.py:331 +#: ipalib/plugins/internal.py:353 msgid "CA Compromise" msgstr "" -#: ipalib/plugins/internal.py:333 ipalib/plugins/internal.py:704 +#: ipalib/plugins/internal.py:355 ipalib/plugins/internal.py:794 msgid "Certificates" msgstr "" -#: ipalib/plugins/internal.py:334 +#: ipalib/plugins/internal.py:356 msgid "Certificate Hold" msgstr "" -#: ipalib/plugins/internal.py:335 +#: ipalib/plugins/internal.py:357 msgid "Cessation of Operation" msgstr "" -#: ipalib/plugins/internal.py:336 +#: ipalib/plugins/internal.py:358 msgid "Common Name" msgstr "" -#: ipalib/plugins/internal.py:337 +#: ipalib/plugins/internal.py:359 msgid "Expires On" msgstr "" -#: ipalib/plugins/internal.py:338 +#: ipalib/plugins/internal.py:360 msgid "Issued on from" msgstr "" -#: ipalib/plugins/internal.py:339 +#: ipalib/plugins/internal.py:361 msgid "Issued on to" msgstr "" -#: ipalib/plugins/internal.py:340 +#: ipalib/plugins/internal.py:362 msgid "Maximum serial number" msgstr "" -#: ipalib/plugins/internal.py:341 +#: ipalib/plugins/internal.py:363 msgid "Minimum serial number" msgstr "" -#: ipalib/plugins/internal.py:343 +#: ipalib/plugins/internal.py:365 msgid "Revoked on from" msgstr "" -#: ipalib/plugins/internal.py:344 +#: ipalib/plugins/internal.py:366 msgid "Revoked on to" msgstr "" -#: ipalib/plugins/internal.py:346 +#: ipalib/plugins/internal.py:368 msgid "Valid not after from" msgstr "" -#: ipalib/plugins/internal.py:347 +#: ipalib/plugins/internal.py:369 msgid "Valid not after to" msgstr "" -#: ipalib/plugins/internal.py:348 +#: ipalib/plugins/internal.py:370 msgid "Valid not before from" msgstr "" -#: ipalib/plugins/internal.py:349 +#: ipalib/plugins/internal.py:371 msgid "Valid not before to" msgstr "" -#: ipalib/plugins/internal.py:350 +#: ipalib/plugins/internal.py:372 msgid "Fingerprints" msgstr "" -#: ipalib/plugins/internal.py:351 +#: ipalib/plugins/internal.py:373 msgid "Get Certificate" msgstr "" -#: ipalib/plugins/internal.py:352 +#: ipalib/plugins/internal.py:374 #, python-brace-format msgid "Issue New Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:353 +#: ipalib/plugins/internal.py:375 msgid "Issued By" msgstr "" -#: ipalib/plugins/internal.py:354 +#: ipalib/plugins/internal.py:376 msgid "Issued On" msgstr "" -#: ipalib/plugins/internal.py:355 +#: ipalib/plugins/internal.py:377 msgid "Issued To" msgstr "" -#: ipalib/plugins/internal.py:356 +#: ipalib/plugins/internal.py:378 msgid "Key Compromise" msgstr "" -#: ipalib/plugins/internal.py:357 +#: ipalib/plugins/internal.py:379 msgid "MD5 Fingerprint" msgstr "" -#: ipalib/plugins/internal.py:358 +#: ipalib/plugins/internal.py:380 msgid "No Valid Certificate" msgstr "" -#: ipalib/plugins/internal.py:359 +#: ipalib/plugins/internal.py:381 msgid "New Certificate" msgstr "" -#: ipalib/plugins/internal.py:360 +#: ipalib/plugins/internal.py:382 msgid "Note" msgstr "" -#: ipalib/plugins/internal.py:361 +#: ipalib/plugins/internal.py:383 msgid "Organization" msgstr "" -#: ipalib/plugins/internal.py:362 +#: ipalib/plugins/internal.py:384 msgid "Organizational Unit" msgstr "" -#: ipalib/plugins/internal.py:363 +#: ipalib/plugins/internal.py:385 msgid "Privilege Withdrawn" msgstr "" -#: ipalib/plugins/internal.py:364 +#: ipalib/plugins/internal.py:386 msgid "Reason for Revocation" msgstr "" -#: ipalib/plugins/internal.py:365 +#: ipalib/plugins/internal.py:387 msgid "Remove from CRL" msgstr "" -#: ipalib/plugins/internal.py:366 +#: ipalib/plugins/internal.py:388 #, python-brace-format msgid "" "<ol> <li>Create a certificate database or use an existing one. To create a " @@ -6814,1027 +8032,1257 @@ msgid "" "NEW CERTIFICATE REQUEST-----</em>) into the text area below: </li> </ol>" msgstr "" -#: ipalib/plugins/internal.py:367 +#: ipalib/plugins/internal.py:389 msgid "Certificate requested" msgstr "" -#: ipalib/plugins/internal.py:368 +#: ipalib/plugins/internal.py:390 #, python-brace-format msgid "Restore Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:369 +#: ipalib/plugins/internal.py:391 msgid "Restore Certificate" msgstr "" -#: ipalib/plugins/internal.py:370 +#: ipalib/plugins/internal.py:392 msgid "" "To confirm your intention to restore this certificate, click the \"Restore\" " "button." msgstr "" -#: ipalib/plugins/internal.py:371 +#: ipalib/plugins/internal.py:393 msgid "Certificate restored" msgstr "" -#: ipalib/plugins/internal.py:373 +#: ipalib/plugins/internal.py:395 #, python-brace-format msgid "Revoke Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:374 +#: ipalib/plugins/internal.py:396 msgid "Revoke Certificate" msgstr "" -#: ipalib/plugins/internal.py:375 +#: ipalib/plugins/internal.py:397 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:376 +#: ipalib/plugins/internal.py:398 msgid "Certificate Revoked" msgstr "" -#: ipalib/plugins/internal.py:379 +#: ipalib/plugins/internal.py:401 msgid "SHA1 Fingerprint" msgstr "" -#: ipalib/plugins/internal.py:381 +#: ipalib/plugins/internal.py:403 msgid "Superseded" msgstr "" -#: ipalib/plugins/internal.py:382 +#: ipalib/plugins/internal.py:404 msgid "Unspecified" msgstr "" -#: ipalib/plugins/internal.py:383 +#: ipalib/plugins/internal.py:405 msgid "Valid Certificate Present" msgstr "" -#: ipalib/plugins/internal.py:384 +#: ipalib/plugins/internal.py:406 msgid "Validity" msgstr "" -#: ipalib/plugins/internal.py:385 +#: ipalib/plugins/internal.py:407 #, python-brace-format msgid "Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:386 +#: ipalib/plugins/internal.py:408 msgid "View Certificate" msgstr "" -#: ipalib/plugins/internal.py:389 +#: ipalib/plugins/internal.py:411 msgid "Group Options" msgstr "" -#: ipalib/plugins/internal.py:390 +#: ipalib/plugins/internal.py:412 msgid "Search Options" msgstr "" -#: ipalib/plugins/internal.py:391 +#: ipalib/plugins/internal.py:413 msgid "SELinux Options" msgstr "" -#: ipalib/plugins/internal.py:392 +#: ipalib/plugins/internal.py:414 msgid "Service Options" msgstr "" -#: ipalib/plugins/internal.py:393 +#: ipalib/plugins/internal.py:415 msgid "User Options" msgstr "" -#: ipalib/plugins/internal.py:398 +#: ipalib/plugins/internal.py:420 msgid "Forward first" msgstr "" -#: ipalib/plugins/internal.py:399 +#: ipalib/plugins/internal.py:421 msgid "Forwarding disabled" msgstr "" -#: ipalib/plugins/internal.py:400 +#: ipalib/plugins/internal.py:422 msgid "Forward only" msgstr "" -#: ipalib/plugins/internal.py:401 ipalib/plugins/internal.py:612 -#: ipalib/plugins/internal.py:636 +#: ipalib/plugins/internal.py:423 ipalib/plugins/internal.py:692 +#: ipalib/plugins/internal.py:720 msgid "Options" msgstr "" -#: ipalib/plugins/internal.py:404 +#: ipalib/plugins/internal.py:426 ipalib/plugins/vault.py:687 msgid "Data" msgstr "" -#: ipalib/plugins/internal.py:405 +#: ipalib/plugins/internal.py:427 msgid "DNS record was deleted because it contained no data." msgstr "" -#: ipalib/plugins/internal.py:406 +#: ipalib/plugins/internal.py:428 msgid "Other Record Types" msgstr "" -#: ipalib/plugins/internal.py:407 +#: ipalib/plugins/internal.py:429 msgid "Address not valid, can't redirect" msgstr "" -#: ipalib/plugins/internal.py:408 +#: ipalib/plugins/internal.py:430 msgid "Create dns record" msgstr "" -#: ipalib/plugins/internal.py:409 +#: ipalib/plugins/internal.py:431 msgid "Creating record." msgstr "" -#: ipalib/plugins/internal.py:410 +#: ipalib/plugins/internal.py:432 msgid "Record creation failed." msgstr "" -#: ipalib/plugins/internal.py:411 +#: ipalib/plugins/internal.py:433 msgid "Checking if record exists." msgstr "" -#: ipalib/plugins/internal.py:412 +#: ipalib/plugins/internal.py:434 msgid "Record not found." msgstr "" -#: ipalib/plugins/internal.py:413 +#: ipalib/plugins/internal.py:435 msgid "Redirection to PTR record" msgstr "" -#: ipalib/plugins/internal.py:414 +#: ipalib/plugins/internal.py:436 #, python-brace-format msgid "Zone found: ${zone}" msgstr "" -#: ipalib/plugins/internal.py:415 +#: ipalib/plugins/internal.py:437 msgid "Target reverse zone not found." msgstr "" -#: ipalib/plugins/internal.py:416 +#: ipalib/plugins/internal.py:438 msgid "Fetching DNS zones." msgstr "" -#: ipalib/plugins/internal.py:417 +#: ipalib/plugins/internal.py:439 msgid "An error occurred while fetching dns zones." msgstr "" -#: ipalib/plugins/internal.py:418 +#: ipalib/plugins/internal.py:440 msgid "You will be redirected to DNS Zone." msgstr "" -#: ipalib/plugins/internal.py:419 +#: ipalib/plugins/internal.py:441 msgid "Standard Record Types" msgstr "" -#: ipalib/plugins/internal.py:420 +#: ipalib/plugins/internal.py:442 msgid "Records for DNS Zone" msgstr "" -#: ipalib/plugins/internal.py:421 +#: ipalib/plugins/internal.py:443 msgid "Record Type" msgstr "" -#: ipalib/plugins/internal.py:424 +#: ipalib/plugins/internal.py:446 msgid "DNS Zone Settings" msgstr "" -#: ipalib/plugins/internal.py:425 +#: ipalib/plugins/internal.py:447 msgid "Add Permission" msgstr "" -#: ipalib/plugins/internal.py:426 +#: ipalib/plugins/internal.py:448 #, python-brace-format msgid "Are you sure you want to add permission for DNS Zone ${object}?" msgstr "" -#: ipalib/plugins/internal.py:427 +#: ipalib/plugins/internal.py:449 msgid "Remove Permission" msgstr "" -#: ipalib/plugins/internal.py:428 +#: ipalib/plugins/internal.py:450 #, python-brace-format msgid "Are you sure you want to remove permission for DNS Zone ${object}?" msgstr "" -#: ipalib/plugins/internal.py:431 +#: ipalib/plugins/internal.py:451 +msgid "Skip DNS check" +msgstr "" + +#: ipalib/plugins/internal.py:452 +msgid "Do you want to check if new authoritative nameserver address is in DNS" +msgstr "" + +#: ipalib/plugins/internal.py:453 +msgid "Authoritative nameserver change" +msgstr "" + +#: ipalib/plugins/internal.py:458 +msgid "Level" +msgstr "" + +#: ipalib/plugins/internal.py:459 +msgid "Set Domain Level" +msgstr "" + +#: ipalib/plugins/internal.py:462 msgid "Group Settings" msgstr "" -#: ipalib/plugins/internal.py:432 ipalib/plugins/internal.py:504 -#: ipalib/plugins/internal.py:607 +#: ipalib/plugins/internal.py:463 ipalib/plugins/internal.py:564 +#: ipalib/plugins/internal.py:687 msgid "External" msgstr "" -#: ipalib/plugins/internal.py:433 +#: ipalib/plugins/internal.py:464 msgid "Change to external group" msgstr "" -#: ipalib/plugins/internal.py:434 +#: ipalib/plugins/internal.py:465 msgid "Change to POSIX group" msgstr "" -#: ipalib/plugins/internal.py:435 +#: ipalib/plugins/internal.py:466 msgid "Normal" msgstr "" -#: ipalib/plugins/internal.py:436 +#: ipalib/plugins/internal.py:467 msgid "POSIX" msgstr "" -#: ipalib/plugins/internal.py:437 +#: ipalib/plugins/internal.py:468 msgid "Group Type" msgstr "" -#: ipalib/plugins/internal.py:440 ipalib/plugins/internal.py:502 -#: ipalib/plugins/internal.py:561 ipalib/plugins/internal.py:603 +#: ipalib/plugins/internal.py:471 ipalib/plugins/internal.py:562 +#: ipalib/plugins/internal.py:632 ipalib/plugins/internal.py:683 msgid "Any Host" msgstr "" -#: ipalib/plugins/internal.py:441 +#: ipalib/plugins/internal.py:472 msgid "Any Service" msgstr "" -#: ipalib/plugins/internal.py:442 ipalib/plugins/internal.py:503 -#: ipalib/plugins/internal.py:562 ipalib/plugins/internal.py:604 +#: ipalib/plugins/internal.py:473 ipalib/plugins/internal.py:563 +#: ipalib/plugins/internal.py:633 ipalib/plugins/internal.py:684 msgid "Anyone" msgstr "" -#: ipalib/plugins/internal.py:443 +#: ipalib/plugins/internal.py:474 msgid "Accessing" msgstr "" -#: ipalib/plugins/internal.py:444 ipalib/plugins/internal.py:609 +#: ipalib/plugins/internal.py:475 ipalib/plugins/internal.py:689 msgid "Rule status" msgstr "" -#: ipalib/plugins/internal.py:445 +#: ipalib/plugins/internal.py:476 msgid "Via Service" msgstr "" -#: ipalib/plugins/internal.py:446 ipalib/plugins/internal.py:509 -#: ipalib/plugins/internal.py:564 ipalib/plugins/internal.py:616 +#: ipalib/plugins/internal.py:477 ipalib/plugins/internal.py:569 +#: ipalib/plugins/internal.py:635 ipalib/plugins/internal.py:696 msgid "Specified Hosts and Groups" msgstr "" -#: ipalib/plugins/internal.py:447 +#: ipalib/plugins/internal.py:478 msgid "Specified Services and Groups" msgstr "" -#: ipalib/plugins/internal.py:448 ipalib/plugins/internal.py:510 -#: ipalib/plugins/internal.py:565 ipalib/plugins/internal.py:617 +#: ipalib/plugins/internal.py:479 ipalib/plugins/internal.py:570 +#: ipalib/plugins/internal.py:636 ipalib/plugins/internal.py:697 msgid "Specified Users and Groups" msgstr "" -#: ipalib/plugins/internal.py:449 ipalib/plugins/internal.py:618 +#: ipalib/plugins/internal.py:480 ipalib/plugins/internal.py:698 msgid "Who" msgstr "" -#: ipalib/plugins/internal.py:457 +#: ipalib/plugins/internal.py:488 msgid "Access Denied" msgstr "" -#: ipalib/plugins/internal.py:458 +#: ipalib/plugins/internal.py:489 msgid "Access Granted" msgstr "" -#: ipalib/plugins/internal.py:459 +#: ipalib/plugins/internal.py:490 msgid "Include Disabled" msgstr "" -#: ipalib/plugins/internal.py:460 +#: ipalib/plugins/internal.py:491 msgid "Include Enabled" msgstr "" -#: ipalib/plugins/internal.py:461 +#: ipalib/plugins/internal.py:492 msgid "HBAC Test" msgstr "" -#: ipalib/plugins/internal.py:462 +#: ipalib/plugins/internal.py:493 msgid "Matched" msgstr "" -#: ipalib/plugins/internal.py:463 +#: ipalib/plugins/internal.py:494 msgid "Missing values: " msgstr "" -#: ipalib/plugins/internal.py:464 +#: ipalib/plugins/internal.py:495 msgid "New Test" msgstr "" -#: ipalib/plugins/internal.py:465 +#: ipalib/plugins/internal.py:496 msgid "Rules" msgstr "" -#: ipalib/plugins/internal.py:466 +#: ipalib/plugins/internal.py:497 msgid "Run Test" msgstr "" -#: ipalib/plugins/internal.py:467 +#: ipalib/plugins/internal.py:498 #, python-brace-format msgid "Specify external ${entity}" msgstr "" -#: ipalib/plugins/internal.py:468 +#: ipalib/plugins/internal.py:499 msgid "Unmatched" msgstr "" -#: ipalib/plugins/internal.py:471 +#: ipalib/plugins/internal.py:502 msgid "Host Certificate" msgstr "" -#: ipalib/plugins/internal.py:472 ipalib/plugins/internal.py:572 +#: ipalib/plugins/internal.py:503 ipalib/plugins/internal.py:643 msgid "Host Name" msgstr "" -#: ipalib/plugins/internal.py:473 ipalib/plugins/internal.py:570 +#: ipalib/plugins/internal.py:504 ipalib/plugins/internal.py:641 msgid "Delete Key, Unprovision" msgstr "" -#: ipalib/plugins/internal.py:474 +#: ipalib/plugins/internal.py:505 msgid "Host Settings" msgstr "" -#: ipalib/plugins/internal.py:475 +#: ipalib/plugins/internal.py:506 msgid "Enrolled" msgstr "" -#: ipalib/plugins/internal.py:476 +#: ipalib/plugins/internal.py:507 msgid "Enrollment" msgstr "" -#: ipalib/plugins/internal.py:477 +#: ipalib/plugins/internal.py:508 msgid "Fully Qualified Host Name" msgstr "" -#: ipalib/plugins/internal.py:478 +#: ipalib/plugins/internal.py:509 msgid "Kerberos Key" msgstr "" -#: ipalib/plugins/internal.py:479 ipalib/plugins/internal.py:573 +#: ipalib/plugins/internal.py:510 ipalib/plugins/internal.py:644 msgid "Kerberos Key Not Present" msgstr "" -#: ipalib/plugins/internal.py:480 +#: ipalib/plugins/internal.py:511 msgid "Kerberos Key Present, Host Provisioned" msgstr "" -#: ipalib/plugins/internal.py:481 ipalib/plugins/internal.py:662 +#: ipalib/plugins/internal.py:512 ipalib/plugins/internal.py:752 msgid "One-Time-Password" msgstr "" -#: ipalib/plugins/internal.py:482 +#: ipalib/plugins/internal.py:513 msgid "One-Time-Password Not Present" msgstr "" -#: ipalib/plugins/internal.py:483 +#: ipalib/plugins/internal.py:514 msgid "One-Time-Password Present" msgstr "" -#: ipalib/plugins/internal.py:484 +#: ipalib/plugins/internal.py:515 msgid "Reset OTP" msgstr "" -#: ipalib/plugins/internal.py:485 +#: ipalib/plugins/internal.py:516 msgid "Reset One-Time-Password" msgstr "" -#: ipalib/plugins/internal.py:486 +#: ipalib/plugins/internal.py:517 msgid "Set OTP" msgstr "" -#: ipalib/plugins/internal.py:487 +#: ipalib/plugins/internal.py:518 msgid "OTP set" msgstr "" -#: ipalib/plugins/internal.py:488 +#: ipalib/plugins/internal.py:519 msgid "Set One-Time-Password" msgstr "" -#: ipalib/plugins/internal.py:490 ipalib/plugins/internal.py:577 +#: ipalib/plugins/internal.py:521 ipalib/plugins/internal.py:648 msgid "Unprovision" msgstr "" -#: ipalib/plugins/internal.py:491 +#: ipalib/plugins/internal.py:522 msgid "Are you sure you want to unprovision this host?" msgstr "" -#: ipalib/plugins/internal.py:492 ipalib/plugins/internal.py:579 +#: ipalib/plugins/internal.py:523 ipalib/plugins/internal.py:650 #, python-brace-format msgid "Unprovisioning ${entity}" msgstr "" -#: ipalib/plugins/internal.py:493 +#: ipalib/plugins/internal.py:524 msgid "Host unprovisioned" msgstr "" -#: ipalib/plugins/internal.py:496 +#: ipalib/plugins/internal.py:527 msgid "Host Group Settings" msgstr "" -#: ipalib/plugins/internal.py:499 ipalib/plugins/krbtpolicy.py:118 +#: ipalib/plugins/internal.py:530 +msgid "User to override" +msgstr "" + +#: ipalib/plugins/internal.py:531 +msgid "" +"Enter trusted or IPA user login. Note: search doesn't list users from " +"trusted domains." +msgstr "" + +#: ipalib/plugins/internal.py:532 +msgid "Enter trusted user login." +msgstr "" + +#: ipalib/plugins/internal.py:535 +msgid "Group to override" +msgstr "" + +#: ipalib/plugins/internal.py:536 +msgid "" +"Enter trusted or IPA group name. Note: search doesn't list groups from " +"trusted domains." +msgstr "" + +#: ipalib/plugins/internal.py:537 +msgid "Enter trusted group name." +msgstr "" + +#: ipalib/plugins/internal.py:540 +#, python-brace-format +msgid "${primary_key} applies to:" +msgstr "" + +#: ipalib/plugins/internal.py:541 ipalib/plugins/internal.py:542 +msgid "Applied to hosts" +msgstr "" + +#: ipalib/plugins/internal.py:543 +msgid "Apply to host groups" +msgstr "" + +#: ipalib/plugins/internal.py:544 +#, python-brace-format +msgid "Apply ID View ${primary_key} on hosts of ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:545 +msgid "Apply to hosts" +msgstr "" + +#: ipalib/plugins/internal.py:546 +#, python-brace-format +msgid "Apply ID view ${primary_key} on ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:548 +#, python-brace-format +msgid "${primary_key} overrides:" +msgstr "" + +#: ipalib/plugins/internal.py:549 +msgid "Un-apply from host groups" +msgstr "" + +#: ipalib/plugins/internal.py:550 +msgid "Un-apply ID Views from hosts of hostgroups" +msgstr "" + +#: ipalib/plugins/internal.py:551 +#, python-brace-format +msgid "Un-apply ID View ${primary_key} from hosts of ${entity}" +msgstr "" + +#: ipalib/plugins/internal.py:552 +msgid "Un-apply" +msgstr "" + +#: ipalib/plugins/internal.py:553 +msgid "Un-apply from hosts" +msgstr "" + +#: ipalib/plugins/internal.py:554 +msgid "Un-apply ID Views from hosts" +msgstr "" + +#: ipalib/plugins/internal.py:555 +msgid "Are you sure you want to un-apply ID view from selected entries?" +msgstr "" + +#: ipalib/plugins/internal.py:556 +#, python-brace-format +msgid "Un-apply ID View ${primary_key} from hosts" +msgstr "" + +#: ipalib/plugins/internal.py:559 ipalib/plugins/krbtpolicy.py:118 #: ipalib/plugins/krbtpolicy.py:119 msgid "Kerberos Ticket Policy" msgstr "" -#: ipalib/plugins/internal.py:508 +#: ipalib/plugins/internal.py:568 msgid "Netgroup Settings" msgstr "" -#: ipalib/plugins/internal.py:511 ipalib/plugins/internal.py:566 -#: ipalib/plugins/pwpolicy.py:519 ipalib/plugins/user.py:430 -msgid "User" +#: ipalib/plugins/internal.py:576 +msgid "Add OTP Token" msgstr "" -#: ipalib/plugins/internal.py:521 +#: ipalib/plugins/internal.py:577 +#, python-brace-format +msgid "" +"You can use <a href=\"${link}\" target=\"_blank\">FreeOTP<a/> as a software " +"OTP token application." +msgstr "" + +#: ipalib/plugins/internal.py:578 +msgid "Configure your token" +msgstr "" + +#: ipalib/plugins/internal.py:579 +msgid "" +"Configure your token by scanning the QR code below. Click on the QR code if " +"you see this on the device you want to configure." +msgstr "" + +#: ipalib/plugins/internal.py:580 +msgid "OTP Token Settings" +msgstr "" + +#: ipalib/plugins/internal.py:581 +msgid "Disable token" +msgstr "" + +#: ipalib/plugins/internal.py:582 +msgid "Enable token" +msgstr "" + +#: ipalib/plugins/internal.py:583 +msgid "Show QR code" +msgstr "" + +#: ipalib/plugins/internal.py:584 +msgid "Show configuration uri" +msgstr "" + +#: ipalib/plugins/internal.py:585 +msgid "Counter-based (HOTP)" +msgstr "" + +#: ipalib/plugins/internal.py:586 +msgid "Time-based (TOTP)" +msgstr "" + +#: ipalib/plugins/internal.py:589 +msgid "Add custom attribute" +msgstr "" + +#: ipalib/plugins/internal.py:592 msgid "Permission settings" msgstr "" -#: ipalib/plugins/internal.py:522 +#: ipalib/plugins/internal.py:593 msgid "Attribute breakdown" msgstr "" -#: ipalib/plugins/internal.py:526 +#: ipalib/plugins/internal.py:597 msgid "Privilege Settings" msgstr "" -#: ipalib/plugins/internal.py:529 ipalib/plugins/pwpolicy.py:303 +#: ipalib/plugins/internal.py:600 ipalib/plugins/pwpolicy.py:308 msgid "Password Policy" msgstr "" -#: ipalib/plugins/internal.py:532 +#: ipalib/plugins/internal.py:603 msgid "Range Settings" msgstr "" -#: ipalib/plugins/internal.py:533 +#: ipalib/plugins/internal.py:604 msgid "Base ID" msgstr "" -#: ipalib/plugins/internal.py:534 +#: ipalib/plugins/internal.py:605 msgid "Primary RID base" msgstr "" -#: ipalib/plugins/internal.py:535 +#: ipalib/plugins/internal.py:606 msgid "Range size" msgstr "" -#: ipalib/plugins/internal.py:536 +#: ipalib/plugins/internal.py:607 msgid "Domain SID" msgstr "" -#: ipalib/plugins/internal.py:537 +#: ipalib/plugins/internal.py:608 msgid "Secondary RID base" msgstr "" -#: ipalib/plugins/internal.py:539 ipalib/plugins/trust.py:145 +#: ipalib/plugins/internal.py:610 ipalib/plugins/trust.py:145 msgid "Active Directory domain" msgstr "" -#: ipalib/plugins/internal.py:540 +#: ipalib/plugins/internal.py:611 msgid "Active Directory domain with POSIX attributes" msgstr "" -#: ipalib/plugins/internal.py:541 +#: ipalib/plugins/internal.py:612 msgid "Detect" msgstr "" -#: ipalib/plugins/internal.py:542 +#: ipalib/plugins/internal.py:613 msgid "Local domain" msgstr "" -#: ipalib/plugins/internal.py:543 +#: ipalib/plugins/internal.py:614 msgid "IPA trust" msgstr "" -#: ipalib/plugins/internal.py:544 +#: ipalib/plugins/internal.py:615 msgid "Active Directory winsync" msgstr "" -#: ipalib/plugins/internal.py:547 +#: ipalib/plugins/internal.py:618 msgid "RADIUS Proxy Server Settings" msgstr "" -#: ipalib/plugins/internal.py:550 ipalib/plugins/realmdomains.py:92 +#: ipalib/plugins/internal.py:621 ipalib/plugins/realmdomains.py:92 #: ipalib/plugins/realmdomains.py:93 msgid "Realm Domains" msgstr "" -#: ipalib/plugins/internal.py:551 +#: ipalib/plugins/internal.py:622 msgid "Check DNS" msgstr "" -#: ipalib/plugins/internal.py:552 +#: ipalib/plugins/internal.py:623 msgid "Do you also want to perform DNS check?" msgstr "" -#: ipalib/plugins/internal.py:553 +#: ipalib/plugins/internal.py:624 msgid "Force Update" msgstr "" -#: ipalib/plugins/internal.py:556 +#: ipalib/plugins/internal.py:627 msgid "Role Settings" msgstr "" -#: ipalib/plugins/internal.py:569 +#: ipalib/plugins/internal.py:640 msgid "Service Certificate" msgstr "" -#: ipalib/plugins/internal.py:571 +#: ipalib/plugins/internal.py:642 msgid "Service Settings" msgstr "" -#: ipalib/plugins/internal.py:574 +#: ipalib/plugins/internal.py:645 msgid "Provisioning" msgstr "" -#: ipalib/plugins/internal.py:578 +#: ipalib/plugins/internal.py:649 msgid "Are you sure you want to unprovision this service?" msgstr "" -#: ipalib/plugins/internal.py:580 +#: ipalib/plugins/internal.py:651 msgid "Service unprovisioned" msgstr "" -#: ipalib/plugins/internal.py:581 +#: ipalib/plugins/internal.py:652 msgid "Kerberos Key Present, Service Provisioned" msgstr "" -#: ipalib/plugins/internal.py:584 +#: ipalib/plugins/internal.py:655 msgid "SSH public keys" msgstr "" -#: ipalib/plugins/internal.py:585 +#: ipalib/plugins/internal.py:656 msgid "SSH public key:" msgstr "" -#: ipalib/plugins/internal.py:586 +#: ipalib/plugins/internal.py:657 msgid "Set SSH key" msgstr "" -#: ipalib/plugins/internal.py:587 +#: ipalib/plugins/internal.py:658 msgid "Show/Set key" msgstr "" -#: ipalib/plugins/internal.py:588 +#: ipalib/plugins/internal.py:659 msgid "Modified: key not set" msgstr "" -#: ipalib/plugins/internal.py:589 +#: ipalib/plugins/internal.py:660 msgid "Modified" msgstr "" -#: ipalib/plugins/internal.py:590 +#: ipalib/plugins/internal.py:661 msgid "New: key not set" msgstr "" -#: ipalib/plugins/internal.py:591 +#: ipalib/plugins/internal.py:662 msgid "New: key set" msgstr "" -#: ipalib/plugins/internal.py:594 +#: ipalib/plugins/internal.py:665 +msgid "Are you sure you want to activate selected users?" +msgstr "" + +#: ipalib/plugins/internal.py:666 +#, python-brace-format +msgid "${count} user(s) activated" +msgstr "" + +#: ipalib/plugins/internal.py:667 +msgid "Stage users" +msgstr "" + +#: ipalib/plugins/internal.py:668 +msgid "Preserved users" +msgstr "" + +#: ipalib/plugins/internal.py:669 +msgid "Are you sure you want to restore selected users?" +msgstr "" + +#: ipalib/plugins/internal.py:670 +#, python-brace-format +msgid "${count} user(s) restored" +msgstr "" + +#: ipalib/plugins/internal.py:671 +msgid "User categories" +msgstr "" + +#: ipalib/plugins/internal.py:674 msgid "Groups" msgstr "" -#: ipalib/plugins/internal.py:597 ipalib/plugins/sudocmdgroup.py:126 +#: ipalib/plugins/internal.py:677 ipalib/plugins/sudocmdgroup.py:126 msgid "Commands" msgstr "" -#: ipalib/plugins/internal.py:600 +#: ipalib/plugins/internal.py:680 msgid "Allow" msgstr "" -#: ipalib/plugins/internal.py:601 +#: ipalib/plugins/internal.py:681 msgid "Any Command" msgstr "" -#: ipalib/plugins/internal.py:602 +#: ipalib/plugins/internal.py:682 msgid "Any Group" msgstr "" -#: ipalib/plugins/internal.py:605 +#: ipalib/plugins/internal.py:685 msgid "Run Commands" msgstr "" -#: ipalib/plugins/internal.py:606 +#: ipalib/plugins/internal.py:686 msgid "Deny" msgstr "" -#: ipalib/plugins/internal.py:608 +#: ipalib/plugins/internal.py:688 msgid "Access this host" msgstr "" -#: ipalib/plugins/internal.py:610 +#: ipalib/plugins/internal.py:690 msgid "Option added" msgstr "" -#: ipalib/plugins/internal.py:611 +#: ipalib/plugins/internal.py:691 #, python-brace-format msgid "${count} option(s) removed" msgstr "" -#: ipalib/plugins/internal.py:613 +#: ipalib/plugins/internal.py:693 msgid "As Whom" msgstr "" -#: ipalib/plugins/internal.py:614 +#: ipalib/plugins/internal.py:694 msgid "Specified Commands and Groups" msgstr "" -#: ipalib/plugins/internal.py:615 +#: ipalib/plugins/internal.py:695 msgid "Specified Groups" msgstr "" -#: ipalib/plugins/internal.py:621 +#: ipalib/plugins/internal.py:701 +msgid "Segment details" +msgstr "" + +#: ipalib/plugins/internal.py:702 +msgid "Replication configuration" +msgstr "" + +#: ipalib/plugins/internal.py:705 msgid "Account" msgstr "" -#: ipalib/plugins/internal.py:622 +#: ipalib/plugins/internal.py:706 msgid "Administrative account" msgstr "" -#: ipalib/plugins/internal.py:623 +#: ipalib/plugins/internal.py:707 msgid "SID blacklists" msgstr "" -#: ipalib/plugins/internal.py:624 +#: ipalib/plugins/internal.py:708 msgid "Trust Settings" msgstr "" -#: ipalib/plugins/internal.py:625 ipalib/plugins/realmdomains.py:100 -#: ipalib/plugins/trust.py:850 +#: ipalib/plugins/internal.py:709 ipalib/plugins/realmdomains.py:100 +#: ipalib/plugins/trust.py:878 msgid "Domain" msgstr "" -#: ipalib/plugins/internal.py:626 +#: ipalib/plugins/internal.py:710 msgid "Establish using" msgstr "" -#: ipalib/plugins/internal.py:627 +#: ipalib/plugins/internal.py:711 msgid "Fetch domains" msgstr "" -#: ipalib/plugins/internal.py:628 ipalib/plugins/trust.py:357 -#: ipalib/plugins/trust.py:1167 +#: ipalib/plugins/internal.py:712 ipalib/plugins/trust.py:357 +#: ipalib/plugins/trust.py:1195 msgid "Domain NetBIOS name" msgstr "" -#: ipalib/plugins/internal.py:629 ipalib/plugins/trust.py:361 -#: ipalib/plugins/trust.py:1171 +#: ipalib/plugins/internal.py:713 ipalib/plugins/trust.py:361 +#: ipalib/plugins/trust.py:1199 msgid "Domain Security Identifier" msgstr "" -#: ipalib/plugins/internal.py:630 +#: ipalib/plugins/internal.py:714 msgid "Pre-shared password" msgstr "" -#: ipalib/plugins/internal.py:631 ipalib/plugins/trust.py:137 +#: ipalib/plugins/internal.py:715 ipalib/plugins/trust.py:137 msgid "Trust direction" msgstr "" -#: ipalib/plugins/internal.py:632 ipalib/plugins/trust.py:141 +#: ipalib/plugins/internal.py:716 ipalib/plugins/trust.py:141 msgid "Trust status" msgstr "" -#: ipalib/plugins/internal.py:633 ipalib/plugins/trust.py:139 +#: ipalib/plugins/internal.py:717 ipalib/plugins/trust.py:139 msgid "Trust type" msgstr "" -#: ipalib/plugins/internal.py:639 +#: ipalib/plugins/internal.py:723 msgid "Account Settings" msgstr "" -#: ipalib/plugins/internal.py:640 +#: ipalib/plugins/internal.py:724 msgid "Account Status" msgstr "" -#: ipalib/plugins/internal.py:641 +#: ipalib/plugins/internal.py:725 +msgid "Active users" +msgstr "" + +#: ipalib/plugins/internal.py:726 msgid "Contact Settings" msgstr "" -#: ipalib/plugins/internal.py:642 +#: ipalib/plugins/internal.py:727 +msgid "Delete mode" +msgstr "" + +#: ipalib/plugins/internal.py:728 msgid "Employee Information" msgstr "" -#: ipalib/plugins/internal.py:643 +#: ipalib/plugins/internal.py:729 msgid "Error changing account status" msgstr "" -#: ipalib/plugins/internal.py:644 +#: ipalib/plugins/internal.py:730 msgid "Password expiration" msgstr "" -#: ipalib/plugins/internal.py:645 +#: ipalib/plugins/internal.py:731 msgid "Mailing Address" msgstr "" -#: ipalib/plugins/internal.py:646 +#: ipalib/plugins/internal.py:732 msgid "Misc. Information" msgstr "" -#: ipalib/plugins/internal.py:647 +#: ipalib/plugins/internal.py:733 +msgid "delete" +msgstr "" + +#: ipalib/plugins/internal.py:734 +msgid "preserve" +msgstr "" + +#: ipalib/plugins/internal.py:735 +msgid "No private group" +msgstr "" + +#: ipalib/plugins/internal.py:736 #, python-brace-format msgid "" "Are you sure you want to ${action} the user?<br/>The change will take effect " "immediately." msgstr "" -#: ipalib/plugins/internal.py:648 +#: ipalib/plugins/internal.py:737 #, python-brace-format msgid "Click to ${action}" msgstr "" -#: ipalib/plugins/internal.py:649 +#: ipalib/plugins/internal.py:738 msgid "Unlock" msgstr "" -#: ipalib/plugins/internal.py:650 +#: ipalib/plugins/internal.py:739 #, python-brace-format msgid "Are you sure you want to unlock user ${object}?" msgstr "" -#: ipalib/plugins/internal.py:654 ipalib/plugins/passwd.py:84 +#: ipalib/plugins/internal.py:743 ipalib/plugins/passwd.py:84 msgid "Current Password" msgstr "" -#: ipalib/plugins/internal.py:655 +#: ipalib/plugins/internal.py:744 msgid "Current password is required" msgstr "" -#: ipalib/plugins/internal.py:656 +#: ipalib/plugins/internal.py:745 #, python-brace-format msgid "Your password expires in ${days} days." msgstr "" -#: ipalib/plugins/internal.py:657 +#: ipalib/plugins/internal.py:746 msgid "First OTP" msgstr "" -#: ipalib/plugins/internal.py:658 +#: ipalib/plugins/internal.py:747 msgid "The password or username you entered is incorrect." msgstr "" -#: ipalib/plugins/internal.py:659 ipalib/plugins/passwd.py:81 +#: ipalib/plugins/internal.py:748 ipalib/plugins/passwd.py:81 msgid "New Password" msgstr "" -#: ipalib/plugins/internal.py:660 +#: ipalib/plugins/internal.py:749 msgid "New password is required" msgstr "" -#: ipalib/plugins/internal.py:661 ipalib/plugins/passwd.py:94 +#: ipalib/plugins/internal.py:750 ipalib/plugins/passwd.py:94 msgid "OTP" msgstr "" -#: ipalib/plugins/internal.py:663 +#: ipalib/plugins/internal.py:751 +msgid "" +"<i class=\"fa fa-info-circle\"></i> <strong>One-Time-Password(OTP):</strong> " +"Generate new OTP code for each OTP field." +msgstr "" + +#: ipalib/plugins/internal.py:753 msgid "Token synchronization failed" msgstr "" -#: ipalib/plugins/internal.py:664 +#: ipalib/plugins/internal.py:754 msgid "The username, password or token codes are not correct" msgstr "" -#: ipalib/plugins/internal.py:665 +#: ipalib/plugins/internal.py:755 msgid "Token was synchronized" msgstr "" -#: ipalib/plugins/internal.py:667 +#: ipalib/plugins/internal.py:757 msgid "Password or Password+One-Time-Password" msgstr "" -#: ipalib/plugins/internal.py:668 +#: ipalib/plugins/internal.py:758 msgid "Password change complete" msgstr "" -#: ipalib/plugins/internal.py:669 +#: ipalib/plugins/internal.py:759 msgid "Passwords must match" msgstr "" -#: ipalib/plugins/internal.py:670 +#: ipalib/plugins/internal.py:760 msgid "Password reset was not successful." msgstr "" -#: ipalib/plugins/internal.py:671 +#: ipalib/plugins/internal.py:761 msgid "Reset Password" msgstr "" -#: ipalib/plugins/internal.py:672 +#: ipalib/plugins/internal.py:762 msgid "Reset your password." msgstr "" -#: ipalib/plugins/internal.py:673 +#: ipalib/plugins/internal.py:763 msgid "Second OTP" msgstr "" -#: ipalib/plugins/internal.py:674 ipalib/plugins/otptoken.py:448 +#: ipalib/plugins/internal.py:764 ipalib/plugins/otptoken.py:528 msgid "Token ID" msgstr "" -#: ipalib/plugins/internal.py:675 +#: ipalib/plugins/internal.py:765 msgid "Verify Password" msgstr "" -#: ipalib/plugins/internal.py:678 +#: ipalib/plugins/internal.py:768 msgid "Are you sure you want to delete selected entries?" msgstr "" -#: ipalib/plugins/internal.py:679 +#: ipalib/plugins/internal.py:769 #, python-brace-format msgid "${count} item(s) deleted" msgstr "" -#: ipalib/plugins/internal.py:680 +#: ipalib/plugins/internal.py:770 msgid "Are you sure you want to disable selected entries?" msgstr "" -#: ipalib/plugins/internal.py:681 +#: ipalib/plugins/internal.py:771 #, python-brace-format msgid "${count} item(s) disabled" msgstr "" -#: ipalib/plugins/internal.py:682 +#: ipalib/plugins/internal.py:772 msgid "Are you sure you want to enable selected entries?" msgstr "" -#: ipalib/plugins/internal.py:683 +#: ipalib/plugins/internal.py:773 #, python-brace-format msgid "${count} item(s) enabled" msgstr "" -#: ipalib/plugins/internal.py:684 +#: ipalib/plugins/internal.py:774 msgid "Some entries were not deleted" msgstr "" -#: ipalib/plugins/internal.py:686 +#: ipalib/plugins/internal.py:776 msgid "Quick Links" msgstr "" -#: ipalib/plugins/internal.py:687 +#: ipalib/plugins/internal.py:777 msgid "Select All" msgstr "" -#: ipalib/plugins/internal.py:688 +#: ipalib/plugins/internal.py:778 #, python-brace-format msgid "" "Query returned more results than the configured size limit. Displaying the " "first ${counter} results." msgstr "" -#: ipalib/plugins/internal.py:689 +#: ipalib/plugins/internal.py:779 msgid "Unselect All" msgstr "" -#: ipalib/plugins/internal.py:693 +#: ipalib/plugins/internal.py:783 ipalib/plugins/otptoken.py:184 msgid "Disabled" msgstr "" -#: ipalib/plugins/internal.py:697 +#: ipalib/plugins/internal.py:787 msgid "Working" msgstr "" -#: ipalib/plugins/internal.py:700 +#: ipalib/plugins/internal.py:790 msgid "Audit" msgstr "" -#: ipalib/plugins/internal.py:701 +#: ipalib/plugins/internal.py:791 msgid "Authentication" msgstr "" -#: ipalib/plugins/internal.py:703 +#: ipalib/plugins/internal.py:793 msgid "Automount" msgstr "" -#: ipalib/plugins/internal.py:705 +#: ipalib/plugins/internal.py:795 msgid "DNS" msgstr "" -#: ipalib/plugins/internal.py:706 +#: ipalib/plugins/internal.py:796 msgid "Host Based Access Control" msgstr "" -#: ipalib/plugins/internal.py:707 +#: ipalib/plugins/internal.py:797 msgid "Identity" msgstr "" -#: ipalib/plugins/internal.py:708 +#: ipalib/plugins/internal.py:798 ipalib/plugins/server.py:46 msgid "IPA Server" msgstr "" -#: ipalib/plugins/internal.py:709 +#: ipalib/plugins/internal.py:799 msgid "Network Services" msgstr "" -#: ipalib/plugins/internal.py:710 +#: ipalib/plugins/internal.py:800 msgid "Policy" msgstr "" -#: ipalib/plugins/internal.py:711 +#: ipalib/plugins/internal.py:801 msgid "Role Based Access Control" msgstr "" -#: ipalib/plugins/internal.py:712 +#: ipalib/plugins/internal.py:802 msgid "Sudo" msgstr "" -#: ipalib/plugins/internal.py:713 ipalib/plugins/trust.py:346 +#: ipalib/plugins/internal.py:803 +msgid "Topology" +msgstr "" + +#: ipalib/plugins/internal.py:804 ipalib/plugins/trust.py:346 msgid "Trusts" msgstr "" -#: ipalib/plugins/internal.py:715 +#: ipalib/plugins/internal.py:806 msgid "True" msgstr "" -#: ipalib/plugins/internal.py:717 +#: ipalib/plugins/internal.py:808 msgid "First" msgstr "" -#: ipalib/plugins/internal.py:718 +#: ipalib/plugins/internal.py:809 msgid "Last" msgstr "" -#: ipalib/plugins/internal.py:719 +#: ipalib/plugins/internal.py:810 msgid "Next" msgstr "" -#: ipalib/plugins/internal.py:720 +#: ipalib/plugins/internal.py:811 msgid "Page" msgstr "" -#: ipalib/plugins/internal.py:721 +#: ipalib/plugins/internal.py:812 msgid "Prev" msgstr "" -#: ipalib/plugins/internal.py:722 -msgid "undo" +#: ipalib/plugins/internal.py:813 +msgid "Undo" msgstr "" -#: ipalib/plugins/internal.py:723 -msgid "undo all" +#: ipalib/plugins/internal.py:814 +msgid "Undo All" msgstr "" -#: ipalib/plugins/internal.py:725 +#: ipalib/plugins/internal.py:816 msgid "Text does not match field pattern" msgstr "" -#: ipalib/plugins/internal.py:726 +#: ipalib/plugins/internal.py:817 msgid "Must be an UTC date/time value (e.g., \"2014-01-20 17:58:01Z\")" msgstr "" -#: ipalib/plugins/internal.py:727 +#: ipalib/plugins/internal.py:818 msgid "Must be a decimal number" msgstr "" -#: ipalib/plugins/internal.py:728 +#: ipalib/plugins/internal.py:819 msgid "Format error" msgstr "" -#: ipalib/plugins/internal.py:729 +#: ipalib/plugins/internal.py:820 msgid "Must be an integer" msgstr "" -#: ipalib/plugins/internal.py:730 +#: ipalib/plugins/internal.py:821 msgid "Not a valid IP address" msgstr "" -#: ipalib/plugins/internal.py:731 +#: ipalib/plugins/internal.py:822 msgid "Not a valid IPv4 address" msgstr "" -#: ipalib/plugins/internal.py:732 +#: ipalib/plugins/internal.py:823 msgid "Not a valid IPv6 address" msgstr "" -#: ipalib/plugins/internal.py:733 +#: ipalib/plugins/internal.py:824 #, python-brace-format msgid "Maximum value is ${value}" msgstr "" -#: ipalib/plugins/internal.py:734 +#: ipalib/plugins/internal.py:825 #, python-brace-format msgid "Minimum value is ${value}" msgstr "" -#: ipalib/plugins/internal.py:735 +#: ipalib/plugins/internal.py:826 msgid "Not a valid network address" msgstr "" -#: ipalib/plugins/internal.py:736 +#: ipalib/plugins/internal.py:827 msgid "Parse error" msgstr "" -#: ipalib/plugins/internal.py:737 +#: ipalib/plugins/internal.py:828 #, python-brace-format msgid "'${port}' is not a valid port" msgstr "" -#: ipalib/plugins/internal.py:738 +#: ipalib/plugins/internal.py:829 msgid "Required field" msgstr "" -#: ipalib/plugins/internal.py:739 +#: ipalib/plugins/internal.py:830 msgid "Unsupported value" msgstr "" -#: ipalib/plugins/internal.py:744 +#: ipalib/plugins/internal.py:835 msgid "Dict of I18N messages" msgstr "" @@ -7923,7 +9371,7 @@ msgstr "" msgid "Reset Kerberos ticket policy to the default values." msgstr "" -#: ipalib/plugins/migration.py:38 +#: ipalib/plugins/migration.py:40 msgid "" "\n" "Migration to IPA\n" @@ -8021,218 +9469,236 @@ msgid "" "updated.\n" msgstr "" -#: ipalib/plugins/migration.py:135 +#: ipalib/plugins/migration.py:137 #, python-format msgid "" "Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." msgstr "" -#: ipalib/plugins/migration.py:136 +#: ipalib/plugins/migration.py:138 #, python-format msgid "" "Unable to determine if Kerberos principal %s already exists. Use 'ipa user-" "mod' to set it manually." msgstr "" -#: ipalib/plugins/migration.py:137 +#: ipalib/plugins/migration.py:139 msgid "" "Failed to add user to the default group. Use 'ipa group-add-member' to add " "manually." msgstr "" -#: ipalib/plugins/migration.py:138 +#: ipalib/plugins/migration.py:140 msgid "Migration of LDAP search reference is not supported." msgstr "" -#: ipalib/plugins/migration.py:139 +#: ipalib/plugins/migration.py:141 msgid "Malformed DN" msgstr "" -#: ipalib/plugins/migration.py:156 +#: ipalib/plugins/migration.py:161 #, python-format msgid "%(user)s is not a POSIX user" msgstr "" -#: ipalib/plugins/migration.py:429 +#: ipalib/plugins/migration.py:427 msgid "" ". Check GID of the existing group. Use --group-overwrite-gid option to " "overwrite the GID" msgstr "" -#: ipalib/plugins/migration.py:444 +#: ipalib/plugins/migration.py:442 msgid "Invalid LDAP URI." msgstr "" -#: ipalib/plugins/migration.py:450 +#: ipalib/plugins/migration.py:448 msgid "Migrate users and groups from DS to IPA." msgstr "" -#: ipalib/plugins/migration.py:497 +#: ipalib/plugins/migration.py:495 msgid "LDAP URI" msgstr "" -#: ipalib/plugins/migration.py:498 +#: ipalib/plugins/migration.py:496 msgid "LDAP URI of DS server to migrate from" msgstr "" -#: ipalib/plugins/migration.py:504 +#: ipalib/plugins/migration.py:502 msgid "bind password" msgstr "" -#: ipalib/plugins/migration.py:511 +#: ipalib/plugins/migration.py:509 msgid "Bind DN" msgstr "" -#: ipalib/plugins/migration.py:517 +#: ipalib/plugins/migration.py:515 msgid "User container" msgstr "" -#: ipalib/plugins/migration.py:518 +#: ipalib/plugins/migration.py:516 msgid "DN of container for users in DS relative to base DN" msgstr "" -#: ipalib/plugins/migration.py:524 +#: ipalib/plugins/migration.py:522 msgid "Group container" msgstr "" -#: ipalib/plugins/migration.py:525 +#: ipalib/plugins/migration.py:523 msgid "DN of container for groups in DS relative to base DN" msgstr "" -#: ipalib/plugins/migration.py:531 +#: ipalib/plugins/migration.py:529 msgid "User object class" msgstr "" -#: ipalib/plugins/migration.py:532 +#: ipalib/plugins/migration.py:530 msgid "Objectclasses used to search for user entries in DS" msgstr "" -#: ipalib/plugins/migration.py:539 +#: ipalib/plugins/migration.py:537 msgid "Group object class" msgstr "" -#: ipalib/plugins/migration.py:540 +#: ipalib/plugins/migration.py:538 msgid "Objectclasses used to search for group entries in DS" msgstr "" -#: ipalib/plugins/migration.py:547 +#: ipalib/plugins/migration.py:545 msgid "Ignore user object class" msgstr "" -#: ipalib/plugins/migration.py:548 +#: ipalib/plugins/migration.py:546 msgid "Objectclasses to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/migration.py:555 +#: ipalib/plugins/migration.py:553 msgid "Ignore user attribute" msgstr "" -#: ipalib/plugins/migration.py:556 +#: ipalib/plugins/migration.py:554 msgid "Attributes to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/migration.py:563 +#: ipalib/plugins/migration.py:561 msgid "Ignore group object class" msgstr "" -#: ipalib/plugins/migration.py:564 +#: ipalib/plugins/migration.py:562 msgid "Objectclasses to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/migration.py:571 +#: ipalib/plugins/migration.py:569 msgid "Ignore group attribute" msgstr "" -#: ipalib/plugins/migration.py:572 +#: ipalib/plugins/migration.py:570 msgid "Attributes to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/migration.py:579 +#: ipalib/plugins/migration.py:577 msgid "Overwrite GID" msgstr "" -#: ipalib/plugins/migration.py:580 +#: ipalib/plugins/migration.py:578 msgid "" "When migrating a group already existing in IPA domain overwrite the group " "GID and report as success" msgstr "" -#: ipalib/plugins/migration.py:585 +#: ipalib/plugins/migration.py:583 msgid "LDAP schema" msgstr "" -#: ipalib/plugins/migration.py:586 +#: ipalib/plugins/migration.py:584 msgid "" "The schema used on the LDAP server. Supported values are RFC2307 and " "RFC2307bis. The default is RFC2307bis" msgstr "" -#: ipalib/plugins/migration.py:592 +#: ipalib/plugins/migration.py:590 msgid "Continue" msgstr "" -#: ipalib/plugins/migration.py:593 +#: ipalib/plugins/migration.py:591 msgid "" "Continuous operation mode. Errors are reported but the process continues" msgstr "" -#: ipalib/plugins/migration.py:598 +#: ipalib/plugins/migration.py:596 msgid "Base DN" msgstr "" -#: ipalib/plugins/migration.py:599 +#: ipalib/plugins/migration.py:597 msgid "Base DN on remote LDAP server" msgstr "" -#: ipalib/plugins/migration.py:603 +#: ipalib/plugins/migration.py:601 msgid "Ignore compat plugin" msgstr "" -#: ipalib/plugins/migration.py:604 +#: ipalib/plugins/migration.py:602 msgid "Allows migration despite the usage of compat plugin" msgstr "" -#: ipalib/plugins/migration.py:609 +#: ipalib/plugins/migration.py:607 msgid "CA certificate" msgstr "" -#: ipalib/plugins/migration.py:610 +#: ipalib/plugins/migration.py:608 msgid "Load CA certificate of LDAP server from FILE" msgstr "" -#: ipalib/plugins/migration.py:618 -msgid "Lists of objects migrated; categorized by type." +#: ipalib/plugins/migration.py:613 +msgid "Add to default group" +msgstr "" + +#: ipalib/plugins/migration.py:614 +msgid "Add migrated users without a group to a default group (default: true)" +msgstr "" + +#: ipalib/plugins/migration.py:621 +msgid "Search scope" msgstr "" #: ipalib/plugins/migration.py:622 +msgid "" +"LDAP search scope for users and groups: base, onelevel, or subtree. Defaults " +"to onelevel" +msgstr "" + +#: ipalib/plugins/migration.py:633 +msgid "Lists of objects migrated; categorized by type." +msgstr "" + +#: ipalib/plugins/migration.py:637 msgid "Lists of objects that could not be migrated; categorized by type." msgstr "" -#: ipalib/plugins/migration.py:626 +#: ipalib/plugins/migration.py:641 msgid "False if migration mode was disabled." msgstr "" -#: ipalib/plugins/migration.py:630 +#: ipalib/plugins/migration.py:645 msgid "False if migration fails because the compatibility plug-in is enabled." msgstr "" -#: ipalib/plugins/migration.py:634 +#: ipalib/plugins/migration.py:649 #, python-format msgid "%s to exclude from migration" msgstr "" -#: ipalib/plugins/migration.py:636 +#: ipalib/plugins/migration.py:651 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:641 +#: ipalib/plugins/migration.py:656 msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." msgstr "" -#: ipalib/plugins/migration.py:644 +#: ipalib/plugins/migration.py:659 msgid "" "Passwords have been migrated in pre-hashed format.\n" "IPA is unable to generate Kerberos keys unless provided\n" @@ -8241,14 +9707,14 @@ msgid "" "can use their Kerberos accounts." msgstr "" -#: ipalib/plugins/migration.py:730 +#: ipalib/plugins/migration.py:748 #, python-format msgid "" "%(container)s LDAP search did not return any result (search base: " "%(search_base)s, objectclass: %(objectclass)s)" msgstr "" -#: ipalib/plugins/migration.py:762 ipalib/plugins/user.py:759 +#: ipalib/plugins/migration.py:780 ipalib/plugins/user.py:471 msgid "Default group for new users not found" msgstr "" @@ -8333,91 +9799,172 @@ msgstr "" msgid "netgroups" msgstr "" -#: ipalib/plugins/netgroup.py:165 +#: ipalib/plugins/netgroup.py:175 msgid "Netgroups" msgstr "" -#: ipalib/plugins/netgroup.py:166 +#: ipalib/plugins/netgroup.py:176 msgid "Netgroup" msgstr "" -#: ipalib/plugins/netgroup.py:173 +#: ipalib/plugins/netgroup.py:183 msgid "Netgroup name" msgstr "" -#: ipalib/plugins/netgroup.py:180 +#: ipalib/plugins/netgroup.py:190 msgid "Netgroup description" msgstr "" -#: ipalib/plugins/netgroup.py:186 +#: ipalib/plugins/netgroup.py:196 msgid "NIS domain name" msgstr "" -#: ipalib/plugins/netgroup.py:191 +#: ipalib/plugins/netgroup.py:201 msgid "IPA unique ID" msgstr "" -#: ipalib/plugins/netgroup.py:212 +#: ipalib/plugins/netgroup.py:222 msgid "Add a new netgroup." msgstr "" -#: ipalib/plugins/netgroup.py:215 +#: ipalib/plugins/netgroup.py:225 #, python-format msgid "Added netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/netgroup.py:217 +#: ipalib/plugins/netgroup.py:227 #, python-format msgid "" "hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " "common namespace" msgstr "" -#: ipalib/plugins/netgroup.py:248 +#: ipalib/plugins/netgroup.py:258 msgid "Delete a netgroup." msgstr "" -#: ipalib/plugins/netgroup.py:250 +#: ipalib/plugins/netgroup.py:260 #, python-format msgid "Deleted netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/netgroup.py:256 +#: ipalib/plugins/netgroup.py:266 msgid "Modify a netgroup." msgstr "" -#: ipalib/plugins/netgroup.py:259 +#: ipalib/plugins/netgroup.py:269 #, python-format msgid "Modified netgroup \"%(value)s\"" msgstr "" -#: ipalib/plugins/netgroup.py:277 +#: ipalib/plugins/netgroup.py:287 msgid "Search for a netgroup." msgstr "" -#: ipalib/plugins/netgroup.py:282 +#: ipalib/plugins/netgroup.py:292 #, python-format msgid "%(count)d netgroup matched" msgid_plural "%(count)d netgroups matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/netgroup.py:292 +#: ipalib/plugins/netgroup.py:302 msgid "search for managed groups" msgstr "" -#: ipalib/plugins/netgroup.py:314 +#: ipalib/plugins/netgroup.py:324 msgid "Display information about a netgroup." msgstr "" -#: ipalib/plugins/netgroup.py:321 +#: ipalib/plugins/netgroup.py:331 msgid "Add members to a netgroup." msgstr "" -#: ipalib/plugins/netgroup.py:343 +#: ipalib/plugins/netgroup.py:353 msgid "Remove members from a netgroup." msgstr "" +#: ipalib/plugins/otpconfig.py:24 +msgid "" +"\n" +"OTP configuration\n" +"\n" +"Manage the default values that IPA uses for OTP tokens.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Show basic OTP configuration:\n" +" ipa otpconfig-show\n" +"\n" +" Show all OTP configuration options:\n" +" ipa otpconfig-show --all\n" +"\n" +" Change maximum TOTP authentication window to 10 minutes:\n" +" ipa otpconfig-mod --totp-auth-window=600\n" +"\n" +" Change maximum TOTP synchronization window to 12 hours:\n" +" ipa otpconfig-mod --totp-sync-window=43200\n" +"\n" +" Change maximum HOTP authentication window to 5:\n" +" ipa hotpconfig-mod --hotp-auth-window=5\n" +"\n" +" Change maximum HOTP synchronization window to 50:\n" +" ipa hotpconfig-mod --hotp-sync-window=50\n" +msgstr "" + +#: ipalib/plugins/otpconfig.py:52 ipalib/plugins/otptoken.py:64 +#: ipalib/plugins/otptoken_yubikey.py:47 +msgid "One time password commands" +msgstr "" + +#: ipalib/plugins/otpconfig.py:57 +msgid "OTP configuration options" +msgstr "" + +#: ipalib/plugins/otpconfig.py:80 ipalib/plugins/otpconfig.py:81 +msgid "OTP Configuration" +msgstr "" + +#: ipalib/plugins/otpconfig.py:86 +msgid "TOTP authentication Window" +msgstr "" + +#: ipalib/plugins/otpconfig.py:87 +msgid "TOTP authentication time variance (seconds)" +msgstr "" + +#: ipalib/plugins/otpconfig.py:92 +msgid "TOTP Synchronization Window" +msgstr "" + +#: ipalib/plugins/otpconfig.py:93 +msgid "TOTP synchronization time variance (seconds)" +msgstr "" + +#: ipalib/plugins/otpconfig.py:98 +msgid "HOTP Authentication Window" +msgstr "" + +#: ipalib/plugins/otpconfig.py:99 +msgid "HOTP authentication skip-ahead" +msgstr "" + +#: ipalib/plugins/otpconfig.py:104 +msgid "HOTP Synchronization Window" +msgstr "" + +#: ipalib/plugins/otpconfig.py:105 +msgid "HOTP synchronization skip-ahead" +msgstr "" + +#: ipalib/plugins/otpconfig.py:116 +msgid "Modify OTP configuration options." +msgstr "" + +#: ipalib/plugins/otpconfig.py:121 +msgid "Show the current OTP configuration." +msgstr "" + #: ipalib/plugins/otptoken.py:39 msgid "" "\n" @@ -8466,183 +10013,239 @@ msgid "" " ipa otptoken-del a93db710-a31a-4639-8647-f15b2c70b78a\n" msgstr "" -#: ipalib/plugins/otptoken.py:113 +#: ipalib/plugins/otptoken.py:132 msgid "OTP token" msgstr "" -#: ipalib/plugins/otptoken.py:114 +#: ipalib/plugins/otptoken.py:133 msgid "OTP tokens" msgstr "" -#: ipalib/plugins/otptoken.py:130 +#: ipalib/plugins/otptoken.py:149 msgid "OTP Tokens" msgstr "" -#: ipalib/plugins/otptoken.py:131 +#: ipalib/plugins/otptoken.py:150 msgid "OTP Token" msgstr "" -#: ipalib/plugins/otptoken.py:136 ipalib/plugins/otptoken_yubikey.py:53 +#: ipalib/plugins/otptoken.py:155 ipalib/plugins/otptoken_yubikey.py:57 msgid "Unique ID" msgstr "" -#: ipalib/plugins/otptoken.py:153 +#: ipalib/plugins/otptoken.py:161 +msgid "Type of the token" +msgstr "" + +#: ipalib/plugins/otptoken.py:170 +msgid "Token description (informational only)" +msgstr "" + +#: ipalib/plugins/otptoken.py:174 msgid "Owner" msgstr "" -#: ipalib/plugins/otptoken.py:156 ipalib/plugins/user.py:560 -msgid "Manager" +#: ipalib/plugins/otptoken.py:175 +msgid "Assigned user of the token (default: self)" msgstr "" -#: ipalib/plugins/otptoken.py:161 -msgid "Disabled state" +#: ipalib/plugins/otptoken.py:179 +msgid "Assigned manager of the token (default: self)" msgstr "" -#: ipalib/plugins/otptoken.py:165 +#: ipalib/plugins/otptoken.py:185 +msgid "Mark the token as disabled (default: false)" +msgstr "" + +#: ipalib/plugins/otptoken.py:189 msgid "Validity start" msgstr "" -#: ipalib/plugins/otptoken.py:169 +#: ipalib/plugins/otptoken.py:190 +msgid "First date/time the token can be used" +msgstr "" + +#: ipalib/plugins/otptoken.py:194 msgid "Validity end" msgstr "" -#: ipalib/plugins/otptoken.py:173 +#: ipalib/plugins/otptoken.py:195 +msgid "Last date/time the token can be used" +msgstr "" + +#: ipalib/plugins/otptoken.py:199 msgid "Vendor" msgstr "" -#: ipalib/plugins/otptoken.py:179 +#: ipalib/plugins/otptoken.py:200 +msgid "Token vendor name (informational only)" +msgstr "" + +#: ipalib/plugins/otptoken.py:204 msgid "Model" msgstr "" -#: ipalib/plugins/otptoken.py:185 +#: ipalib/plugins/otptoken.py:205 +msgid "Token model (informational only)" +msgstr "" + +#: ipalib/plugins/otptoken.py:209 msgid "Serial" msgstr "" -#: ipalib/plugins/otptoken.py:206 +#: ipalib/plugins/otptoken.py:210 +msgid "Token serial (informational only)" +msgstr "" + +#: ipalib/plugins/otptoken.py:215 +msgid "Token secret (Base32; default: random)" +msgstr "" + +#: ipalib/plugins/otptoken.py:223 +msgid "Token hash algorithm" +msgstr "" + +#: ipalib/plugins/otptoken.py:231 msgid "Digits" msgstr "" -#: ipalib/plugins/otptoken.py:214 +#: ipalib/plugins/otptoken.py:232 +msgid "Number of digits each token code will have" +msgstr "" + +#: ipalib/plugins/otptoken.py:240 msgid "Clock offset" msgstr "" -#: ipalib/plugins/otptoken.py:221 +#: ipalib/plugins/otptoken.py:241 +msgid "TOTP token / FreeIPA server time difference" +msgstr "" + +#: ipalib/plugins/otptoken.py:248 msgid "Clock interval" msgstr "" -#: ipalib/plugins/otptoken.py:229 +#: ipalib/plugins/otptoken.py:249 +msgid "Length of TOTP token code validity" +msgstr "" + +#: ipalib/plugins/otptoken.py:257 msgid "Counter" msgstr "" -#: ipalib/plugins/otptoken.py:240 +#: ipalib/plugins/otptoken.py:258 +msgid "Initial counter for the HOTP token" +msgstr "" + +#: ipalib/plugins/otptoken.py:269 msgid "Add a new OTP token." msgstr "" -#: ipalib/plugins/otptoken.py:241 +#: ipalib/plugins/otptoken.py:270 #, python-format msgid "Added OTP token \"%(value)s\"" msgstr "" -#: ipalib/plugins/otptoken.py:244 -msgid "Display QR code (requires wide terminal)" +#: ipalib/plugins/otptoken.py:273 +msgid "(deprecated)" msgstr "" -#: ipalib/plugins/otptoken.py:248 +#: ipalib/plugins/otptoken.py:274 +msgid "Do not display QR code" +msgstr "" + +#: ipalib/plugins/otptoken.py:278 msgid "URI" msgstr "" -#: ipalib/plugins/otptoken.py:329 +#: ipalib/plugins/otptoken.py:367 msgid "Delete an OTP token." msgstr "" -#: ipalib/plugins/otptoken.py:330 +#: ipalib/plugins/otptoken.py:368 #, python-format msgid "Deleted OTP token \"%(value)s\"" msgstr "" -#: ipalib/plugins/otptoken.py:335 +#: ipalib/plugins/otptoken.py:373 msgid "Modify a OTP token." msgstr "" -#: ipalib/plugins/otptoken.py:336 +#: ipalib/plugins/otptoken.py:374 #, python-format msgid "Modified OTP token \"%(value)s\"" msgstr "" -#: ipalib/plugins/otptoken.py:349 +#: ipalib/plugins/otptoken.py:422 msgid "Search for OTP token." msgstr "" -#: ipalib/plugins/otptoken.py:350 +#: ipalib/plugins/otptoken.py:423 #, python-format msgid "%(count)d OTP token matched" msgid_plural "%(count)d OTP tokens matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/otptoken.py:376 +#: ipalib/plugins/otptoken.py:451 msgid "Display information about an OTP token." msgstr "" -#: ipalib/plugins/otptoken.py:384 +#: ipalib/plugins/otptoken.py:464 msgid "Add users that can manage this token." msgstr "" -#: ipalib/plugins/otptoken.py:436 +#: ipalib/plugins/otptoken.py:516 msgid "Synchronize an OTP token." msgstr "" -#: ipalib/plugins/otptoken.py:441 +#: ipalib/plugins/otptoken.py:521 msgid "User ID" msgstr "" -#: ipalib/plugins/otptoken.py:443 +#: ipalib/plugins/otptoken.py:523 msgid "First Code" msgstr "" -#: ipalib/plugins/otptoken.py:444 +#: ipalib/plugins/otptoken.py:524 msgid "Second Code" msgstr "" -#: ipalib/plugins/otptoken_yubikey.py:30 +#: ipalib/plugins/otptoken_yubikey.py:31 msgid "" "\n" "YubiKey Tokens\n" msgstr "" -#: ipalib/plugins/otptoken_yubikey.py:32 +#: ipalib/plugins/otptoken_yubikey.py:33 msgid "" "\n" "Manage YubiKey tokens.\n" msgstr "" -#: ipalib/plugins/otptoken_yubikey.py:34 +#: ipalib/plugins/otptoken_yubikey.py:35 msgid "" "\n" "This code is an extension to the otptoken plugin and provides support for\n" "reading/writing YubiKey tokens directly.\n" msgstr "" -#: ipalib/plugins/otptoken_yubikey.py:39 +#: ipalib/plugins/otptoken_yubikey.py:40 msgid "" "\n" " Add a new token:\n" " ipa otptoken-add-yubikey --owner=jdoe --desc=\"My YubiKey\"\n" msgstr "" -#: ipalib/plugins/otptoken_yubikey.py:48 +#: ipalib/plugins/otptoken_yubikey.py:52 msgid "Add a new YubiKey OTP token." msgstr "" -#: ipalib/plugins/otptoken_yubikey.py:61 +#: ipalib/plugins/otptoken_yubikey.py:65 msgid "YubiKey slot" msgstr "" -#: ipalib/plugins/otptoken_yubikey.py:85 -msgid "No YubiKey found" -msgstr "" - -#: ipalib/plugins/otptoken_yubikey.py:95 +#: ipalib/plugins/otptoken_yubikey.py:101 msgid "No free YubiKey slot!" msgstr "" @@ -8815,7 +10418,7 @@ msgstr "" msgid "\"%s\" is not an object type" msgstr "" -#: ipalib/plugins/permission.py:147 ipalib/plugins/permission.py:837 +#: ipalib/plugins/permission.py:147 ipalib/plugins/permission.py:875 #, python-format msgid "\"%s\" is not a valid permission type" msgstr "" @@ -8840,230 +10443,261 @@ msgstr "" msgid "Rights to grant (read, search, compare, write, add, delete, all)" msgstr "" -#: ipalib/plugins/permission.py:241 +#: ipalib/plugins/permission.py:242 msgid "Effective attributes" msgstr "" -#: ipalib/plugins/permission.py:242 +#: ipalib/plugins/permission.py:243 msgid "All attributes to which the permission applies" msgstr "" -#: ipalib/plugins/permission.py:247 +#: ipalib/plugins/permission.py:248 msgid "Included attributes" msgstr "" -#: ipalib/plugins/permission.py:248 +#: ipalib/plugins/permission.py:249 msgid "User-specified attributes to which the permission applies" msgstr "" -#: ipalib/plugins/permission.py:253 +#: ipalib/plugins/permission.py:254 msgid "Excluded attributes" msgstr "" -#: ipalib/plugins/permission.py:254 +#: ipalib/plugins/permission.py:255 msgid "" "User-specified attributes to which the permission explicitly does not apply" msgstr "" -#: ipalib/plugins/permission.py:260 +#: ipalib/plugins/permission.py:261 msgid "Default attributes" msgstr "" -#: ipalib/plugins/permission.py:261 +#: ipalib/plugins/permission.py:262 msgid "Attributes to which the permission applies by default" msgstr "" -#: ipalib/plugins/permission.py:267 ipalib/plugins/permission.py:268 +#: ipalib/plugins/permission.py:268 ipalib/plugins/permission.py:269 msgid "Bind rule type" msgstr "" -#: ipalib/plugins/permission.py:278 +#: ipalib/plugins/permission.py:279 msgid "Subtree to apply permissions to" msgstr "" -#: ipalib/plugins/permission.py:284 ipalib/plugins/permission.py:285 +#: ipalib/plugins/permission.py:285 ipalib/plugins/permission.py:286 msgid "Extra target filter" msgstr "" -#: ipalib/plugins/permission.py:291 +#: ipalib/plugins/permission.py:292 msgid "Raw target filter" msgstr "" -#: ipalib/plugins/permission.py:292 +#: ipalib/plugins/permission.py:293 msgid "All target filters, including those implied by type and memberof" msgstr "" -#: ipalib/plugins/permission.py:299 -msgid "ACI target DN" +#: ipalib/plugins/permission.py:300 +msgid "Target DN" msgstr "" -#: ipalib/plugins/permission.py:304 +#: ipalib/plugins/permission.py:301 +msgid "" +"Optional DN to apply the permission to (must be in the subtree, but may not " +"yet exist)" +msgstr "" + +#: ipalib/plugins/permission.py:308 +msgid "Target DN subtree" +msgstr "" + +#: ipalib/plugins/permission.py:309 +msgid "" +"Optional DN subtree where an entry can be moved to (must be in the subtree, " +"but may not yet exist)" +msgstr "" + +#: ipalib/plugins/permission.py:316 +msgid "Origin DN subtree" +msgstr "" + +#: ipalib/plugins/permission.py:317 +msgid "" +"Optional DN subtree from where an entry can be moved (must be in the " +"subtree, but may not yet exist)" +msgstr "" + +#: ipalib/plugins/permission.py:322 msgid "Member of group" msgstr "" -#: ipalib/plugins/permission.py:305 +#: ipalib/plugins/permission.py:323 msgid "Target members of a group (sets memberOf targetfilter)" msgstr "" -#: ipalib/plugins/permission.py:310 +#: ipalib/plugins/permission.py:328 msgid "User group to apply permissions to (sets target)" msgstr "" -#: ipalib/plugins/permission.py:316 +#: ipalib/plugins/permission.py:334 msgid "Type of IPA object (sets subtree and objectClass targetfilter)" msgstr "" -#: ipalib/plugins/permission.py:322 +#: ipalib/plugins/permission.py:340 #, python-format msgid "Deprecated; use %s" msgstr "" -#: ipalib/plugins/permission.py:333 +#: ipalib/plugins/permission.py:351 #, python-format msgid "Permission with unknown flag %s may not be modified or removed" msgstr "" -#: ipalib/plugins/permission.py:337 +#: ipalib/plugins/permission.py:355 msgid "A SYSTEM permission may not be modified or removed" msgstr "" -#: ipalib/plugins/permission.py:565 +#: ipalib/plugins/permission.py:603 #, python-format msgid "Entry %s not found" msgstr "" -#: ipalib/plugins/permission.py:656 +#: ipalib/plugins/permission.py:694 #, python-format msgid "The ACI for permission %(name)s was not found in %(dn)s " msgstr "" -#: ipalib/plugins/permission.py:760 +#: ipalib/plugins/permission.py:798 msgid "" "cannot specify full target filter and extra target filter simultaneously" msgstr "" -#: ipalib/plugins/permission.py:783 +#: ipalib/plugins/permission.py:821 #, python-format msgid "option was renamed; use %s" msgstr "" -#: ipalib/plugins/permission.py:787 +#: ipalib/plugins/permission.py:825 #, python-format msgid "Cannot use %(old_name)s with %(new_name)s" msgstr "" -#: ipalib/plugins/permission.py:801 ipalib/plugins/permission.py:816 +#: ipalib/plugins/permission.py:839 ipalib/plugins/permission.py:854 #, python-format msgid "%s: group not found" msgstr "" -#: ipalib/plugins/permission.py:811 +#: ipalib/plugins/permission.py:849 msgid "target and targetgroup are mutually exclusive" msgstr "" -#: ipalib/plugins/permission.py:832 +#: ipalib/plugins/permission.py:870 msgid "subtree and type are mutually exclusive" msgstr "" -#: ipalib/plugins/permission.py:868 +#: ipalib/plugins/permission.py:906 msgid "Bad search filter" msgstr "" -#: ipalib/plugins/permission.py:878 +#: ipalib/plugins/permission.py:916 #, python-format msgid "Entry %s does not exist" msgstr "" -#: ipalib/plugins/permission.py:887 +#: ipalib/plugins/permission.py:925 msgid "" "there must be at least one target entry specifier (e.g. target, " "targetfilter, attrs)" msgstr "" -#: ipalib/plugins/permission.py:897 +#: ipalib/plugins/permission.py:935 msgid "Add a system permission without an ACI (internal command)" msgstr "" -#: ipalib/plugins/permission.py:899 ipalib/plugins/permission.py:930 +#: ipalib/plugins/permission.py:937 ipalib/plugins/permission.py:968 #, python-format msgid "Added permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/permission.py:905 +#: ipalib/plugins/permission.py:943 msgid "Permission flags" msgstr "" -#: ipalib/plugins/permission.py:928 +#: ipalib/plugins/permission.py:966 msgid "Add a new permission." msgstr "" -#: ipalib/plugins/permission.py:956 +#: ipalib/plugins/permission.py:994 msgid "attrs and included attributes are mutually exclusive" msgstr "" -#: ipalib/plugins/permission.py:990 +#: ipalib/plugins/permission.py:1026 +#, python-format +msgid "Cannot store permission ACI to %s" +msgstr "" + +#: ipalib/plugins/permission.py:1035 msgid "Delete a permission." msgstr "" -#: ipalib/plugins/permission.py:992 +#: ipalib/plugins/permission.py:1037 #, python-format msgid "Deleted permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/permission.py:998 +#: ipalib/plugins/permission.py:1043 msgid "force delete of SYSTEM permissions" msgstr "" -#: ipalib/plugins/permission.py:1012 +#: ipalib/plugins/permission.py:1057 msgid "cannot delete managed permissions" msgstr "" -#: ipalib/plugins/permission.py:1018 +#: ipalib/plugins/permission.py:1063 #, python-format msgid "ACI of permission %s was not found" msgstr "" -#: ipalib/plugins/permission.py:1025 +#: ipalib/plugins/permission.py:1070 msgid "Modify a permission." msgstr "" -#: ipalib/plugins/permission.py:1027 +#: ipalib/plugins/permission.py:1072 #, python-format msgid "Modified permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/permission.py:1061 +#: ipalib/plugins/permission.py:1106 msgid "cannot rename managed permissions" msgstr "" -#: ipalib/plugins/permission.py:1068 ipalib/plugins/permission.py:1072 +#: ipalib/plugins/permission.py:1113 ipalib/plugins/permission.py:1117 msgid "not modifiable on managed permissions" msgstr "" -#: ipalib/plugins/permission.py:1079 +#: ipalib/plugins/permission.py:1124 msgid "only available on managed permissions" msgstr "" -#: ipalib/plugins/permission.py:1086 ipalib/plugins/permission.py:1206 +#: ipalib/plugins/permission.py:1131 ipalib/plugins/permission.py:1251 msgid "attrs and included/excluded attributes are mutually exclusive" msgstr "" -#: ipalib/plugins/permission.py:1097 +#: ipalib/plugins/permission.py:1142 msgid "cannot set bindtype for a permission that is assigned to a privilege" msgstr "" -#: ipalib/plugins/permission.py:1191 +#: ipalib/plugins/permission.py:1236 msgid "Search for permissions." msgstr "" -#: ipalib/plugins/permission.py:1194 +#: ipalib/plugins/permission.py:1239 #, python-format msgid "%(count)d permission matched" msgid_plural "%(count)d permissions matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/permission.py:1321 +#: ipalib/plugins/permission.py:1366 msgid "Display information about a permission." msgstr "" @@ -9307,127 +10941,127 @@ msgstr "" msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" msgstr "" -#: ipalib/plugins/pwpolicy.py:214 +#: ipalib/plugins/pwpolicy.py:219 msgid "password policy" msgstr "" -#: ipalib/plugins/pwpolicy.py:215 +#: ipalib/plugins/pwpolicy.py:220 msgid "password policies" msgstr "" -#: ipalib/plugins/pwpolicy.py:284 +#: ipalib/plugins/pwpolicy.py:289 msgid "Max failures" msgstr "" -#: ipalib/plugins/pwpolicy.py:285 +#: ipalib/plugins/pwpolicy.py:290 msgid "Consecutive failures before lockout" msgstr "" -#: ipalib/plugins/pwpolicy.py:290 +#: ipalib/plugins/pwpolicy.py:295 msgid "Failure reset interval" msgstr "" -#: ipalib/plugins/pwpolicy.py:291 +#: ipalib/plugins/pwpolicy.py:296 msgid "Period after which failure count will be reset (seconds)" msgstr "" -#: ipalib/plugins/pwpolicy.py:296 +#: ipalib/plugins/pwpolicy.py:301 msgid "Lockout duration" msgstr "" -#: ipalib/plugins/pwpolicy.py:297 +#: ipalib/plugins/pwpolicy.py:302 msgid "Period for which lockout is enforced (seconds)" msgstr "" -#: ipalib/plugins/pwpolicy.py:302 +#: ipalib/plugins/pwpolicy.py:307 msgid "Password Policies" msgstr "" -#: ipalib/plugins/pwpolicy.py:308 +#: ipalib/plugins/pwpolicy.py:313 msgid "Group" msgstr "" -#: ipalib/plugins/pwpolicy.py:309 +#: ipalib/plugins/pwpolicy.py:314 msgid "Manage password policy for specific group" msgstr "" -#: ipalib/plugins/pwpolicy.py:314 +#: ipalib/plugins/pwpolicy.py:319 msgid "Max lifetime (days)" msgstr "" -#: ipalib/plugins/pwpolicy.py:315 +#: ipalib/plugins/pwpolicy.py:320 msgid "Maximum password lifetime (in days)" msgstr "" -#: ipalib/plugins/pwpolicy.py:321 +#: ipalib/plugins/pwpolicy.py:326 msgid "Min lifetime (hours)" msgstr "" -#: ipalib/plugins/pwpolicy.py:322 +#: ipalib/plugins/pwpolicy.py:327 msgid "Minimum password lifetime (in hours)" msgstr "" -#: ipalib/plugins/pwpolicy.py:327 +#: ipalib/plugins/pwpolicy.py:332 msgid "History size" msgstr "" -#: ipalib/plugins/pwpolicy.py:328 +#: ipalib/plugins/pwpolicy.py:333 msgid "Password history size" msgstr "" -#: ipalib/plugins/pwpolicy.py:333 +#: ipalib/plugins/pwpolicy.py:338 msgid "Character classes" msgstr "" -#: ipalib/plugins/pwpolicy.py:334 +#: ipalib/plugins/pwpolicy.py:339 msgid "Minimum number of character classes" msgstr "" -#: ipalib/plugins/pwpolicy.py:340 +#: ipalib/plugins/pwpolicy.py:345 msgid "Min length" msgstr "" -#: ipalib/plugins/pwpolicy.py:341 +#: ipalib/plugins/pwpolicy.py:346 msgid "Minimum length of password" msgstr "" -#: ipalib/plugins/pwpolicy.py:347 +#: ipalib/plugins/pwpolicy.py:352 msgid "Priority of the policy (higher number means lower priority" msgstr "" -#: ipalib/plugins/pwpolicy.py:401 +#: ipalib/plugins/pwpolicy.py:406 msgid "Maximum password life must be greater than minimum." msgstr "" -#: ipalib/plugins/pwpolicy.py:419 +#: ipalib/plugins/pwpolicy.py:424 msgid "Add a new group password policy." msgstr "" -#: ipalib/plugins/pwpolicy.py:445 +#: ipalib/plugins/pwpolicy.py:450 msgid "Delete a group password policy." msgstr "" -#: ipalib/plugins/pwpolicy.py:457 +#: ipalib/plugins/pwpolicy.py:462 msgid "cannot delete global password policy" msgstr "" -#: ipalib/plugins/pwpolicy.py:472 +#: ipalib/plugins/pwpolicy.py:477 msgid "Modify a group password policy." msgstr "" -#: ipalib/plugins/pwpolicy.py:483 +#: ipalib/plugins/pwpolicy.py:488 msgid "priority cannot be set on global policy" msgstr "" -#: ipalib/plugins/pwpolicy.py:515 +#: ipalib/plugins/pwpolicy.py:520 msgid "Display information about password policy." msgstr "" -#: ipalib/plugins/pwpolicy.py:520 +#: ipalib/plugins/pwpolicy.py:525 msgid "Display effective policy for a specific user" msgstr "" -#: ipalib/plugins/pwpolicy.py:544 +#: ipalib/plugins/pwpolicy.py:549 msgid "Search for group password policies." msgstr "" @@ -9518,10 +11152,6 @@ msgstr "" msgid "A description of this RADIUS proxy server" msgstr "" -#: ipalib/plugins/radiusproxy.py:114 ipalib/plugins/user.py:101 -msgid "Server" -msgstr "" - #: ipalib/plugins/radiusproxy.py:115 msgid "The hostname or IP (with or without port)" msgstr "" @@ -9714,81 +11344,81 @@ msgstr "" msgid "roles" msgstr "" -#: ipalib/plugins/role.py:129 +#: ipalib/plugins/role.py:131 msgid "Role" msgstr "" -#: ipalib/plugins/role.py:134 +#: ipalib/plugins/role.py:136 msgid "Role name" msgstr "" -#: ipalib/plugins/role.py:140 +#: ipalib/plugins/role.py:142 msgid "A description of this role-group" msgstr "" -#: ipalib/plugins/role.py:148 +#: ipalib/plugins/role.py:150 msgid "Add a new role." msgstr "" -#: ipalib/plugins/role.py:150 +#: ipalib/plugins/role.py:152 #, python-format msgid "Added role \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:156 +#: ipalib/plugins/role.py:158 msgid "Delete a role." msgstr "" -#: ipalib/plugins/role.py:158 +#: ipalib/plugins/role.py:160 #, python-format msgid "Deleted role \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:164 +#: ipalib/plugins/role.py:166 msgid "Modify a role." msgstr "" -#: ipalib/plugins/role.py:166 +#: ipalib/plugins/role.py:168 #, python-format msgid "Modified role \"%(value)s\"" msgstr "" -#: ipalib/plugins/role.py:172 +#: ipalib/plugins/role.py:174 msgid "Search for roles." msgstr "" -#: ipalib/plugins/role.py:175 +#: ipalib/plugins/role.py:177 #, python-format msgid "%(count)d role matched" msgid_plural "%(count)d roles matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/role.py:182 +#: ipalib/plugins/role.py:184 msgid "Display information about a role." msgstr "" -#: ipalib/plugins/role.py:188 +#: ipalib/plugins/role.py:190 msgid "Add members to a role." msgstr "" -#: ipalib/plugins/role.py:194 +#: ipalib/plugins/role.py:196 msgid "Remove members from a role." msgstr "" -#: ipalib/plugins/role.py:200 +#: ipalib/plugins/role.py:202 msgid "Add privileges to a role." msgstr "" -#: ipalib/plugins/role.py:215 +#: ipalib/plugins/role.py:217 msgid "Number of privileges added" msgstr "" -#: ipalib/plugins/role.py:223 +#: ipalib/plugins/role.py:225 msgid "Remove privileges from a role." msgstr "" -#: ipalib/plugins/role.py:238 +#: ipalib/plugins/role.py:240 msgid "Number of privileges removed" msgstr "" @@ -10073,6 +11703,96 @@ msgstr "" msgid "Remove target hosts and hostgroups from an SELinux User Map rule." msgstr "" +#: ipalib/plugins/server.py:15 +msgid "" +"\n" +"IPA servers\n" +msgstr "" + +#: ipalib/plugins/server.py:17 +msgid "" +"\n" +"Get information about installed IPA servers.\n" +msgstr "" + +#: ipalib/plugins/server.py:21 +msgid "" +"\n" +" Find all servers:\n" +" ipa server-find\n" +msgstr "" + +#: ipalib/plugins/server.py:24 +msgid "" +"\n" +" Show specific server:\n" +" ipa server-show ipa.example.com\n" +msgstr "" + +#: ipalib/plugins/server.py:38 +msgid "server" +msgstr "" + +#: ipalib/plugins/server.py:39 +msgid "servers" +msgstr "" + +#: ipalib/plugins/server.py:45 +msgid "IPA Servers" +msgstr "" + +#: ipalib/plugins/server.py:52 +msgid "Server name" +msgstr "" + +#: ipalib/plugins/server.py:53 +msgid "IPA server hostname" +msgstr "" + +#: ipalib/plugins/server.py:58 +msgid "Managed suffix" +msgstr "" + +#: ipalib/plugins/server.py:63 +msgid "Min domain level" +msgstr "" + +#: ipalib/plugins/server.py:64 +msgid "Minimum domain level" +msgstr "" + +#: ipalib/plugins/server.py:70 +msgid "Max domain level" +msgstr "" + +#: ipalib/plugins/server.py:71 +msgid "Maximum domain level" +msgstr "" + +#: ipalib/plugins/server.py:79 +msgid "Search for IPA servers." +msgstr "" + +#: ipalib/plugins/server.py:82 +#, python-format +msgid "%(count)d IPA server matched" +msgid_plural "%(count)d IPA servers matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/server.py:89 +msgid "Show IPA server." +msgstr "" + +#: ipalib/plugins/server.py:94 +msgid "Delete IPA server." +msgstr "" + +#: ipalib/plugins/server.py:96 +#, python-format +msgid "Deleted IPA server \"%(value)s\"" +msgstr "" + #: ipalib/plugins/service.py:36 msgid "" "\n" @@ -10129,6 +11849,17 @@ msgid "" "\n" " Request a certificate for an IPA service:\n" " ipa cert-request --principal=HTTP/web.example.com example.csr\n" +msgstr "" + +#: ipalib/plugins/service.py:89 +msgid "" +"\n" +" Allow user to create a keytab:\n" +" ipa service-allow-create-keytab HTTP/web.example.com --users=tuser1\n" +msgstr "" + +#: ipalib/plugins/service.py:92 +msgid "" "\n" " Generate and retrieve a keytab for an IPA service:\n" " ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/" @@ -10136,132 +11867,523 @@ msgid "" "\n" msgstr "" -#: ipalib/plugins/service.py:136 +#: ipalib/plugins/service.py:169 msgid "Requires pre-authentication" msgstr "" -#: ipalib/plugins/service.py:137 +#: ipalib/plugins/service.py:170 msgid "Pre-authentication is required for the service" msgstr "" -#: ipalib/plugins/service.py:142 +#: ipalib/plugins/service.py:175 msgid "Trusted for delegation" msgstr "" -#: ipalib/plugins/service.py:143 +#: ipalib/plugins/service.py:176 msgid "Client credentials may be delegated to the service" msgstr "" -#: ipalib/plugins/service.py:162 -msgid "missing service" +#: ipalib/plugins/service.py:196 +msgid "unable to determine service" msgstr "" -#: ipalib/plugins/service.py:166 +#: ipalib/plugins/service.py:200 msgid "blank service" msgstr "" -#: ipalib/plugins/service.py:170 +#: ipalib/plugins/service.py:208 msgid "unable to determine realm" msgstr "" -#: ipalib/plugins/service.py:243 +#: ipalib/plugins/service.py:225 +msgid "missing service" +msgstr "" + +#: ipalib/plugins/service.py:287 msgid "This principal is required by the IPA master" msgstr "" -#: ipalib/plugins/service.py:299 +#: ipalib/plugins/service.py:360 msgid "service" msgstr "" -#: ipalib/plugins/service.py:300 +#: ipalib/plugins/service.py:361 msgid "services" msgstr "" -#: ipalib/plugins/service.py:372 +#: ipalib/plugins/service.py:447 msgid "Service principal" msgstr "" -#: ipalib/plugins/service.py:384 +#: ipalib/plugins/service.py:459 msgid "PAC type" msgstr "" -#: ipalib/plugins/service.py:385 +#: ipalib/plugins/service.py:460 msgid "" "Override default list of supported PAC types. Use 'NONE' to disable PAC " "support for this service, e.g. this might be necessary for NFS services." msgstr "" -#: ipalib/plugins/service.py:406 +#: ipalib/plugins/service.py:481 msgid "NONE value cannot be combined with other PAC types" msgstr "" -#: ipalib/plugins/service.py:412 +#: ipalib/plugins/service.py:490 msgid "Add a new IPA new service." msgstr "" -#: ipalib/plugins/service.py:414 +#: ipalib/plugins/service.py:492 #, python-format msgid "Added service \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:420 +#: ipalib/plugins/service.py:498 msgid "force principal name even if not in DNS" msgstr "" -#: ipalib/plugins/service.py:434 +#: ipalib/plugins/service.py:512 #, python-format msgid "The host '%s' does not exist to add a service to." msgstr "" -#: ipalib/plugins/service.py:474 +#: ipalib/plugins/service.py:553 msgid "Delete an IPA service." msgstr "" -#: ipalib/plugins/service.py:476 +#: ipalib/plugins/service.py:555 #, python-format msgid "Deleted service \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:519 +#: ipalib/plugins/service.py:596 msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/service.py:521 +#: ipalib/plugins/service.py:598 #, python-format msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:566 +#: ipalib/plugins/service.py:666 msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/service.py:569 +#: ipalib/plugins/service.py:669 #, python-format msgid "%(count)d service matched" msgid_plural "%(count)d services matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/service.py:603 +#: ipalib/plugins/service.py:704 msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/service.py:638 +#: ipalib/plugins/service.py:746 msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/service.py:647 +#: ipalib/plugins/service.py:755 msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/service.py:656 +#: ipalib/plugins/service.py:763 +msgid "" +"Allow users, groups, hosts or host groups to retrieve a keytab of this " +"service." +msgstr "" + +#: ipalib/plugins/service.py:782 +msgid "" +"Disallow users, groups, hosts or host groups to retrieve a keytab of this " +"service." +msgstr "" + +#: ipalib/plugins/service.py:800 +msgid "" +"Allow users, groups, hosts or host groups to create a keytab of this service." +msgstr "" + +#: ipalib/plugins/service.py:819 +msgid "" +"Disallow users, groups, hosts or host groups to create a keytab of this " +"service." +msgstr "" + +#: ipalib/plugins/service.py:837 msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/service.py:659 +#: ipalib/plugins/service.py:840 #, python-format msgid "Disabled service \"%(value)s\"" msgstr "" +#: ipalib/plugins/servicedelegation.py:12 +msgid "" +"\n" +"Service Constrained Delegation\n" +"\n" +"Manage rules to allow constrained delegation of credentials so\n" +"that a service can impersonate a user when communicating with another\n" +"service without requiring the user to actually forward their TGT.\n" +"This makes for a much better method of delegating credentials as it\n" +"prevents exposure of the short term secret of the user.\n" +"\n" +"The naming convention is to append the word \"target\" or \"targets\" to\n" +"a matching rule name. This is not mandatory but helps conceptually\n" +"to associate rules and targets.\n" +"\n" +"A rule consists of two things:\n" +" - A list of targets the rule applies to\n" +" - A list of memberPrincipals that are allowed to delegate for\n" +" those targets\n" +"\n" +"A target consists of a list of principals that can be delegated.\n" +"\n" +"In English, a rule says that this principal can delegate as this\n" +"list of principals, as defined by these targets.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new constrained delegation rule:\n" +" ipa servicedelegationrule-add ftp-delegation\n" +"\n" +" Add a new constrained delegation target:\n" +" ipa servicedelegationtarget-add ftp-delegation-target\n" +"\n" +" Add a principal to the rule:\n" +" ipa servicedelegationrule-add-member --principals=ftp/ipa.example." +"com ftp-delegation\n" +"\n" +" Add our target to the rule:\n" +" ipa servicedelegationrule-add-target --servicedelegationtargets=ftp-" +"delegation-target ftp-delegation\n" +"\n" +" Add a principal to the target:\n" +" ipa servicedelegationtarget-add-member --principals=ldap/ipa.example." +"com ftp-delegation-target\n" +"\n" +" Display information about a named delegation rule and target:\n" +" ipa servicedelegationrule_show ftp-delegation\n" +" ipa servicedelegationtarget_show ftp-delegation-target\n" +"\n" +" Remove a constrained delegation:\n" +" ipa servicedelegationrule-del ftp-delegation-target\n" +" ipa servicedelegationtarget-del ftp-delegation\n" +"\n" +"In this example the ftp service can get a TGT for the ldap service on\n" +"the bound user's behalf.\n" +"\n" +"It is strongly discouraged to modify the delegations that ship with\n" +"IPA, ipa-http-delegation and its targets ipa-cifs-delegation-targets and\n" +"ipa-ldap-delegation-targets. Incorrect changes can remove the ablity\n" +"to delegate, causing the framework to stop functioning.\n" +msgstr "" + +#: ipalib/plugins/servicedelegation.py:88 +msgid "Allowed Target" +msgstr "" + +#: ipalib/plugins/servicedelegation.py:92 +msgid "Allowed to Impersonate" +msgstr "" + +#: ipalib/plugins/servicedelegation.py:96 +msgid "Member principals" +msgstr "" + +#: ipalib/plugins/servicedelegation.py:104 +msgid "Failed targets" +msgstr "" + +#: ipalib/plugins/servicedelegation.py:168 +msgid "Add target to a named service delegation." +msgstr "" + +#: ipalib/plugins/servicedelegation.py:249 +msgid "Remove member from a named service delegation." +msgstr "" + +#: ipalib/plugins/servicedelegation.py:342 +#: ipalib/plugins/servicedelegation.py:375 +msgid "service delegation rule" +msgstr "" + +#: ipalib/plugins/servicedelegation.py:343 +msgid "service delegation rules" +msgstr "" + +#: ipalib/plugins/servicedelegation.py:354 +msgid "Service delegation rules" +msgstr "" + +#: ipalib/plugins/servicedelegation.py:355 +msgid "Service delegation rule" +msgstr "" + +#: ipalib/plugins/servicedelegation.py:360 +msgid "Create a new service delegation rule." +msgstr "" + +#: ipalib/plugins/servicedelegation.py:362 +#, python-format +msgid "Added service delegation rule \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/servicedelegation.py:367 +msgid "Delete service delegation." +msgstr "" + +#: ipalib/plugins/servicedelegation.py:369 +#, python-format +msgid "Deleted service delegation \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/servicedelegation.py:377 +msgid "privileged service delegation rule" +msgstr "" + +#: ipalib/plugins/servicedelegation.py:384 +msgid "Search for service delegations rule." +msgstr "" + +#: ipalib/plugins/servicedelegation.py:389 +#, python-format +msgid "%(count)d service delegation rule matched" +msgid_plural "%(count)d service delegation rules matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/servicedelegation.py:396 +msgid "Display information about a named service delegation rule." +msgstr "" + +#: ipalib/plugins/servicedelegation.py:403 +msgid "Add member to a named service delegation rule." +msgstr "" + +#: ipalib/plugins/servicedelegation.py:412 +msgid "Remove member from a named service delegation rule." +msgstr "" + +#: ipalib/plugins/servicedelegation.py:420 +msgid "Add target to a named service delegation rule." +msgstr "" + +#: ipalib/plugins/servicedelegation.py:431 +msgid "Remove target from a named service delegation rule." +msgstr "" + +#: ipalib/plugins/servicedelegation.py:441 +#: ipalib/plugins/servicedelegation.py:470 +msgid "service delegation target" +msgstr "" + +#: ipalib/plugins/servicedelegation.py:442 +msgid "service delegation targets" +msgstr "" + +#: ipalib/plugins/servicedelegation.py:449 +msgid "Service delegation targets" +msgstr "" + +#: ipalib/plugins/servicedelegation.py:450 +msgid "Service delegation target" +msgstr "" + +#: ipalib/plugins/servicedelegation.py:455 +msgid "Create a new service delegation target." +msgstr "" + +#: ipalib/plugins/servicedelegation.py:457 +#, python-format +msgid "Added service delegation target \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/servicedelegation.py:462 +msgid "Delete service delegation target." +msgstr "" + +#: ipalib/plugins/servicedelegation.py:464 +#, python-format +msgid "Deleted service delegation target \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/servicedelegation.py:472 +msgid "privileged service delegation target" +msgstr "" + +#: ipalib/plugins/servicedelegation.py:479 +msgid "Search for service delegation target." +msgstr "" + +#: ipalib/plugins/servicedelegation.py:484 +#, python-format +msgid "%(count)d service delegation target matched" +msgid_plural "%(count)d service delegation targets matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/servicedelegation.py:518 +msgid "Display information about a named service delegation target." +msgstr "" + +#: ipalib/plugins/servicedelegation.py:525 +msgid "Add member to a named service delegation target." +msgstr "" + +#: ipalib/plugins/servicedelegation.py:534 +msgid "Remove member from a named service delegation target." +msgstr "" + +#: ipalib/plugins/stageuser.py:48 +msgid "" +"\n" +"Stageusers\n" +"\n" +"Manage stage user entries.\n" +"\n" +"Stage user entries are directly under the container: \"cn=stage users,\n" +"cn=accounts, cn=provisioning, SUFFIX\".\n" +"User can not authenticate with those entries (even if the entries\n" +"contain credentials) and are candidate to become Active entries.\n" +"\n" +"Active user entries are Posix users directly under the container: " +"\"cn=accounts, SUFFIX\".\n" +"User can authenticate with Active entries, at the condition they have\n" +"credentials\n" +"\n" +"Delete user enties are Posix users directly under the container: " +"\"cn=deleted users,\n" +"cn=accounts, cn=provisioning, SUFFIX\".\n" +"User can not authenticate with those entries (even if the entries contain " +"credentials)\n" +"\n" +"The stage user container contains entries\n" +" - created by 'stageuser-add' commands that are Posix users\n" +" - created by external provisioning system\n" +"\n" +"A valid stage user entry MUST:\n" +" - entry RDN is 'uid'\n" +" - ipaUniqueID is 'autogenerate'\n" +"\n" +"IPA supports a wide range of username formats, but you need to be aware of " +"any\n" +"restrictions that may apply to your particular environment. For example,\n" +"usernames that start with a digit or usernames that exceed a certain length\n" +"may cause problems for some UNIX systems.\n" +"Use 'ipa config-mod' to change the username format allowed by IPA tools.\n" +"\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new stageuser:\n" +" ipa stageuser-add --first=Tim --last=User --password tuser1\n" +"\n" +" Add a stageuser from the Delete container\n" +" ipa stageuser-add --first=Tim --last=User --from-delete tuser1\n" +"\n" +msgstr "" + +#: ipalib/plugins/stageuser.py:110 +msgid "Stage Users" +msgstr "" + +#: ipalib/plugins/stageuser.py:111 +msgid "Stage User" +msgstr "" + +#: ipalib/plugins/stageuser.py:112 +msgid "stage user" +msgstr "" + +#: ipalib/plugins/stageuser.py:113 +msgid "stage users" +msgstr "" + +#: ipalib/plugins/stageuser.py:248 +msgid "Add a new stage user." +msgstr "" + +#: ipalib/plugins/stageuser.py:250 +#, python-format +msgid "Added stage user \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/stageuser.py:256 +msgid "Create Stage user in from a delete user" +msgstr "" + +#: ipalib/plugins/stageuser.py:268 +msgid "givenname is required" +msgstr "" + +#: ipalib/plugins/stageuser.py:271 +msgid "sn is required" +msgstr "" + +#: ipalib/plugins/stageuser.py:412 +msgid "Delete a stage user." +msgstr "" + +#: ipalib/plugins/stageuser.py:414 +#, python-format +msgid "Deleted stage user \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/stageuser.py:418 +msgid "Modify a stage user." +msgstr "" + +#: ipalib/plugins/stageuser.py:420 +#, python-format +msgid "Modified stage user \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/stageuser.py:439 +msgid "Search for stage users." +msgstr "" + +#: ipalib/plugins/stageuser.py:469 ipalib/plugins/user.py:711 +#, python-format +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/stageuser.py:474 +msgid "Display information about a stage user." +msgstr "" + +#: ipalib/plugins/stageuser.py:486 +msgid "Activate a stage user." +msgstr "" + +#: ipalib/plugins/stageuser.py:488 +#, python-format +msgid "Activate a stage user \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/stageuser.py:501 +msgid "Entry RDN is not 'uid'" +msgstr "" + +#: ipalib/plugins/stageuser.py:507 +msgid "Entry has no 'cn'" +msgstr "" + +#: ipalib/plugins/stageuser.py:677 +#, python-format +msgid "Active user %(user)s already exists" +msgstr "" + +#: ipalib/plugins/stageuser.py:738 +#, python-format +msgid "Stage user %s activated" +msgstr "" + #: ipalib/plugins/sudocmd.py:30 msgid "" "\n" @@ -10709,11 +12831,11 @@ msgid "" "%(type)s category cannot be set to 'all' while there are allowed %(objects)s" msgstr "" -#: ipalib/plugins/sudorule.py:419 ipalib/plugins/user.py:228 +#: ipalib/plugins/sudorule.py:419 ipalib/plugins/user.py:127 msgid "user" msgstr "" -#: ipalib/plugins/sudorule.py:419 ipalib/plugins/user.py:229 +#: ipalib/plugins/sudorule.py:419 ipalib/plugins/user.py:128 msgid "users" msgstr "" @@ -10855,6 +12977,278 @@ msgstr "" msgid "Removed option \"%(option)s\" from Sudo Rule \"%(rule)s\"" msgstr "" +#: ipalib/plugins/topology.py:16 +msgid "" +"\n" +"Topology\n" +"\n" +"Management of a replication topology.\n" +"\n" +"Requires minimum domain level 1.\n" +msgstr "" + +#: ipalib/plugins/topology.py:33 +#, python-brace-format +msgid "Topology management requires minimum domain level {0} " +msgstr "" + +#: ipalib/plugins/topology.py:45 +msgid "segment" +msgstr "" + +#: ipalib/plugins/topology.py:46 +msgid "segments" +msgstr "" + +#: ipalib/plugins/topology.py:60 +msgid "Topology Segments" +msgstr "" + +#: ipalib/plugins/topology.py:61 +msgid "Topology Segment" +msgstr "" + +#: ipalib/plugins/topology.py:69 +msgid "Segment name" +msgstr "" + +#: ipalib/plugins/topology.py:73 +msgid "Arbitrary string identifying the segment" +msgstr "" + +#: ipalib/plugins/topology.py:81 +msgid "Left node" +msgstr "" + +#: ipalib/plugins/topology.py:83 +msgid "Left replication node - an IPA server" +msgstr "" + +#: ipalib/plugins/topology.py:92 +msgid "Right node" +msgstr "" + +#: ipalib/plugins/topology.py:94 +msgid "Right replication node - an IPA server" +msgstr "" + +#: ipalib/plugins/topology.py:100 +msgid "Connectivity" +msgstr "" + +#: ipalib/plugins/topology.py:103 +msgid "Direction of replication between left and right replication node" +msgstr "" + +#: ipalib/plugins/topology.py:110 +msgid "Attributes to strip" +msgstr "" + +#: ipalib/plugins/topology.py:112 +msgid "" +"A space separated list of attributes which are removed from replication " +"updates." +msgstr "" + +#: ipalib/plugins/topology.py:119 +msgid "" +"Attributes that are not replicated to a consumer server during a fractional " +"update. E.g., `(objectclass=*) $ EXCLUDE accountlockout memberof" +msgstr "" + +#: ipalib/plugins/topology.py:126 +msgid "Attributes for total update" +msgstr "" + +#: ipalib/plugins/topology.py:127 +msgid "" +"Attributes that are not replicated to a consumer server during a total " +"update. E.g. (objectclass=*) $ EXCLUDE accountlockout" +msgstr "" + +#: ipalib/plugins/topology.py:134 +msgid "Session timeout" +msgstr "" + +#: ipalib/plugins/topology.py:136 +msgid "" +"Number of seconds outbound LDAP operations waits for a response from the " +"remote replica before timing out and failing" +msgstr "" + +#: ipalib/plugins/topology.py:143 +msgid "Replication agreement enabled" +msgstr "" + +#: ipalib/plugins/topology.py:144 +msgid "" +"Whether a replication agreement is active, meaning whether replication is " +"occurring per that agreement" +msgstr "" + +#: ipalib/plugins/topology.py:164 +#, python-format +msgid "left node is not a topology node: %(leftnode)s" +msgstr "" + +#: ipalib/plugins/topology.py:171 +#, python-format +msgid "right node is not a topology node: %(rightnode)s" +msgstr "" + +#: ipalib/plugins/topology.py:188 +msgid "left node and right node must not be the same" +msgstr "" + +#: ipalib/plugins/topology.py:194 +msgid "Search for topology segments." +msgstr "" + +#: ipalib/plugins/topology.py:197 +#, python-format +msgid "%(count)d segment matched" +msgid_plural "%(count)d segments matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/topology.py:204 +msgid "Add a new segment." +msgstr "" + +#: ipalib/plugins/topology.py:206 +#, python-format +msgid "Added segment \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/topology.py:217 +msgid "Delete a segment." +msgstr "" + +#: ipalib/plugins/topology.py:219 +#, python-format +msgid "Deleted segment \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/topology.py:229 +msgid "Modify a segment." +msgstr "" + +#: ipalib/plugins/topology.py:231 +#, python-format +msgid "Modified segment \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/topology.py:242 +msgid "" +"Request a full re-initialization of the node retrieving data from the other " +"node." +msgstr "" + +#: ipalib/plugins/topology.py:246 +#, python-format +msgid "%(value)s" +msgstr "" + +#: ipalib/plugins/topology.py:251 +msgid "Initialize left node" +msgstr "" + +#: ipalib/plugins/topology.py:256 +msgid "Initialize right node" +msgstr "" + +#: ipalib/plugins/topology.py:261 +msgid "Stop already started refresh of chosen node(s)" +msgstr "" + +#: ipalib/plugins/topology.py:282 +msgid "left or right node has to be specified" +msgstr "" + +#: ipalib/plugins/topology.py:287 +msgid "only one node can be specified" +msgstr "" + +#: ipalib/plugins/topology.py:291 +#, python-format +msgid "Replication refresh for segment: \"%(pkey)s\" requested." +msgstr "" + +#: ipalib/plugins/topology.py:294 +#, python-format +msgid "Stopping of replication refresh for segment: \"%(pkey)s\" requested." +msgstr "" + +#: ipalib/plugins/topology.py:315 +msgid "Display a segment." +msgstr "" + +#: ipalib/plugins/topology.py:324 +msgid "suffix" +msgstr "" + +#: ipalib/plugins/topology.py:325 +msgid "suffices" +msgstr "" + +#: ipalib/plugins/topology.py:329 +msgid "Topology suffices" +msgstr "" + +#: ipalib/plugins/topology.py:330 +msgid "Topology suffix" +msgstr "" + +#: ipalib/plugins/topology.py:337 +msgid "Suffix name" +msgstr "" + +#: ipalib/plugins/topology.py:343 +msgid "LDAP suffix to be managed" +msgstr "" + +#: ipalib/plugins/topology.py:351 +msgid "Search for topology suffices." +msgstr "" + +#: ipalib/plugins/topology.py:354 +#, python-format +msgid "%(count)d topology suffix matched" +msgid_plural "%(count)d topology suffices matched" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/plugins/topology.py:361 +msgid "Delete a topology suffix." +msgstr "" + +#: ipalib/plugins/topology.py:365 +#, python-format +msgid "Deleted topology suffix \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/topology.py:375 +msgid "Add a new topology suffix to be managed." +msgstr "" + +#: ipalib/plugins/topology.py:379 +#, python-format +msgid "Added topology suffix \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/topology.py:389 +msgid "Modify a topology suffix." +msgstr "" + +#: ipalib/plugins/topology.py:393 +#, python-format +msgid "Modified topology suffix \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/topology.py:403 +msgid "Show managed suffix." +msgstr "" + #: ipalib/plugins/trust.py:50 msgid "" "\n" @@ -11043,7 +13437,7 @@ msgid "Active Directory domain administrator" msgstr "" #: ipalib/plugins/trust.py:438 -msgid "Active directory domain administrator's password" +msgid "Active Directory domain administrator's password" msgstr "" #: ipalib/plugins/trust.py:443 @@ -11077,106 +13471,106 @@ msgstr "" msgid "Re-established trust to domain \"%(value)s\"" msgstr "" -#: ipalib/plugins/trust.py:517 ipalib/plugins/trust.py:559 -#: ipalib/plugins/trust.py:579 ipalib/plugins/trust.py:589 -#: ipalib/plugins/trust.py:711 ipalib/plugins/trust.py:743 -#: ipalib/plugins/trust.py:1320 ipalib/plugins/trust.py:1332 +#: ipalib/plugins/trust.py:543 ipalib/plugins/trust.py:585 +#: ipalib/plugins/trust.py:605 ipalib/plugins/trust.py:615 +#: ipalib/plugins/trust.py:737 ipalib/plugins/trust.py:770 +#: ipalib/plugins/trust.py:1348 ipalib/plugins/trust.py:1360 msgid "AD Trust setup" msgstr "" -#: ipalib/plugins/trust.py:519 ipalib/plugins/trust.py:1322 +#: ipalib/plugins/trust.py:545 ipalib/plugins/trust.py:1350 msgid "" "Cannot perform join operation without Samba 4 support installed. Make sure " "you have installed server-trust-ad sub-package of IPA" msgstr "" -#: ipalib/plugins/trust.py:527 +#: ipalib/plugins/trust.py:553 msgid "missing base_id" msgstr "" -#: ipalib/plugins/trust.py:529 +#: ipalib/plugins/trust.py:555 msgid "pysss_murmur is not available on the server and no base-id is given." msgstr "" -#: ipalib/plugins/trust.py:535 ipalib/plugins/trust.py:539 +#: ipalib/plugins/trust.py:561 ipalib/plugins/trust.py:565 msgid "trust type" msgstr "" -#: ipalib/plugins/trust.py:540 +#: ipalib/plugins/trust.py:566 msgid "only \"ad\" is supported" msgstr "" -#: ipalib/plugins/trust.py:550 +#: ipalib/plugins/trust.py:576 msgid "Realm-domain mismatch" msgstr "" -#: ipalib/plugins/trust.py:551 +#: ipalib/plugins/trust.py:577 msgid "" "To establish trust with Active Directory, the domain name and the realm name " "of the IPA server must match" msgstr "" -#: ipalib/plugins/trust.py:581 +#: ipalib/plugins/trust.py:607 msgid "Trusted domain and administrator account use different realms" msgstr "" -#: ipalib/plugins/trust.py:590 +#: ipalib/plugins/trust.py:616 msgid "Realm administrator password should be specified" msgstr "" -#: ipalib/plugins/trust.py:611 +#: ipalib/plugins/trust.py:637 msgid "id range type" msgstr "" -#: ipalib/plugins/trust.py:613 +#: ipalib/plugins/trust.py:639 msgid "" "Only the ipa-ad-trust and ipa-ad-trust-posix are allowed values for --range-" "type when adding an AD trust." msgstr "" -#: ipalib/plugins/trust.py:623 +#: ipalib/plugins/trust.py:649 msgid "id range" msgstr "" -#: ipalib/plugins/trust.py:625 +#: ipalib/plugins/trust.py:651 msgid "" "An id range already exists for this trust. You should either delete the old " "range, or exclude --base-id/--range-size options from the command." msgstr "" -#: ipalib/plugins/trust.py:647 +#: ipalib/plugins/trust.py:673 msgid "range exists" msgstr "" -#: ipalib/plugins/trust.py:649 +#: ipalib/plugins/trust.py:675 msgid "" "ID range with the same name but different domain SID already exists. The ID " "range for the new trusted domain must be created manually." msgstr "" -#: ipalib/plugins/trust.py:656 +#: ipalib/plugins/trust.py:682 msgid "range type change" msgstr "" -#: ipalib/plugins/trust.py:657 +#: ipalib/plugins/trust.py:683 msgid "" "ID range for the trusted domain already exists, but it has a different type. " "Please remove the old range manually, or do not enforce type via --range-" "type option." msgstr "" -#: ipalib/plugins/trust.py:686 +#: ipalib/plugins/trust.py:712 #, python-format msgid "Unable to resolve domain controller for '%s' domain. " msgstr "" -#: ipalib/plugins/trust.py:692 +#: ipalib/plugins/trust.py:718 msgid "" "Forward policy is defined for it in IPA DNS, perhaps forwarder points to " "incorrect host?" msgstr "" -#: ipalib/plugins/trust.py:695 +#: ipalib/plugins/trust.py:721 #, python-format msgid "" "IPA manages DNS, please verify your DNS configuration and make sure that " @@ -11185,31 +13579,31 @@ msgid "" "documentation. " msgstr "" -#: ipalib/plugins/trust.py:705 +#: ipalib/plugins/trust.py:731 #, python-format msgid "" "Since IPA does not manage DNS records, ensure DNS is configured to resolve " "'%(domain)s' domain from IPA hosts and back." msgstr "" -#: ipalib/plugins/trust.py:712 +#: ipalib/plugins/trust.py:738 msgid "Unable to verify write permissions to the AD" msgstr "" -#: ipalib/plugins/trust.py:744 +#: ipalib/plugins/trust.py:771 msgid "Not enough arguments specified to perform trust setup" msgstr "" -#: ipalib/plugins/trust.py:748 +#: ipalib/plugins/trust.py:776 msgid "Delete a trust." msgstr "" -#: ipalib/plugins/trust.py:750 +#: ipalib/plugins/trust.py:778 #, python-format msgid "Deleted trust \"%(value)s\"" msgstr "" -#: ipalib/plugins/trust.py:754 +#: ipalib/plugins/trust.py:782 msgid "" "\n" " Modify a trust (for future use).\n" @@ -11219,203 +13613,203 @@ msgid "" " " msgstr "" -#: ipalib/plugins/trust.py:761 +#: ipalib/plugins/trust.py:789 #, python-format msgid "Modified trust \"%(value)s\" (change will be effective in 60 seconds)" msgstr "" -#: ipalib/plugins/trust.py:773 +#: ipalib/plugins/trust.py:801 msgid "Search for trusts." msgstr "" -#: ipalib/plugins/trust.py:778 +#: ipalib/plugins/trust.py:806 #, python-format msgid "%(count)d trust matched" msgid_plural "%(count)d trusts matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/trust.py:804 +#: ipalib/plugins/trust.py:832 msgid "Display information about a trust." msgstr "" -#: ipalib/plugins/trust.py:839 +#: ipalib/plugins/trust.py:867 msgid "trust configuration" msgstr "" -#: ipalib/plugins/trust.py:845 ipalib/plugins/trust.py:846 +#: ipalib/plugins/trust.py:873 ipalib/plugins/trust.py:874 msgid "Global Trust Configuration" msgstr "" -#: ipalib/plugins/trust.py:854 +#: ipalib/plugins/trust.py:882 msgid "Security Identifier" msgstr "" -#: ipalib/plugins/trust.py:858 +#: ipalib/plugins/trust.py:886 msgid "NetBIOS name" msgstr "" -#: ipalib/plugins/trust.py:862 +#: ipalib/plugins/trust.py:890 msgid "Domain GUID" msgstr "" -#: ipalib/plugins/trust.py:867 +#: ipalib/plugins/trust.py:895 msgid "Fallback primary group" msgstr "" -#: ipalib/plugins/trust.py:879 +#: ipalib/plugins/trust.py:907 msgid "unsupported trust type" msgstr "" -#: ipalib/plugins/trust.py:942 +#: ipalib/plugins/trust.py:970 msgid "Modify global trust configuration." msgstr "" -#: ipalib/plugins/trust.py:945 +#: ipalib/plugins/trust.py:973 #, python-format msgid "Modified \"%(value)s\" trust configuration" msgstr "" -#: ipalib/plugins/trust.py:964 +#: ipalib/plugins/trust.py:992 msgid "Show global trust configuration." msgstr "" -#: ipalib/plugins/trust.py:991 +#: ipalib/plugins/trust.py:1019 msgid "Resolve security identifiers of users and groups in trusted domains" msgstr "" -#: ipalib/plugins/trust.py:995 +#: ipalib/plugins/trust.py:1023 msgid "Security Identifiers (SIDs)" msgstr "" -#: ipalib/plugins/trust.py:1001 +#: ipalib/plugins/trust.py:1029 msgid "Name" msgstr "" -#: ipalib/plugins/trust.py:1002 +#: ipalib/plugins/trust.py:1030 msgid "SID" msgstr "" -#: ipalib/plugins/trust.py:1033 +#: ipalib/plugins/trust.py:1061 msgid "Determine whether ipa-adtrust-install has been run on this system" msgstr "" -#: ipalib/plugins/trust.py:1060 +#: ipalib/plugins/trust.py:1088 msgid "" "Determine whether Schema Compatibility plugin is configured to serve trusted " "domain users and groups" msgstr "" -#: ipalib/plugins/trust.py:1113 +#: ipalib/plugins/trust.py:1141 msgid "Determine whether ipa-adtrust-install has been run with sidgen task" msgstr "" -#: ipalib/plugins/trust.py:1129 +#: ipalib/plugins/trust.py:1157 msgid "sidgen_was_run" msgstr "" -#: ipalib/plugins/trust.py:1131 +#: ipalib/plugins/trust.py:1159 msgid "" "This command relies on the existence of the \"editors\" group, but this " "group was not found." msgstr "" -#: ipalib/plugins/trust.py:1150 +#: ipalib/plugins/trust.py:1178 msgid "trust domain" msgstr "" -#: ipalib/plugins/trust.py:1151 +#: ipalib/plugins/trust.py:1179 msgid "trust domains" msgstr "" -#: ipalib/plugins/trust.py:1156 +#: ipalib/plugins/trust.py:1184 msgid "Trusted domains" msgstr "" -#: ipalib/plugins/trust.py:1157 +#: ipalib/plugins/trust.py:1185 msgid "Trusted domain" msgstr "" -#: ipalib/plugins/trust.py:1161 +#: ipalib/plugins/trust.py:1189 msgid "Domain name" msgstr "" -#: ipalib/plugins/trust.py:1174 +#: ipalib/plugins/trust.py:1202 msgid "Trusted domain partner" msgstr "" -#: ipalib/plugins/trust.py:1194 +#: ipalib/plugins/trust.py:1222 msgid "Search domains of the trust" msgstr "" -#: ipalib/plugins/trust.py:1197 +#: ipalib/plugins/trust.py:1225 msgid "Domain enabled" msgstr "" -#: ipalib/plugins/trust.py:1224 +#: ipalib/plugins/trust.py:1252 msgid "Modify trustdomain of the trust" msgstr "" -#: ipalib/plugins/trust.py:1231 +#: ipalib/plugins/trust.py:1259 msgid "Allow access from the trusted domain" msgstr "" -#: ipalib/plugins/trust.py:1242 +#: ipalib/plugins/trust.py:1270 msgid "Remove infromation about the domain associated with the trust." msgstr "" -#: ipalib/plugins/trust.py:1244 +#: ipalib/plugins/trust.py:1272 #, python-format msgid "Removed information about the trusted domain \"%(value)s\"" msgstr "" -#: ipalib/plugins/trust.py:1253 +#: ipalib/plugins/trust.py:1281 msgid "" "cannot delete root domain of the trust, use trust-del to delete the trust " "itself" msgstr "" -#: ipalib/plugins/trust.py:1313 +#: ipalib/plugins/trust.py:1341 msgid "Refresh list of the domains associated with the trust" msgstr "" -#: ipalib/plugins/trust.py:1343 +#: ipalib/plugins/trust.py:1371 msgid "List of trust domains successfully refreshed" msgstr "" -#: ipalib/plugins/trust.py:1345 +#: ipalib/plugins/trust.py:1373 msgid "No new trust domains were found" msgstr "" -#: ipalib/plugins/trust.py:1355 +#: ipalib/plugins/trust.py:1383 msgid "Allow use of IPA resources by the domain of the trust" msgstr "" -#: ipalib/plugins/trust.py:1358 +#: ipalib/plugins/trust.py:1386 #, python-format msgid "Enabled trust domain \"%(value)s\"" msgstr "" -#: ipalib/plugins/trust.py:1365 +#: ipalib/plugins/trust.py:1393 msgid "Root domain of the trust is always enabled for the existing trust" msgstr "" -#: ipalib/plugins/trust.py:1395 +#: ipalib/plugins/trust.py:1423 msgid "Disable use of IPA resources by the domain of the trust" msgstr "" -#: ipalib/plugins/trust.py:1398 +#: ipalib/plugins/trust.py:1426 #, python-format msgid "Disabled trust domain \"%(value)s\"" msgstr "" -#: ipalib/plugins/trust.py:1405 +#: ipalib/plugins/trust.py:1433 msgid "" "cannot disable root domain of the trust, use trust-del to delete the trust " "itself" msgstr "" -#: ipalib/plugins/user.py:43 +#: ipalib/plugins/user.py:49 msgid "" "\n" "Users\n" @@ -11461,334 +13855,546 @@ msgid "" " ipa user-del tuser1\n" msgstr "" -#: ipalib/plugins/user.py:92 -msgid "Kerberos keys available" +#: ipalib/plugins/user.py:333 +msgid "Account disabled" msgstr "" -#: ipalib/plugins/user.py:104 -msgid "Failed logins" +#: ipalib/plugins/user.py:337 +msgid "Preserved user" msgstr "" -#: ipalib/plugins/user.py:107 -msgid "Last successful authentication" +#: ipalib/plugins/user.py:389 +msgid "Add a new user." msgstr "" -#: ipalib/plugins/user.py:110 -msgid "Last failed authentication" +#: ipalib/plugins/user.py:391 +#, python-format +msgid "Added user \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:113 -msgid "Time now" +#: ipalib/plugins/user.py:398 +msgid "Don't create user private group" msgstr "" -#: ipalib/plugins/user.py:134 -msgid "must be TRUE or FALSE" +#: ipalib/plugins/user.py:474 +msgid "Default group for new users is not POSIX" msgstr "" -#: ipalib/plugins/user.py:438 -msgid "User login" +#: ipalib/plugins/user.py:563 +msgid "Delete a user." msgstr "" -#: ipalib/plugins/user.py:445 -msgid "First name" +#: ipalib/plugins/user.py:565 +#, python-format +msgid "Deleted user \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:449 -msgid "Last name" +#: ipalib/plugins/user.py:573 +msgid "Delete a user, keeping the entry available for future use" msgstr "" -#: ipalib/plugins/user.py:452 -msgid "Full name" +#: ipalib/plugins/user.py:577 +msgid "Delete a user" msgstr "" -#: ipalib/plugins/user.py:457 -msgid "Display name" +#: ipalib/plugins/user.py:585 +msgid "preserve and no-preserve cannot be both set" msgstr "" -#: ipalib/plugins/user.py:462 -msgid "Initials" +#: ipalib/plugins/user.py:686 +msgid "Modify a user." msgstr "" -#: ipalib/plugins/user.py:468 -msgid "Home directory" +#: ipalib/plugins/user.py:688 +#, python-format +msgid "Modified user \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:471 -msgid "GECOS" +#: ipalib/plugins/user.py:705 +msgid "Search for users." msgstr "" -#: ipalib/plugins/user.py:477 -msgid "Login shell" +#: ipalib/plugins/user.py:716 +msgid "Self" msgstr "" -#: ipalib/plugins/user.py:481 -msgid "Kerberos principal" +#: ipalib/plugins/user.py:717 +msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/plugins/user.py:489 -msgid "Kerberos principal expiration" +#: ipalib/plugins/user.py:764 +msgid "Display information about a user." msgstr "" -#: ipalib/plugins/user.py:493 -msgid "Email address" +#: ipalib/plugins/user.py:776 +msgid "Undelete a delete user account." msgstr "" -#: ipalib/plugins/user.py:498 -msgid "Prompt to set the user password" +#: ipalib/plugins/user.py:779 +#, python-format +msgid "Undeleted user account \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:504 -msgid "Generate a random user password" +#: ipalib/plugins/user.py:789 +#, python-format +msgid "User %r is already active" msgstr "" -#: ipalib/plugins/user.py:514 -msgid "UID" +#: ipalib/plugins/user.py:795 +#, python-format +msgid "User %r not found" msgstr "" -#: ipalib/plugins/user.py:515 -msgid "User ID Number (system will assign one if not provided)" +#: ipalib/plugins/user.py:822 +msgid "Disable a user account." msgstr "" -#: ipalib/plugins/user.py:520 -msgid "Group ID Number" +#: ipalib/plugins/user.py:825 +#, python-format +msgid "Disabled user account \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:525 -msgid "Street address" +#: ipalib/plugins/user.py:843 +msgid "Enable a user account." msgstr "" -#: ipalib/plugins/user.py:529 -msgid "City" +#: ipalib/plugins/user.py:847 +#, python-format +msgid "Enabled user account \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:533 -msgid "State/Province" +#: ipalib/plugins/user.py:864 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked " +"by\n" +" an administrator." msgstr "" -#: ipalib/plugins/user.py:536 -msgid "ZIP" +#: ipalib/plugins/user.py:873 +#, python-format +msgid "Unlocked account \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:540 -msgid "Telephone Number" +#: ipalib/plugins/user.py:893 +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:543 -msgid "Mobile Telephone Number" +#: ipalib/plugins/user.py:951 +#, python-format +msgid "%(host)s failed: %(error)s" msgstr "" -#: ipalib/plugins/user.py:546 -msgid "Pager Number" +#: ipalib/plugins/user.py:988 +#, python-format +msgid "%(host)s failed" msgstr "" -#: ipalib/plugins/user.py:550 -msgid "Fax Number" +#: ipalib/plugins/user.py:998 +#, python-format +msgid "Account disabled: %(disabled)s" msgstr "" -#: ipalib/plugins/user.py:554 -msgid "Org. Unit" +#: ipalib/plugins/vault.py:48 +msgid "" +"\n" +"Vaults\n" msgstr "" -#: ipalib/plugins/user.py:557 -msgid "Job Title" +#: ipalib/plugins/vault.py:50 +msgid "" +"\n" +"Manage vaults.\n" msgstr "" -#: ipalib/plugins/user.py:563 -msgid "Car License" +#: ipalib/plugins/vault.py:54 +msgid "" +"\n" +" List private vaults:\n" +" ipa vault-find\n" msgstr "" -#: ipalib/plugins/user.py:566 -msgid "Account disabled" +#: ipalib/plugins/vault.py:57 +msgid "" +"\n" +" List service vaults:\n" +" ipa vault-find --service <service name>\n" msgstr "" -#: ipalib/plugins/user.py:578 -msgid "User authentication types" +#: ipalib/plugins/vault.py:60 +msgid "" +"\n" +" List shared vaults:\n" +" ipa vault-find --shared\n" msgstr "" -#: ipalib/plugins/user.py:579 -msgid "Types of supported user authentication" +#: ipalib/plugins/vault.py:63 +msgid "" +"\n" +" List user vaults:\n" +" ipa vault-find --user <username>\n" msgstr "" -#: ipalib/plugins/user.py:586 +#: ipalib/plugins/vault.py:66 msgid "" -"User category (semantics placed on this attribute are for local " -"interpretation)" +"\n" +" Add a private vault:\n" +" ipa vault-add <name>\n" msgstr "" -#: ipalib/plugins/user.py:591 -msgid "RADIUS proxy configuration" +#: ipalib/plugins/vault.py:69 +msgid "" +"\n" +" Add a service vault:\n" +" ipa vault-add <name> --service <service name>\n" msgstr "" -#: ipalib/plugins/user.py:595 -msgid "RADIUS proxy username" +#: ipalib/plugins/vault.py:72 +msgid "" +"\n" +" Add a shared vault:\n" +" ipa vault-add <ame> --shared\n" msgstr "" -#: ipalib/plugins/user.py:598 -msgid "Department Number" +#: ipalib/plugins/vault.py:75 +msgid "" +"\n" +" Add a user vault:\n" +" ipa vault-add <name> --user <username>\n" msgstr "" -#: ipalib/plugins/user.py:601 -msgid "Employee Number" +#: ipalib/plugins/vault.py:78 +msgid "" +"\n" +" Show a private vault:\n" +" ipa vault-show <name>\n" msgstr "" -#: ipalib/plugins/user.py:604 -msgid "Employee Type" +#: ipalib/plugins/vault.py:81 +msgid "" +"\n" +" Show a service vault:\n" +" ipa vault-show <name> --service <service name>\n" msgstr "" -#: ipalib/plugins/user.py:607 -msgid "Preferred Language" +#: ipalib/plugins/vault.py:84 +msgid "" +"\n" +" Show a shared vault:\n" +" ipa vault-show <name> --shared\n" msgstr "" -#: ipalib/plugins/user.py:629 ipalib/plugins/user.py:633 -#, python-format -msgid "invalid e-mail format: %(email)s" +#: ipalib/plugins/vault.py:87 +msgid "" +"\n" +" Show a user vault:\n" +" ipa vault-show <name> --user <username>\n" msgstr "" -#: ipalib/plugins/user.py:659 -#, python-format -msgid "manager %(manager)s not found" +#: ipalib/plugins/vault.py:90 +msgid "" +"\n" +" Modify a private vault:\n" +" ipa vault-mod <name> --desc <description>\n" msgstr "" -#: ipalib/plugins/user.py:677 -msgid "Add a new user." +#: ipalib/plugins/vault.py:93 +msgid "" +"\n" +" Modify a service vault:\n" +" ipa vault-mod <name> --service <service name> --desc <description>\n" msgstr "" -#: ipalib/plugins/user.py:679 -#, python-format -msgid "Added user \"%(value)s\"" +#: ipalib/plugins/vault.py:96 +msgid "" +"\n" +" Modify a shared vault:\n" +" ipa vault-mod <name> --shared --desc <description>\n" msgstr "" -#: ipalib/plugins/user.py:686 -msgid "Don't create user private group" +#: ipalib/plugins/vault.py:99 +msgid "" +"\n" +" Modify a user vault:\n" +" ipa vault-mod <name> --user <username> --desc <description>\n" msgstr "" -#: ipalib/plugins/user.py:730 ipalib/plugins/user.py:891 -#, python-format -msgid "can be at most %(len)d characters" +#: ipalib/plugins/vault.py:102 +msgid "" +"\n" +" Delete a private vault:\n" +" ipa vault-del <name>\n" msgstr "" -#: ipalib/plugins/user.py:762 -msgid "Default group for new users is not POSIX" +#: ipalib/plugins/vault.py:105 +msgid "" +"\n" +" Delete a service vault:\n" +" ipa vault-del <name> --service <service name>\n" msgstr "" -#: ipalib/plugins/user.py:852 -msgid "Delete a user." +#: ipalib/plugins/vault.py:108 +msgid "" +"\n" +" Delete a shared vault:\n" +" ipa vault-del <name> --shared\n" msgstr "" -#: ipalib/plugins/user.py:854 -#, python-format -msgid "Deleted user \"%(value)s\"" +#: ipalib/plugins/vault.py:111 +msgid "" +"\n" +" Delete a user vault:\n" +" ipa vault-del <name> --user <username>\n" msgstr "" -#: ipalib/plugins/user.py:877 -msgid "Modify a user." +#: ipalib/plugins/vault.py:114 +msgid "" +"\n" +" Display vault configuration:\n" +" ipa vault-config\n" +msgstr "" + +#: ipalib/plugins/vault.py:117 +msgid "" +"\n" +" Archive data into private vault:\n" +" ipa vault-archive <name> --in <input file>\n" +msgstr "" + +#: ipalib/plugins/vault.py:120 +msgid "" +"\n" +" Archive data into service vault:\n" +" ipa vault-archive <name> --service <service name> --in <input file>\n" msgstr "" -#: ipalib/plugins/user.py:879 +#: ipalib/plugins/vault.py:123 +msgid "" +"\n" +" Archive data into shared vault:\n" +" ipa vault-archive <name> --shared --in <input file>\n" +msgstr "" + +#: ipalib/plugins/vault.py:126 +msgid "" +"\n" +" Archive data into user vault:\n" +" ipa vault-archive <name> --user <username> --in <input file>\n" +msgstr "" + +#: ipalib/plugins/vault.py:129 +msgid "" +"\n" +" Retrieve data from private vault:\n" +" ipa vault-retrieve <name> --out <output file>\n" +msgstr "" + +#: ipalib/plugins/vault.py:132 +msgid "" +"\n" +" Retrieve data from service vault:\n" +" ipa vault-retrieve <name> --service <service name> --out <output file>\n" +msgstr "" + +#: ipalib/plugins/vault.py:135 +msgid "" +"\n" +" Retrieve data from shared vault:\n" +" ipa vault-retrieve <name> --shared --out <output file>\n" +msgstr "" + +#: ipalib/plugins/vault.py:138 +msgid "" +"\n" +" Retrieve data from user vault:\n" +" ipa vault-retrieve <name> --user <user name> --out <output file>\n" +msgstr "" + +#: ipalib/plugins/vault.py:153 +msgid "Shared vault" +msgstr "" + +#: ipalib/plugins/vault.py:164 +msgid "" +"\n" +" Vault object.\n" +" " +msgstr "" + +#: ipalib/plugins/vault.py:170 +msgid "vault" +msgstr "" + +#: ipalib/plugins/vault.py:171 +msgid "vaults" +msgstr "" + +#: ipalib/plugins/vault.py:179 +msgid "Vaults" +msgstr "" + +#: ipalib/plugins/vault.py:180 +msgid "Vault" +msgstr "" + +#: ipalib/plugins/vault.py:186 +msgid "Vault name" +msgstr "" + +#: ipalib/plugins/vault.py:196 +msgid "Vault description" +msgstr "" + +#: ipalib/plugins/vault.py:221 +msgid "Service, shared, and user options cannot be specified simultaneously" +msgstr "" + +#: ipalib/plugins/vault.py:236 +msgid "Host is not supported" +msgstr "" + +#: ipalib/plugins/vault.py:313 +msgid "Create a new vault." +msgstr "" + +#: ipalib/plugins/vault.py:317 #, python-format -msgid "Modified user \"%(value)s\"" +msgid "Added vault \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:950 -msgid "Search for users." +#: ipalib/plugins/vault.py:325 ipalib/plugins/vault.py:349 +#: ipalib/plugins/vault.py:395 ipalib/plugins/vault.py:427 +#: ipalib/plugins/vault.py:443 ipalib/plugins/vault.py:491 +#: ipalib/plugins/vault.py:629 ipalib/plugins/vault.py:779 +msgid "KRA service is not enabled" msgstr "" -#: ipalib/plugins/user.py:957 -msgid "Self" +#: ipalib/plugins/vault.py:338 +msgid "Delete a vault." msgstr "" -#: ipalib/plugins/user.py:958 -msgid "Display user record for current Kerberos principal" +#: ipalib/plugins/vault.py:342 +#, python-format +msgid "Deleted vault \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/vault.py:379 +msgid "Search for vaults." msgstr "" -#: ipalib/plugins/user.py:994 +#: ipalib/plugins/vault.py:384 #, python-format -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" +msgid "%(count)d vault matched" +msgid_plural "%(count)d vaults matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/user.py:1000 -msgid "Display information about a user." +#: ipalib/plugins/vault.py:414 +msgid "Modify a vault." msgstr "" -#: ipalib/plugins/user.py:1016 -msgid "Disable a user account." +#: ipalib/plugins/vault.py:418 +#, python-format +msgid "Modified vault \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:1019 -#, python-format -msgid "Disabled user account \"%(value)s\"" +#: ipalib/plugins/vault.py:434 +msgid "Display information about a vault." msgstr "" -#: ipalib/plugins/user.py:1037 -msgid "Enable a user account." +#: ipalib/plugins/vault.py:450 +msgid "Vault configuration" msgstr "" -#: ipalib/plugins/user.py:1041 -#, python-format -msgid "Enabled user account \"%(value)s\"" +#: ipalib/plugins/vault.py:455 +msgid "Transport Certificate" msgstr "" -#: ipalib/plugins/user.py:1058 -msgid "" -"\n" -" Unlock a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked " -"by\n" -" an administrator." +#: ipalib/plugins/vault.py:462 +msgid "Show vault configuration." msgstr "" -#: ipalib/plugins/user.py:1067 -#, python-format -msgid "Unlocked account \"%(value)s\"" +#: ipalib/plugins/vault.py:467 +msgid "Output file to store the transport certificate" msgstr "" -#: ipalib/plugins/user.py:1087 -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. " +#: ipalib/plugins/vault.py:505 +msgid "Archive data into a vault." msgstr "" -#: ipalib/plugins/user.py:1145 -#, python-format -msgid "%(host)s failed: %(error)s" +#: ipalib/plugins/vault.py:510 +msgid "Binary data to archive" +msgstr "" + +#: ipalib/plugins/vault.py:514 +msgid "File containing data to archive" msgstr "" -#: ipalib/plugins/user.py:1181 +#: ipalib/plugins/vault.py:520 #, python-format -msgid "%(host)s failed" +msgid "Archived data into vault \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/vault.py:536 +msgid "Input data specified multiple times" +msgstr "" + +#: ipalib/plugins/vault.py:613 ipalib/plugins/vault.py:771 +msgid "Session key wrapped with transport certificate" +msgstr "" + +#: ipalib/plugins/vault.py:617 +msgid "Vault data encrypted with session key" +msgstr "" + +#: ipalib/plugins/vault.py:621 +msgid "Nonce" +msgstr "" + +#: ipalib/plugins/vault.py:674 +msgid "Retrieve a data from a vault." msgstr "" -#: ipalib/plugins/user.py:1191 +#: ipalib/plugins/vault.py:679 +msgid "File to store retrieved data" +msgstr "" + +#: ipalib/plugins/vault.py:691 #, python-format -msgid "Account disabled: %(disabled)s" +msgid "Retrieved data from vault \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/vault.py:801 +msgid "No archived data." msgstr "" #: ipalib/plugins/virtual.py:52 @@ -11803,7 +14409,7 @@ msgstr "" msgid "No such virtual command" msgstr "" -#: ipalib/rpc.py:839 +#: ipalib/rpc.py:849 msgid "any of the configured servers" msgstr "" @@ -11811,92 +14417,131 @@ msgstr "" msgid "could not allocate unique new session_id" msgstr "" -#: ipalib/util.py:191 +#: ipalib/util.py:205 msgid "Filename is empty" msgstr "" -#: ipalib/util.py:195 +#: ipalib/util.py:209 #, python-format msgid "Permission denied: %(file)s" msgstr "" -#: ipalib/util.py:243 +#: ipalib/util.py:251 ipalib/util.py:757 +msgid "empty DNS label" +msgstr "" + +#: ipalib/util.py:254 msgid "DNS label cannot be longer that 63 characters" msgstr "" -#: ipalib/util.py:248 +#: ipalib/util.py:259 #, python-format msgid "" "only letters, numbers, %(chars)s are allowed. DNS label may not start or end " "with %(chars2)s" msgstr "" -#: ipalib/util.py:268 +#: ipalib/util.py:277 msgid "too many '@' characters" msgstr "" -#: ipalib/util.py:270 -msgid "missing address domain" -msgstr "" - -#: ipalib/util.py:272 -msgid "missing mail account" -msgstr "" - -#: ipalib/util.py:286 +#: ipalib/util.py:293 msgid "cannot be longer that 255 characters" msgstr "" -#: ipalib/util.py:292 +#: ipalib/util.py:299 msgid "hostname contains empty label (consecutive dots)" msgstr "" -#: ipalib/util.py:296 +#: ipalib/util.py:303 msgid "not fully qualified" msgstr "" -#: ipalib/util.py:308 ipalib/util.py:314 +#: ipalib/util.py:315 ipalib/util.py:321 msgid "invalid SSH public key" msgstr "" -#: ipalib/util.py:317 +#: ipalib/util.py:324 msgid "options are not allowed" msgstr "" -#: ipalib/util.py:553 +#: ipalib/util.py:560 msgid "invalid hostmask" msgstr "" -#: ipalib/x509.py:208 +#: ipalib/util.py:572 +#, python-format +msgid "query '%(owner)s %(rtype)s': %(error)s" +msgstr "" + +#: ipalib/util.py:576 +#, python-format +msgid "query '%(owner)s %(rtype)s' with EDNS0: %(error)s" +msgstr "" + +#: ipalib/util.py:580 +#, python-format +msgid "" +"answer to query '%(owner)s %(rtype)s' is missing DNSSEC signatures (no RRSIG " +"data)" +msgstr "" + +#: ipalib/util.py:585 +#, python-format +msgid "record '%(owner)s %(rtype)s' failed DNSSEC validation on server %(ip)s" +msgstr "" + +#: ipalib/util.py:755 +msgid "invalid escape code in domain name" +msgstr "" + +#: ipalib/util.py:759 +msgid "domain name cannot be longer than 255 characters" +msgstr "" + +#: ipalib/util.py:761 +msgid "DNS label cannot be longer than 63 characters" +msgstr "" + +#: ipalib/util.py:763 +msgid "invalid domain name" +msgstr "" + +#: ipalib/util.py:775 +#, python-format +msgid "domain name '%(domain)s' should be normalized to: %(normalized)s" +msgstr "" + +#: ipalib/x509.py:302 msgid "improperly formatted DER-encoded certificate" msgstr "" -#: ipalib/x509.py:245 +#: ipalib/x509.py:357 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipapython/dogtag.py:181 +#: ipapython/dogtag.py:194 #, python-format msgid "Retrieving CA cert chain failed: %s" msgstr "" -#: ipapython/dogtag.py:187 +#: ipapython/dogtag.py:200 #, python-format msgid "request failed with HTTP status %d" msgstr "" -#: ipapython/dogtag.py:214 ipapython/dogtag.py:221 +#: ipapython/dogtag.py:212 ipapython/dogtag.py:237 #, python-format msgid "Retrieving CA status failed: %s" msgstr "" -#: ipapython/ipaldap.py:1237 +#: ipapython/ipaldap.py:1010 #, python-format msgid "objectclass %s not found" msgstr "" -#: ipaserver/dcerpc.py:60 +#: ipaserver/dcerpc.py:63 msgid "" "\n" "Classes to manage trust joins using DCE-RPC calls\n" @@ -11905,145 +14550,179 @@ msgid "" "and Samba4 python bindings.\n" msgstr "" -#: ipaserver/dcerpc.py:77 +#: ipaserver/dcerpc.py:80 msgid "CIFS server denied your credentials" msgstr "" -#: ipaserver/dcerpc.py:80 +#: ipaserver/dcerpc.py:83 msgid "communication with CIFS server was unsuccessful" msgstr "" -#: ipaserver/dcerpc.py:85 +#: ipaserver/dcerpc.py:88 msgid "AD domain controller" msgstr "" -#: ipaserver/dcerpc.py:85 +#: ipaserver/dcerpc.py:88 msgid "unsupported functional level" msgstr "" -#: ipaserver/dcerpc.py:88 +#: ipaserver/dcerpc.py:91 msgid "" "AD domain controller complains about communication sequence. It may mean " "unsynchronized time on both sides, for example" msgstr "" -#: ipaserver/dcerpc.py:93 +#: ipaserver/dcerpc.py:95 +msgid "CIFS server configuration does not allow access to \\\\pipe\\lsarpc" +msgstr "" + +#: ipaserver/dcerpc.py:100 msgid "Cannot find specified domain or server name" msgstr "" -#: ipaserver/dcerpc.py:95 +#: ipaserver/dcerpc.py:102 +msgid "" +"AD DC was unable to reach any IPA domain controller. Most likely it is a DNS " +"or firewall issue" +msgstr "" + +#: ipaserver/dcerpc.py:104 msgid "At least the domain or IP address should be specified" msgstr "" -#: ipaserver/dcerpc.py:107 +#: ipaserver/dcerpc.py:116 #, python-format msgid "" "CIFS server communication error: code \"%(num)s\",\n" " message \"%(message)s\" (both may be \"None\")" msgstr "" -#: ipaserver/dcerpc.py:207 +#: ipaserver/dcerpc.py:216 msgid "no trusted domain is configured" msgstr "" -#: ipaserver/dcerpc.py:214 +#: ipaserver/dcerpc.py:223 msgid "domain is not configured" msgstr "" -#: ipaserver/dcerpc.py:221 +#: ipaserver/dcerpc.py:230 msgid "SID is not valid" msgstr "" -#: ipaserver/dcerpc.py:236 +#: ipaserver/dcerpc.py:245 msgid "SID does not match exactlywith any trusted domain's SID" msgstr "" -#: ipaserver/dcerpc.py:247 +#: ipaserver/dcerpc.py:256 msgid "SID does not match any trusted domain" msgstr "" -#: ipaserver/dcerpc.py:287 ipaserver/dcerpc.py:293 ipaserver/dcerpc.py:515 +#: ipaserver/dcerpc.py:296 ipaserver/dcerpc.py:302 ipaserver/dcerpc.py:571 msgid "Trust setup" msgstr "" -#: ipaserver/dcerpc.py:288 +#: ipaserver/dcerpc.py:297 msgid "Our domain is not configured" msgstr "" -#: ipaserver/dcerpc.py:294 +#: ipaserver/dcerpc.py:303 msgid "No trusted domain is not configured" msgstr "" -#: ipaserver/dcerpc.py:299 ipaserver/dcerpc.py:314 ipaserver/dcerpc.py:331 -#: ipaserver/dcerpc.py:343 ipaserver/dcerpc.py:350 ipaserver/dcerpc.py:395 +#: ipaserver/dcerpc.py:308 ipaserver/dcerpc.py:323 ipaserver/dcerpc.py:340 +#: ipaserver/dcerpc.py:352 ipaserver/dcerpc.py:359 ipaserver/dcerpc.py:399 +#: ipaserver/dcerpc.py:451 msgid "trusted domain object" msgstr "" -#: ipaserver/dcerpc.py:300 +#: ipaserver/dcerpc.py:309 msgid "domain is not trusted" msgstr "" -#: ipaserver/dcerpc.py:315 +#: ipaserver/dcerpc.py:324 msgid "no trusted domain matched the specified flat name" msgstr "" -#: ipaserver/dcerpc.py:317 +#: ipaserver/dcerpc.py:326 msgid "trusted domain object not found" msgstr "" -#: ipaserver/dcerpc.py:332 ipaserver/dcerpc.py:396 +#: ipaserver/dcerpc.py:341 ipaserver/dcerpc.py:452 msgid "Ambiguous search, user domain was not specified" msgstr "" -#: ipaserver/dcerpc.py:344 +#: ipaserver/dcerpc.py:353 ipaserver/dcerpc.py:400 msgid "Trusted domain did not return a unique object" msgstr "" -#: ipaserver/dcerpc.py:351 +#: ipaserver/dcerpc.py:360 msgid "Trusted domain did not return a valid SID for the object" msgstr "" -#: ipaserver/dcerpc.py:381 ipaserver/dcerpc.py:391 +#: ipaserver/dcerpc.py:437 ipaserver/dcerpc.py:447 msgid "trusted domain user not found" msgstr "" -#: ipaserver/dcerpc.py:516 +#: ipaserver/dcerpc.py:572 msgid "Cannot retrieve trusted domain GC list" msgstr "" -#: ipaserver/dcerpc.py:652 +#: ipaserver/dcerpc.py:713 msgid "CIFS credentials object" msgstr "" -#: ipaserver/dcerpc.py:685 +#: ipaserver/dcerpc.py:750 #, python-format msgid "CIFS server %(host)s denied your credentials" msgstr "" -#: ipaserver/dcerpc.py:689 +#: ipaserver/dcerpc.py:754 #, python-format msgid "Cannot establish LSA connection to %(host)s. Is CIFS server running?" msgstr "" -#: ipaserver/dcerpc.py:878 +#: ipaserver/dcerpc.py:955 #, python-format msgid "" "the IPA server and the remote domain cannot share the same NetBIOS name: %s" msgstr "" -#: ipaserver/install/certs.py:641 +#: ipaserver/dcerpc.py:1035 +#, python-format +msgid "" +"IPA master denied trust validation requests from AD DC %(count)d times. Most " +"likely AD DC contacted a replica that has no trust information replicated " +"yet." +msgstr "" + +#: ipaserver/install/certs.py:409 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "" -#: ipaserver/plugins/dogtag.py:1253 +#: ipaserver/plugins/dogtag.py:1321 msgid "Unable to communicate with CMS" msgstr "" -#: ipaserver/plugins/dogtag.py:1833 +#: ipaserver/plugins/dogtag.py:1853 msgid "find not supported on CAs upgraded from 9 to 10" msgstr "" +#: ipaserver/plugins/dogtag.py:2018 +msgid "Failed to authenticate to CA REST API" +msgstr "" + +#: ipaserver/plugins/dogtag.py:2043 +msgid "REST API is not logged in." +msgstr "" + +#: ipaserver/plugins/dogtag.py:2060 +#, python-format +msgid "" +"Non-2xx response from CA REST API: %(status)d %(status_text)s. " +"%(explanation)s" +msgstr "" + #: ipaserver/plugins/join.py:59 msgid "The hostname to register as" msgstr "" @@ -12067,35 +14746,35 @@ msgid "" "'%s'." msgstr "" -#: ipaserver/plugins/ldap2.py:323 +#: ipaserver/plugins/ldap2.py:282 msgid "Could not read UPG Definition originfilter. Check your permissions." msgstr "" -#: ipaserver/rpcserver.py:475 +#: ipaserver/rpcserver.py:479 msgid "Request must be a dict" msgstr "" -#: ipaserver/rpcserver.py:477 +#: ipaserver/rpcserver.py:481 msgid "Request is missing \"method\"" msgstr "" -#: ipaserver/rpcserver.py:479 +#: ipaserver/rpcserver.py:483 msgid "Request is missing \"params\"" msgstr "" -#: ipaserver/rpcserver.py:485 +#: ipaserver/rpcserver.py:489 msgid "params must be a list" msgstr "" -#: ipaserver/rpcserver.py:487 +#: ipaserver/rpcserver.py:491 msgid "params must contain [args, options]" msgstr "" -#: ipaserver/rpcserver.py:490 +#: ipaserver/rpcserver.py:494 msgid "params[0] (aka args) must be a list" msgstr "" -#: ipaserver/rpcserver.py:493 +#: ipaserver/rpcserver.py:497 msgid "params[1] (aka options) must be a dict" msgstr "" @@ -12119,337 +14798,308 @@ msgstr "" msgid "read error\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:62 +#: ipa-client/ipa-getkeytab.c:63 #, c-format msgid "Kerberos context initialization failed: %1$s (%2$d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:73 +#: ipa-client/ipa-getkeytab.c:74 #, c-format msgid "Unable to parse principal: %1$s (%2$d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:128 +#: ipa-client/ipa-getkeytab.c:129 #, c-format msgid "No keys accepted by KDC\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:143 +#: ipa-client/ipa-getkeytab.c:144 #, c-format msgid "Out of memory \n" msgstr "" -#: ipa-client/ipa-getkeytab.c:169 +#: ipa-client/ipa-getkeytab.c:170 #, c-format msgid "Unable to set LDAP_OPT_X_TLS_CERTIFICATE\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:175 +#: ipa-client/ipa-getkeytab.c:176 #, c-format msgid "Unable to init for ldaps(636) connection\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:182 +#: ipa-client/ipa-getkeytab.c:183 #, c-format msgid "Unable to set LDAP_OPT_X_TLS\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:188 +#: ipa-client/ipa-getkeytab.c:189 #, c-format msgid "Unable to init for ldap(389) connection\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:194 +#: ipa-client/ipa-getkeytab.c:195 #, c-format msgid "Unable to initialize ldap library!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:202 ipa-client/ipa-join.c:240 +#: ipa-client/ipa-getkeytab.c:203 ipa-client/ipa-join.c:243 #, c-format msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:210 +#: ipa-client/ipa-getkeytab.c:211 #, c-format msgid "Unable to set LDAP_OPT_PROTOCOL_VERSION\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:221 +#: ipa-client/ipa-getkeytab.c:222 #, c-format msgid "Simple bind failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:264 +#: ipa-client/ipa-getkeytab.c:265 #, c-format -msgid "Operation failed! %s\n" +msgid "Operation failed: %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:273 +#: ipa-client/ipa-getkeytab.c:274 #, c-format -msgid "Failed to get result! %s\n" +msgid "Failed to get result: %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:279 +#: ipa-client/ipa-getkeytab.c:280 #, c-format -msgid "Failed to parse extended result! %s\n" +msgid "Failed to parse extended result: %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:286 +#: ipa-client/ipa-getkeytab.c:287 #, c-format -msgid "Failed to parse result! %s\n" +msgid "Failed to parse result: %s\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:304 +#: ipa-client/ipa-getkeytab.c:306 #, c-format msgid "Missing reply control list!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:314 +#: ipa-client/ipa-getkeytab.c:316 #, c-format msgid "Missing reply control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:342 +#: ipa-client/ipa-getkeytab.c:356 #, c-format msgid "Out of Memory!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:349 ipa-client/ipa-getkeytab.c:595 +#: ipa-client/ipa-getkeytab.c:363 ipa-client/ipa-getkeytab.c:522 #, c-format msgid "Failed to create control!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:602 +#: ipa-client/ipa-getkeytab.c:369 ipa-client/ipa-getkeytab.c:529 #, c-format msgid "Failed to bind to server!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:362 +#: ipa-client/ipa-getkeytab.c:376 #, c-format msgid "Failed to get keytab!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:371 +#: ipa-client/ipa-getkeytab.c:385 #, c-format msgid "ber_init() failed, Invalid control ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:390 +#: ipa-client/ipa-getkeytab.c:404 #, c-format msgid "ber_scanf() failed, unable to find kvno ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:402 +#: ipa-client/ipa-getkeytab.c:416 #, c-format msgid "Failed to retrieve encryption type type #%d\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:406 +#: ipa-client/ipa-getkeytab.c:420 #, c-format msgid "Failed to retrieve encryption type %1$s (#%2$d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:416 +#: ipa-client/ipa-getkeytab.c:430 #, c-format msgid "Failed to retrieve any keys" msgstr "" -#: ipa-client/ipa-getkeytab.c:614 -msgid "Failed to find or parse reply control!\n" -msgstr "" - -#: ipa-client/ipa-getkeytab.c:621 -msgid "Failed to parse control head!\n" -msgstr "" - -#: ipa-client/ipa-getkeytab.c:636 ipa-client/ipa-getkeytab.c:656 -#: ipa-client/ipa-getkeytab.c:675 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:808 -#: ipa-client/ipa-join.c:869 util/ipa_krb5.c:1002 util/ipa_krb5.c:1036 -#, c-format -msgid "Out of memory!\n" -msgstr "" - -#: ipa-client/ipa-getkeytab.c:647 -msgid "Failed to parse enctype in key data!\n" -msgstr "" - -#: ipa-client/ipa-getkeytab.c:667 -msgid "Failed to parse salt in key data!\n" -msgstr "" - -#: ipa-client/ipa-getkeytab.c:684 -msgid "Failed to parse ending of key data!\n" +#: ipa-client/ipa-getkeytab.c:544 +msgid "Failed to decode control reply!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:694 -msgid "Failed to parse ending of control!\n" -msgstr "" - -#: ipa-client/ipa-getkeytab.c:724 +#: ipa-client/ipa-getkeytab.c:572 msgid "New Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:730 +#: ipa-client/ipa-getkeytab.c:578 msgid "Verify Principal Password" msgstr "" -#: ipa-client/ipa-getkeytab.c:765 +#: ipa-client/ipa-getkeytab.c:613 msgid "Print as little as possible" msgstr "" -#: ipa-client/ipa-getkeytab.c:765 +#: ipa-client/ipa-getkeytab.c:613 msgid "Output only on errors" msgstr "" -#: ipa-client/ipa-getkeytab.c:767 +#: ipa-client/ipa-getkeytab.c:615 msgid "Contact this specific KDC Server" msgstr "" -#: ipa-client/ipa-getkeytab.c:768 +#: ipa-client/ipa-getkeytab.c:616 msgid "Server Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:770 ipa-client/ipa-rmkeytab.c:171 +#: ipa-client/ipa-getkeytab.c:618 msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -#: ipa-client/ipa-getkeytab.c:771 ipa-client/ipa-rmkeytab.c:172 +#: ipa-client/ipa-getkeytab.c:619 ipa-client/ipa-rmkeytab.c:172 msgid "Kerberos Service Principal Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:773 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:621 msgid "File were to store the keytab information" msgstr "" -#: ipa-client/ipa-getkeytab.c:774 ipa-client/ipa-rmkeytab.c:174 +#: ipa-client/ipa-getkeytab.c:622 ipa-client/ipa-rmkeytab.c:174 msgid "Keytab File Name" msgstr "" -#: ipa-client/ipa-getkeytab.c:776 +#: ipa-client/ipa-getkeytab.c:624 msgid "Encryption types to request" msgstr "" -#: ipa-client/ipa-getkeytab.c:777 +#: ipa-client/ipa-getkeytab.c:625 msgid "Comma separated encryption types list" msgstr "" -#: ipa-client/ipa-getkeytab.c:779 +#: ipa-client/ipa-getkeytab.c:627 msgid "Show the list of permitted encryption types and exit" msgstr "" -#: ipa-client/ipa-getkeytab.c:780 +#: ipa-client/ipa-getkeytab.c:628 msgid "Permitted Encryption Types" msgstr "" -#: ipa-client/ipa-getkeytab.c:782 +#: ipa-client/ipa-getkeytab.c:630 msgid "Asks for a non-random password to use for the principal" msgstr "" -#: ipa-client/ipa-getkeytab.c:784 +#: ipa-client/ipa-getkeytab.c:632 msgid "LDAP DN" msgstr "" -#: ipa-client/ipa-getkeytab.c:784 +#: ipa-client/ipa-getkeytab.c:632 msgid "DN to bind as if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:786 +#: ipa-client/ipa-getkeytab.c:634 msgid "LDAP password" msgstr "" -#: ipa-client/ipa-getkeytab.c:786 +#: ipa-client/ipa-getkeytab.c:634 msgid "password to use if not using kerberos" msgstr "" -#: ipa-client/ipa-getkeytab.c:788 +#: ipa-client/ipa-getkeytab.c:636 msgid "Retrieve current keys without changing them" msgstr "" -#: ipa-client/ipa-getkeytab.c:813 ipa-client/ipa-rmkeytab.c:190 +#: ipa-client/ipa-getkeytab.c:661 ipa-client/ipa-rmkeytab.c:190 #, c-format msgid "Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:826 util/ipa_krb5.c:874 +#: ipa-client/ipa-getkeytab.c:674 util/ipa_krb5.c:878 #, c-format msgid "No system preferred enctypes ?!\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:829 +#: ipa-client/ipa-getkeytab.c:677 #, c-format msgid "Supported encryption types:\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:833 +#: ipa-client/ipa-getkeytab.c:681 #, c-format msgid "Warning: failed to convert type (#%d)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:852 +#: ipa-client/ipa-getkeytab.c:700 #, c-format msgid "Bind password required when using a bind DN.\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:859 +#: ipa-client/ipa-getkeytab.c:707 #, c-format msgid "Incompatible options provided (-r and -P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:870 +#: ipa-client/ipa-getkeytab.c:718 #, c-format msgid "" "Warning: salt types are not honored with randomized passwords (see opt. -P)\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:882 +#: ipa-client/ipa-getkeytab.c:730 #, c-format msgid "Invalid Service Principal Name\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:890 +#: ipa-client/ipa-getkeytab.c:738 #, c-format msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:898 +#: ipa-client/ipa-getkeytab.c:746 #, c-format msgid "" "Kerberos User Principal not found. Do you have a valid Credential Cache?\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:906 +#: ipa-client/ipa-getkeytab.c:754 #, c-format msgid "Failed to open Keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:921 +#: ipa-client/ipa-getkeytab.c:771 #, c-format -msgid "Retrying with old method\n" +msgid "Retrying with pre-4.0 keytab retrieval method...\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:929 +#: ipa-client/ipa-getkeytab.c:781 #, c-format msgid "Failed to create key material\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:937 +#: ipa-client/ipa-getkeytab.c:789 #, c-format msgid "Failed to get keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:951 +#: ipa-client/ipa-getkeytab.c:803 #, c-format msgid "Failed to add key to the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:960 +#: ipa-client/ipa-getkeytab.c:812 #, c-format msgid "Failed to close the keytab\n" msgstr "" -#: ipa-client/ipa-getkeytab.c:966 +#: ipa-client/ipa-getkeytab.c:818 #, c-format msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" @@ -12470,127 +15120,135 @@ msgid "access() on %1$s failed: errno = %2$d\n" msgstr "" #: ipa-client/ipa-join.c:134 ipa-client/ipa-join.c:163 -#: ipa-client/ipa-join.c:220 +#: ipa-client/ipa-join.c:223 #, c-format msgid "Out of memory!" msgstr "" -#: ipa-client/ipa-join.c:227 +#: ipa-client/ipa-join.c:230 #, c-format msgid "Unable to initialize connection to ldap server: %s" msgstr "" -#: ipa-client/ipa-join.c:233 +#: ipa-client/ipa-join.c:236 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "" -#: ipa-client/ipa-join.c:246 +#: ipa-client/ipa-join.c:249 #, c-format msgid "Unable to set LDAP version\n" msgstr "" -#: ipa-client/ipa-join.c:266 +#: ipa-client/ipa-join.c:269 #, c-format msgid "Bind failed: %s\n" msgstr "" -#: ipa-client/ipa-join.c:337 +#: ipa-client/ipa-join.c:340 #, c-format msgid "Search for %1$s on rootdse failed with error %2$d\n" msgstr "" -#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:428 +#: ipa-client/ipa-join.c:360 ipa-client/ipa-join.c:431 #, c-format msgid "No values for %s" msgstr "" -#: ipa-client/ipa-join.c:367 +#: ipa-client/ipa-join.c:370 #, c-format msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: ipa-client/ipa-join.c:373 +#: ipa-client/ipa-join.c:376 #, c-format msgid "IPA namingContext not found\n" msgstr "" -#: ipa-client/ipa-join.c:419 +#: ipa-client/ipa-join.c:411 ipa-client/ipa-join.c:484 +#: ipa-client/ipa-join.c:502 ipa-client/ipa-join.c:599 +#: ipa-client/ipa-join.c:805 ipa-client/ipa-join.c:869 util/ipa_krb5.c:1006 +#: util/ipa_krb5.c:1040 +#, c-format +msgid "Out of memory!\n" +msgstr "" + +#: ipa-client/ipa-join.c:422 #, c-format msgid "Search for ipaCertificateSubjectBase failed with error %d" msgstr "" -#: ipa-client/ipa-join.c:490 +#: ipa-client/ipa-join.c:491 #, c-format msgid "Unable to determine root DN of %s\n" msgstr "" -#: ipa-client/ipa-join.c:508 +#: ipa-client/ipa-join.c:509 #, c-format msgid "Incorrect password.\n" msgstr "" -#: ipa-client/ipa-join.c:516 +#: ipa-client/ipa-join.c:517 #, c-format msgid "Unable to determine certificate subject of %s\n" msgstr "" -#: ipa-client/ipa-join.c:532 +#: ipa-client/ipa-join.c:533 #, c-format msgid "Enrollment failed. %s\n" msgstr "" -#: ipa-client/ipa-join.c:661 +#: ipa-client/ipa-join.c:658 #, c-format msgid "principal not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:676 +#: ipa-client/ipa-join.c:673 #, c-format msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:751 ipa-client/ipa-join.c:955 +#: ipa-client/ipa-join.c:748 ipa-client/ipa-join.c:956 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:772 ipa-client/ipa-join.c:970 +#: ipa-client/ipa-join.c:769 ipa-client/ipa-join.c:971 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:781 ipa-client/ipa-join.c:986 +#: ipa-client/ipa-join.c:778 ipa-client/ipa-join.c:987 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:789 +#: ipa-client/ipa-join.c:786 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:798 +#: ipa-client/ipa-join.c:795 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:816 +#: ipa-client/ipa-join.c:813 #, c-format msgid "Error parsing \"%1$s\": %2$s.\n" msgstr "" -#: ipa-client/ipa-join.c:834 +#: ipa-client/ipa-join.c:832 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:845 +#: ipa-client/ipa-join.c:844 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:853 +#: ipa-client/ipa-join.c:852 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" @@ -12610,102 +15268,102 @@ msgstr "" msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:976 +#: ipa-client/ipa-join.c:977 #, c-format msgid "The hostname must not be: %s\n" msgstr "" -#: ipa-client/ipa-join.c:993 +#: ipa-client/ipa-join.c:994 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:1001 +#: ipa-client/ipa-join.c:1002 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not " "provided.\n" msgstr "" -#: ipa-client/ipa-join.c:1016 +#: ipa-client/ipa-join.c:1017 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:1045 +#: ipa-client/ipa-join.c:1046 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:1048 +#: ipa-client/ipa-join.c:1049 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:1051 +#: ipa-client/ipa-join.c:1052 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1063 +#: ipa-client/ipa-join.c:1064 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1069 +#: ipa-client/ipa-join.c:1070 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1107 +#: ipa-client/ipa-join.c:1108 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1109 +#: ipa-client/ipa-join.c:1110 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1111 +#: ipa-client/ipa-join.c:1112 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1113 +#: ipa-client/ipa-join.c:1114 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1113 ipa-client/ipa-join.c:1115 +#: ipa-client/ipa-join.c:1114 ipa-client/ipa-join.c:1116 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1115 +#: ipa-client/ipa-join.c:1116 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1117 +#: ipa-client/ipa-join.c:1118 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1117 +#: ipa-client/ipa-join.c:1118 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1119 +#: ipa-client/ipa-join.c:1120 msgid "Force the host join. Rejoin even if already joined." msgstr "" -#: ipa-client/ipa-join.c:1121 +#: ipa-client/ipa-join.c:1122 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1121 +#: ipa-client/ipa-join.c:1122 msgid "password" msgstr "" -#: ipa-client/ipa-join.c:1123 +#: ipa-client/ipa-join.c:1124 msgid "LDAP basedn" msgstr "" -#: ipa-client/ipa-join.c:1123 +#: ipa-client/ipa-join.c:1124 msgid "basedn" msgstr "" @@ -12777,6 +15435,15 @@ msgstr "" msgid "Debugging output" msgstr "" +#: ipa-client/ipa-rmkeytab.c:171 +msgid "" +"The principal to remove from the keytab (ex: ftp/ftp.example.com@EXAMPLE.COM)" +msgstr "" + +#: ipa-client/ipa-rmkeytab.c:174 +msgid "The keytab file to remove the principcal(s) from" +msgstr "" + #: ipa-client/ipa-rmkeytab.c:176 msgid "Remove all principals in this realm" msgstr "" @@ -12796,35 +15463,35 @@ msgstr "" msgid "krb5_kt_close %1$d: %2$s\n" msgstr "" -#: util/ipa_krb5.c:795 util/ipa_krb5.c:810 +#: util/ipa_krb5.c:799 util/ipa_krb5.c:814 msgid "Out of memory\n" msgstr "" -#: util/ipa_krb5.c:828 +#: util/ipa_krb5.c:832 msgid "Warning unrecognized encryption type.\n" msgstr "" -#: util/ipa_krb5.c:842 +#: util/ipa_krb5.c:846 msgid "Warning unrecognized salt type.\n" msgstr "" -#: util/ipa_krb5.c:882 +#: util/ipa_krb5.c:886 msgid "Out of memory!?\n" msgstr "" -#: util/ipa_krb5.c:917 +#: util/ipa_krb5.c:921 msgid "Enctype comparison failed!\n" msgstr "" -#: util/ipa_krb5.c:982 +#: util/ipa_krb5.c:986 msgid "Failed to create random key!\n" msgstr "" -#: util/ipa_krb5.c:995 util/ipa_krb5.c:1013 util/ipa_krb5.c:1021 -#: util/ipa_krb5.c:1061 +#: util/ipa_krb5.c:999 util/ipa_krb5.c:1017 util/ipa_krb5.c:1025 +#: util/ipa_krb5.c:1065 msgid "Failed to create key!\n" msgstr "" -#: util/ipa_krb5.c:1047 +#: util/ipa_krb5.c:1051 msgid "Bad or unsupported salt type.\n" msgstr "" |