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.jarsigner;
  27 
  28 /**
  29  * <p> This class represents the <code>ResourceBundle</code>
  30  * for JarSigner.
  31  *
  32  */
  33 public class Resources_zh_CN extends java.util.ListResourceBundle {
  34 
  35     private static final Object[][] contents = {
  36 
  37         // shared (from jarsigner)
  38         {"SPACE", " "},
  39         {"2SPACE", "  "},
  40         {"6SPACE", "      "},
  41         {"COMMA", ", "},
  42 
  43         {"provclass.not.a.provider", "%s不是提供方"},
  44         {"provider.name.not.found", "未找到名为 \"%s\" 的提供方"},
  45         {"provider.class.not.found", "未找到提供方 \"%s\""},
  46         {"jarsigner.error.", "jarsigner 错误: "},
  47         {"Illegal.option.", "非法选项: "},
  48         {"This.option.is.deprecated", "此选项已过时: "},
  49         {".keystore.must.be.NONE.if.storetype.is.{0}",
  50                 "如果 -storetype 为 {0}, 则 -keystore 必须为 NONE"},
  51         {".keypass.can.not.be.specified.if.storetype.is.{0}",
  52                 "如果 -storetype 为 {0}, 则不能指定 -keypass"},
  53         {"If.protected.is.specified.then.storepass.and.keypass.must.not.be.specified",
  54                 "如果指定了 -protected, 则不能指定 -storepass 和 -keypass"},
  55         {"If.keystore.is.not.password.protected.then.storepass.and.keypass.must.not.be.specified",
  56                  "如果密钥库未受口令保护, 则不能指定 -storepass 和 -keypass"},
  57         {"Usage.jarsigner.options.jar.file.alias",
  58                 "用法: jarsigner [选项] jar-file 别名"},
  59         {".jarsigner.verify.options.jar.file.alias.",
  60                 "       jarsigner -verify [选项] jar-file [别名...]"},
  61         {".keystore.url.keystore.location",
  62                 "[-keystore <url>]           密钥库位置"},
  63         {".storepass.password.password.for.keystore.integrity",
  64             "[-storepass <口令>]         用于密钥库完整性的口令"},
  65         {".storetype.type.keystore.type",
  66                 "[-storetype <类型>]         密钥库类型"},
  67         {".keypass.password.password.for.private.key.if.different.",
  68                 "[-keypass <口令>]           私有密钥的口令 (如果不同)"},
  69         {".certchain.file.name.of.alternative.certchain.file",
  70                 "[-certchain <文件>]         替代证书链文件的名称"},
  71         {".sigfile.file.name.of.SF.DSA.file",
  72                 "[-sigfile <文件>]           .SF/.DSA 文件的名称"},
  73         {".signedjar.file.name.of.signed.JAR.file",
  74                 "[-signedjar <文件>]         已签名的 JAR 文件的名称"},
  75         {".digestalg.algorithm.name.of.digest.algorithm",
  76                 "[-digestalg <算法>]        摘要算法的名称"},
  77         {".sigalg.algorithm.name.of.signature.algorithm",
  78                 "[-sigalg <算法>]           签名算法的名称"},
  79         {".verify.verify.a.signed.JAR.file",
  80                 "[-verify]                   验证已签名的 JAR 文件"},
  81         {".verbose.suboptions.verbose.output.when.signing.verifying.",
  82                 "[-verbose[:suboptions]]     签名/验证时输出详细信息。"},
  83         {".suboptions.can.be.all.grouped.or.summary",
  84                 "                            子选项可以是 all, grouped 或 summary"},
  85         {".certs.display.certificates.when.verbose.and.verifying",
  86                 "[-certs]                    输出详细信息和验证时显示证书"},
  87         {".tsa.url.location.of.the.Timestamping.Authority",
  88                 "[-tsa <url>]                时间戳颁发机构的位置"},
  89         {".tsacert.alias.public.key.certificate.for.Timestamping.Authority",
  90                 "[-tsacert <别名>]           时间戳颁发机构的公共密钥证书"},
  91         {".tsapolicyid.tsapolicyid.for.Timestamping.Authority",
  92                 "[-tsapolicyid <oid>]        时间戳颁发机构的 TSAPolicyID"},
  93         {".tsadigestalg.algorithm.of.digest.data.in.timestamping.request",
  94                 "[-tsadigestalg <算法>]      时间戳请求中的摘要数据的算法"},
  95         {".altsigner.class.class.name.of.an.alternative.signing.mechanism",
  96                 "[-altsigner <类>]           替代的签名机制的类名\n                            (此选项已过时。)"},
  97         {".altsignerpath.pathlist.location.of.an.alternative.signing.mechanism",
  98                 "[-altsignerpath <路径列表>] 替代的签名机制的位置\n                            (此选项已过时。)"},
  99         {".internalsf.include.the.SF.file.inside.the.signature.block",
 100                 "[-internalsf]               在签名块内包含 .SF 文件"},
 101         {".sectionsonly.don.t.compute.hash.of.entire.manifest",
 102                 "[-sectionsonly]             不计算整个清单的散列"},
 103         {".protected.keystore.has.protected.authentication.path",
 104                 "[-protected]                密钥库具有受保护验证路径"},
 105         {".providerName.name.provider.name",
 106                 "[-providerName <名称>]      提供方名称"},
 107         {".add.provider.option",
 108                 "[-addprovider <名称>        按名称 (例如 SunPKCS11) 添加安全提供方"},
 109         {".providerArg.option.1",
 110                 "  [-providerArg <参数>]] ... 配置 -addprovider 的参数"},
 111         {".providerClass.option",
 112                 "[-providerClass <类>     按全限定类名添加安全提供方"},
 113         {".providerArg.option.2",
 114                 "  [-providerArg <参数>]] ... 配置 -providerClass 的参数"},
 115         {".strict.treat.warnings.as.errors",
 116                 "[-strict]                   将警告视为错误"},
 117         {".conf.url.specify.a.pre.configured.options.file",
 118                 "[-conf <url>]               指定预配置的选项文件"},
 119         {".print.this.help.message",
 120                 "[-? -h --help]              输出此帮助消息"},
 121         {"Option.lacks.argument", "选项缺少参数"},
 122         {"Please.type.jarsigner.help.for.usage", "请键入 jarsigner --help 以了解用法"},
 123         {"Please.specify.jarfile.name", "请指定 jarfile 名称"},
 124         {"Please.specify.alias.name", "请指定别名"},
 125         {"Only.one.alias.can.be.specified", "只能指定一个别名"},
 126         {"This.jar.contains.signed.entries.which.is.not.signed.by.the.specified.alias.es.",
 127                  "此 jar 包含未由指定别名签名的已签名条目。"},
 128         {"This.jar.contains.signed.entries.that.s.not.signed.by.alias.in.this.keystore.",
 129                   "此 jar 包含未由此密钥库中的别名签名的已签名条目。"},
 130         {"s", "s"},
 131         {"m", "m"},
 132         {"k", "k"},
 133         {".and.d.more.", "(%d 及以上)"},
 134         {".s.signature.was.verified.",
 135                 "  s = 已验证签名 "},
 136         {".m.entry.is.listed.in.manifest",
 137                 "  m = 在清单中列出条目"},
 138         {".k.at.least.one.certificate.was.found.in.keystore",
 139                 "  k = 在密钥库中至少找到了一个证书"},
 140         {".X.not.signed.by.specified.alias.es.",
 141                 "  X = 未由指定别名签名"},
 142         {"no.manifest.", "没有清单。"},
 143         {".Signature.related.entries.","(与签名相关的条目)"},
 144         {".Unsigned.entries.", "(未签名条目)"},
 145         {"jar.is.unsigned",
 146                 "jar 未签名。"},
 147         {"jar.treated.unsigned",
 148                 "警告: 签名无法解析或验证, 该 jar 将被视为未签名。有关详细信息, 请在启用调试的情况下重新运行 jarsigner (-J-Djava.security.debug=jar)。"},
 149         {"jar.treated.unsigned.see.weak",
 150                 "由于该 jar 是使用目前已禁用的弱算法签名的, 因此该 jar 将被视为未签名。\n\n有关详细信息, 请使用 -verbose 选项重新运行 jarsigner。"},
 151         {"jar.treated.unsigned.see.weak.verbose",
 152                 "警告: 该 jar 将被视为未签名, 因为它是由目前安全属性禁用的弱算法签名的:"},
 153         {"jar.signed.", "jar 已签名。"},
 154         {"jar.signed.with.signer.errors.", "jar 已签名, 但出现签名者错误。"},
 155         {"jar.verified.", "jar 已验证。"},
 156         {"jar.verified.with.signer.errors.", "jar 已验证, 但出现签名者错误。"},
 157 
 158         {"history.with.ts", "- 由 \"%1$s\" 签名\n    摘要算法: %2$s\n    签名算法: %3$s, %4$s\n  由 \"%6$s\" 于 %5$tc 加时间戳\n    时间戳摘要算法: %7$s\n    时间戳签名算法: %8$s, %9$s"},
 159         {"history.without.ts", "- 由 \"%1$s\" 签名\n    摘要算法: %2$s\n    签名算法: %3$s, %4$s"},
 160         {"history.unparsable", "- 无法解析的与签名相关的文件 %s"},
 161         {"history.nosf", "- 缺少与签名相关的文件 META-INF/%s.SF"},
 162         {"history.nobk", "- 与签名相关的文件 META-INF/%s.SF 缺少块文件"},
 163 
 164         {"with.weak", "%s (弱)"},
 165         {"key.bit", "%d 位密钥"},
 166         {"key.bit.weak", "%d 位密钥 (弱)"},
 167         {"unknown.size", "未知大小"},
 168 
 169         {"jarsigner.", "jarsigner: "},
 170         {"signature.filename.must.consist.of.the.following.characters.A.Z.0.9.or.",
 171                 "签名文件名必须包含以下字符: A-Z, 0-9, _ 或 -"},
 172         {"unable.to.open.jar.file.", "无法打开 jar 文件: "},
 173         {"unable.to.create.", "无法创建: "},
 174         {".adding.", "   正在添加: "},
 175         {".updating.", " 正在更新: "},
 176         {".signing.", "  正在签名: "},
 177         {"attempt.to.rename.signedJarFile.to.jarFile.failed",
 178                 "尝试将{0}重命名为{1}时失败"},
 179         {"attempt.to.rename.jarFile.to.origJar.failed",
 180                 "尝试将{0}重命名为{1}时失败"},
 181         {"unable.to.sign.jar.", "无法对 jar 进行签名: "},
 182         {"Enter.Passphrase.for.keystore.", "输入密钥库的密码短语: "},
 183         {"keystore.load.", "密钥库加载: "},
 184         {"certificate.exception.", "证书异常错误: "},
 185         {"unable.to.instantiate.keystore.class.",
 186                 "无法实例化密钥库类: "},
 187         {"Certificate.chain.not.found.for.alias.alias.must.reference.a.valid.KeyStore.key.entry.containing.a.private.key.and",
 188                 "找不到{0}的证书链。{1}必须引用包含私有密钥和相应的公共密钥证书链的有效密钥库密钥条目。"},
 189         {"File.specified.by.certchain.does.not.exist",
 190                 "由 -certchain 指定的文件不存在"},
 191         {"Cannot.restore.certchain.from.file.specified",
 192                 "无法从指定的文件还原 certchain"},
 193         {"Certificate.chain.not.found.in.the.file.specified.",
 194                 "在指定的文件中找不到证书链。"},
 195         {"found.non.X.509.certificate.in.signer.s.chain",
 196                 "在签名者的链中找到非 X.509 证书"},
 197         {"incomplete.certificate.chain", "证书链不完整"},
 198         {"Enter.key.password.for.alias.", "输入{0}的密钥口令: "},
 199         {"unable.to.recover.key.from.keystore",
 200                 "无法从密钥库中恢复密钥"},
 201         {"key.associated.with.alias.not.a.private.key",
 202                 "与{0}关联的密钥不是私有密钥"},
 203         {"you.must.enter.key.password", "必须输入密钥口令"},
 204         {"unable.to.read.password.", "无法读取口令: "},
 205         {"certificate.is.valid.from", "证书的有效期为{0}至{1}"},
 206         {"certificate.expired.on", "证书到期日期为 {0}"},
 207         {"certificate.is.not.valid.until",
 208                 "直到{0}, 证书才有效"},
 209         {"certificate.will.expire.on", "证书将在{0}到期"},
 210         {".Invalid.certificate.chain.", "[无效的证书链: "},
 211         {".Invalid.TSA.certificate.chain.", "[无效 TSA 的证书链: "},
 212         {"requesting.a.signature.timestamp",
 213                 "正在请求签名时间戳"},
 214         {"TSA.location.", "TSA 位置: "},
 215         {"TSA.certificate.", "TSA 证书: "},
 216         {"no.response.from.the.Timestamping.Authority.",
 217                 "时间戳颁发机构没有响应。如果要从防火墙后面连接, 则可能需要指定 HTTP 或 HTTPS 代理。请为 jarsigner 提供以下选项: "},
 218         {"or", "或"},
 219         {"Certificate.not.found.for.alias.alias.must.reference.a.valid.KeyStore.entry.containing.an.X.509.public.key.certificate.for.the",
 220                 "找不到{0}的证书。{1}必须引用包含时间戳颁发机构的 X.509 公共密钥证书的有效密钥库条目。"},
 221         {"using.an.alternative.signing.mechanism",
 222                 "正在使用替代的签名机制"},
 223         {"entry.was.signed.on", "条目的签名日期为 {0}"},
 224         {"Warning.", "警告: "},
 225         {"Error.", "错误: "},
 226         {"...Signer", ">>> 签名者"},
 227         {"...TSA", ">>> TSA"},
 228         {"trusted.certificate", "可信证书"},
 229         {"This.jar.contains.unsigned.entries.which.have.not.been.integrity.checked.",
 230                 "此 jar 包含尚未进行完整性检查的未签名条目。 "},
 231         {"This.jar.contains.entries.whose.signer.certificate.has.expired.",
 232                 "此 jar 包含签名者证书已过期的条目。 "},
 233         {"This.jar.contains.entries.whose.signer.certificate.will.expire.within.six.months.",
 234                 "此 jar 包含签名者证书将在六个月内过期的条目。 "},
 235         {"This.jar.contains.entries.whose.signer.certificate.is.not.yet.valid.",
 236                 "此 jar 包含签名者证书仍无效的条目。 "},
 237         {"This.jar.contains.entries.whose.signer.certificate.is.self.signed.",
 238                 "此 jar 包含其签名者证书为自签名证书的条目。"},
 239         {"Re.run.with.the.verbose.option.for.more.details.",
 240                 "有关详细信息, 请使用 -verbose 选项重新运行。"},
 241         {"Re.run.with.the.verbose.and.certs.options.for.more.details.",
 242                 "有关详细信息, 请使用 -verbose 和 -certs 选项重新运行。"},
 243         {"The.signer.certificate.has.expired.",
 244                 "签名者证书已过期。"},
 245         {"The.timestamp.expired.1.but.usable.2",
 246                 "时间戳到期日期为 %1$tY-%1$tm-%1$td。不过,在签名者证书于 %2$tY-%2$tm-%2$td 到期之前,JAR 将有效。"},
 247         {"The.timestamp.has.expired.",
 248                 "时间戳已到期。"},
 249         {"The.signer.certificate.will.expire.within.six.months.",
 250                 "签名者证书将在六个月内过期。"},
 251         {"The.timestamp.will.expire.within.one.year.on.1",
 252                 "时间戳将在一年内于 %1$tY-%1$tm-%1$td 到期。"},
 253         {"The.timestamp.will.expire.within.one.year.on.1.but.2",
 254                 "时间戳将在一年内于 %1$tY-%1$tm-%1$td 到期。不过,在签名者证书于 %2$tY-%2$tm-%2$td 到期之前,JAR 将有效。"},
 255         {"The.signer.certificate.is.not.yet.valid.",
 256                 "签名者证书仍无效。"},
 257         {"The.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.",
 258                  "由于签名者证书的 KeyUsage 扩展而无法进行代码签名。"},
 259         {"The.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.",
 260                  "由于签名者证书的 ExtendedKeyUsage 扩展而无法进行代码签名。"},
 261         {"The.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.",
 262                  "由于签名者证书的 NetscapeCertType 扩展而无法进行代码签名。"},
 263         {"This.jar.contains.entries.whose.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.",
 264                  "此 jar 包含由于签名者证书的 KeyUsage 扩展而无法进行代码签名的条目。"},
 265         {"This.jar.contains.entries.whose.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.",
 266                  "此 jar 包含由于签名者证书的 ExtendedKeyUsage 扩展而无法进行代码签名的条目。"},
 267         {"This.jar.contains.entries.whose.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.",
 268                  "此 jar 包含由于签名者证书的 NetscapeCertType 扩展而无法进行代码签名的条目。"},
 269         {".{0}.extension.does.not.support.code.signing.",
 270                  "[{0} 扩展不支持代码签名]"},
 271         {"The.signer.s.certificate.chain.is.invalid.reason.1",
 272                 "签名者证书链无效。原因: %s"},
 273         {"The.tsa.certificate.chain.is.invalid.reason.1",
 274                 "TSA 证书链无效。原因: %s"},
 275         {"The.signer.s.certificate.is.self.signed.",
 276                 "签名者证书为自签名证书。"},
 277         {"The.1.algorithm.specified.for.the.2.option.is.considered.a.security.risk.",
 278                 "为 %2$s 选项指定的 %1$s 算法被视为存在安全风险。"},
 279         {"The.1.signing.key.has.a.keysize.of.2.which.is.considered.a.security.risk.",
 280                 "%1$s 签名密钥的密钥大小为 %2$d, 这被视为存在安全风险。"},
 281         {"This.jar.contains.entries.whose.certificate.chain.is.invalid.reason.1",
 282                  "此 jar 包含其证书链无效的条目。原因: %s"},
 283         {"This.jar.contains.entries.whose.tsa.certificate.chain.is.invalid.reason.1",
 284                 "此 jar 包含其 TSA 证书链无效的条目。原因: %s"},
 285         {"no.timestamp.signing",
 286                 "未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。如果没有时间戳, 则在签名者证书的到期日期 (%1$tY-%1$tm-%1$td) 之后, 用户可能无法验证此 jar。"},
 287         {"invalid.timestamp.signing",
 288                 "时间戳无效。如果没有有效的时间戳,则在签名者证书的到期日期 (%1$tY-%1$tm-%1$td) 之后,用户可能无法验证此 jar。"},
 289         {"no.timestamp.verifying",
 290                 "此 jar 包含的签名没有时间戳。如果没有时间戳, 则在其中任一签名者证书到期 (最早为 %1$tY-%1$tm-%1$td) 之后, 用户可能无法验证此 jar。"},
 291         {"bad.timestamp.verifying",
 292                 "此 jar 包含带有无效时间戳的签名。如果没有有效时间戳, 则在其中任一签名者证书到期 (最早为 %1$tY-%1$tm-%1$td) 之后, 用户可能无法验证此 jar。\n有关详细信息, 请使用 -J-Djava.security.debug=jar 重新运行 jarsigner。"},
 293         {"The.signer.certificate.will.expire.on.1.",
 294                 "签名者证书将于 %1$tY-%1$tm-%1$td 到期。"},
 295         {"The.timestamp.will.expire.on.1.",
 296                 "时间戳将于 %1$tY-%1$tm-%1$td 到期。"},
 297         {"signer.cert.expired.1.but.timestamp.good.2.",
 298                 "签名者证书到期日期为 %1$tY-%1$tm-%1$td。不过,在时间戳于 %2$tY-%2$tm-%2$td 到期之前,JAR 将有效。"},
 299         {"Unknown.password.type.", "未知口令类型: "},
 300         {"Cannot.find.environment.variable.",
 301                 "找不到环境变量: "},
 302         {"Cannot.find.file.", "找不到文件: "},
 303     };
 304 
 305     /**
 306      * Returns the contents of this <code>ResourceBundle</code>.
 307      *
 308      * <p>
 309      *
 310      * @return the contents of this <code>ResourceBundle</code>.
 311      */
 312     @Override
 313     public Object[][] getContents() {
 314         return contents;
 315     }
 316 }