From c187702bfe2c2dbc9614175db5cfa060936159bf Mon Sep 17 00:00:00 2001 From: Adam Young Date: Fri, 24 Sep 2010 20:48:23 -0400 Subject: I18N for web Performing I18N completely on the server, to leverage the existing gettext architecture. Also, the browser does not have access to the Language header. Added the additional po files for a set of required languages conflict with install/static/ipa.js was resolved. Note that the addition of the .po files in this patch is necessary. In order to get Transifex support, we need to update the LINGUAS file with the languages for which we want support. If we don't add the .po files in, they get automatically generated by the rpmbuild process. Our implementation of gettext has a bug in it (It might be F13 thing) where the the Plurals line is not getting correctly transformed, which causes a build failure. However, since the RPM would have the .po files anyway, we should revision control the ones we have, even if they are empty. Fixed the Bug reporting url to the original value. Corrected the Chartype encoding for UK --- install/po/ipa.pot | 935 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 569 insertions(+), 366 deletions(-) (limited to 'install/po/ipa.pot') diff --git a/install/po/ipa.pot b/install/po/ipa.pot index 2246ddc5c..f8fc3f7c0 100644 --- a/install/po/ipa.pot +++ b/install/po/ipa.pot @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: ipa\n" -"Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/" -"newticket\n" -"POT-Creation-Date: 2010-03-16 17:21-0400\n" +"Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/newticket\n" +"POT-Creation-Date: 2010-09-27 10:25-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -26,82 +26,82 @@ msgstr "" msgid "Only one value is allowed" msgstr "" -#: ../../ipalib/parameters.py:862 +#: ../../ipalib/parameters.py:877 msgid "must be True or False" msgstr "" -#: ../../ipalib/parameters.py:963 +#: ../../ipalib/parameters.py:978 msgid "must be an integer" msgstr "" -#: ../../ipalib/parameters.py:1014 +#: ../../ipalib/parameters.py:1029 #, python-format msgid "must be at least %(minvalue)d" msgstr "" -#: ../../ipalib/parameters.py:1024 +#: ../../ipalib/parameters.py:1039 #, python-format msgid "can be at most %(maxvalue)d" msgstr "" -#: ../../ipalib/parameters.py:1034 +#: ../../ipalib/parameters.py:1049 msgid "must be a decimal number" msgstr "" -#: ../../ipalib/parameters.py:1056 +#: ../../ipalib/parameters.py:1071 #, python-format msgid "must be at least %(minvalue)f" msgstr "" -#: ../../ipalib/parameters.py:1066 +#: ../../ipalib/parameters.py:1081 #, python-format msgid "can be at most %(maxvalue)f" msgstr "" -#: ../../ipalib/parameters.py:1126 +#: ../../ipalib/parameters.py:1145 #, python-format msgid "must match pattern \"%(pattern)s\"" msgstr "" -#: ../../ipalib/parameters.py:1144 +#: ../../ipalib/parameters.py:1163 msgid "must be binary data" msgstr "" -#: ../../ipalib/parameters.py:1159 +#: ../../ipalib/parameters.py:1179 #, python-format msgid "must be at least %(minlength)d bytes" msgstr "" -#: ../../ipalib/parameters.py:1169 +#: ../../ipalib/parameters.py:1189 #, python-format msgid "can be at most %(maxlength)d bytes" msgstr "" -#: ../../ipalib/parameters.py:1179 +#: ../../ipalib/parameters.py:1199 #, python-format msgid "must be exactly %(length)d bytes" msgstr "" -#: ../../ipalib/parameters.py:1197 +#: ../../ipalib/parameters.py:1217 msgid "must be Unicode text" msgstr "" -#: ../../ipalib/parameters.py:1227 +#: ../../ipalib/parameters.py:1248 #, python-format msgid "must be at least %(minlength)d characters" msgstr "" -#: ../../ipalib/parameters.py:1237 +#: ../../ipalib/parameters.py:1258 #, python-format msgid "can be at most %(maxlength)d characters" msgstr "" -#: ../../ipalib/parameters.py:1247 +#: ../../ipalib/parameters.py:1268 #, python-format msgid "must be exactly %(length)d characters" msgstr "" -#: ../../ipalib/parameters.py:1286 +#: ../../ipalib/parameters.py:1307 #, python-format msgid "must be one of %(values)r" msgstr "" @@ -131,19 +131,19 @@ msgstr "" msgid "Cancelled." msgstr "" -#: ../../ipalib/frontend.py:377 +#: ../../ipalib/frontend.py:380 msgid "Results are truncated, try a more specific search" msgstr "" -#: ../../ipalib/frontend.py:785 +#: ../../ipalib/frontend.py:797 ../../ipalib/plugins/misc.py:47 msgid "retrieve all attributes" msgstr "" -#: ../../ipalib/frontend.py:790 +#: ../../ipalib/frontend.py:803 msgid "print entries as stored on the server" msgstr "" -#: ../../ipalib/frontend.py:883 +#: ../../ipalib/frontend.py:914 msgid "Forward to server instead of running locally" msgstr "" @@ -281,8 +281,8 @@ msgstr "" #: ../../ipalib/errors.py:831 #, python-format msgid "" -"Service principal is not of the form: service/fully-qualified host name: %" -"(reason)s" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" msgstr "" #: ../../ipalib/errors.py:847 @@ -340,411 +340,453 @@ msgstr "" msgid "The default users group cannot be removed" msgstr "" -#: ../../ipalib/errors.py:1078 +#: ../../ipalib/errors.py:1071 +msgid "Host does not have corresponding DNS A record" +msgstr "" + +#: ../../ipalib/errors.py:1086 +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "" + +#: ../../ipalib/errors.py:1109 #, python-format msgid "no command nor help topic %(topic)r" msgstr "" -#: ../../ipalib/errors.py:1102 +#: ../../ipalib/errors.py:1133 msgid "change collided with another change" msgstr "" -#: ../../ipalib/errors.py:1118 +#: ../../ipalib/errors.py:1149 msgid "no modifications to be performed" msgstr "" -#: ../../ipalib/errors.py:1134 +#: ../../ipalib/errors.py:1165 #, python-format msgid "%(desc)s:%(info)s" msgstr "" -#: ../../ipalib/errors.py:1150 +#: ../../ipalib/errors.py:1181 msgid "limits exceeded for this query" msgstr "" -#: ../../ipalib/errors.py:1165 +#: ../../ipalib/errors.py:1196 #, python-format msgid "%(info)s" msgstr "" -#: ../../ipalib/errors.py:1190 +#: ../../ipalib/errors.py:1221 #, python-format msgid "Certificate operation cannot be completed: %(error)s" msgstr "" -#: ../../ipalib/plugins/config.py:45 +#: ../../ipalib/plugins/config.py:73 +msgid "Configuration" +msgstr "" + +#: ../../ipalib/plugins/config.py:78 msgid "Max username length" msgstr "" -#: ../../ipalib/plugins/config.py:50 +#: ../../ipalib/plugins/config.py:83 msgid "Home directory base" msgstr "" -#: ../../ipalib/plugins/config.py:51 +#: ../../ipalib/plugins/config.py:84 msgid "Default location of home directories" msgstr "" -#: ../../ipalib/plugins/config.py:55 +#: ../../ipalib/plugins/config.py:88 msgid "Default shell" msgstr "" -#: ../../ipalib/plugins/config.py:56 +#: ../../ipalib/plugins/config.py:89 msgid "Default shell for new users" msgstr "" -#: ../../ipalib/plugins/config.py:60 +#: ../../ipalib/plugins/config.py:93 msgid "Default users group" msgstr "" -#: ../../ipalib/plugins/config.py:61 +#: ../../ipalib/plugins/config.py:94 msgid "Default group for new users" msgstr "" -#: ../../ipalib/plugins/config.py:65 +#: ../../ipalib/plugins/config.py:98 msgid "Default e-mail domain" msgstr "" -#: ../../ipalib/plugins/config.py:66 +#: ../../ipalib/plugins/config.py:99 msgid "Default e-mail domain new users" msgstr "" -#: ../../ipalib/plugins/config.py:70 +#: ../../ipalib/plugins/config.py:103 msgid "Search time limit" msgstr "" -#: ../../ipalib/plugins/config.py:71 +#: ../../ipalib/plugins/config.py:104 msgid "Max. amount of time (sec.) for a search (-1 is unlimited)" msgstr "" -#: ../../ipalib/plugins/config.py:76 +#: ../../ipalib/plugins/config.py:109 msgid "Search size limit" msgstr "" -#: ../../ipalib/plugins/config.py:77 +#: ../../ipalib/plugins/config.py:110 msgid "Max. number of records to search (-1 is unlimited)" msgstr "" -#: ../../ipalib/plugins/config.py:82 +#: ../../ipalib/plugins/config.py:115 msgid "User search fields" msgstr "" -#: ../../ipalib/plugins/config.py:83 +#: ../../ipalib/plugins/config.py:116 msgid "A comma-separated list of fields to search when searching for users" msgstr "" -#: ../../ipalib/plugins/config.py:88 +#: ../../ipalib/plugins/config.py:121 msgid "A comma-separated list of fields to search when searching for groups" msgstr "" -#: ../../ipalib/plugins/config.py:92 +#: ../../ipalib/plugins/config.py:125 msgid "Migration mode" msgstr "" -#: ../../ipalib/plugins/config.py:93 -msgid "Enabled migration mode" +#: ../../ipalib/plugins/config.py:126 +msgid "Enable migration mode" msgstr "" -#: ../../ipalib/plugins/config.py:97 +#: ../../ipalib/plugins/config.py:130 msgid "Certificate Subject base" msgstr "" -#: ../../ipalib/plugins/config.py:98 -msgid "base for certificate subjects (OU=Test,O=Example)" +#: ../../ipalib/plugins/config.py:131 +msgid "Base for certificate subjects (OU=Test,O=Example)" msgstr "" -#: ../../ipalib/plugins/rolegroup.py:42 +#: ../../ipalib/plugins/rolegroup.py:79 msgid "Role Groups" msgstr "" -#: ../../ipalib/plugins/rolegroup.py:47 +#: ../../ipalib/plugins/rolegroup.py:84 msgid "Role-group name" msgstr "" -#: ../../ipalib/plugins/rolegroup.py:53 ../../ipalib/plugins/host.py:77 -#: ../../ipalib/plugins/group.py:59 ../../ipalib/plugins/hbac.py:91 -#: ../../ipalib/plugins/automount.py:230 ../../ipalib/plugins/netgroup.py:58 -#: ../../ipalib/plugins/taskgroup.py:54 ../../ipalib/plugins/hostgroup.py:55 +#: ../../ipalib/plugins/rolegroup.py:90 ../../ipalib/plugins/host.py:124 +#: ../../ipalib/plugins/group.py:108 ../../ipalib/plugins/hbac.py:151 +#: ../../ipalib/plugins/automount.py:230 ../../ipalib/plugins/netgroup.py:96 +#: ../../ipalib/plugins/taskgroup.py:62 ../../ipalib/plugins/hostgroup.py:81 msgid "Description" msgstr "" -#: ../../ipalib/plugins/rolegroup.py:54 +#: ../../ipalib/plugins/rolegroup.py:91 msgid "A description of this role-group" msgstr "" -#: ../../ipalib/plugins/rolegroup.py:57 ../../ipalib/plugins/group.py:68 -#: ../../ipalib/plugins/taskgroup.py:58 +#: ../../ipalib/plugins/rolegroup.py:94 ../../ipalib/plugins/group.py:117 +#: ../../ipalib/plugins/taskgroup.py:66 msgid "Member groups" msgstr "" -#: ../../ipalib/plugins/rolegroup.py:61 ../../ipalib/plugins/group.py:72 -#: ../../ipalib/plugins/taskgroup.py:62 +#: ../../ipalib/plugins/rolegroup.py:98 ../../ipalib/plugins/group.py:121 +#: ../../ipalib/plugins/taskgroup.py:70 msgid "Member users" msgstr "" -#: ../../ipalib/plugins/rolegroup.py:65 +#: ../../ipalib/plugins/rolegroup.py:102 msgid "Member of task-groups" msgstr "" -#: ../../ipalib/plugins/rolegroup.py:78 +#: ../../ipalib/plugins/rolegroup.py:115 #, python-format msgid "Added rolegroup \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/rolegroup.py:88 +#: ../../ipalib/plugins/rolegroup.py:125 #, python-format msgid "Deleted rolegroup \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/rolegroup.py:98 +#: ../../ipalib/plugins/rolegroup.py:135 #, python-format msgid "Modified rolegroup \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/rolegroup.py:109 +#: ../../ipalib/plugins/rolegroup.py:146 #, python-format msgid "%(count)d rolegroup matched" msgid_plural "%(count)d rolegroups matched" msgstr[0] "" msgstr[1] "" -#: ../../ipalib/plugins/host.py:66 +#: ../../ipalib/plugins/host.py:86 +msgid "Fully-qualified hostname required" +msgstr "" + +#: ../../ipalib/plugins/host.py:113 ../../ipalib/plugins/hbac.py:162 msgid "Hosts" msgstr "" -#: ../../ipalib/plugins/host.py:71 +#: ../../ipalib/plugins/host.py:118 msgid "Host name" msgstr "" -#: ../../ipalib/plugins/host.py:78 +#: ../../ipalib/plugins/host.py:125 msgid "A description of this host" msgstr "" -#: ../../ipalib/plugins/host.py:82 +#: ../../ipalib/plugins/host.py:129 msgid "Locality" msgstr "" -#: ../../ipalib/plugins/host.py:83 +#: ../../ipalib/plugins/host.py:130 msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" -#: ../../ipalib/plugins/host.py:87 ../../ipalib/plugins/automount.py:107 +#: ../../ipalib/plugins/host.py:134 ../../ipalib/plugins/automount.py:107 msgid "Location" msgstr "" -#: ../../ipalib/plugins/host.py:88 +#: ../../ipalib/plugins/host.py:135 msgid "Host location (e.g. \"Lab 2\")" msgstr "" -#: ../../ipalib/plugins/host.py:92 +#: ../../ipalib/plugins/host.py:139 msgid "Platform" msgstr "" -#: ../../ipalib/plugins/host.py:93 +#: ../../ipalib/plugins/host.py:140 msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "" -#: ../../ipalib/plugins/host.py:97 +#: ../../ipalib/plugins/host.py:144 msgid "Operating system" msgstr "" -#: ../../ipalib/plugins/host.py:98 +#: ../../ipalib/plugins/host.py:145 msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "" -#: ../../ipalib/plugins/host.py:102 +#: ../../ipalib/plugins/host.py:149 msgid "User password" msgstr "" -#: ../../ipalib/plugins/host.py:103 +#: ../../ipalib/plugins/host.py:150 msgid "Password used in bulk enrollment" msgstr "" -#: ../../ipalib/plugins/host.py:107 ../../ipalib/plugins/service.py:128 -#: ../../ipalib/plugins/cert.py:188 ../../ipalib/plugins/cert.py:370 +#: ../../ipalib/plugins/host.py:154 ../../ipalib/plugins/service.py:185 +#: ../../ipalib/plugins/service.py:265 ../../ipalib/plugins/service.py:304 +#: ../../ipalib/plugins/service.py:343 ../../ipalib/plugins/cert.py:187 +#: ../../ipalib/plugins/cert.py:392 msgid "Certificate" msgstr "" -#: ../../ipalib/plugins/host.py:108 ../../ipalib/plugins/service.py:129 +#: ../../ipalib/plugins/host.py:155 ../../ipalib/plugins/service.py:186 +#: ../../ipalib/plugins/service.py:266 ../../ipalib/plugins/service.py:305 +#: ../../ipalib/plugins/service.py:344 msgid "Base-64 encoded server certificate" msgstr "" -#: ../../ipalib/plugins/host.py:111 ../../ipalib/plugins/host.py:214 +#: ../../ipalib/plugins/host.py:158 ../../ipalib/plugins/host.py:274 msgid "Principal name" msgstr "" -#: ../../ipalib/plugins/host.py:115 ../../ipalib/plugins/hostgroup.py:67 +#: ../../ipalib/plugins/host.py:162 ../../ipalib/plugins/hostgroup.py:93 msgid "Member of host-groups" msgstr "" -#: ../../ipalib/plugins/host.py:119 +#: ../../ipalib/plugins/host.py:166 msgid "Member of net-groups" msgstr "" -#: ../../ipalib/plugins/host.py:123 +#: ../../ipalib/plugins/host.py:170 msgid "Member of role-groups" msgstr "" -#: ../../ipalib/plugins/host.py:152 +#: ../../ipalib/plugins/host.py:199 #, python-format msgid "Added host \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/host.py:181 +#: ../../ipalib/plugins/host.py:202 +msgid "force host name even if not in DNS" +msgstr "" + +#: ../../ipalib/plugins/host.py:235 #, python-format msgid "Deleted host \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/host.py:209 +#: ../../ipalib/plugins/host.py:269 #, python-format msgid "Modified host \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/host.py:215 +#: ../../ipalib/plugins/host.py:275 msgid "Kerberos principal name for this host" msgstr "" -#: ../../ipalib/plugins/host.py:259 +#: ../../ipalib/plugins/host.py:319 #, python-format msgid "%(count)d host matched" msgid_plural "%(count)d hosts matched" msgstr[0] "" msgstr[1] "" -#: ../../ipalib/plugins/group.py:48 -msgid "User Groups" +#: ../../ipalib/plugins/host.py:337 ../../ipalib/plugins/service.py:83 +msgid "Keytab" msgstr "" -#: ../../ipalib/plugins/group.py:53 -msgid "Group name" +#: ../../ipalib/plugins/host.py:359 ../../ipalib/plugins/service.py:386 +#, python-format +msgid "Removed kerberos key from \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/group.py:60 -msgid "Group description" +#: ../../ipalib/plugins/host.py:368 +msgid "Host principal has no kerberos key" msgstr "" -#: ../../ipalib/plugins/group.py:64 -msgid "GID" +#: ../../ipalib/plugins/group.py:94 +msgid "User Groups" msgstr "" -#: ../../ipalib/plugins/group.py:65 -msgid "GID (use this option to set it manually)" +#: ../../ipalib/plugins/group.py:102 +msgid "Group name" msgstr "" -#: ../../ipalib/plugins/group.py:76 -msgid "Failed members" +#: ../../ipalib/plugins/group.py:109 +msgid "Group description" msgstr "" -#: ../../ipalib/plugins/group.py:80 ../../ipalib/plugins/user.py:48 -msgid "Users" +#: ../../ipalib/plugins/group.py:113 +msgid "GID" msgstr "" -#: ../../ipalib/plugins/group.py:84 ../../ipalib/plugins/user.py:109 -msgid "Groups" +#: ../../ipalib/plugins/group.py:114 +msgid "GID (use this option to set it manually)" msgstr "" -#: ../../ipalib/plugins/group.py:97 +#: ../../ipalib/plugins/group.py:134 #, python-format msgid "Added group \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/group.py:102 +#: ../../ipalib/plugins/group.py:139 msgid "Create as posix group?" msgstr "" -#: ../../ipalib/plugins/group.py:120 +#: ../../ipalib/plugins/group.py:159 #, python-format msgid "Deleted group \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/group.py:146 +#: ../../ipalib/plugins/group.py:188 #, python-format msgid "Modified group \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/group.py:151 +#: ../../ipalib/plugins/group.py:193 msgid "change to posix group" msgstr "" -#: ../../ipalib/plugins/group.py:175 +#: ../../ipalib/plugins/group.py:219 #, python-format msgid "%(count)d group matched" msgid_plural "%(count)d groups matched" msgstr[0] "" msgstr[1] "" -#: ../../ipalib/plugins/migration.py:40 +#: ../../ipalib/plugins/group.py:254 +#, python-format +msgid "Detached group \"%(value)s\" from user \"%(value)s\"" +msgstr "" + +#: ../../ipalib/plugins/group.py:270 +msgid "not allowed to modify user entries" +msgstr "" + +#: ../../ipalib/plugins/group.py:274 +msgid "not allowed to modify group entries" +msgstr "" + +#: ../../ipalib/plugins/group.py:281 ../../ipalib/plugins/group.py:292 +msgid "Not a managed group" +msgstr "" + +#: ../../ipalib/plugins/migration.py:44 #, python-format msgid "" "Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." msgstr "" -#: ../../ipalib/plugins/migration.py:41 +#: ../../ipalib/plugins/migration.py:45 msgid "" "Failed to add user to the default group. Use 'ipa group-add-member' to add " "manually." msgstr "" -#: ../../ipalib/plugins/migration.py:165 +#: ../../ipalib/plugins/migration.py:169 msgid "LDAP URI" msgstr "" -#: ../../ipalib/plugins/migration.py:166 +#: ../../ipalib/plugins/migration.py:170 msgid "LDAP URI of DS server to migrate from" msgstr "" -#: ../../ipalib/plugins/migration.py:170 +#: ../../ipalib/plugins/migration.py:174 msgid "bind password" msgstr "" -#: ../../ipalib/plugins/migration.py:177 +#: ../../ipalib/plugins/migration.py:181 msgid "Bind DN" msgstr "" -#: ../../ipalib/plugins/migration.py:183 +#: ../../ipalib/plugins/migration.py:187 msgid "User container" msgstr "" -#: ../../ipalib/plugins/migration.py:184 +#: ../../ipalib/plugins/migration.py:188 msgid "RDN of container for users in DS" msgstr "" -#: ../../ipalib/plugins/migration.py:190 +#: ../../ipalib/plugins/migration.py:194 msgid "Group container" msgstr "" -#: ../../ipalib/plugins/migration.py:191 +#: ../../ipalib/plugins/migration.py:195 msgid "RDN of container for groups in DS" msgstr "" -#: ../../ipalib/plugins/migration.py:200 +#: ../../ipalib/plugins/migration.py:204 msgid "Lists of objects migrated; categorized by type." msgstr "" -#: ../../ipalib/plugins/migration.py:204 +#: ../../ipalib/plugins/migration.py:208 msgid "Lists of objects that could not be migrated; categorized by type." msgstr "" -#: ../../ipalib/plugins/migration.py:208 +#: ../../ipalib/plugins/migration.py:212 msgid "False if migration mode was disabled." msgstr "" -#: ../../ipalib/plugins/migration.py:212 +#: ../../ipalib/plugins/migration.py:216 #, python-format msgid "comma-separated list of %s to exclude from migration" msgstr "" -#: ../../ipalib/plugins/migration.py:214 +#: ../../ipalib/plugins/migration.py:218 msgid "" "search results for objects to be migrated\n" "have been truncated by the server;\n" "migration process might be uncomplete\n" msgstr "" -#: ../../ipalib/plugins/migration.py:219 +#: ../../ipalib/plugins/migration.py:223 msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." msgstr "" -#: ../../ipalib/plugins/migration.py:222 +#: ../../ipalib/plugins/migration.py:226 msgid "" "Passwords have been migrated in pre-hashed format.\n" "IPA is unable to generate Kerberos keys unless provided\n" @@ -753,454 +795,554 @@ msgid "" "can use their Kerberos accounts." msgstr "" -#: ../../ipalib/plugins/service.py:116 +#: ../../ipalib/plugins/service.py:157 ../../ipalib/plugins/hbac.py:174 msgid "Services" msgstr "" -#: ../../ipalib/plugins/service.py:121 ../../ipalib/plugins/cert.py:175 +#: ../../ipalib/plugins/service.py:162 ../../ipalib/plugins/cert.py:171 msgid "Principal" msgstr "" -#: ../../ipalib/plugins/service.py:122 +#: ../../ipalib/plugins/service.py:163 msgid "Service principal" msgstr "" -#: ../../ipalib/plugins/service.py:140 +#: ../../ipalib/plugins/service.py:176 #, python-format msgid "Added service \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/service.py:144 +#: ../../ipalib/plugins/service.py:181 msgid "force principal name even if not in DNS" msgstr "" -#: ../../ipalib/plugins/service.py:187 +#: ../../ipalib/plugins/service.py:224 #, python-format msgid "Deleted service \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/passwd.py:37 ../../ipalib/plugins/krbtpolicy.py:47 +#: ../../ipalib/plugins/service.py:261 +#, python-format +msgid "Modified service \"%(value)s\"" +msgstr "" + +#: ../../ipalib/plugins/service.py:298 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "" +msgstr[1] "" + +#: ../../ipalib/plugins/service.py:396 +msgid "Service principal has no kerberos key" +msgstr "" + +#: ../../ipalib/plugins/passwd.py:52 ../../ipalib/plugins/krbtpolicy.py:62 msgid "User name" msgstr "" -#: ../../ipalib/plugins/hbac.py:48 +#: ../../ipalib/plugins/hbac.py:106 msgid "HBAC" msgstr "" -#: ../../ipalib/plugins/hbac.py:53 +#: ../../ipalib/plugins/hbac.py:111 msgid "Rule name" msgstr "" -#: ../../ipalib/plugins/hbac.py:58 +#: ../../ipalib/plugins/hbac.py:116 msgid "Rule type (allow or deny)" msgstr "" -#: ../../ipalib/plugins/hbac.py:63 -msgid "Service name" -msgstr "" - -#: ../../ipalib/plugins/hbac.py:64 -msgid "Name of service the rule applies to (e.g. ssh)" +#: ../../ipalib/plugins/hbac.py:117 +msgid "Rule type" msgstr "" -#: ../../ipalib/plugins/hbac.py:69 +#: ../../ipalib/plugins/hbac.py:123 msgid "User category" msgstr "" -#: ../../ipalib/plugins/hbac.py:70 +#: ../../ipalib/plugins/hbac.py:124 msgid "User category the rule applies to" msgstr "" -#: ../../ipalib/plugins/hbac.py:75 +#: ../../ipalib/plugins/hbac.py:129 msgid "Host category" msgstr "" -#: ../../ipalib/plugins/hbac.py:76 +#: ../../ipalib/plugins/hbac.py:130 msgid "Host category the rule applies to" msgstr "" -#: ../../ipalib/plugins/hbac.py:81 +#: ../../ipalib/plugins/hbac.py:135 msgid "Source host category" msgstr "" -#: ../../ipalib/plugins/hbac.py:82 +#: ../../ipalib/plugins/hbac.py:136 msgid "Source host category the rule applies to" msgstr "" -#: ../../ipalib/plugins/hbac.py:87 ../../ipalib/plugins/hbac.py:221 -#: ../../ipalib/plugins/hbac.py:259 +#: ../../ipalib/plugins/hbac.py:141 +msgid "Service category" +msgstr "" + +#: ../../ipalib/plugins/hbac.py:142 +msgid "Service category the rule applies to" +msgstr "" + +#: ../../ipalib/plugins/hbac.py:147 ../../ipalib/plugins/hbac.py:309 +#: ../../ipalib/plugins/hbac.py:347 msgid "Access time" msgstr "" -#: ../../ipalib/plugins/cert.py:62 ../../ipalib/plugins/cert.py:83 -msgid "Unable to decode certificate in entry" +#: ../../ipalib/plugins/hbac.py:154 +msgid "Enabled" +msgstr "" + +#: ../../ipalib/plugins/hbac.py:158 ../../ipalib/plugins/user.py:76 +msgid "Users" +msgstr "" + +#: ../../ipalib/plugins/hbac.py:166 ../../ipalib/plugins/hostgroup.py:69 +msgid "Host Groups" +msgstr "" + +#: ../../ipalib/plugins/hbac.py:170 +msgid "Source hosts" +msgstr "" + +#: ../../ipalib/plugins/hbac.py:178 +msgid "Service Groups" msgstr "" -#: ../../ipalib/plugins/cert.py:105 ../../ipalib/plugins/cert.py:119 -#: ../../ipalib/plugins/cert.py:136 +#: ../../ipalib/plugins/cert.py:93 +msgid "Failure decoding Certificate Signing Request:" +msgstr "" + +#: ../../ipalib/plugins/cert.py:106 ../../ipalib/plugins/cert.py:118 msgid "Failure decoding Certificate Signing Request" msgstr "" -#: ../../ipalib/plugins/cert.py:138 +#: ../../ipalib/plugins/cert.py:120 #, python-format msgid "Failure decoding Certificate Signing Request: %s" msgstr "" -#: ../../ipalib/plugins/cert.py:176 +#: ../../ipalib/plugins/cert.py:172 msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -#: ../../ipalib/plugins/cert.py:183 +#: ../../ipalib/plugins/cert.py:179 msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ../../ipalib/plugins/cert.py:192 ../../ipalib/plugins/cert.py:374 +#: ../../ipalib/plugins/cert.py:191 ../../ipalib/plugins/cert.py:395 msgid "Subject" msgstr "" -#: ../../ipalib/plugins/cert.py:196 ../../ipalib/plugins/cert.py:357 +#: ../../ipalib/plugins/cert.py:195 ../../ipalib/plugins/cert.py:398 +msgid "Issuer" +msgstr "" + +#: ../../ipalib/plugins/cert.py:199 ../../ipalib/plugins/cert.py:401 +msgid "Not Before" +msgstr "" + +#: ../../ipalib/plugins/cert.py:203 ../../ipalib/plugins/cert.py:404 +msgid "Not After" +msgstr "" + +#: ../../ipalib/plugins/cert.py:207 ../../ipalib/plugins/cert.py:407 +msgid "Fingerprint (MD5)" +msgstr "" + +#: ../../ipalib/plugins/cert.py:211 ../../ipalib/plugins/cert.py:410 +msgid "Fingerprint (SHA1)" +msgstr "" + +#: ../../ipalib/plugins/cert.py:215 ../../ipalib/plugins/cert.py:379 msgid "Serial number" msgstr "" -#: ../../ipalib/plugins/cert.py:204 ../../ipalib/plugins/misc.py:46 +#: ../../ipalib/plugins/cert.py:223 ../../ipalib/plugins/misc.py:57 msgid "Dictionary mapping variable name to value" msgstr "" -#: ../../ipalib/plugins/cert.py:334 +#: ../../ipalib/plugins/cert.py:357 msgid "Request id" msgstr "" -#: ../../ipalib/plugins/cert.py:340 +#: ../../ipalib/plugins/cert.py:363 msgid "Request status" msgstr "" -#: ../../ipalib/plugins/cert.py:358 +#: ../../ipalib/plugins/cert.py:380 msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ../../ipalib/plugins/cert.py:378 +#: ../../ipalib/plugins/cert.py:413 msgid "Revocation reason" msgstr "" -#: ../../ipalib/plugins/cert.py:403 +#: ../../ipalib/plugins/cert.py:458 msgid "Revoked" msgstr "" -#: ../../ipalib/plugins/cert.py:412 +#: ../../ipalib/plugins/cert.py:466 msgid "Reason" msgstr "" -#: ../../ipalib/plugins/cert.py:413 +#: ../../ipalib/plugins/cert.py:467 msgid "Reason for revoking the certificate (0-10)" msgstr "" -#: ../../ipalib/plugins/cert.py:438 +#: ../../ipalib/plugins/cert.py:502 msgid "Unrevoked" msgstr "" -#: ../../ipalib/plugins/cert.py:442 +#: ../../ipalib/plugins/cert.py:505 msgid "Error" msgstr "" -#: ../../ipalib/plugins/baseldap.py:74 +#: ../../ipalib/plugins/baseldap.py:79 #, python-format msgid "container entry (%(container)s) not found" msgstr "" -#: ../../ipalib/plugins/baseldap.py:75 +#: ../../ipalib/plugins/baseldap.py:80 #, python-format msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ../../ipalib/plugins/baseldap.py:76 +#: ../../ipalib/plugins/baseldap.py:81 #, python-format msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ../../ipalib/plugins/baseldap.py:126 +#: ../../ipalib/plugins/baseldap.py:150 msgid "Add an attribute/value pair. Format is attr=value" msgstr "" -#: ../../ipalib/plugins/baseldap.py:131 +#: ../../ipalib/plugins/baseldap.py:155 msgid "Set an attribute to an name/value pair. Format is attr=value" msgstr "" -#: ../../ipalib/plugins/baseldap.py:318 +#: ../../ipalib/plugins/baseldap.py:491 msgid "the entry was deleted while being modified" msgstr "" -#: ../../ipalib/plugins/baseldap.py:426 +#: ../../ipalib/plugins/baseldap.py:627 msgid "Members that could not be added" msgstr "" -#: ../../ipalib/plugins/baseldap.py:430 +#: ../../ipalib/plugins/baseldap.py:631 msgid "Number of members added" msgstr "" -#: ../../ipalib/plugins/baseldap.py:502 -msgid "Number of members removed" +#: ../../ipalib/plugins/baseldap.py:637 ../../ipalib/plugins/baseldap.py:742 +msgid "Failed members" msgstr "" -#: ../../ipalib/plugins/baseldap.py:506 +#: ../../ipalib/plugins/baseldap.py:732 msgid "Members that could not be removed" msgstr "" -#: ../../ipalib/plugins/aci.py:81 +#: ../../ipalib/plugins/baseldap.py:736 +msgid "Number of members removed" +msgstr "" + +#: ../../ipalib/plugins/baseldap.py:833 +msgid "Time Limit" +msgstr "" + +#: ../../ipalib/plugins/baseldap.py:834 +msgid "Time limit of search in seconds" +msgstr "" + +#: ../../ipalib/plugins/baseldap.py:840 +msgid "Size Limit" +msgstr "" + +#: ../../ipalib/plugins/baseldap.py:841 +msgid "Maximum number of entries returned" +msgstr "" + +#: ../../ipalib/plugins/aci.py:111 msgid "A list of ACI values" msgstr "" -#: ../../ipalib/plugins/aci.py:109 +#: ../../ipalib/plugins/aci.py:142 msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" -#: ../../ipalib/plugins/aci.py:112 +#: ../../ipalib/plugins/aci.py:145 msgid "" "at least one of: type, filter, subtree, targetgroup, attrs or memberof are " "required" msgstr "" -#: ../../ipalib/plugins/aci.py:117 -msgid "group and taskgroup are mutually exclusive" +#: ../../ipalib/plugins/aci.py:151 +msgid "group, taskgroup and self are mutually exclusive" msgstr "" -#: ../../ipalib/plugins/aci.py:119 -msgid "One of group or taskgroup is required" +#: ../../ipalib/plugins/aci.py:153 +msgid "One of group, taskgroup or self is required" msgstr "" -#: ../../ipalib/plugins/aci.py:140 +#: ../../ipalib/plugins/aci.py:172 #, python-format msgid "Group '%s' does not exist" msgstr "" -#: ../../ipalib/plugins/aci.py:184 +#: ../../ipalib/plugins/aci.py:269 #, python-format msgid "ACI with name \"%s\" not found" msgstr "" -#: ../../ipalib/plugins/aci.py:201 +#: ../../ipalib/plugins/aci.py:286 msgid "ACIs" msgstr "" -#: ../../ipalib/plugins/aci.py:206 +#: ../../ipalib/plugins/aci.py:291 msgid "ACI name" msgstr "" -#: ../../ipalib/plugins/aci.py:211 +#: ../../ipalib/plugins/aci.py:296 msgid "Taskgroup" msgstr "" -#: ../../ipalib/plugins/aci.py:212 +#: ../../ipalib/plugins/aci.py:297 msgid "Taskgroup ACI grants access to" msgstr "" -#: ../../ipalib/plugins/aci.py:216 +#: ../../ipalib/plugins/aci.py:301 msgid "User group" msgstr "" -#: ../../ipalib/plugins/aci.py:217 +#: ../../ipalib/plugins/aci.py:302 msgid "User group ACI grants access to" msgstr "" -#: ../../ipalib/plugins/aci.py:221 +#: ../../ipalib/plugins/aci.py:306 msgid "Permissions" msgstr "" -#: ../../ipalib/plugins/aci.py:222 +#: ../../ipalib/plugins/aci.py:307 msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, " -"selfwrite, all)" +"comma-separated list of permissions to grant(read, write, add, delete, all)" msgstr "" -#: ../../ipalib/plugins/aci.py:228 +#: ../../ipalib/plugins/aci.py:313 msgid "Attributes" msgstr "" -#: ../../ipalib/plugins/aci.py:229 +#: ../../ipalib/plugins/aci.py:314 msgid "Comma-separated list of attributes" msgstr "" -#: ../../ipalib/plugins/aci.py:233 +#: ../../ipalib/plugins/aci.py:318 msgid "Type" msgstr "" -#: ../../ipalib/plugins/aci.py:234 +#: ../../ipalib/plugins/aci.py:319 msgid "type of IPA object (user, group, host)" msgstr "" -#: ../../ipalib/plugins/aci.py:239 +#: ../../ipalib/plugins/aci.py:324 msgid "Member of" msgstr "" -#: ../../ipalib/plugins/aci.py:240 +#: ../../ipalib/plugins/aci.py:325 msgid "Member of a group" msgstr "" -#: ../../ipalib/plugins/aci.py:244 +#: ../../ipalib/plugins/aci.py:329 msgid "Filter" msgstr "" -#: ../../ipalib/plugins/aci.py:245 +#: ../../ipalib/plugins/aci.py:330 msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" -#: ../../ipalib/plugins/aci.py:249 +#: ../../ipalib/plugins/aci.py:334 msgid "Subtree" msgstr "" -#: ../../ipalib/plugins/aci.py:250 +#: ../../ipalib/plugins/aci.py:335 msgid "Subtree to apply ACI to" msgstr "" -#: ../../ipalib/plugins/aci.py:254 +#: ../../ipalib/plugins/aci.py:339 msgid "Target group" msgstr "" -#: ../../ipalib/plugins/aci.py:255 +#: ../../ipalib/plugins/aci.py:340 msgid "Group to apply ACI to" msgstr "" -#: ../../ipalib/plugins/aci.py:267 +#: ../../ipalib/plugins/aci.py:344 +msgid "Target your own entry (self)" +msgstr "" + +#: ../../ipalib/plugins/aci.py:345 +msgid "Apply ACI to your own entry (self)" +msgstr "" + +#: ../../ipalib/plugins/aci.py:357 #, python-format msgid "Created ACI \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/aci.py:317 +#: ../../ipalib/plugins/aci.py:407 #, python-format msgid "Deleted ACI \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/aci.py:357 +#: ../../ipalib/plugins/aci.py:447 #, python-format msgid "Modified ACI \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/aci.py:417 +#: ../../ipalib/plugins/aci.py:519 #, python-format msgid "%(count)d ACI matched" msgid_plural "%(count)d ACIs matched" msgstr[0] "" msgstr[1] "" -#: ../../ipalib/plugins/krbtpolicy.py:48 +#: ../../ipalib/plugins/krbtpolicy.py:63 msgid "Manage ticket policy for specific user" msgstr "" -#: ../../ipalib/plugins/krbtpolicy.py:53 +#: ../../ipalib/plugins/krbtpolicy.py:68 msgid "Max life" msgstr "" -#: ../../ipalib/plugins/krbtpolicy.py:54 -msgid "Maximum ticket life" +#: ../../ipalib/plugins/krbtpolicy.py:69 +msgid "Maximum ticket life (seconds)" msgstr "" -#: ../../ipalib/plugins/krbtpolicy.py:58 +#: ../../ipalib/plugins/krbtpolicy.py:73 msgid "Max renew" msgstr "" -#: ../../ipalib/plugins/krbtpolicy.py:59 -msgid "Maximum renewable age" +#: ../../ipalib/plugins/krbtpolicy.py:74 +msgid "Maximum renewable age (seconds)" msgstr "" -#: ../../ipalib/plugins/dns.py:113 +#: ../../ipalib/plugins/dns.py:131 msgid "DNS" msgstr "" -#: ../../ipalib/plugins/dns.py:118 +#: ../../ipalib/plugins/dns.py:136 msgid "Zone" msgstr "" -#: ../../ipalib/plugins/dns.py:119 +#: ../../ipalib/plugins/dns.py:137 msgid "Zone name (FQDN)" msgstr "" -#: ../../ipalib/plugins/dns.py:125 +#: ../../ipalib/plugins/dns.py:143 msgid "Authoritative name server" msgstr "" -#: ../../ipalib/plugins/dns.py:129 +#: ../../ipalib/plugins/dns.py:147 msgid "administrator e-mail address" msgstr "" -#: ../../ipalib/plugins/dns.py:135 +#: ../../ipalib/plugins/dns.py:153 msgid "SOA serial" msgstr "" -#: ../../ipalib/plugins/dns.py:139 +#: ../../ipalib/plugins/dns.py:157 msgid "SOA refresh" msgstr "" -#: ../../ipalib/plugins/dns.py:143 +#: ../../ipalib/plugins/dns.py:161 msgid "SOA retry" msgstr "" -#: ../../ipalib/plugins/dns.py:147 +#: ../../ipalib/plugins/dns.py:165 msgid "SOA expire" msgstr "" -#: ../../ipalib/plugins/dns.py:151 +#: ../../ipalib/plugins/dns.py:169 msgid "SOA minimum" msgstr "" -#: ../../ipalib/plugins/dns.py:155 +#: ../../ipalib/plugins/dns.py:173 msgid "SOA time to live" msgstr "" -#: ../../ipalib/plugins/dns.py:159 +#: ../../ipalib/plugins/dns.py:177 msgid "SOA class" msgstr "" -#: ../../ipalib/plugins/dns.py:164 +#: ../../ipalib/plugins/dns.py:182 msgid "allow dynamic update?" msgstr "" -#: ../../ipalib/plugins/dns.py:168 +#: ../../ipalib/plugins/dns.py:186 msgid "BIND update policy" msgstr "" -#: ../../ipalib/plugins/dns.py:393 ../../ipalib/plugins/dns.py:427 -#: ../../ipalib/plugins/dns.py:462 ../../ipalib/plugins/dns.py:577 -#: ../../ipalib/plugins/dns.py:662 ../../ipalib/plugins/dns.py:786 +#: ../../ipalib/plugins/dns.py:411 ../../ipalib/plugins/dns.py:445 +#: ../../ipalib/plugins/dns.py:480 ../../ipalib/plugins/dns.py:595 +#: ../../ipalib/plugins/dns.py:680 ../../ipalib/plugins/dns.py:804 msgid "Zone name" msgstr "" -#: ../../ipalib/plugins/dns.py:467 +#: ../../ipalib/plugins/dns.py:485 msgid "resource name" msgstr "" -#: ../../ipalib/plugins/dns.py:472 ../../ipalib/plugins/dns.py:587 -#: ../../ipalib/plugins/dns.py:678 +#: ../../ipalib/plugins/dns.py:490 ../../ipalib/plugins/dns.py:605 +#: ../../ipalib/plugins/dns.py:696 msgid "Record type" msgstr "" -#: ../../ipalib/plugins/dns.py:476 ../../ipalib/plugins/dns.py:591 +#: ../../ipalib/plugins/dns.py:494 ../../ipalib/plugins/dns.py:609 msgid "Data" msgstr "" -#: ../../ipalib/plugins/dns.py:477 ../../ipalib/plugins/dns.py:592 +#: ../../ipalib/plugins/dns.py:495 ../../ipalib/plugins/dns.py:610 msgid "Type-specific data" msgstr "" -#: ../../ipalib/plugins/dns.py:484 +#: ../../ipalib/plugins/dns.py:502 msgid "Time to live" msgstr "" -#: ../../ipalib/plugins/dns.py:489 +#: ../../ipalib/plugins/dns.py:507 msgid "Class" msgstr "" -#: ../../ipalib/plugins/dns.py:582 ../../ipalib/plugins/dns.py:674 -#: ../../ipalib/plugins/dns.py:791 +#: ../../ipalib/plugins/dns.py:600 ../../ipalib/plugins/dns.py:692 +#: ../../ipalib/plugins/dns.py:809 msgid "Resource name" msgstr "" -#: ../../ipalib/plugins/dns.py:667 +#: ../../ipalib/plugins/dns.py:685 msgid "Search criteria" msgstr "" -#: ../../ipalib/plugins/dns.py:682 +#: ../../ipalib/plugins/dns.py:700 msgid "type-specific data" msgstr "" +#: ../../ipalib/plugins/dns.py:850 +#, python-format +msgid "Found '%(value)s'" +msgstr "" + +#: ../../ipalib/plugins/dns.py:854 +msgid "Hostname" +msgstr "" + +#: ../../ipalib/plugins/dns.py:867 +#, python-format +msgid "Host '%(host)s' not found" +msgstr "" + #: ../../ipalib/plugins/automount.py:108 msgid "Automount location name" msgstr "" @@ -1249,327 +1391,388 @@ msgstr "" msgid "Name of parent automount map (default: auto.master)" msgstr "" -#: ../../ipalib/plugins/netgroup.py:47 +#: ../../ipalib/plugins/netgroup.py:57 +msgid "Member Host" +msgstr "" + +#: ../../ipalib/plugins/netgroup.py:63 +msgid "External host" +msgstr "" + +#: ../../ipalib/plugins/netgroup.py:85 msgid "Net Groups" msgstr "" -#: ../../ipalib/plugins/netgroup.py:52 +#: ../../ipalib/plugins/netgroup.py:90 msgid "Netgroup name" msgstr "" -#: ../../ipalib/plugins/netgroup.py:59 +#: ../../ipalib/plugins/netgroup.py:97 msgid "Netgroup description" msgstr "" -#: ../../ipalib/plugins/netgroup.py:63 +#: ../../ipalib/plugins/netgroup.py:101 msgid "NIS domain name" msgstr "" -#: ../../ipalib/plugins/netgroup.py:68 +#: ../../ipalib/plugins/netgroup.py:106 msgid "IPA unique ID" msgstr "" -#: ../../ipalib/plugins/netgroup.py:80 -msgid "Member host" -msgstr "" - -#: ../../ipalib/plugins/netgroup.py:88 -msgid "External host" -msgstr "" - -#: ../../ipalib/plugins/misc.py:37 +#: ../../ipalib/plugins/misc.py:38 #, python-format msgid "%(count)d variables" msgstr "" -#: ../../ipalib/plugins/misc.py:50 +#: ../../ipalib/plugins/misc.py:61 msgid "Total number of variables env (>= count)" msgstr "" -#: ../../ipalib/plugins/misc.py:54 +#: ../../ipalib/plugins/misc.py:66 msgid "Number of variables returned (<= total)" msgstr "" -#: ../../ipalib/plugins/misc.py:96 +#: ../../ipalib/plugins/misc.py:109 #, python-format msgid "%(count)d plugin loaded" msgid_plural "%(count)d plugins loaded" msgstr[0] "" msgstr[1] "" -#: ../../ipalib/plugins/misc.py:103 +#: ../../ipalib/plugins/misc.py:116 msgid "Number of plugins loaded" msgstr "" -#: ../../ipalib/plugins/user.py:53 +#: ../../ipalib/plugins/user.py:84 msgid "User login" msgstr "" -#: ../../ipalib/plugins/user.py:60 +#: ../../ipalib/plugins/user.py:91 msgid "First name" msgstr "" -#: ../../ipalib/plugins/user.py:64 +#: ../../ipalib/plugins/user.py:95 msgid "Last name" msgstr "" -#: ../../ipalib/plugins/user.py:72 +#: ../../ipalib/plugins/user.py:103 msgid "GECOS field" msgstr "" -#: ../../ipalib/plugins/user.py:78 +#: ../../ipalib/plugins/user.py:109 msgid "Login shell" msgstr "" -#: ../../ipalib/plugins/user.py:83 +#: ../../ipalib/plugins/user.py:114 msgid "Kerberos principal" msgstr "" -#: ../../ipalib/plugins/user.py:89 +#: ../../ipalib/plugins/user.py:120 msgid "Email address" msgstr "" -#: ../../ipalib/plugins/user.py:93 +#: ../../ipalib/plugins/user.py:124 msgid "Password" msgstr "" -#: ../../ipalib/plugins/user.py:94 +#: ../../ipalib/plugins/user.py:125 msgid "Set the user password" msgstr "" -#: ../../ipalib/plugins/user.py:101 +#: ../../ipalib/plugins/user.py:132 msgid "UID" msgstr "" -#: ../../ipalib/plugins/user.py:102 -msgid "UID (use this option to set it manually)" +#: ../../ipalib/plugins/user.py:133 +msgid "User ID Number (system will assign one if not provided)" msgstr "" -#: ../../ipalib/plugins/user.py:106 +#: ../../ipalib/plugins/user.py:139 msgid "Street address" msgstr "" -#: ../../ipalib/plugins/user.py:113 +#: ../../ipalib/plugins/user.py:142 +msgid "Groups" +msgstr "" + +#: ../../ipalib/plugins/user.py:146 msgid "Netgroups" msgstr "" -#: ../../ipalib/plugins/user.py:117 +#: ../../ipalib/plugins/user.py:150 msgid "Rolegroups" msgstr "" -#: ../../ipalib/plugins/user.py:121 +#: ../../ipalib/plugins/user.py:154 msgid "Taskgroups" msgstr "" -#: ../../ipalib/plugins/user.py:134 +#: ../../ipalib/plugins/user.py:167 #, python-format msgid "Added user \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/user.py:179 +#: ../../ipalib/plugins/user.py:216 #, python-format msgid "Deleted user \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/user.py:198 +#: ../../ipalib/plugins/user.py:235 #, python-format msgid "Modified user \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/user.py:209 +#: ../../ipalib/plugins/user.py:247 +msgid "Self" +msgstr "" + +#: ../../ipalib/plugins/user.py:248 +msgid "Display user record for current Kerberos principal" +msgstr "" + +#: ../../ipalib/plugins/user.py:258 #, python-format msgid "%(count)d user matched" msgid_plural "%(count)d users matched" msgstr[0] "" msgstr[1] "" -#: ../../ipalib/plugins/user.py:229 +#: ../../ipalib/plugins/user.py:278 #, python-format msgid "Locked user \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/user.py:255 +#: ../../ipalib/plugins/user.py:304 #, python-format msgid "Unlocked user \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/taskgroup.py:43 +#: ../../ipalib/plugins/taskgroup.py:51 msgid "Task Groups" msgstr "" -#: ../../ipalib/plugins/taskgroup.py:48 +#: ../../ipalib/plugins/taskgroup.py:56 msgid "Task-group name" msgstr "" -#: ../../ipalib/plugins/taskgroup.py:55 +#: ../../ipalib/plugins/taskgroup.py:63 msgid "Task-group description" msgstr "" -#: ../../ipalib/plugins/taskgroup.py:66 +#: ../../ipalib/plugins/taskgroup.py:74 msgid "Member role-groups" msgstr "" -#: ../../ipalib/plugins/taskgroup.py:79 +#: ../../ipalib/plugins/taskgroup.py:87 #, python-format msgid "Added taskgroup \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/taskgroup.py:89 +#: ../../ipalib/plugins/taskgroup.py:97 #, python-format msgid "Deleted taskgroup \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/taskgroup.py:99 +#: ../../ipalib/plugins/taskgroup.py:107 #, python-format msgid "Modified taskgroup \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/taskgroup.py:110 +#: ../../ipalib/plugins/taskgroup.py:118 #, python-format msgid "%(count)d taskgroup matched" msgid_plural "%(count)d taskgroups matched" msgstr[0] "" msgstr[1] "" -#: ../../ipalib/plugins/hostgroup.py:43 -msgid "Host Groups" -msgstr "" - -#: ../../ipalib/plugins/hostgroup.py:48 +#: ../../ipalib/plugins/hostgroup.py:74 msgid "Host-group" msgstr "" -#: ../../ipalib/plugins/hostgroup.py:49 +#: ../../ipalib/plugins/hostgroup.py:75 msgid "Name of host-group" msgstr "" -#: ../../ipalib/plugins/hostgroup.py:56 +#: ../../ipalib/plugins/hostgroup.py:82 msgid "A description of this host-group" msgstr "" -#: ../../ipalib/plugins/hostgroup.py:59 +#: ../../ipalib/plugins/hostgroup.py:85 msgid "Member hosts" msgstr "" -#: ../../ipalib/plugins/hostgroup.py:63 +#: ../../ipalib/plugins/hostgroup.py:89 msgid "Member host-groups" msgstr "" -#: ../../ipalib/plugins/hostgroup.py:80 +#: ../../ipalib/plugins/hostgroup.py:106 #, python-format msgid "Added hostgroup \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/hostgroup.py:90 +#: ../../ipalib/plugins/hostgroup.py:116 #, python-format msgid "Deleted hostgroup \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/hostgroup.py:100 +#: ../../ipalib/plugins/hostgroup.py:126 #, python-format msgid "Modified hostgroup \"%(value)s\"" msgstr "" -#: ../../ipalib/plugins/hostgroup.py:111 +#: ../../ipalib/plugins/hostgroup.py:137 #, python-format msgid "%(count)d hostgroup matched" msgid_plural "%(count)d hostgroups matched" msgstr[0] "" msgstr[1] "" -#: ../../ipalib/plugins/pwpolicy.py:121 ../../ipalib/plugins/pwpolicy.py:173 -#: ../../ipalib/plugins/pwpolicy.py:225 ../../ipalib/plugins/pwpolicy.py:321 +#: ../../ipalib/plugins/pwpolicy.py:84 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +msgstr "" + +#: ../../ipalib/plugins/pwpolicy.py:173 msgid "Group" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:126 +#: ../../ipalib/plugins/pwpolicy.py:174 +msgid "Manage password policy for specific group" +msgstr "" + +#: ../../ipalib/plugins/pwpolicy.py:179 msgid "Max lifetime (days)" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:127 +#: ../../ipalib/plugins/pwpolicy.py:180 msgid "Maximum password lifetime (in days)" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:133 +#: ../../ipalib/plugins/pwpolicy.py:185 msgid "Min lifetime (hours)" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:134 +#: ../../ipalib/plugins/pwpolicy.py:186 msgid "Minimum password lifetime (in hours)" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:140 +#: ../../ipalib/plugins/pwpolicy.py:191 msgid "History size" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:141 +#: ../../ipalib/plugins/pwpolicy.py:192 msgid "Password history size" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:147 +#: ../../ipalib/plugins/pwpolicy.py:197 msgid "Character classes" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:148 +#: ../../ipalib/plugins/pwpolicy.py:198 msgid "Minimum number of character classes" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:154 +#: ../../ipalib/plugins/pwpolicy.py:204 msgid "Min length" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:155 +#: ../../ipalib/plugins/pwpolicy.py:205 msgid "Minimum length of password" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:169 -#, python-format -msgid "Added policy for group \"%(value)s\"" +#: ../../ipalib/plugins/pwpolicy.py:210 +msgid "Priority" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:174 ../../ipalib/plugins/pwpolicy.py:226 -msgid "Group to set policy for" +#: ../../ipalib/plugins/pwpolicy.py:211 +msgid "Priority of the policy (higher number means lower priority" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:179 ../../ipalib/plugins/pwpolicy.py:230 -msgid "Priority" +#: ../../ipalib/plugins/pwpolicy.py:263 +msgid "Maximum password life must be greater than minimum." msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:180 ../../ipalib/plugins/pwpolicy.py:231 -msgid "Priority of the policy (higher number equals lower priority)" +#: ../../ipalib/plugins/pwpolicy.py:326 +msgid "priority cannot be set on global policy" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:222 -#, python-format -msgid "Modified policy for group \"%(value)s\"" +#: ../../ipalib/plugins/pwpolicy.py:365 +msgid "User" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:244 -msgid "priority cannot be set on global policy" +#: ../../ipalib/plugins/pwpolicy.py:366 +msgid "Display effective policy for a specific user" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:277 -#, python-format -msgid "Deleted policy for group \"%(value)s\"" +#: ../../ipalib/plugins/internal.py:39 +msgid "Logged In As" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:280 -msgid "Group to remove policy from" +#: ../../ipalib/plugins/internal.py:41 +msgid "Add" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:322 -msgid "Group to display policy" +#: ../../ipalib/plugins/internal.py:42 +msgid "Find" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:325 -msgid "User" +#: ../../ipalib/plugins/internal.py:43 +msgid "Reset" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:326 -msgid "Display policy applied to a given user" +#: ../../ipalib/plugins/internal.py:44 +msgid "Update" msgstr "" -#: ../../ipaserver/install/certs.py:576 ../../ipaserver/plugins/dogtag.py:1313 +#: ../../ipalib/plugins/internal.py:45 +msgid "Enroll" +msgstr "" + +#: ../../ipalib/plugins/internal.py:48 +msgid "Quick Links" +msgstr "" + +#: ../../ipalib/plugins/internal.py:51 +msgid "Identity Details" +msgstr "" + +#: ../../ipalib/plugins/internal.py:52 +msgid "Account Details" +msgstr "" + +#: ../../ipalib/plugins/internal.py:53 +msgid "Contact Details" +msgstr "" + +#: ../../ipalib/plugins/internal.py:54 +msgid "Mailing Address" +msgstr "" + +#: ../../ipalib/plugins/internal.py:55 +msgid " Employee Information" +msgstr "" + +#: ../../ipalib/plugins/internal.py:56 +msgid "Misc. Information" +msgstr "" + +#: ../../ipalib/plugins/internal.py:57 +msgid "Back to Top" +msgstr "" + +#: ../../ipalib/plugins/internal.py:62 +msgid "Name of object to export" +msgstr "" + +#: ../../ipalib/plugins/internal.py:67 +msgid "Dict of JSON encoded IPA Objects" +msgstr "" + +#: ../../ipalib/plugins/internal.py:68 +msgid "Dict of I18N messages" +msgstr "" + +#: ../../ipaserver/install/certs.py:603 ../../ipaserver/plugins/dogtag.py:1313 #: ../../ipaserver/plugins/dogtag.py:1398 #: ../../ipaserver/plugins/dogtag.py:1463 #: ../../ipaserver/plugins/dogtag.py:1543 @@ -1578,28 +1781,28 @@ msgstr "" msgid "Unable to communicate with CMS (%s)" msgstr "" -#: ../../ipaserver/plugins/selfsign.py:102 +#: ../../ipaserver/plugins/selfsign.py:97 #, python-format msgid "" -"Request subject \"%(request_subject)s\" does not match the form \"%" -"(subject_base)s\"" +"Request subject \"%(request_subject)s\" does not match the form " +"\"%(subject_base)s\"" msgstr "" -#: ../../ipaserver/plugins/selfsign.py:107 +#: ../../ipaserver/plugins/selfsign.py:102 #, python-format msgid "unable to decode csr: %s" msgstr "" -#: ../../ipaserver/plugins/selfsign.py:128 -#: ../../ipaserver/plugins/selfsign.py:143 +#: ../../ipaserver/plugins/selfsign.py:123 +#: ../../ipaserver/plugins/selfsign.py:138 msgid "file operation" msgstr "" -#: ../../ipaserver/plugins/selfsign.py:157 +#: ../../ipaserver/plugins/selfsign.py:152 msgid "cannot obtain next serial number" msgstr "" -#: ../../ipaserver/plugins/selfsign.py:192 +#: ../../ipaserver/plugins/selfsign.py:187 msgid "certutil failure" msgstr "" -- cgit