1 /*
   2  * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package sun.security.tools.keytool;
  27 
  28 /**
  29  * <p> This class represents the <code>ResourceBundle</code>
  30  * for the keytool.
  31  *
  32  */
  33 public class Resources_zh_CN extends java.util.ListResourceBundle {
  34 
  35     private static final Object[][] contents = {
  36         {"NEWLINE", "\n"},
  37         {"STAR",
  38                 "*******************************************"},
  39         {"STARNN",
  40                 "*******************************************\n\n"},
  41 
  42         // keytool: Help part
  43         {".OPTION.", " [OPTION]..."},
  44         {"Options.", "选项:"},
  45         {"option.1.set.twice", "多次指定了 %s 选项。除最后一个之外, 其余的将全部忽略。"},
  46         {"multiple.commands.1.2", "只允许一个命令: 同时指定了 %1$s 和 %2$s。"},
  47         {"Use.keytool.help.for.all.available.commands",
  48                  "使用 \"keytool -?, -h, or --help\" 可输出此帮助消息"},
  49         {"Key.and.Certificate.Management.Tool",
  50                  "密钥和证书管理工具"},
  51         {"Commands.", "命令:"},
  52         {"Use.keytool.command.name.help.for.usage.of.command.name",
  53                 "使用 \"keytool -command_name --help\" 可获取 command_name 的用法。\n使用 -conf <url> 选项可指定预配置的选项文件。"},
  54         // keytool: help: commands
  55         {"Generates.a.certificate.request",
  56                 "生成证书请求"}, //-certreq
  57         {"Changes.an.entry.s.alias",
  58                 "更改条目的别名"}, //-changealias
  59         {"Deletes.an.entry",
  60                 "删除条目"}, //-delete
  61         {"Exports.certificate",
  62                 "导出证书"}, //-exportcert
  63         {"Generates.a.key.pair",
  64                 "生成密钥对"}, //-genkeypair
  65         {"Generates.a.secret.key",
  66                 "生成密钥"}, //-genseckey
  67         {"Generates.certificate.from.a.certificate.request",
  68                 "根据证书请求生成证书"}, //-gencert
  69         {"Generates.CRL", "生成 CRL"}, //-gencrl
  70         {"Generated.keyAlgName.secret.key",
  71                 "已生成{0}密钥"}, //-genseckey
  72         {"Generated.keysize.bit.keyAlgName.secret.key",
  73                 "已生成 {0} 位{1}密钥"}, //-genseckey
  74         {"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
  75                 "从 JDK 1.1.x 样式的身份数据库导入条目"}, //-identitydb
  76         {"Imports.a.certificate.or.a.certificate.chain",
  77                 "导入证书或证书链"}, //-importcert
  78         {"Imports.a.password",
  79                 "导入口令"}, //-importpass
  80         {"Imports.one.or.all.entries.from.another.keystore",
  81                 "从其他密钥库导入一个或所有条目"}, //-importkeystore
  82         {"Clones.a.key.entry",
  83                 "克隆密钥条目"}, //-keyclone
  84         {"Changes.the.key.password.of.an.entry",
  85                 "更改条目的密钥口令"}, //-keypasswd
  86         {"Lists.entries.in.a.keystore",
  87                 "列出密钥库中的条目"}, //-list
  88         {"Prints.the.content.of.a.certificate",
  89                 "打印证书内容"}, //-printcert
  90         {"Prints.the.content.of.a.certificate.request",
  91                 "打印证书请求的内容"}, //-printcertreq
  92         {"Prints.the.content.of.a.CRL.file",
  93                 "打印 CRL 文件的内容"}, //-printcrl
  94         {"Generates.a.self.signed.certificate",
  95                 "生成自签名证书"}, //-selfcert
  96         {"Changes.the.store.password.of.a.keystore",
  97                 "更改密钥库的存储口令"}, //-storepasswd
  98         // keytool: help: options
  99         {"alias.name.of.the.entry.to.process",
 100                 "要处理的条目的别名"}, //-alias
 101         {"destination.alias",
 102                 "目标别名"}, //-destalias
 103         {"destination.key.password",
 104                 "目标密钥口令"}, //-destkeypass
 105         {"destination.keystore.name",
 106                 "目标密钥库名称"}, //-destkeystore
 107         {"destination.keystore.password.protected",
 108                 "受保护的目标密钥库口令"}, //-destprotected
 109         {"destination.keystore.provider.name",
 110                 "目标密钥库提供方名称"}, //-destprovidername
 111         {"destination.keystore.password",
 112                 "目标密钥库口令"}, //-deststorepass
 113         {"destination.keystore.type",
 114                 "目标密钥库类型"}, //-deststoretype
 115         {"distinguished.name",
 116                 "唯一判别名"}, //-dname
 117         {"X.509.extension",
 118                 "X.509 扩展"}, //-ext
 119         {"output.file.name",
 120                 "输出文件名"}, //-file and -outfile
 121         {"input.file.name",
 122                 "输入文件名"}, //-file and -infile
 123         {"key.algorithm.name",
 124                 "密钥算法名称"}, //-keyalg
 125         {"key.password",
 126                 "密钥口令"}, //-keypass
 127         {"key.bit.size",
 128                 "密钥位大小"}, //-keysize
 129         {"keystore.name",
 130                 "密钥库名称"}, //-keystore
 131         {"access.the.cacerts.keystore",
 132                 "访问 cacerts 密钥库"}, // -cacerts
 133         {"warning.cacerts.option",
 134                 "警告: 使用 -cacerts 选项访问 cacerts 密钥库"},
 135         {"new.password",
 136                 "新口令"}, //-new
 137         {"do.not.prompt",
 138                 "不提示"}, //-noprompt
 139         {"password.through.protected.mechanism",
 140                 "通过受保护的机制的口令"}, //-protected
 141 
 142         // The following 2 values should span 2 lines, the first for the
 143         // option itself, the second for its -providerArg value.
 144         {"addprovider.option",
 145                 "按名称 (例如 SunPKCS11) 添加安全提供方\n配置 -addprovider 的参数"}, //-addprovider
 146         {"provider.class.option",
 147                 "按全限定类名添加安全提供方\n配置 -providerclass 的参数"}, //-providerclass
 148 
 149         {"provider.name",
 150                 "提供方名称"}, //-providername
 151         {"provider.classpath",
 152                 "提供方类路径"}, //-providerpath
 153         {"output.in.RFC.style",
 154                 "以 RFC 样式输出"}, //-rfc
 155         {"signature.algorithm.name",
 156                 "签名算法名称"}, //-sigalg
 157         {"source.alias",
 158                 "源别名"}, //-srcalias
 159         {"source.key.password",
 160                 "源密钥口令"}, //-srckeypass
 161         {"source.keystore.name",
 162                 "源密钥库名称"}, //-srckeystore
 163         {"source.keystore.password.protected",
 164                 "受保护的源密钥库口令"}, //-srcprotected
 165         {"source.keystore.provider.name",
 166                 "源密钥库提供方名称"}, //-srcprovidername
 167         {"source.keystore.password",
 168                 "源密钥库口令"}, //-srcstorepass
 169         {"source.keystore.type",
 170                 "源密钥库类型"}, //-srcstoretype
 171         {"SSL.server.host.and.port",
 172                 "SSL 服务器主机和端口"}, //-sslserver
 173         {"signed.jar.file",
 174                 "已签名的 jar 文件"}, //=jarfile
 175         {"certificate.validity.start.date.time",
 176                 "证书有效期开始日期/时间"}, //-startdate
 177         {"keystore.password",
 178                 "密钥库口令"}, //-storepass
 179         {"keystore.type",
 180                 "密钥库类型"}, //-storetype
 181         {"trust.certificates.from.cacerts",
 182                 "信任来自 cacerts 的证书"}, //-trustcacerts
 183         {"verbose.output",
 184                 "详细输出"}, //-v
 185         {"validity.number.of.days",
 186                 "有效天数"}, //-validity
 187         {"Serial.ID.of.cert.to.revoke",
 188                  "要撤销的证书的序列 ID"}, //-id
 189         // keytool: Running part
 190         {"keytool.error.", "keytool 错误: "},
 191         {"Illegal.option.", "非法选项:  "},
 192         {"Illegal.value.", "非法值: "},
 193         {"Unknown.password.type.", "未知口令类型: "},
 194         {"Cannot.find.environment.variable.",
 195                 "找不到环境变量: "},
 196         {"Cannot.find.file.", "找不到文件: "},
 197         {"Command.option.flag.needs.an.argument.", "命令选项{0}需要一个参数。"},
 198         {"Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.",
 199                 "警告: PKCS12 密钥库不支持其他存储和密钥口令。正在忽略用户指定的{0}值。"},
 200         {"the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option",
 201             "-keystore 或 -storetype 选项不能与 -cacerts 选项一起使用"},
 202         {".keystore.must.be.NONE.if.storetype.is.{0}",
 203                 "如果 -storetype 为 {0}, 则 -keystore 必须为 NONE"},
 204         {"Too.many.retries.program.terminated",
 205                  "重试次数过多, 程序已终止"},
 206         {".storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}",
 207                 "如果 -storetype 为 {0}, 则不支持 -storepasswd 和 -keypasswd 命令"},
 208         {".keypasswd.commands.not.supported.if.storetype.is.PKCS12",
 209                 "如果 -storetype 为 PKCS12, 则不支持 -keypasswd 命令"},
 210         {".keypass.and.new.can.not.be.specified.if.storetype.is.{0}",
 211                 "如果 -storetype 为 {0}, 则不能指定 -keypass 和 -new"},
 212         {"if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified",
 213                 "如果指定了 -protected, 则不能指定 -storepass, -keypass 和 -new"},
 214         {"if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified",
 215                 "如果指定了 -srcprotected, 则不能指定 -srcstorepass 和 -srckeypass"},
 216         {"if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified",
 217                 "如果密钥库未受口令保护, 则不能指定 -storepass, -keypass 和 -new"},
 218         {"if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified",
 219                 "如果源密钥库未受口令保护, 则不能指定 -srcstorepass 和 -srckeypass"},
 220         {"Illegal.startdate.value", "非法开始日期值"},
 221         {"Validity.must.be.greater.than.zero",
 222                 "有效性必须大于零"},
 223         {"provclass.not.a.provider", "%s不是提供方"},
 224         {"provider.name.not.found", "未找到名为 \"%s\" 的提供方"},
 225         {"provider.class.not.found", "未找到提供方 \"%s\""},
 226         {"Usage.error.no.command.provided", "用法错误: 没有提供命令"},
 227         {"Source.keystore.file.exists.but.is.empty.", "源密钥库文件存在, 但为空: "},
 228         {"Please.specify.srckeystore", "请指定 -srckeystore"},
 229         {"Must.not.specify.both.v.and.rfc.with.list.command",
 230                 "不能使用 'list' 命令来指定 -v 及 -rfc"},
 231         {"Key.password.must.be.at.least.6.characters",
 232                 "密钥口令至少必须为 6 个字符"},
 233         {"New.password.must.be.at.least.6.characters",
 234                 "新口令至少必须为 6 个字符"},
 235         {"Keystore.file.exists.but.is.empty.",
 236                 "密钥库文件存在, 但为空: "},
 237         {"Keystore.file.does.not.exist.",
 238                 "密钥库文件不存在: "},
 239         {"Must.specify.destination.alias", "必须指定目标别名"},
 240         {"Must.specify.alias", "必须指定别名"},
 241         {"Keystore.password.must.be.at.least.6.characters",
 242                 "密钥库口令至少必须为 6 个字符"},
 243         {"Enter.the.password.to.be.stored.",
 244                 "输入要存储的口令:  "},
 245         {"Enter.keystore.password.", "输入密钥库口令:  "},
 246         {"Enter.source.keystore.password.", "输入源密钥库口令:  "},
 247         {"Enter.destination.keystore.password.", "输入目标密钥库口令:  "},
 248         {"Keystore.password.is.too.short.must.be.at.least.6.characters",
 249          "密钥库口令太短 - 至少必须为 6 个字符"},
 250         {"Unknown.Entry.Type", "未知条目类型"},
 251         {"Too.many.failures.Alias.not.changed", "故障太多。未更改别名"},
 252         {"Entry.for.alias.alias.successfully.imported.",
 253                  "已成功导入别名 {0} 的条目。"},
 254         {"Entry.for.alias.alias.not.imported.", "未导入别名 {0} 的条目。"},
 255         {"Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.",
 256                  "导入别名 {0} 的条目时出现问题: {1}。\n未导入别名 {0} 的条目。"},
 257         {"Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled",
 258                  "已完成导入命令: {0} 个条目成功导入, {1} 个条目失败或取消"},
 259         {"Warning.Overwriting.existing.alias.alias.in.destination.keystore",
 260                  "警告: 正在覆盖目标密钥库中的现有别名 {0}"},
 261         {"Existing.entry.alias.alias.exists.overwrite.no.",
 262                  "存在现有条目别名 {0}, 是否覆盖? [否]:  "},
 263         {"Too.many.failures.try.later", "故障太多 - 请稍后再试"},
 264         {"Certification.request.stored.in.file.filename.",
 265                 "存储在文件 <{0}> 中的认证请求"},
 266         {"Submit.this.to.your.CA", "将此提交给您的 CA"},
 267         {"if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified",
 268             "如果没有指定别名, 则不能指定目标别名和源密钥库口令"},
 269         {"The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.",
 270             "目标 pkcs12 密钥库具有不同的 storepass 和 keypass。请在指定了 -destkeypass 时重试。"},
 271         {"Certificate.stored.in.file.filename.",
 272                 "存储在文件 <{0}> 中的证书"},
 273         {"Certificate.reply.was.installed.in.keystore",
 274                 "证书回复已安装在密钥库中"},
 275         {"Certificate.reply.was.not.installed.in.keystore",
 276                 "证书回复未安装在密钥库中"},
 277         {"Certificate.was.added.to.keystore",
 278                 "证书已添加到密钥库中"},
 279         {"Certificate.was.not.added.to.keystore",
 280                 "证书未添加到密钥库中"},
 281         {".Storing.ksfname.", "[正在存储{0}]"},
 282         {"alias.has.no.public.key.certificate.",
 283                 "{0}没有公共密钥 (证书)"},
 284         {"Cannot.derive.signature.algorithm",
 285                 "无法派生签名算法"},
 286         {"Alias.alias.does.not.exist",
 287                 "别名 <{0}> 不存在"},
 288         {"Alias.alias.has.no.certificate",
 289                 "别名 <{0}> 没有证书"},
 290         {"Key.pair.not.generated.alias.alias.already.exists",
 291                 "未生成密钥对, 别名 <{0}> 已经存在"},
 292         {"Generating.keysize.bit.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.validality.days.for",
 293                 "正在为以下对象生成 {0} 位{1}密钥对和自签名证书 ({2}) (有效期为 {3} 天):\n\t {4}"},
 294         {"Enter.key.password.for.alias.", "输入 <{0}> 的密钥口令"},
 295         {".RETURN.if.same.as.keystore.password.",
 296                 "\t(如果和密钥库口令相同, 按回车):  "},
 297         {"Key.password.is.too.short.must.be.at.least.6.characters",
 298                 "密钥口令太短 - 至少必须为 6 个字符"},
 299         {"Too.many.failures.key.not.added.to.keystore",
 300                 "故障太多 - 密钥未添加到密钥库中"},
 301         {"Destination.alias.dest.already.exists",
 302                 "目标别名 <{0}> 已经存在"},
 303         {"Password.is.too.short.must.be.at.least.6.characters",
 304                 "口令太短 - 至少必须为 6 个字符"},
 305         {"Too.many.failures.Key.entry.not.cloned",
 306                 "故障太多。未克隆密钥条目"},
 307         {"key.password.for.alias.", "<{0}> 的密钥口令"},
 308         {"Keystore.entry.for.id.getName.already.exists",
 309                 "<{0}> 的密钥库条目已经存在"},
 310         {"Creating.keystore.entry.for.id.getName.",
 311                 "正在创建 <{0}> 的密钥库条目..."},
 312         {"No.entries.from.identity.database.added",
 313                 "未从身份数据库中添加任何条目"},
 314         {"Alias.name.alias", "别名: {0}"},
 315         {"Creation.date.keyStore.getCreationDate.alias.",
 316                 "创建日期: {0,date}"},
 317         {"alias.keyStore.getCreationDate.alias.",
 318                 "{0}, {1,date}, "},
 319         {"alias.", "{0}, "},
 320         {"Entry.type.type.", "条目类型: {0}"},
 321         {"Certificate.chain.length.", "证书链长度: "},
 322         {"Certificate.i.1.", "证书[{0,number,integer}]:"},
 323         {"Certificate.fingerprint.SHA.256.", "证书指纹 (SHA-256): "},
 324         {"Keystore.type.", "密钥库类型: "},
 325         {"Keystore.provider.", "密钥库提供方: "},
 326         {"Your.keystore.contains.keyStore.size.entry",
 327                 "您的密钥库包含 {0,number,integer} 个条目"},
 328         {"Your.keystore.contains.keyStore.size.entries",
 329                 "您的密钥库包含 {0,number,integer} 个条目"},
 330         {"Failed.to.parse.input", "无法解析输入"},
 331         {"Empty.input", "空输入"},
 332         {"Not.X.509.certificate", "非 X.509 证书"},
 333         {"alias.has.no.public.key", "{0}没有公共密钥"},
 334         {"alias.has.no.X.509.certificate", "{0}没有 X.509 证书"},
 335         {"New.certificate.self.signed.", "新证书 (自签名):"},
 336         {"Reply.has.no.certificates", "回复中没有证书"},
 337         {"Certificate.not.imported.alias.alias.already.exists",
 338                 "证书未导入, 别名 <{0}> 已经存在"},
 339         {"Input.not.an.X.509.certificate", "所输入的不是 X.509 证书"},
 340         {"Certificate.already.exists.in.keystore.under.alias.trustalias.",
 341                 "在别名 <{0}> 之下, 证书已经存在于密钥库中"},
 342         {"Do.you.still.want.to.add.it.no.",
 343                 "是否仍要添加? [否]:  "},
 344         {"Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.",
 345                 "在别名 <{0}> 之下, 证书已经存在于系统范围的 CA 密钥库中"},
 346         {"Do.you.still.want.to.add.it.to.your.own.keystore.no.",
 347                 "是否仍要将它添加到自己的密钥库? [否]:  "},
 348         {"Trust.this.certificate.no.", "是否信任此证书? [否]:  "},
 349         {"YES", "YES"},
 350         {"New.prompt.", "新{0}: "},
 351         {"Passwords.must.differ", "口令不能相同"},
 352         {"Re.enter.new.prompt.", "重新输入新{0}: "},
 353         {"Re.enter.password.", "再次输入口令: "},
 354         {"Re.enter.new.password.", "再次输入新口令: "},
 355         {"They.don.t.match.Try.again", "它们不匹配。请重试"},
 356         {"Enter.prompt.alias.name.", "输入{0}别名:  "},
 357         {"Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.",
 358                  "导入新的别名\t(按回车以取消对此条目的导入):  "},
 359         {"Enter.alias.name.", "输入别名:  "},
 360         {".RETURN.if.same.as.for.otherAlias.",
 361                 "\t(如果和 <{0}> 相同, 则按回车)"},
 362         {"What.is.your.first.and.last.name.",
 363                 "您的名字与姓氏是什么?"},
 364         {"What.is.the.name.of.your.organizational.unit.",
 365                 "您的组织单位名称是什么?"},
 366         {"What.is.the.name.of.your.organization.",
 367                 "您的组织名称是什么?"},
 368         {"What.is.the.name.of.your.City.or.Locality.",
 369                 "您所在的城市或区域名称是什么?"},
 370         {"What.is.the.name.of.your.State.or.Province.",
 371                 "您所在的省/市/自治区名称是什么?"},
 372         {"What.is.the.two.letter.country.code.for.this.unit.",
 373                 "该单位的双字母国家/地区代码是什么?"},
 374         {"Is.name.correct.", "{0}是否正确?"},
 375         {"no", "否"},
 376         {"yes", "是"},
 377         {"y", "y"},
 378         {".defaultValue.", "  [{0}]:  "},
 379         {"Alias.alias.has.no.key",
 380                 "别名 <{0}> 没有密钥"},
 381         {"Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key",
 382                  "别名 <{0}> 引用了不属于私有密钥条目的条目类型。-keyclone 命令仅支持对私有密钥条目的克隆"},
 383 
 384         {".WARNING.WARNING.WARNING.",
 385             "*****************  WARNING WARNING WARNING  *****************"},
 386         {"Signer.d.", "签名者 #%d:"},
 387         {"Timestamp.", "时间戳:"},
 388         {"Signature.", "签名:"},
 389         {"CRLs.", "CRL:"},
 390         {"Certificate.owner.", "证书所有者: "},
 391         {"Not.a.signed.jar.file", "不是已签名的 jar 文件"},
 392         {"No.certificate.from.the.SSL.server",
 393                 "没有来自 SSL 服务器的证书"},
 394 
 395         {".The.integrity.of.the.information.stored.in.your.keystore.",
 396             "* 存储在您的密钥库中的信息的完整性  *\n* 尚未经过验证!  为了验证其完整性, *\n* 必须提供密钥库口令。                  *"},
 397         {".The.integrity.of.the.information.stored.in.the.srckeystore.",
 398             "* 存储在 srckeystore 中的信息的完整性*\n* 尚未经过验证!  为了验证其完整性, *\n* 必须提供源密钥库口令。                  *"},
 399 
 400         {"Certificate.reply.does.not.contain.public.key.for.alias.",
 401                 "证书回复中不包含 <{0}> 的公共密钥"},
 402         {"Incomplete.certificate.chain.in.reply",
 403                 "回复中的证书链不完整"},
 404         {"Certificate.chain.in.reply.does.not.verify.",
 405                 "回复中的证书链未验证: "},
 406         {"Top.level.certificate.in.reply.",
 407                 "回复中的顶级证书:\n"},
 408         {".is.not.trusted.", "... 是不可信的。"},
 409         {"Install.reply.anyway.no.", "是否仍要安装回复? [否]:  "},
 410         {"NO", "NO"},
 411         {"Public.keys.in.reply.and.keystore.don.t.match",
 412                 "回复中的公共密钥与密钥库不匹配"},
 413         {"Certificate.reply.and.certificate.in.keystore.are.identical",
 414                 "证书回复与密钥库中的证书是相同的"},
 415         {"Failed.to.establish.chain.from.reply",
 416                 "无法从回复中建立链"},
 417         {"n", "n"},
 418         {"Wrong.answer.try.again", "错误的答案, 请再试一次"},
 419         {"Secret.key.not.generated.alias.alias.already.exists",
 420                 "没有生成密钥, 别名 <{0}> 已经存在"},
 421         {"Please.provide.keysize.for.secret.key.generation",
 422                 "请提供 -keysize 以生成密钥"},
 423 
 424         {"warning.not.verified.make.sure.keystore.is.correct",
 425             "警告: 未验证。请确保密钥库是正确的。"},
 426 
 427         {"Extensions.", "扩展: "},
 428         {".Empty.value.", "(空值)"},
 429         {"Extension.Request.", "扩展请求:"},
 430         {"Unknown.keyUsage.type.", "未知 keyUsage 类型: "},
 431         {"Unknown.extendedkeyUsage.type.", "未知 extendedkeyUsage 类型: "},
 432         {"Unknown.AccessDescription.type.", "未知 AccessDescription 类型: "},
 433         {"Unrecognized.GeneralName.type.", "无法识别的 GeneralName 类型: "},
 434         {"This.extension.cannot.be.marked.as.critical.",
 435                  "无法将此扩展标记为“严重”。"},
 436         {"Odd.number.of.hex.digits.found.", "找到奇数个十六进制数字: "},
 437         {"Unknown.extension.type.", "未知扩展类型: "},
 438         {"command.{0}.is.ambiguous.", "命令{0}不明确:"},
 439 
 440         // 8171319: keytool should print out warnings when reading or
 441         // generating cert/cert req using weak algorithms
 442         {"the.certificate.request", "证书请求"},
 443         {"the.issuer", "发布者"},
 444         {"the.generated.certificate", "生成的证书"},
 445         {"the.generated.crl", "生成的 CRL"},
 446         {"the.generated.certificate.request", "生成的证书请求"},
 447         {"the.certificate", "证书"},
 448         {"the.crl", "CRL"},
 449         {"the.tsa.certificate", "TSA 证书"},
 450         {"the.input", "输入"},
 451         {"reply", "回复"},
 452         {"one.in.many", "%1$s #%2$d/%3$d"},
 453         {"alias.in.cacerts", "cacerts 中的发布者 <%s>"},
 454         {"alias.in.keystore", "发布者 <%s>"},
 455         {"with.weak", "%s (弱)"},
 456         {"key.bit", "%1$d 位 %2$s 密钥"},
 457         {"key.bit.weak", "%1$d 位 %2$s 密钥 (弱)"},
 458         {"unknown.size.1", "未知大小的 %s 密钥"},
 459         {".PATTERN.printX509Cert.with.weak",
 460                 "所有者: {0}\n发布者: {1}\n序列号: {2}\n生效时间: {3}, 失效时间: {4}\n证书指纹:\n\t SHA1: {5}\n\t SHA256: {6}\n签名算法名称: {7}\n主体公共密钥算法: {8}\n版本: {9}"},
 461         {"PKCS.10.with.weak",
 462                 "PKCS #10 证书请求 (版本 1.0)\n主体: %1$s\n格式: %2$s\n公共密钥: %3$s\n签名算法: %4$s\n"},
 463         {"verified.by.s.in.s.weak", "由 %2$s 中的 %1$s 以 %3$s 验证"},
 464         {"whose.sigalg.risk", "%1$s 使用的 %2$s 签名算法存在安全风险。"},
 465         {"whose.key.risk", "%1$s 使用的 %2$s 存在安全风险。"},
 466         {"jks.storetype.warning", "%1$s 密钥库使用专用格式。建议使用 \"keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12\" 迁移到行业标准格式 PKCS12。"},
 467         {"migrate.keystore.warning", "已将 \"%1$s\" 迁移到 %4$s。将 %2$s 密钥库作为 \"%3$s\" 进行了备份。"},
 468         {"backup.keystore.warning", "已将原始密钥库 \"%1$s\" 备份为 \"%3$s\"..."},
 469         {"importing.keystore.status", "正在将密钥库 %1$s 导入到 %2$s..."},
 470     };
 471 
 472 
 473     /**
 474      * Returns the contents of this <code>ResourceBundle</code>.
 475      *
 476      * <p>
 477      *
 478      * @return the contents of this <code>ResourceBundle</code>.
 479      */
 480     @Override
 481     public Object[][] getContents() {
 482         return contents;
 483     }
 484 }