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/zh_CN.po | 1107 ++++++++++++++++++++++++++++++++++----------------- 1 file changed, 732 insertions(+), 375 deletions(-) (limited to 'install/po/zh_CN.po') diff --git a/install/po/zh_CN.po b/install/po/zh_CN.po index a27fc2948..4a25ac8bb 100644 --- a/install/po/zh_CN.po +++ b/install/po/zh_CN.po @@ -6,10 +6,11 @@ msgid "" msgstr "" "Project-Id-Version: ipa\n" "Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/newticket\n" -"POT-Creation-Date: 2010-03-01 19:57-0500\n" +"POT-Creation-Date: 2010-09-27 10:25-0400\n" "PO-Revision-Date: 2010-03-18 22:43+0800\n" "Last-Translator: Jake Li \n" "Language-Team: Chinese Simplified \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -26,86 +27,98 @@ msgstr "不正确的类型" msgid "Only one value is allowed" msgstr "只允许一个值" -#: ../../ipalib/parameters.py:862 +#: ../../ipalib/parameters.py:877 msgid "must be True or False" msgstr "必须是True或False" -#: ../../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 "必须是Unicode文本" -#: ../../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 "" +#: ../../ipalib/output.py:92 +msgid "A dictionary representing an LDAP entry" +msgstr "" + +#: ../../ipalib/output.py:100 +msgid "A list of LDAP entries" +msgstr "" + +#: ../../ipalib/output.py:111 +msgid "All commands should at least have a result" +msgstr "" + #: ../../ipalib/cli.py:507 #, python-format msgid "Enter %(label)s again to verify: " @@ -119,10 +132,22 @@ 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:797 ../../ipalib/plugins/misc.py:47 +msgid "retrieve all attributes" +msgstr "" + +#: ../../ipalib/frontend.py:803 +msgid "print entries as stored on the server" +msgstr "" + +#: ../../ipalib/frontend.py:914 +msgid "Forward to server instead of running locally" +msgstr "" + #: ../../ipalib/errors.py:297 #, python-format msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" @@ -147,8 +172,7 @@ msgstr "服务器%(server)r上发生了一个内部错误" msgid "unknown command %(name)r" msgstr "未知的命令%(name)r" -#: ../../ipalib/errors.py:386 -#: ../../ipalib/errors.py:411 +#: ../../ipalib/errors.py:386 ../../ipalib/errors.py:411 #, python-format msgid "error on server %(server)r: %(error)s" msgstr "" @@ -224,8 +248,7 @@ msgstr "" msgid "%(name)r is required" msgstr "需要%(name)r" -#: ../../ipalib/errors.py:706 -#: ../../ipalib/errors.py:722 +#: ../../ipalib/errors.py:706 ../../ipalib/errors.py:722 #, python-format msgid "invalid %(name)r: %(error)s" msgstr "%(name)r无效: %(error)s" @@ -243,8 +266,7 @@ msgstr "密码不匹配" msgid "Command not implemented" msgstr "命令没有实现" -#: ../../ipalib/errors.py:783 -#: ../../ipalib/errors.py:1023 +#: ../../ipalib/errors.py:783 ../../ipalib/errors.py:1023 #, python-format msgid "%(reason)s" msgstr "%(reason)s" @@ -259,11 +281,14 @@ msgstr "" #: ../../ipalib/errors.py:831 #, python-format -msgid "Service principal is not of the form: service/fully-qualified host name: %(reason)s" +msgid "" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" msgstr "" #: ../../ipalib/errors.py:847 -msgid "The realm for the principal does not match the realm for this IPA server" +msgid "" +"The realm for the principal does not match the realm for this IPA server" msgstr "" #: ../../ipalib/errors.py:863 @@ -316,783 +341,1019 @@ 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 "%(desc)s:%(info)s" -#: ../../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 "%(info)s" -#: ../../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 "默认shell" -#: ../../ipalib/plugins/config.py:56 +#: ../../ipalib/plugins/config.py:89 msgid "Default shell for new users" msgstr "新用户的默认shell" -#: ../../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:92 +#: ../../ipalib/plugins/config.py:121 +msgid "A comma-separated list of fields to search when searching for groups" +msgstr "" + +#: ../../ipalib/plugins/config.py:125 msgid "Migration mode" msgstr "迁移模式" -#: ../../ipalib/plugins/config.py:93 -msgid "Enabled migration mode" +#: ../../ipalib/plugins/config.py:126 +#, fuzzy +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 "主机地点(如\"Baltimore, MD\")" -#: ../../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 "主机位置(如\"Lab 2\")" -#: ../../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 "主机硬件平台 (e.g. \"Lenovo T61\")" -#: ../../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 "主机操作系统及版本(e.g. \"Fedora 9\")" -#: ../../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 "Base-64 编码格式的服务器证书" -#: ../../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 "新增主机 \"%(value)s\"" -#: ../../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 "已删除主机 \"%(value)s\"" -#: ../../ipalib/plugins/host.py:209 +#: ../../ipalib/plugins/host.py:269 #, python-format msgid "Modified host \"%(value)s\"" msgstr "已修改主机 \"%(value)s\"" -#: ../../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 +#: ../../ipalib/plugins/host.py:337 ../../ipalib/plugins/service.py:83 +msgid "Keytab" +msgstr "" + +#: ../../ipalib/plugins/host.py:359 ../../ipalib/plugins/service.py:386 +#, fuzzy, python-format +msgid "Removed kerberos key from \"%(value)s\"" +msgstr "已锁定用户\"%(value)s\"" + +#: ../../ipalib/plugins/host.py:368 +msgid "Host principal has no kerberos key" +msgstr "" + +#: ../../ipalib/plugins/group.py:94 msgid "User Groups" msgstr "用户组" -#: ../../ipalib/plugins/group.py:53 +#: ../../ipalib/plugins/group.py:102 msgid "Group name" msgstr "组名" -#: ../../ipalib/plugins/group.py:60 +#: ../../ipalib/plugins/group.py:109 msgid "Group description" msgstr "组描述" -#: ../../ipalib/plugins/group.py:64 +#: ../../ipalib/plugins/group.py:113 msgid "GID" msgstr "GID" -#: ../../ipalib/plugins/group.py:65 +#: ../../ipalib/plugins/group.py:114 msgid "GID (use this option to set it manually)" msgstr "" -#: ../../ipalib/plugins/group.py:76 -msgid "Failed members" -msgstr "失败的成员" - -#: ../../ipalib/plugins/group.py:80 -#: ../../ipalib/plugins/user.py:48 -msgid "Users" -msgstr "用户" - -#: ../../ipalib/plugins/group.py:84 -#: ../../ipalib/plugins/user.py:109 -msgid "Groups" -msgstr "用户组" - -#: ../../ipalib/plugins/group.py:97 +#: ../../ipalib/plugins/group.py:134 #, python-format msgid "Added group \"%(value)s\"" msgstr "已添加组\"%(value)s\"" -#: ../../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 "已删除组\"%(value)s\"" -#: ../../ipalib/plugins/group.py:146 +#: ../../ipalib/plugins/group.py:188 #, python-format msgid "Modified group \"%(value)s\"" msgstr "已修改组\"%(value)s\"" -#: ../../ipalib/plugins/group.py:175 +#: ../../ipalib/plugins/group.py:193 +#, fuzzy +msgid "change to posix group" +msgstr "这已经是一个posix组" + +#: ../../ipalib/plugins/group.py:219 #, python-format msgid "%(count)d group matched" msgid_plural "%(count)d groups matched" msgstr[0] "%(count)d 个组匹配" msgstr[1] "%(count)d 个组匹配" -#: ../../ipalib/plugins/migration.py:166 +#: ../../ipalib/plugins/group.py:254 +#, fuzzy, python-format +msgid "Detached group \"%(value)s\" from user \"%(value)s\"" +msgstr "已删除组\"%(value)s\"" + +#: ../../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:45 +msgid "" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." +msgstr "" + +#: ../../ipalib/plugins/migration.py:169 msgid "LDAP URI" msgstr "LDAP URI" -#: ../../ipalib/plugins/migration.py:167 +#: ../../ipalib/plugins/migration.py:170 msgid "LDAP URI of DS server to migrate from" msgstr "" -#: ../../ipalib/plugins/migration.py:178 +#: ../../ipalib/plugins/migration.py:174 +#, fuzzy +msgid "bind password" +msgstr "用户密码" + +#: ../../ipalib/plugins/migration.py:181 msgid "Bind DN" msgstr "" -#: ../../ipalib/plugins/migration.py:184 +#: ../../ipalib/plugins/migration.py:187 msgid "User container" msgstr "用户容器" -#: ../../ipalib/plugins/migration.py:185 +#: ../../ipalib/plugins/migration.py:188 msgid "RDN of container for users in DS" msgstr "" -#: ../../ipalib/plugins/migration.py:191 +#: ../../ipalib/plugins/migration.py:194 msgid "Group container" msgstr "组容器" -#: ../../ipalib/plugins/migration.py:192 +#: ../../ipalib/plugins/migration.py:195 msgid "RDN of container for groups in DS" msgstr "" -#: ../../ipalib/plugins/service.py:116 +#: ../../ipalib/plugins/migration.py:204 +msgid "Lists of objects migrated; categorized by type." +msgstr "" + +#: ../../ipalib/plugins/migration.py:208 +msgid "Lists of objects that could not be migrated; categorized by type." +msgstr "" + +#: ../../ipalib/plugins/migration.py:212 +#, fuzzy +msgid "False if migration mode was disabled." +msgstr "启用迁移模式" + +#: ../../ipalib/plugins/migration.py:216 +#, python-format +msgid "comma-separated list of %s to exclude from migration" +msgstr "" + +#: ../../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:223 +msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." +msgstr "" + +#: ../../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" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." +msgstr "" + +#: ../../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:187 +#: ../../ipalib/plugins/service.py:181 +msgid "force principal name even if not in DNS" +msgstr "" + +#: ../../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 +#, fuzzy, python-format +msgid "Modified service \"%(value)s\"" +msgstr "已修改用户\"%(value)s\"" + +#: ../../ipalib/plugins/service.py:298 +#, fuzzy, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "%(count)d 个组匹配" +msgstr[1] "%(count)d 个组匹配" + +#: ../../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 "HBAC" -#: ../../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)" -msgstr "" +#: ../../ipalib/plugins/hbac.py:117 +#, fuzzy +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 +#, fuzzy +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 +#, fuzzy +msgid "Source hosts" +msgstr "源主机类别" + +#: ../../ipalib/plugins/hbac.py:178 +#, fuzzy +msgid "Service Groups" +msgstr "服务" + +#: ../../ipalib/plugins/cert.py:93 +#, fuzzy +msgid "Failure decoding Certificate Signing Request:" msgstr "不能解码项目中的证书" -#: ../../ipalib/plugins/cert.py:105 -#: ../../ipalib/plugins/cert.py:119 -#: ../../ipalib/plugins/cert.py:136 +#: ../../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:334 +#: ../../ipalib/plugins/cert.py:223 ../../ipalib/plugins/misc.py:57 +msgid "Dictionary mapping variable name to value" +msgstr "" + +#: ../../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 "撤消证书的原因(0-10)" -#: ../../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:115 +#: ../../ipalib/plugins/baseldap.py:79 +#, python-format +msgid "container entry (%(container)s) not found" +msgstr "" + +#: ../../ipalib/plugins/baseldap.py:80 +#, python-format +msgid "%(parent)s: %(oname)s not found" +msgstr "" + +#: ../../ipalib/plugins/baseldap.py:81 +#, python-format +msgid "%(pkey)s: %(oname)s not found" +msgstr "" + +#: ../../ipalib/plugins/baseldap.py:150 msgid "Add an attribute/value pair. Format is attr=value" msgstr "" -#: ../../ipalib/plugins/baseldap.py:120 +#: ../../ipalib/plugins/baseldap.py:155 msgid "Set an attribute to an name/value pair. Format is attr=value" msgstr "" -#: ../../ipalib/plugins/aci.py:109 +#: ../../ipalib/plugins/baseldap.py:491 +msgid "the entry was deleted while being modified" +msgstr "" + +#: ../../ipalib/plugins/baseldap.py:627 +msgid "Members that could not be added" +msgstr "" + +#: ../../ipalib/plugins/baseldap.py:631 +msgid "Number of members added" +msgstr "" + +#: ../../ipalib/plugins/baseldap.py:637 ../../ipalib/plugins/baseldap.py:742 +msgid "Failed members" +msgstr "失败的成员" + +#: ../../ipalib/plugins/baseldap.py:732 +msgid "Members that could not be removed" +msgstr "" + +#: ../../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:142 msgid "type, filter, subtree and targetgroup are mutually exclusive" msgstr "" -#: ../../ipalib/plugins/aci.py:112 -msgid "at least one of: type, filter, subtree, targetgroup, attrs or memberof are required" +#: ../../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 "组 '%s' 不存在" -#: ../../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 "ACIs" -#: ../../ipalib/plugins/aci.py:206 +#: ../../ipalib/plugins/aci.py:291 msgid "ACI name" msgstr "ACI名称" -#: ../../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 -msgid "comma-separated list of permissions to grant(read, write, add, delete, selfwrite, all)" +#: ../../ipalib/plugins/aci.py:307 +msgid "" +"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 "DNS" -#: ../../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 +#, fuzzy, python-format +msgid "Found '%(value)s'" +msgstr "已添加组\"%(value)s\"" + +#: ../../ipalib/plugins/dns.py:854 +#, fuzzy +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 "" @@ -1102,7 +1363,7 @@ msgid "Map" msgstr "" #: ../../ipalib/plugins/automount.py:225 -msgid "Aautomount map name" +msgid "Automount map name" msgstr "" #: ../../ipalib/plugins/automount.py:234 @@ -1141,313 +1402,390 @@ msgstr "" msgid "Name of parent automount map (default: auto.master)" msgstr "" -#: ../../ipalib/plugins/netgroup.py:47 +#: ../../ipalib/plugins/netgroup.py:57 +#, fuzzy +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 "NIS域名" -#: ../../ipalib/plugins/netgroup.py:80 -msgid "Member host" -msgstr "成员主机" - -#: ../../ipalib/plugins/netgroup.py:88 -msgid "External host" -msgstr "外部主机" +#: ../../ipalib/plugins/netgroup.py:106 +msgid "IPA unique ID" +msgstr "" -#: ../../ipalib/plugins/misc.py:37 +#: ../../ipalib/plugins/misc.py:38 #, python-format msgid "%(count)d variables" msgstr "" -#: ../../ipalib/plugins/misc.py:96 +#: ../../ipalib/plugins/misc.py:61 +msgid "Total number of variables env (>= count)" +msgstr "" + +#: ../../ipalib/plugins/misc.py:66 +msgid "Number of variables returned (<= total)" +msgstr "" + +#: ../../ipalib/plugins/misc.py:109 #, python-format msgid "%(count)d plugin loaded" msgid_plural "%(count)d plugins loaded" msgstr[0] "" msgstr[1] "" -#: ../../ipalib/plugins/user.py:53 +#: ../../ipalib/plugins/misc.py:116 +msgid "Number of plugins loaded" +msgstr "" + +#: ../../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 "GECOS字段" -#: ../../ipalib/plugins/user.py:78 +#: ../../ipalib/plugins/user.py:109 msgid "Login shell" msgstr "登录shell" -#: ../../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 "UID" -#: ../../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 "新增用户\"%(value)s\"" -#: ../../ipalib/plugins/user.py:179 +#: ../../ipalib/plugins/user.py:216 #, python-format msgid "Deleted user \"%(value)s\"" msgstr "已删除用户\"%(value)s\"" -#: ../../ipalib/plugins/user.py:198 +#: ../../ipalib/plugins/user.py:235 #, python-format msgid "Modified user \"%(value)s\"" msgstr "已修改用户\"%(value)s\"" -#: ../../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 "已锁定用户\"%(value)s\"" -#: ../../ipalib/plugins/user.py:255 +#: ../../ipalib/plugins/user.py:304 #, python-format msgid "Unlocked user \"%(value)s\"" msgstr "已解锁用户\"%(value)s\"" -#: ../../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:84 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +msgstr "" + #: ../../ipalib/plugins/pwpolicy.py:173 -#: ../../ipalib/plugins/pwpolicy.py:225 -#: ../../ipalib/plugins/pwpolicy.py:321 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:211 +msgid "Priority of the policy (higher number means lower priority" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:174 -#: ../../ipalib/plugins/pwpolicy.py:226 -msgid "Group to set policy for" +#: ../../ipalib/plugins/pwpolicy.py:263 +msgid "Maximum password life must be greater than minimum." msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:179 -#: ../../ipalib/plugins/pwpolicy.py:230 -msgid "Priority" -msgstr "优先级" +#: ../../ipalib/plugins/pwpolicy.py:326 +msgid "priority cannot be set on global policy" +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:365 +msgid "User" +msgstr "用户" + +#: ../../ipalib/plugins/pwpolicy.py:366 +msgid "Display effective policy for a specific user" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:222 -#, python-format -msgid "Modified policy for group \"%(value)s\"" +#: ../../ipalib/plugins/internal.py:39 +msgid "Logged In As" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:244 -msgid "priority cannot be set on global policy" +#: ../../ipalib/plugins/internal.py:41 +msgid "Add" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:277 -#, python-format -msgid "Deleted policy for group \"%(value)s\"" +#: ../../ipalib/plugins/internal.py:42 +msgid "Find" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:322 -msgid "Group to display policy" +#: ../../ipalib/plugins/internal.py:43 +msgid "Reset" msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:325 -msgid "User" -msgstr "用户" +#: ../../ipalib/plugins/internal.py:44 +msgid "Update" +msgstr "" -#: ../../ipalib/plugins/pwpolicy.py:326 -msgid "Display policy applied to a given user" +#: ../../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 +#, fuzzy +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 "" -#: ../../ipaserver/install/certs.py:576 -#: ../../ipaserver/plugins/dogtag.py:1313 +#: ../../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 @@ -1456,29 +1794,48 @@ 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\"" +msgid "" +"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 "不能解码csr: %s" -#: ../../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 "" +#: ../../ipaserver/plugins/join.py:54 +msgid "The hostname to register as" +msgstr "" + +#: ../../ipaserver/plugins/join.py:62 +msgid "The IPA realm" +msgstr "" + +#: ../../ipaserver/plugins/join.py:68 #, fuzzy -#~ msgid "bind password" -#~ msgstr "用户密码" +msgid "Hardware platform of the host (e.g. Lenovo T61)" +msgstr "主机硬件平台 (e.g. \"Lenovo T61\")" + +#: ../../ipaserver/plugins/join.py:72 +#, fuzzy +msgid "Operating System and version of the host (e.g. Fedora 9)" +msgstr "主机操作系统及版本(e.g. \"Fedora 9\")" + +#~ msgid "Service name" +#~ msgstr "服务名" -- cgit