diff --git a/make/modules/java.base/Gensrc.gmk b/make/modules/java.base/Gensrc.gmk
index c974db7b6c682..3a482388bec14 100644
--- a/make/modules/java.base/Gensrc.gmk
+++ b/make/modules/java.base/Gensrc.gmk
@@ -80,16 +80,17 @@ $(eval $(call SetupCompileProperties, SUN_UTIL, \
CLASS := sun.util.resources.LocaleNamesBundle, \
))
-TARGETS += $(LIST_RESOURCE_BUNDLE) $(SUN_UTIL)
+$(eval $(call SetupCompileProperties, SECURITY_RESOURCES, \
+ SRC_DIRS := $(MODULE_SRC)/share/classes/sun/security/util/resources, \
+ CLASS := ListResourceBundle, \
+))
-# Some resources bundles are already present as java files but still need to be
-# copied to zh_HK locale.
-$(eval $(call SetupCopy-zh_HK,COPY_ZH_HK, \
- $(addprefix $(TOPDIR)/src/java.base/share/classes/, \
- sun/security/util/AuthResources_zh_TW.java \
- sun/security/util/Resources_zh_TW.java)))
+$(eval $(call SetupCompileProperties, KEYTOOL_RESOURCES, \
+ SRC_DIRS := $(MODULE_SRC)/share/classes/sun/security/tools/keytool/resources, \
+ CLASS := ListResourceBundle, \
+))
-TARGETS += $(COPY_ZH_HK)
+TARGETS += $(LIST_RESOURCE_BUNDLE) $(SUN_UTIL) $(SECURITY_RESOURCES) $(KEYTOOL_RESOURCES)
################################################################################
diff --git a/make/modules/jdk.jartool/Gensrc.gmk b/make/modules/jdk.jartool/Gensrc.gmk
index dc53aa0b6520e..7ae53d0b774a8 100644
--- a/make/modules/jdk.jartool/Gensrc.gmk
+++ b/make/modules/jdk.jartool/Gensrc.gmk
@@ -33,6 +33,11 @@ $(eval $(call SetupCompileProperties, COMPILE_PROPERTIES, \
CLASS := ListResourceBundle, \
))
-TARGETS += $(COMPILE_PROPERTIES)
+$(eval $(call SetupCompileProperties, JARSIGNER_RESOURCES, \
+ SRC_DIRS := $(TOPDIR)/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/resources, \
+ CLASS := ListResourceBundle, \
+))
+
+TARGETS += $(COMPILE_PROPERTIES) $(JARSIGNER_RESOURCES)
################################################################################
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/Main.java b/src/java.base/share/classes/sun/security/tools/keytool/Main.java
index 71374601eb2d9..89cad63dc6565 100644
--- a/src/java.base/share/classes/sun/security/tools/keytool/Main.java
+++ b/src/java.base/share/classes/sun/security/tools/keytool/Main.java
@@ -388,7 +388,7 @@ public String toString() {
// for i18n
private static final java.util.ResourceBundle rb =
java.util.ResourceBundle.getBundle(
- "sun.security.tools.keytool.Resources");
+ "sun.security.tools.keytool.resources.keytool");
private static final Collator collator = Collator.getInstance();
static {
// this is for case-insensitive string comparisons
@@ -2069,7 +2069,7 @@ private void doGenKeyPair(String alias, String dname, String keyAlgName,
* - plain algorithm name, otherwise
*
* Note: the same method appears in keytool and jarsigner which uses
- * same resource string defined in their own Resources.java.
+ * same resource string defined in their own properties file.
*
* @param key the key object, cannot be null
* @return the full name
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/Resources.java b/src/java.base/share/classes/sun/security/tools/keytool/Resources.java
deleted file mode 100644
index 9fc4d43f677a5..0000000000000
--- a/src/java.base/share/classes/sun/security/tools/keytool/Resources.java
+++ /dev/null
@@ -1,519 +0,0 @@
-/*
- * Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.tools.keytool;
-
-/**
- *
This class represents the ResourceBundle
- * for the keytool.
- *
- */
-public class Resources extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
- {"NEWLINE", "\n"},
- {"STAR",
- "*******************************************"},
- {"STARNN",
- "*******************************************\n\n"},
-
- // keytool: Help part
- {".OPTION.", " [OPTION]..."},
- {"Options.", "Options:"},
- {"option.1.set.twice", "The %s option is specified multiple times. All except the last one will be ignored."},
- {"multiple.commands.1.2", "Only one command is allowed: both %1$s and %2$s were specified."},
- {"Use.keytool.help.for.all.available.commands",
- "Use \"keytool -?, -h, or --help\" for this help message"},
- {"Key.and.Certificate.Management.Tool",
- "Key and Certificate Management Tool"},
- {"Commands.", "Commands:"},
- {"Use.keytool.command.name.help.for.usage.of.command.name",
- "Use \"keytool -command_name --help\" for usage of command_name.\n" +
- "Use the -conf option to specify a pre-configured options file."},
- // keytool: help: commands
- {"Generates.a.certificate.request",
- "Generates a certificate request"}, //-certreq
- {"Changes.an.entry.s.alias",
- "Changes an entry's alias"}, //-changealias
- {"Deletes.an.entry",
- "Deletes an entry"}, //-delete
- {"Exports.certificate",
- "Exports certificate"}, //-exportcert
- {"Generates.a.key.pair",
- "Generates a key pair"}, //-genkeypair
- {"Generates.a.secret.key",
- "Generates a secret key"}, //-genseckey
- {"Generates.certificate.from.a.certificate.request",
- "Generates certificate from a certificate request"}, //-gencert
- {"Generates.CRL", "Generates CRL"}, //-gencrl
- {"Generated.keyAlgName.secret.key",
- "Generated {0} secret key"}, //-genseckey
- {"Generated.keysize.bit.keyAlgName.secret.key",
- "Generated {0}-bit {1} secret key"}, //-genseckey
- {"key.algorithm.weak", "%1$s uses the %2$s algorithm which is considered a security risk."},
- {"key.size.weak", "%1$s uses a %2$s which is considered a security risk."},
- {"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
- "Imports entries from a JDK 1.1.x-style identity database"}, //-identitydb
- {"Imports.a.certificate.or.a.certificate.chain",
- "Imports a certificate or a certificate chain"}, //-importcert
- {"Imports.a.password",
- "Imports a password"}, //-importpass
- {"Imports.one.or.all.entries.from.another.keystore",
- "Imports one or all entries from another keystore"}, //-importkeystore
- {"Clones.a.key.entry",
- "Clones a key entry"}, //-keyclone
- {"Changes.the.key.password.of.an.entry",
- "Changes the key password of an entry"}, //-keypasswd
- {"Lists.entries.in.a.keystore",
- "Lists entries in a keystore"}, //-list
- {"Prints.the.content.of.a.certificate",
- "Prints the content of a certificate"}, //-printcert
- {"Prints.the.content.of.a.certificate.request",
- "Prints the content of a certificate request"}, //-printcertreq
- {"Prints.the.content.of.a.CRL.file",
- "Prints the content of a CRL file"}, //-printcrl
- {"Generates.a.self.signed.certificate",
- "Generates a self-signed certificate"}, //-selfcert
- {"Changes.the.store.password.of.a.keystore",
- "Changes the store password of a keystore"}, //-storepasswd
- {"showinfo.command.help", "Displays security-related information"},
- {"Prints.the.program.version", "Prints the program version"},
-
- // keytool: help: options
- {"alias.name.of.the.entry.to.process",
- "alias name of the entry to process"}, //-alias
- {"groupname.option.help",
- "Group name. For example, an Elliptic Curve name."}, //-groupname
- {"destination.alias",
- "destination alias"}, //-destalias
- {"destination.key.password",
- "destination key password"}, //-destkeypass
- {"destination.keystore.name",
- "destination keystore name"}, //-destkeystore
- {"destination.keystore.password.protected",
- "destination keystore password protected"}, //-destprotected
- {"destination.keystore.provider.name",
- "destination keystore provider name"}, //-destprovidername
- {"destination.keystore.password",
- "destination keystore password"}, //-deststorepass
- {"destination.keystore.type",
- "destination keystore type"}, //-deststoretype
- {"distinguished.name",
- "distinguished name"}, //-dname
- {"X.509.extension",
- "X.509 extension"}, //-ext
- {"output.file.name",
- "output file name"}, //-file and -outfile
- {"input.file.name",
- "input file name"}, //-file and -infile
- {"key.algorithm.name",
- "key algorithm name"}, //-keyalg
- {"key.password",
- "key password"}, //-keypass
- {"key.bit.size",
- "key bit size"}, //-keysize
- {"keystore.name",
- "keystore name"}, //-keystore
- {"access.the.cacerts.keystore",
- "access the cacerts keystore"}, // -cacerts
- {"warning.cacerts.option",
- "Warning: use -cacerts option to access cacerts keystore"},
- {"new.password",
- "new password"}, //-new
- {"do.not.prompt",
- "do not prompt"}, //-noprompt
- {"password.through.protected.mechanism",
- "password through protected mechanism"}, //-protected
- {"tls.option.help", "Displays TLS configuration information"},
-
- // The following 2 values should span 2 lines, the first for the
- // option itself, the second for its -providerArg value.
- {"addprovider.option",
- "add security provider by name (e.g. SunPKCS11)\n" +
- "configure argument for -addprovider"}, //-addprovider
- {"provider.class.option",
- "add security provider by fully-qualified class name\n" +
- "configure argument for -providerclass"}, //-providerclass
-
- {"provider.name",
- "provider name"}, //-providername
- {"provider.classpath",
- "provider classpath"}, //-providerpath
- {"output.in.RFC.style",
- "output in RFC style"}, //-rfc
- {"signature.algorithm.name",
- "signature algorithm name"}, //-sigalg
- {"signer.alias",
- "signer alias"}, //-signer
- {"signer.key.password",
- "signer key password"}, //-signerkeypass
- {"source.alias",
- "source alias"}, //-srcalias
- {"source.key.password",
- "source key password"}, //-srckeypass
- {"source.keystore.name",
- "source keystore name"}, //-srckeystore
- {"source.keystore.password.protected",
- "source keystore password protected"}, //-srcprotected
- {"source.keystore.provider.name",
- "source keystore provider name"}, //-srcprovidername
- {"source.keystore.password",
- "source keystore password"}, //-srcstorepass
- {"source.keystore.type",
- "source keystore type"}, //-srcstoretype
- {"SSL.server.host.and.port",
- "SSL server host and port"}, //-sslserver
- {"signed.jar.file",
- "signed jar file"}, //=jarfile
- {"certificate.validity.start.date.time",
- "certificate validity start date/time"}, //-startdate
- {"keystore.password",
- "keystore password"}, //-storepass
- {"keystore.type",
- "keystore type"}, //-storetype
- {"trust.certificates.from.cacerts",
- "trust certificates from cacerts"}, //-trustcacerts
- {"verbose.output",
- "verbose output"}, //-v
- {"validity.number.of.days",
- "validity number of days"}, //-validity
- {"Serial.ID.of.cert.to.revoke",
- "Serial ID of cert to revoke"}, //-id
- // keytool: Running part
- {"keytool.error.", "keytool error: "},
- {"Illegal.option.", "Illegal option: "},
- {"Illegal.value.", "Illegal value: "},
- {"Unknown.password.type.", "Unknown password type: "},
- {"Cannot.find.environment.variable.",
- "Cannot find environment variable: "},
- {"Cannot.find.file.", "Cannot find file: "},
- {"Command.option.flag.needs.an.argument.", "Command option {0} needs an argument."},
- {"Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.",
- "Warning: Different store and key passwords not supported for PKCS12 KeyStores. Ignoring user-specified {0} value."},
- {"the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option",
- "The -keystore or -storetype option cannot be used with the -cacerts option"},
- {".keystore.must.be.NONE.if.storetype.is.{0}",
- "-keystore must be NONE if -storetype is {0}"},
- {"Too.many.retries.program.terminated",
- "Too many retries, program terminated"},
- {".storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}",
- "-storepasswd and -keypasswd commands not supported if -storetype is {0}"},
- {".keypasswd.commands.not.supported.if.storetype.is.PKCS12",
- "-keypasswd commands not supported if -storetype is PKCS12"},
- {".keypass.and.new.can.not.be.specified.if.storetype.is.{0}",
- "-keypass and -new can not be specified if -storetype is {0}"},
- {"if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified",
- "if -protected is specified, then -storepass, -keypass, and -new must not be specified"},
- {"if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "if -srcprotected is specified, then -srcstorepass and -srckeypass must not be specified"},
- {"if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified",
- "if keystore is not password protected, then -storepass, -keypass, and -new must not be specified"},
- {"if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "if source keystore is not password protected, then -srcstorepass and -srckeypass must not be specified"},
- {"Illegal.startdate.value", "Illegal startdate value"},
- {"Validity.must.be.greater.than.zero",
- "Validity must be greater than zero"},
- {"provclass.not.a.provider", "%s not a provider"},
- {"provider.name.not.found", "Provider named \"%s\" not found"},
- {"provider.class.not.found", "Provider \"%s\" not found"},
- {"Usage.error.no.command.provided", "Usage error: no command provided"},
- {"Source.keystore.file.exists.but.is.empty.", "Source keystore file exists, but is empty: "},
- {"Please.specify.srckeystore", "Please specify -srckeystore"},
- {"Must.not.specify.both.v.and.rfc.with.list.command",
- "Must not specify both -v and -rfc with 'list' command"},
- {"Key.password.must.be.at.least.6.characters",
- "Key password must be at least 6 characters"},
- {"New.password.must.be.at.least.6.characters",
- "New password must be at least 6 characters"},
- {"Keystore.file.exists.but.is.empty.",
- "Keystore file exists, but is empty: "},
- {"Keystore.file.does.not.exist.",
- "Keystore file does not exist: "},
- {"Must.specify.destination.alias", "Must specify destination alias"},
- {"Must.specify.alias", "Must specify alias"},
- {"Keystore.password.must.be.at.least.6.characters",
- "Keystore password must be at least 6 characters"},
- {"Enter.the.password.to.be.stored.",
- "Enter the password to be stored: "},
- {"Enter.keystore.password.", "Enter keystore password: "},
- {"Enter.source.keystore.password.", "Enter source keystore password: "},
- {"Enter.destination.keystore.password.", "Enter destination keystore password: "},
- {"Keystore.password.is.too.short.must.be.at.least.6.characters",
- "Keystore password is too short - must be at least 6 characters"},
- {"Unknown.Entry.Type", "Unknown Entry Type"},
- {"Entry.for.alias.alias.successfully.imported.",
- "Entry for alias {0} successfully imported."},
- {"Entry.for.alias.alias.not.imported.", "Entry for alias {0} not imported."},
- {"Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.",
- "Problem importing entry for alias {0}: {1}.\nEntry for alias {0} not imported."},
- {"Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled",
- "Import command completed: {0} entries successfully imported, {1} entries failed or cancelled"},
- {"Warning.Overwriting.existing.alias.alias.in.destination.keystore",
- "Warning: Overwriting existing alias {0} in destination keystore"},
- {"Existing.entry.alias.alias.exists.overwrite.no.",
- "Existing entry alias {0} exists, overwrite? [no]: "},
- {"Too.many.failures.try.later", "Too many failures - try later"},
- {"Certification.request.stored.in.file.filename.",
- "Certification request stored in file <{0}>"},
- {"Submit.this.to.your.CA", "Submit this to your CA"},
- {"if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified",
- "if alias not specified, destalias and srckeypass must not be specified"},
- {"The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.",
- "The destination pkcs12 keystore has different storepass and keypass. Please retry with -destkeypass specified."},
- {"Certificate.stored.in.file.filename.",
- "Certificate stored in file <{0}>"},
- {"Certificate.reply.was.installed.in.keystore",
- "Certificate reply was installed in keystore"},
- {"Certificate.reply.was.not.installed.in.keystore",
- "Certificate reply was not installed in keystore"},
- {"Certificate.was.added.to.keystore",
- "Certificate was added to keystore"},
- {"Certificate.was.not.added.to.keystore",
- "Certificate was not added to keystore"},
- {".Storing.ksfname.", "[Storing {0}]"},
- {"alias.has.no.public.key.certificate.",
- "{0} has no public key (certificate)"},
- {"Cannot.derive.signature.algorithm",
- "Cannot derive signature algorithm"},
- {"Alias.alias.does.not.exist",
- "Alias <{0}> does not exist"},
- {"Alias.alias.has.no.certificate",
- "Alias <{0}> has no certificate"},
- {"groupname.keysize.coexist",
- "Cannot specify both -groupname and -keysize"},
- {"deprecate.keysize.for.ec",
- "Specifying -keysize for generating EC keys is deprecated, please use \"-groupname %s\" instead."},
- {"Key.pair.not.generated.alias.alias.already.exists",
- "Key pair not generated, alias <{0}> already exists"},
- {"size.bit.alg",
- "%1$d-bit %2$s"},
- {"Generating.full.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.days.for",
- "Generating {0} key pair and self-signed certificate ({1}) with a validity of {2} days\n\tfor: {3}"},
- {"Generating.full.keyAlgName.key.pair.and.a.certificate.sigAlgName.issued.by.signerAlias.with.a.validity.of.days.for",
- "Generating {0} key pair and a certificate ({1}) issued by <{2}> with a validity of {3} days\n\tfor: {4}"},
- {"Enter.key.password.for.alias.", "Enter key password for <{0}>"},
- {".RETURN.if.same.as.keystore.password.",
- "\t(RETURN if same as keystore password): "},
- {"Key.password.is.too.short.must.be.at.least.6.characters",
- "Key password is too short - must be at least 6 characters"},
- {"Too.many.failures.key.not.added.to.keystore",
- "Too many failures - key not added to keystore"},
- {"Destination.alias.dest.already.exists",
- "Destination alias <{0}> already exists"},
- {"Password.is.too.short.must.be.at.least.6.characters",
- "Password is too short - must be at least 6 characters"},
- {"Too.many.failures.Key.entry.not.cloned",
- "Too many failures. Key entry not cloned"},
- {"key.password.for.alias.", "key password for <{0}>"},
- {"No.entries.from.identity.database.added",
- "No entries from identity database added"},
- {"Alias.name.alias", "Alias name: {0}"},
- {"Creation.date.keyStore.getCreationDate.alias.",
- "Creation date: {0,date}"},
- {"alias.keyStore.getCreationDate.alias.",
- "{0}, {1,date}, "},
- {"alias.", "{0}, "},
- {"Entry.type.type.", "Entry type: {0}"},
- {"Certificate.chain.length.", "Certificate chain length: "},
- {"Certificate.i.1.", "Certificate[{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA.256.", "Certificate fingerprint (SHA-256): "},
- {"Keystore.type.", "Keystore type: "},
- {"Keystore.provider.", "Keystore provider: "},
- {"Your.keystore.contains.keyStore.size.entry",
- "Your keystore contains {0,number,integer} entry"},
- {"Your.keystore.contains.keyStore.size.entries",
- "Your keystore contains {0,number,integer} entries"},
- {"Failed.to.parse.input", "Failed to parse input"},
- {"Empty.input", "Empty input"},
- {"Not.X.509.certificate", "Not X.509 certificate"},
- {"alias.has.no.public.key", "{0} has no public key"},
- {"alias.has.no.X.509.certificate", "{0} has no X.509 certificate"},
- {"New.certificate.self.signed.", "New certificate (self-signed):"},
- {"Reply.has.no.certificates", "Reply has no certificates"},
- {"Certificate.not.imported.alias.alias.already.exists",
- "Certificate not imported, alias <{0}> already exists"},
- {"Input.not.an.X.509.certificate", "Input not an X.509 certificate"},
- {"Certificate.already.exists.in.keystore.under.alias.trustalias.",
- "Certificate already exists in keystore under alias <{0}>"},
- {"Do.you.still.want.to.add.it.no.",
- "Do you still want to add it? [no]: "},
- {"Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.",
- "Certificate already exists in system-wide CA keystore under alias <{0}>"},
- {"Do.you.still.want.to.add.it.to.your.own.keystore.no.",
- "Do you still want to add it to your own keystore? [no]: "},
- {"Trust.this.certificate.no.", "Trust this certificate? [no]: "},
- {"New.prompt.", "New {0}: "},
- {"Passwords.must.differ", "Passwords must differ"},
- {"Re.enter.new.prompt.", "Re-enter new {0}: "},
- {"Re.enter.password.", "Re-enter password: "},
- {"Re.enter.new.password.", "Re-enter new password: "},
- {"They.don.t.match.Try.again", "They don't match. Try again"},
- {"Enter.prompt.alias.name.", "Enter {0} alias name: "},
- {"Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.",
- "Enter new alias name\t(RETURN to cancel import for this entry): "},
- {"Enter.alias.name.", "Enter alias name: "},
- {".RETURN.if.same.as.for.otherAlias.",
- "\t(RETURN if same as for <{0}>)"},
- {"enter.dname.components",
- "Enter the distinguished name. Provide a single dot (.) to leave a sub-component empty or press ENTER to use the default value in braces."},
- {"What.is.your.first.and.last.name.",
- "What is your first and last name?"},
- {"What.is.the.name.of.your.organizational.unit.",
- "What is the name of your organizational unit?"},
- {"What.is.the.name.of.your.organization.",
- "What is the name of your organization?"},
- {"What.is.the.name.of.your.City.or.Locality.",
- "What is the name of your City or Locality?"},
- {"What.is.the.name.of.your.State.or.Province.",
- "What is the name of your State or Province?"},
- {"What.is.the.two.letter.country.code.for.this.unit.",
- "What is the two-letter country code for this unit?"},
- {"no.field.in.dname",
- "At least one field must be provided. Enter again."},
- {"Is.name.correct.", "Is {0} correct?"},
- {"no", "no"},
- {"yes", "yes"},
- {"y", "y"},
- {".defaultValue.", " [{0}]: "},
- {"Alias.alias.has.no.key",
- "Alias <{0}> has no key"},
- {"Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key",
- "Alias <{0}> references an entry type that is not a private key entry. The -keyclone command only supports cloning of private key entries"},
-
- {".WARNING.WARNING.WARNING.",
- "***************** WARNING WARNING WARNING *****************"},
- {"Signer.d.", "Signer #%d:"},
- {"Certificate.d.", "Certificate #%d:"},
- {"Timestamp.", "Timestamp:"},
- {"Certificate.owner.", "Certificate owner: "},
- {"Not.a.signed.jar.file", "Not a signed jar file"},
- {"No.certificate.from.the.SSL.server",
- "No certificate from the SSL server"},
-
- {".The.integrity.of.the.information.stored.in.your.keystore.",
- "* The integrity of the information stored in your keystore *\n" +
- "* has NOT been verified! In order to verify its integrity, *\n" +
- "* you must provide your keystore password. *"},
- {".The.integrity.of.the.information.stored.in.the.srckeystore.",
- "* The integrity of the information stored in the srckeystore*\n" +
- "* has NOT been verified! In order to verify its integrity, *\n" +
- "* you must provide the srckeystore password. *"},
-
- {"Certificate.reply.does.not.contain.public.key.for.alias.",
- "Certificate reply does not contain public key for <{0}>"},
- {"Incomplete.certificate.chain.in.reply",
- "Incomplete certificate chain in reply"},
- {"Top.level.certificate.in.reply.",
- "Top-level certificate in reply:\n"},
- {".is.not.trusted.", "... is not trusted. "},
- {"Install.reply.anyway.no.", "Install reply anyway? [no]: "},
- {"Public.keys.in.reply.and.keystore.don.t.match",
- "Public keys in reply and keystore don't match"},
- {"Certificate.reply.and.certificate.in.keystore.are.identical",
- "Certificate reply and certificate in keystore are identical"},
- {"Failed.to.establish.chain.from.reply",
- "Failed to establish chain from reply"},
- {"n", "n"},
- {"Wrong.answer.try.again", "Wrong answer, try again"},
- {"Secret.key.not.generated.alias.alias.already.exists",
- "Secret Key not generated, alias <{0}> already exists"},
- {"Please.provide.keysize.for.secret.key.generation",
- "Please provide -keysize for secret key generation"},
-
- {"warning.not.verified.make.sure.keystore.is.correct",
- "WARNING: not verified. Make sure -keystore is correct."},
- {"warning.not.verified.make.sure.keystore.is.correct.or.specify.trustcacerts",
- "WARNING: not verified. Make sure -keystore is correct or specify -trustcacerts."},
-
- {"Extensions.", "Extensions: "},
- {".Empty.value.", "(Empty value)"},
- {"Extension.Request.", "Extension Request:"},
- {"Unknown.keyUsage.type.", "Unknown keyUsage type: "},
- {"Unknown.extendedkeyUsage.type.", "Unknown extendedkeyUsage type: "},
- {"Unknown.AccessDescription.type.", "Unknown AccessDescription type: "},
- {"Unrecognized.GeneralName.type.", "Unrecognized GeneralName type: "},
- {"This.extension.cannot.be.marked.as.critical.",
- "This extension cannot be marked as critical. "},
- {"Odd.number.of.hex.digits.found.", "Odd number of hex digits found: "},
- {"Unknown.extension.type.", "Unknown extension type: "},
- {"command.{0}.is.ambiguous.", "command {0} is ambiguous:"},
-
- // 8171319: keytool should print out warnings when reading or
- // generating cert/cert req using weak algorithms
- {"the.certificate.request", "The certificate request"},
- {"the.issuer", "The issuer"},
- {"the.generated.secretkey", "The generated secret key"},
- {"the.generated.certificate", "The generated certificate"},
- {"the.generated.crl", "The generated CRL"},
- {"the.generated.certificate.request", "The generated certificate request"},
- {"the.certificate", "The certificate"},
- {"the.crl", "The CRL"},
- {"the.tsa.certificate", "The TSA certificate"},
- {"the.input", "The input"},
- {"reply", "Reply"},
- {"one.in.many", "%1$s #%2$d of %3$d"},
- {"one.in.many1", "%1$s #%2$d"},
- {"one.in.many2", "%1$s of signer #%2$d"},
- {"one.in.many3", "%1$s #%2$d of signer #%3$d"},
- {"alias.in.cacerts", "Issuer <%s> in cacerts"},
- {"alias.in.keystore", "Issuer <%s>"},
- {"with.weak", "%s (weak)"},
- {"with.disabled", "%s (disabled)"},
- {"key.bit", "%s key"},
- {"key.bit.weak", "%s key (weak)"},
- {"key.bit.disabled", "%s key (disabled)"},
- {".PATTERN.printX509Cert.with.weak",
- "Owner: {0}\nIssuer: {1}\nSerial number: {2}\nValid from: {3} until: {4}\nCertificate fingerprints:\n\t SHA1: {5}\n\t SHA256: {6}\nSignature algorithm name: {7}\nSubject Public Key Algorithm: {8}\nVersion: {9}"},
- {"PKCS.10.with.weak",
- "PKCS #10 Certificate Request (Version 1.0)\n" +
- "Subject: %1$s\nFormat: %2$s\nPublic Key: %3$s\nSignature algorithm: %4$s\n"},
- {"verified.by.s.in.s.weak", "Verified by %1$s in %2$s with a %3$s"},
- {"whose.sigalg.disabled", "%1$s uses the %2$s signature algorithm which is considered a security risk and is disabled."},
- {"whose.sigalg.usagesignedjar", "%1$s uses the %2$s signature algorithm which is considered a security risk and cannot be used to sign JARs after %3$s."},
- {"Unable.to.parse.denyAfter.string.in.exception.message", "Unable to parse denyAfter date string in exception message"},
- {"whose.sigalg.weak", "%1$s uses the %2$s signature algorithm which is considered a security risk."},
- {"whose.key.disabled", "%1$s uses a %2$s which is considered a security risk and is disabled."},
- {"whose.key.weak", "%1$s uses a %2$s which is considered a security risk. It will be disabled in a future update."},
- {"jks.storetype.warning", "The %1$s keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using \"keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12\"."},
- {"migrate.keystore.warning", "Migrated \"%1$s\" to %4$s. The %2$s keystore is backed up as \"%3$s\"."},
- {"backup.keystore.warning", "The original keystore \"%1$s\" is backed up as \"%3$s\"..."},
- {"importing.keystore.status", "Importing keystore %1$s to %2$s..."},
- {"keyalg.option.missing.error", "The -keyalg option must be specified."},
- {"showinfo.no.option", "Missing option for -showinfo. Try \"keytool -showinfo -tls\"."},
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/Resources_de.java b/src/java.base/share/classes/sun/security/tools/keytool/Resources_de.java
deleted file mode 100644
index 722c6b77b2005..0000000000000
--- a/src/java.base/share/classes/sun/security/tools/keytool/Resources_de.java
+++ /dev/null
@@ -1,511 +0,0 @@
-/*
- * Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.tools.keytool;
-
-/**
- *
This class represents the ResourceBundle
- * for the keytool.
- *
- */
-public class Resources_de extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
- {"NEWLINE", "\n"},
- {"STAR",
- "*******************************************"},
- {"STARNN",
- "*******************************************\n\n"},
-
- // keytool: Help part
- {".OPTION.", " [OPTION]..."},
- {"Options.", "Optionen:"},
- {"option.1.set.twice", "Die Option %s wurde mehrmals angegeben. Alle Angaben bis auf die letzte werden ignoriert."},
- {"multiple.commands.1.2", "Nur ein Befehl ist zul\u00E4ssig: Sowohl %1$s als auch %2$s wurden angegeben."},
- {"Use.keytool.help.for.all.available.commands",
- "Verwenden Sie \"keytool -?, -h, or --help\" f\u00FCr diese Hilfemeldung"},
- {"Key.and.Certificate.Management.Tool",
- "Schl\u00FCssel- und Zertifikatsverwaltungstool"},
- {"Commands.", "Befehle:"},
- {"Use.keytool.command.name.help.for.usage.of.command.name",
- "Verwenden Sie \"keytool -command_name --help\" f\u00FCr die Verwendung von command_name.\nVerwenden Sie die Option -conf , um eine vorkonfigurierte Optionsdatei anzugeben."},
- // keytool: help: commands
- {"Generates.a.certificate.request",
- "Generiert eine Zertifikatsanforderung"}, //-certreq
- {"Changes.an.entry.s.alias",
- "\u00C4ndert den Alias eines Eintrags"}, //-changealias
- {"Deletes.an.entry",
- "L\u00F6scht einen Eintrag"}, //-delete
- {"Exports.certificate",
- "Exportiert ein Zertifikat"}, //-exportcert
- {"Generates.a.key.pair",
- "Generiert ein Schl\u00FCsselpaar"}, //-genkeypair
- {"Generates.a.secret.key",
- "Generiert einen Secret Key"}, //-genseckey
- {"Generates.certificate.from.a.certificate.request",
- "Generiert ein Zertifikat aus einer Zertifikatsanforderung"}, //-gencert
- {"Generates.CRL", "Generiert eine CRL"}, //-gencrl
- {"Generated.keyAlgName.secret.key",
- "{0} Secret Key generiert"}, //-genseckey
- {"Generated.keysize.bit.keyAlgName.secret.key",
- "{0}-Bit {1} Secret Key generiert"}, //-genseckey
- {"key.algorithm.weak", "%1$s verwendet den Algorithmus %2$s. Das gilt als Sicherheitsrisiko."},
- {"key.size.weak", "%1$s verwendet %2$s. Dies gilt als Sicherheitsrisiko."},
- {"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
- "Importiert Eintr\u00E4ge aus einer Identity-Datenbank im JDK 1.1.x-Stil"}, //-identitydb
- {"Imports.a.certificate.or.a.certificate.chain",
- "Importiert ein Zertifikat oder eine Zertifikatskette"}, //-importcert
- {"Imports.a.password",
- "Importiert ein Kennwort"}, //-importpass
- {"Imports.one.or.all.entries.from.another.keystore",
- "Importiert einen oder alle Eintr\u00E4ge aus einem anderen Keystore"}, //-importkeystore
- {"Clones.a.key.entry",
- "Clont einen Schl\u00FCsseleintrag"}, //-keyclone
- {"Changes.the.key.password.of.an.entry",
- "\u00C4ndert das Schl\u00FCsselkennwort eines Eintrags"}, //-keypasswd
- {"Lists.entries.in.a.keystore",
- "Listet die Eintr\u00E4ge in einem Keystore auf"}, //-list
- {"Prints.the.content.of.a.certificate",
- "Druckt den Content eines Zertifikats"}, //-printcert
- {"Prints.the.content.of.a.certificate.request",
- "Druckt den Content einer Zertifikatsanforderung"}, //-printcertreq
- {"Prints.the.content.of.a.CRL.file",
- "Druckt den Content einer CRL-Datei"}, //-printcrl
- {"Generates.a.self.signed.certificate",
- "Generiert ein selbst signiertes Zertifikat"}, //-selfcert
- {"Changes.the.store.password.of.a.keystore",
- "\u00C4ndert das Speicherkennwort eines Keystores"}, //-storepasswd
- {"showinfo.command.help", "Zeigt sicherheitsbezogene Informationen an"},
- {"Prints.the.program.version", "Gibt die Programmversion aus"},
-
- // keytool: help: options
- {"alias.name.of.the.entry.to.process",
- "Aliasname des zu verarbeitenden Eintrags"}, //-alias
- {"groupname.option.help",
- "Gruppenname. Beispiel: der Name der elliptischen Kurve."}, //-groupname
- {"destination.alias",
- "Zielalias"}, //-destalias
- {"destination.key.password",
- "Zielschl\u00FCsselkennwort"}, //-destkeypass
- {"destination.keystore.name",
- "Ziel-Keystore-Name"}, //-destkeystore
- {"destination.keystore.password.protected",
- "Ziel-Keystore kennwortgesch\u00FCtzt"}, //-destprotected
- {"destination.keystore.provider.name",
- "Ziel-Keystore-Providername"}, //-destprovidername
- {"destination.keystore.password",
- "Ziel-Keystore-Kennwort"}, //-deststorepass
- {"destination.keystore.type",
- "Ziel-Keystore-Typ"}, //-deststoretype
- {"distinguished.name",
- "Distinguished Name"}, //-dname
- {"X.509.extension",
- "X.509-Erweiterung"}, //-ext
- {"output.file.name",
- "Ausgabedateiname"}, //-file and -outfile
- {"input.file.name",
- "Eingabedateiname"}, //-file and -infile
- {"key.algorithm.name",
- "Schl\u00FCsselalgorithmusname"}, //-keyalg
- {"key.password",
- "Schl\u00FCsselkennwort"}, //-keypass
- {"key.bit.size",
- "Schl\u00FCsselbitgr\u00F6\u00DFe"}, //-keysize
- {"keystore.name",
- "Keystore-Name"}, //-keystore
- {"access.the.cacerts.keystore",
- "Zugriff auf den cacerts Keystore"}, // -cacerts
- {"warning.cacerts.option",
- "Warnung: Verwenden Sie die Option -cacerts f\u00FCr den Zugriff auf den cacerts Keystore"},
- {"new.password",
- "Neues Kennwort"}, //-new
- {"do.not.prompt",
- "Kein Prompt"}, //-noprompt
- {"password.through.protected.mechanism",
- "Kennwort \u00FCber gesch\u00FCtzten Mechanismus"}, //-protected
- {"tls.option.help", "Zeigt TLS-Konfigurationsinformationen an"},
-
- // The following 2 values should span 2 lines, the first for the
- // option itself, the second for its -providerArg value.
- {"addprovider.option",
- "Sicherheitsprovider nach Name hinzuf\u00FCgen (z.B. SunPKCS11)\nArgument f\u00FCr -addprovider konfigurieren"}, //-addprovider
- {"provider.class.option",
- "Sicherheitsprovider nach vollst\u00E4ndig angegebenem Klassennamen hinzuf\u00FCgen\nArgument f\u00FCr -providerclass konfigurieren"}, //-providerclass
-
- {"provider.name",
- "Providername"}, //-providername
- {"provider.classpath",
- "Provider-Classpath"}, //-providerpath
- {"output.in.RFC.style",
- "Ausgabe in RFC-Stil"}, //-rfc
- {"signature.algorithm.name",
- "Signaturalgorithmusname"}, //-sigalg
- {"signer.alias",
- "Signaturgeberalias"}, //-signer
- {"signer.key.password",
- "Signaturgeber-Schl\u00FCsselkennwort"}, //-signerkeypass
- {"source.alias",
- "Quellalias"}, //-srcalias
- {"source.key.password",
- "Quellschl\u00FCsselkennwort"}, //-srckeypass
- {"source.keystore.name",
- "Quell-Keystore-Name"}, //-srckeystore
- {"source.keystore.password.protected",
- "Quell-Keystore kennwortgesch\u00FCtzt"}, //-srcprotected
- {"source.keystore.provider.name",
- "Quell-Keystore-Providername"}, //-srcprovidername
- {"source.keystore.password",
- "Quell-Keystore-Kennwort"}, //-srcstorepass
- {"source.keystore.type",
- "Quell-Keystore-Typ"}, //-srcstoretype
- {"SSL.server.host.and.port",
- "SSL-Serverhost und -port"}, //-sslserver
- {"signed.jar.file",
- "Signierte JAR-Datei"}, //=jarfile
- {"certificate.validity.start.date.time",
- "Startdatum/-zeit f\u00FCr Zertifikatsg\u00FCltigkeit"}, //-startdate
- {"keystore.password",
- "Keystore-Kennwort"}, //-storepass
- {"keystore.type",
- "Keystore-Typ"}, //-storetype
- {"trust.certificates.from.cacerts",
- "Zertifikaten aus cacerts vertrauen"}, //-trustcacerts
- {"verbose.output",
- "Verbose-Ausgabe"}, //-v
- {"validity.number.of.days",
- "G\u00FCltigkeitsdauer (Tage)"}, //-validity
- {"Serial.ID.of.cert.to.revoke",
- "Serielle ID des zu entziehenden Certs"}, //-id
- // keytool: Running part
- {"keytool.error.", "Keytool-Fehler: "},
- {"Illegal.option.", "Unzul\u00E4ssige Option: "},
- {"Illegal.value.", "Unzul\u00E4ssiger Wert: "},
- {"Unknown.password.type.", "Unbekannter Kennworttyp: "},
- {"Cannot.find.environment.variable.",
- "Umgebungsvariable kann nicht gefunden werden: "},
- {"Cannot.find.file.", "Datei kann nicht gefunden werden: "},
- {"Command.option.flag.needs.an.argument.", "Befehlsoption {0} ben\u00F6tigt ein Argument."},
- {"Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.",
- "Warnung: Keine Unterst\u00FCtzung f\u00FCr unterschiedliche Speicher- und Schl\u00FCsselkennw\u00F6rter bei PKCS12 KeyStores. Der benutzerdefinierte Wert {0} wird ignoriert."},
- {"the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option",
- "Die Option -keystore oder -storetype kann nicht mit der Option -cacerts verwendet werden"},
- {".keystore.must.be.NONE.if.storetype.is.{0}",
- "-keystore muss NONE sein, wenn -storetype {0} ist"},
- {"Too.many.retries.program.terminated",
- "Zu viele erneute Versuche. Programm wird beendet"},
- {".storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}",
- "Befehle -storepasswd und -keypasswd werden nicht unterst\u00FCtzt, wenn -storetype {0} ist"},
- {".keypasswd.commands.not.supported.if.storetype.is.PKCS12",
- "Befehle des Typs -keypasswd werden nicht unterst\u00FCtzt, wenn -storetype PKCS12 ist"},
- {".keypass.and.new.can.not.be.specified.if.storetype.is.{0}",
- "-keypass und -new k\u00F6nnen nicht angegeben werden, wenn -storetype {0} ist"},
- {"if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified",
- "Wenn -protected angegeben ist, d\u00FCrfen -storepass, -keypass und -new nicht angegeben werden"},
- {"if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "Wenn -srcprotected angegeben ist, d\u00FCrfen -srcstorepass und -srckeypass nicht angegeben werden"},
- {"if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified",
- "Wenn der Keystore nicht kennwortgesch\u00FCtzt ist, d\u00FCrfen -storepass, -keypass und -new nicht angegeben werden"},
- {"if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "Wenn der Quell-Keystore nicht kennwortgesch\u00FCtzt ist, d\u00FCrfen -srcstorepass und -srckeypass nicht angegeben werden"},
- {"Illegal.startdate.value", "Unzul\u00E4ssiger Wert f\u00FCr Startdatum"},
- {"Validity.must.be.greater.than.zero",
- "G\u00FCltigkeit muss gr\u00F6\u00DFer als null sein"},
- {"provclass.not.a.provider", "%s kein Provider"},
- {"provider.name.not.found", "Provider namens \"%s\" nicht gefunden"},
- {"provider.class.not.found", "Provider \"%s\" nicht gefunden"},
- {"Usage.error.no.command.provided", "Verwendungsfehler: Kein Befehl angegeben"},
- {"Source.keystore.file.exists.but.is.empty.", "Quell-Keystore-Datei ist zwar vorhanden, ist aber leer: "},
- {"Please.specify.srckeystore", "Geben Sie -srckeystore an"},
- {"Must.not.specify.both.v.and.rfc.with.list.command",
- "-v und -rfc d\u00FCrfen bei Befehl \"list\" nicht beide angegeben werden"},
- {"Key.password.must.be.at.least.6.characters",
- "Schl\u00FCsselkennwort muss mindestens sechs Zeichen lang sein"},
- {"New.password.must.be.at.least.6.characters",
- "Neues Kennwort muss mindestens sechs Zeichen lang sein"},
- {"Keystore.file.exists.but.is.empty.",
- "Keystore-Datei ist vorhanden, ist aber leer: "},
- {"Keystore.file.does.not.exist.",
- "Keystore-Datei ist nicht vorhanden: "},
- {"Must.specify.destination.alias", "Sie m\u00FCssen einen Zielalias angeben"},
- {"Must.specify.alias", "Sie m\u00FCssen einen Alias angeben"},
- {"Keystore.password.must.be.at.least.6.characters",
- "Keystore-Kennwort muss mindestens sechs Zeichen lang sein"},
- {"Enter.the.password.to.be.stored.",
- "Geben Sie das Kennwort ein, das gespeichert werden soll: "},
- {"Enter.keystore.password.", "Keystore-Kennwort eingeben: "},
- {"Enter.source.keystore.password.", "Quell-Keystore-Kennwort eingeben: "},
- {"Enter.destination.keystore.password.", "Ziel-Keystore-Kennwort eingeben: "},
- {"Keystore.password.is.too.short.must.be.at.least.6.characters",
- "Keystore-Kennwort ist zu kurz. Es muss mindestens sechs Zeichen lang sein"},
- {"Unknown.Entry.Type", "Unbekannter Eintragstyp"},
- {"Entry.for.alias.alias.successfully.imported.",
- "Eintrag f\u00FCr Alias {0} erfolgreich importiert."},
- {"Entry.for.alias.alias.not.imported.", "Eintrag f\u00FCr Alias {0} nicht importiert."},
- {"Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.",
- "Problem beim Importieren des Eintrags f\u00FCr Alias {0}: {1}.\nEintrag f\u00FCr Alias {0} nicht importiert."},
- {"Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled",
- "Importbefehl abgeschlossen: {0} Eintr\u00E4ge erfolgreich importiert, {1} Eintr\u00E4ge nicht erfolgreich oder abgebrochen"},
- {"Warning.Overwriting.existing.alias.alias.in.destination.keystore",
- "Warnung: Vorhandener Alias {0} in Ziel-Keystore wird \u00FCberschrieben"},
- {"Existing.entry.alias.alias.exists.overwrite.no.",
- "Eintragsalias {0} ist bereits vorhanden. \u00DCberschreiben? [Nein]: "},
- {"Too.many.failures.try.later", "Zu viele Fehler. Versuchen Sie es sp\u00E4ter erneut"},
- {"Certification.request.stored.in.file.filename.",
- "Zertifizierungsanforderung in Datei <{0}> gespeichert"},
- {"Submit.this.to.your.CA", "Leiten Sie dies an die CA weiter"},
- {"if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified",
- "Wenn kein Alias angegeben ist, d\u00FCrfen destalias und srckeypass nicht angegeben werden"},
- {"The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.",
- "Der Ziel-Keystore pkcs12 hat unterschiedliche Kennw\u00F6rter f\u00FCr storepass und keypass. Wiederholen Sie den Vorgang, indem Sie -destkeypass angeben."},
- {"Certificate.stored.in.file.filename.",
- "Zertifikat in Datei <{0}> gespeichert"},
- {"Certificate.reply.was.installed.in.keystore",
- "Zertifikatsantwort wurde in Keystore installiert"},
- {"Certificate.reply.was.not.installed.in.keystore",
- "Zertifikatsantwort wurde nicht in Keystore installiert"},
- {"Certificate.was.added.to.keystore",
- "Zertifikat wurde Keystore hinzugef\u00FCgt"},
- {"Certificate.was.not.added.to.keystore",
- "Zertifikat wurde nicht zu Keystore hinzugef\u00FCgt"},
- {".Storing.ksfname.", "[{0} wird gesichert]"},
- {"alias.has.no.public.key.certificate.",
- "{0} hat keinen Public Key (Zertifikat)"},
- {"Cannot.derive.signature.algorithm",
- "Signaturalgorithmus kann nicht abgeleitet werden"},
- {"Alias.alias.does.not.exist",
- "Alias <{0}> ist nicht vorhanden"},
- {"Alias.alias.has.no.certificate",
- "Alias <{0}> hat kein Zertifikat"},
- {"groupname.keysize.coexist",
- "Es k\u00F6nnen nicht sowohl -groupname als auch -keysize angegeben werden"},
- {"deprecate.keysize.for.ec",
- "Das Angeben von -keysize zum Generieren von EC-Schl\u00FCsseln ist veraltet. Verwenden Sie stattdessen \"-groupname %s\"."},
- {"Key.pair.not.generated.alias.alias.already.exists",
- "Schl\u00FCsselpaar wurde nicht generiert. Alias <{0}> ist bereits vorhanden"},
- {"size.bit.alg",
- "%1$d-Bit %2$s"},
- {"Generating.full.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.days.for",
- "Schl\u00FCsselpaar {0} und selbstsigniertes Zertifikat ({1}) werden mit einer G\u00FCltigkeit von {2} Tagen generiert\n\tf\u00FCr: {3}"},
- {"Generating.full.keyAlgName.key.pair.and.a.certificate.sigAlgName.issued.by.signerAlias.with.a.validity.of.days.for",
- "Schl\u00FCsselpaar {0} und Zertifikat ({1}) werden generiert, das von <{2}> mit einer G\u00FCltigkeit von {3} Tagen ausgestellt wurde\n\tf\u00FCr: {4}"},
- {"Enter.key.password.for.alias.", "Schl\u00FCsselkennwort f\u00FCr <{0}> eingeben"},
- {".RETURN.if.same.as.keystore.password.",
- "\t(RETURN, wenn identisch mit Keystore-Kennwort): "},
- {"Key.password.is.too.short.must.be.at.least.6.characters",
- "Schl\u00FCsselkennwort ist zu kurz. Es muss mindestens sechs Zeichen lang sein"},
- {"Too.many.failures.key.not.added.to.keystore",
- "Zu viele Fehler. Schl\u00FCssel wurde nicht zu Keystore hinzugef\u00FCgt"},
- {"Destination.alias.dest.already.exists",
- "Zielalias <{0}> bereits vorhanden"},
- {"Password.is.too.short.must.be.at.least.6.characters",
- "Kennwort ist zu kurz. Es muss mindestens sechs Zeichen lang sein"},
- {"Too.many.failures.Key.entry.not.cloned",
- "Zu viele Fehler. Schl\u00FCsseleintrag wurde nicht geklont"},
- {"key.password.for.alias.", "Schl\u00FCsselkennwort f\u00FCr <{0}>"},
- {"No.entries.from.identity.database.added",
- "Keine Eintr\u00E4ge aus Identity-Datenbank hinzugef\u00FCgt"},
- {"Alias.name.alias", "Aliasname: {0}"},
- {"Creation.date.keyStore.getCreationDate.alias.",
- "Erstellungsdatum: {0,date}"},
- {"alias.keyStore.getCreationDate.alias.",
- "{0}, {1,date}, "},
- {"alias.", "{0}, "},
- {"Entry.type.type.", "Eintragstyp: {0}"},
- {"Certificate.chain.length.", "Zertifikatskettenl\u00E4nge: "},
- {"Certificate.i.1.", "Zertifikat[{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA.256.", "Zertifikat-Fingerprint (SHA-256): "},
- {"Keystore.type.", "Keystore-Typ: "},
- {"Keystore.provider.", "Keystore-Provider: "},
- {"Your.keystore.contains.keyStore.size.entry",
- "Keystore enth\u00E4lt {0,number,integer} Eintrag"},
- {"Your.keystore.contains.keyStore.size.entries",
- "Keystore enth\u00E4lt {0,number,integer} Eintr\u00E4ge"},
- {"Failed.to.parse.input", "Eingabe konnte nicht geparst werden"},
- {"Empty.input", "Leere Eingabe"},
- {"Not.X.509.certificate", "Kein X.509-Zertifikat"},
- {"alias.has.no.public.key", "{0} hat keinen Public Key"},
- {"alias.has.no.X.509.certificate", "{0} hat kein X.509-Zertifikat"},
- {"New.certificate.self.signed.", "Neues Zertifikat (selbst signiert):"},
- {"Reply.has.no.certificates", "Antwort hat keine Zertifikate"},
- {"Certificate.not.imported.alias.alias.already.exists",
- "Zertifikat nicht importiert. Alias <{0}> ist bereits vorhanden"},
- {"Input.not.an.X.509.certificate", "Eingabe kein X.509-Zertifikat"},
- {"Certificate.already.exists.in.keystore.under.alias.trustalias.",
- "Zertifikat ist bereits unter Alias <{0}> im Keystore vorhanden"},
- {"Do.you.still.want.to.add.it.no.",
- "M\u00F6chten Sie es trotzdem hinzuf\u00FCgen? [Nein]: "},
- {"Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.",
- "Zertifikat ist bereits unter Alias <{0}> im systemweiten CA-Keystore vorhanden"},
- {"Do.you.still.want.to.add.it.to.your.own.keystore.no.",
- "M\u00F6chten Sie es trotzdem zu Ihrem eigenen Keystore hinzuf\u00FCgen? [Nein]: "},
- {"Trust.this.certificate.no.", "Diesem Zertifikat vertrauen? [Nein]: "},
- {"New.prompt.", "Neues {0}: "},
- {"Passwords.must.differ", "Kennw\u00F6rter m\u00FCssen sich unterscheiden"},
- {"Re.enter.new.prompt.", "Neues {0} erneut eingeben: "},
- {"Re.enter.password.", "Geben Sie das Kennwort erneut ein: "},
- {"Re.enter.new.password.", "Neues Kennwort erneut eingeben: "},
- {"They.don.t.match.Try.again", "Keine \u00DCbereinstimmung. Wiederholen Sie den Vorgang"},
- {"Enter.prompt.alias.name.", "{0}-Aliasnamen eingeben: "},
- {"Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.",
- "Geben Sie einen neuen Aliasnamen ein\t(RETURN, um den Import dieses Eintrags abzubrechen): "},
- {"Enter.alias.name.", "Aliasnamen eingeben: "},
- {".RETURN.if.same.as.for.otherAlias.",
- "\t(RETURN, wenn identisch mit <{0}>)"},
- {"enter.dname.components",
- "Geben Sie den Distinguished Name ein. Geben Sie einen einzelnen Punkt (.) an, um eine Unterkomponente leer zu lassen, oder dr\u00FCcken Sie die Eingabetaste, um den Standardwert in Klammern zu verwenden."},
- {"What.is.your.first.and.last.name.",
- "Wie lautet Ihr Vor- und Nachname?"},
- {"What.is.the.name.of.your.organizational.unit.",
- "Wie lautet der Name Ihrer organisatorischen Einheit?"},
- {"What.is.the.name.of.your.organization.",
- "Wie lautet der Name Ihrer Organisation?"},
- {"What.is.the.name.of.your.City.or.Locality.",
- "Wie lautet der Name Ihrer Stadt oder Gemeinde?"},
- {"What.is.the.name.of.your.State.or.Province.",
- "Wie lautet der Name Ihres Bundeslands?"},
- {"What.is.the.two.letter.country.code.for.this.unit.",
- "Wie lautet der L\u00E4ndercode (zwei Buchstaben) f\u00FCr diese Einheit?"},
- {"no.field.in.dname",
- "Mindestens ein Feld muss ausgef\u00FCllt werden. Wiederholen Sie die Eingabe."},
- {"Is.name.correct.", "Ist {0} richtig?"},
- {"no", "Nein"},
- {"yes", "Ja"},
- {"y", "J"},
- {".defaultValue.", " [{0}]: "},
- {"Alias.alias.has.no.key",
- "Alias <{0}> verf\u00FCgt \u00FCber keinen Schl\u00FCssel"},
- {"Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key",
- "Alias <{0}> verweist auf einen Eintragstyp, der kein Private-Key-Eintrag ist. Der Befehl -keyclone unterst\u00FCtzt nur das Klonen von Private-Key-Eintr\u00E4gen"},
-
- {".WARNING.WARNING.WARNING.",
- "***************** WARNING WARNING WARNING *****************"},
- {"Signer.d.", "Signaturgeber #%d:"},
- {"Certificate.d.", "Zertifikat #%d:"},
- {"Timestamp.", "Zeitstempel:"},
- {"Certificate.owner.", "Zertifikatseigent\u00FCmer: "},
- {"Not.a.signed.jar.file", "Keine signierte JAR-Datei"},
- {"No.certificate.from.the.SSL.server",
- "Kein Zertifikat vom SSL-Server"},
-
- {".The.integrity.of.the.information.stored.in.your.keystore.",
- "* Die Integrit\u00E4t der Informationen, die in Ihrem Keystore gespeichert sind, *\n* wurde NICHT gepr\u00FCft. Um die Integrit\u00E4t zu pr\u00FCfen, *\n* m\u00FCssen Sie Ihr Keystore-Kennwort angeben. *"},
- {".The.integrity.of.the.information.stored.in.the.srckeystore.",
- "* Die Integrit\u00E4t der Informationen, die in Ihrem Srckeystore gespeichert sind, *\n* wurde NICHT gepr\u00FCft. Um die Integrit\u00E4t zu pr\u00FCfen, *\n* m\u00FCssen Sie Ihr Srckeystore-Kennwort angeben. *"},
-
- {"Certificate.reply.does.not.contain.public.key.for.alias.",
- "Zertifikatsantwort enth\u00E4lt keinen Public Key f\u00FCr <{0}>"},
- {"Incomplete.certificate.chain.in.reply",
- "Unvollst\u00E4ndige Zertifikatskette in Antwort"},
- {"Top.level.certificate.in.reply.",
- "Zertifikat der obersten Ebene in Antwort:\n"},
- {".is.not.trusted.", "... ist nicht vertrauensw\u00FCrdig. "},
- {"Install.reply.anyway.no.", "Antwort trotzdem installieren? [Nein]: "},
- {"Public.keys.in.reply.and.keystore.don.t.match",
- "Public Keys in Antwort und Keystore stimmen nicht \u00FCberein"},
- {"Certificate.reply.and.certificate.in.keystore.are.identical",
- "Zertifikatsantwort und Zertifikat in Keystore sind identisch"},
- {"Failed.to.establish.chain.from.reply",
- "Kette konnte der Antwort nicht entnommen werden"},
- {"n", "N"},
- {"Wrong.answer.try.again", "Falsche Antwort. Wiederholen Sie den Vorgang"},
- {"Secret.key.not.generated.alias.alias.already.exists",
- "Secret Key wurde nicht generiert. Alias <{0}> ist bereits vorhanden"},
- {"Please.provide.keysize.for.secret.key.generation",
- "Geben Sie -keysize zum Erstellen eines Secret Key an"},
-
- {"warning.not.verified.make.sure.keystore.is.correct",
- "WARNUNG: Nicht gepr\u00FCft. Stellen Sie sicher, dass -keystore korrekt ist."},
- {"warning.not.verified.make.sure.keystore.is.correct.or.specify.trustcacerts",
- "Warnung: Nicht gepr\u00FCft. Stellen Sie sicher, dass -keystore korrekt ist, oder geben Sie -trustcacerts an."},
-
- {"Extensions.", "Erweiterungen: "},
- {".Empty.value.", "(Leerer Wert)"},
- {"Extension.Request.", "Erweiterungsanforderung:"},
- {"Unknown.keyUsage.type.", "Unbekannter keyUsage-Typ: "},
- {"Unknown.extendedkeyUsage.type.", "Unbekannter extendedkeyUsage-Typ: "},
- {"Unknown.AccessDescription.type.", "Unbekannter AccessDescription-Typ: "},
- {"Unrecognized.GeneralName.type.", "Unbekannter GeneralName-Typ: "},
- {"This.extension.cannot.be.marked.as.critical.",
- "Erweiterung kann nicht als \"Kritisch\" markiert werden. "},
- {"Odd.number.of.hex.digits.found.", "Ungerade Anzahl hexadezimaler Ziffern gefunden: "},
- {"Unknown.extension.type.", "Unbekannter Erweiterungstyp: "},
- {"command.{0}.is.ambiguous.", "Befehl {0} ist mehrdeutig:"},
-
- // 8171319: keytool should print out warnings when reading or
- // generating cert/cert req using weak algorithms
- {"the.certificate.request", "Die Zertifikatsanforderung"},
- {"the.issuer", "Der Aussteller"},
- {"the.generated.secretkey", "Der generierte Secret Key"},
- {"the.generated.certificate", "Das generierte Zertifikat"},
- {"the.generated.crl", "Die generierte CRL"},
- {"the.generated.certificate.request", "Die generierte Zertifikatsanforderung"},
- {"the.certificate", "Das Zertifikat"},
- {"the.crl", "Die CRL"},
- {"the.tsa.certificate", "Das TSA-Zertifikat"},
- {"the.input", "Die Eingabe"},
- {"reply", "Antwort"},
- {"one.in.many", "%1$s #%2$d von %3$d"},
- {"one.in.many1", "%1$s #%2$d"},
- {"one.in.many2", "%1$s von Signaturgeber #%2$d"},
- {"one.in.many3", "%1$s #%2$d von Signaturgeber #%3$d"},
- {"alias.in.cacerts", "Aussteller <%s> in cacerts"},
- {"alias.in.keystore", "Aussteller <%s>"},
- {"with.weak", "%s (schwach)"},
- {"with.disabled", "%s (deaktiviert)"},
- {"key.bit", "%s-Schl\u00FCssel"},
- {"key.bit.weak", "%s Schl\u00FCssel (schwach)"},
- {"key.bit.disabled", "%s Schl\u00FCssel (deaktiviert)"},
- {".PATTERN.printX509Cert.with.weak",
- "Eigent\u00FCmer: {0}\nAussteller: {1}\nSeriennummer: {2}\nG\u00FCltig von: {3} bis: {4}\nZertifikatsfingerprints:\n\t SHA1: {5}\n\t SHA256: {6}\nSignaturalgorithmusname: {7}\nPublic-Key-Algorithmus von Subject: {8}\nVersion: {9}"},
- {"PKCS.10.with.weak",
- "PKCS #10-Zertifikatsanforderung (Version 1.0)\nSubject: %1$s\nFormat: %2$s\nPublic Key: %3$s\nSignaturalgorithmus: %4$s\n"},
- {"verified.by.s.in.s.weak", "Von %1$s in %2$s mit %3$s verifiziert"},
- {"whose.sigalg.disabled", "%1$s verwendet den Signaturalgorithmus %2$s. Dies gilt als Sicherheitsrisiko und ist deaktiviert."},
- {"whose.sigalg.usagesignedjar", "%1$s verwendet den Signaturalgorithmus %2$s. Das gilt als Sicherheitsrisiko und kann nach %3$s nicht zum Signieren von JAR-Archiven verwendet werden."},
- {"Unable.to.parse.denyAfter.string.in.exception.message", "denyAfter-Datumszeichenfolge in Ausnahmemeldung kann nicht geparst werden"},
- {"whose.sigalg.weak", "%1$s verwendet den Signaturalgorithmus %2$s. Dies gilt als Sicherheitsrisiko."},
- {"whose.key.disabled", "%1$s verwendet %2$s. Dies gilt als Sicherheitsrisiko und ist deaktiviert."},
- {"whose.key.weak", "%1$s verwendet %2$s. Dies gilt als Sicherheitsrisiko. Wird in einem zuk\u00FCnftigen Update deaktiviert."},
- {"jks.storetype.warning", "Der %1$s-Keystore verwendet ein propriet\u00E4res Format. Es wird empfohlen, auf PKCS12 zu migrieren, das ein Industriestandardformat mit \"keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12\" ist."},
- {"migrate.keystore.warning", "\"%1$s\" zu %4$s migriert. Der %2$s-Keystore wurde als \"%3$s\" gesichert."},
- {"backup.keystore.warning", "Der urspr\u00FCngliche Keystore \"%1$s\" wird als \"%3$s\" gesichert..."},
- {"importing.keystore.status", "Keystore %1$s wird in %2$s importiert..."},
- {"keyalg.option.missing.error", "Die Option -keyalg muss angegeben werden."},
- {"showinfo.no.option", "Fehlende Option f\u00FCr -showinfo. Verwenden Sie keytool -showinfo -tls."},
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/Resources_es.java b/src/java.base/share/classes/sun/security/tools/keytool/Resources_es.java
deleted file mode 100644
index 8bd19ebad5b37..0000000000000
--- a/src/java.base/share/classes/sun/security/tools/keytool/Resources_es.java
+++ /dev/null
@@ -1,484 +0,0 @@
-/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.tools.keytool;
-
-/**
- *
This class represents the ResourceBundle
- * for the keytool.
- *
- */
-public class Resources_es extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
- {"NEWLINE", "\n"},
- {"STAR",
- "*******************************************"},
- {"STARNN",
- "*******************************************\n\n"},
-
- // keytool: Help part
- {".OPTION.", " [OPTION]..."},
- {"Options.", "Opciones:"},
- {"option.1.set.twice", "La opci\u00F3n %s se\u00A0ha especificado\u00A0varias veces. Se ignorar\u00E1n todas excepto la \u00FAltima."},
- {"multiple.commands.1.2", "Solo se permite un comando: se ha especificado tanto %1$s como %2$s"},
- {"Use.keytool.help.for.all.available.commands",
- "Utilice\"keytool -help\" para todos los comandos disponibles"},
- {"Key.and.Certificate.Management.Tool",
- "Herramienta de Gesti\u00F3n de Certificados y Claves"},
- {"Commands.", "Comandos:"},
- {"Use.keytool.command.name.help.for.usage.of.command.name",
- "Utilice \"keytool -command_name -help\" para la sintaxis de nombre_comando.\nUtilice la opci\u00F3n -conf para especificar un archivo de opciones preconfigurado."},
- // keytool: help: commands
- {"Generates.a.certificate.request",
- "Genera una solicitud de certificado"}, //-certreq
- {"Changes.an.entry.s.alias",
- "Cambia un alias de entrada"}, //-changealias
- {"Deletes.an.entry",
- "Suprime una entrada"}, //-delete
- {"Exports.certificate",
- "Exporta el certificado"}, //-exportcert
- {"Generates.a.key.pair",
- "Genera un par de claves"}, //-genkeypair
- {"Generates.a.secret.key",
- "Genera un clave secreta"}, //-genseckey
- {"Generates.certificate.from.a.certificate.request",
- "Genera un certificado a partir de una solicitud de certificado"}, //-gencert
- {"Generates.CRL", "Genera CRL"}, //-gencrl
- {"Generated.keyAlgName.secret.key",
- "Clave secreta {0} generada"}, //-genseckey
- {"Generated.keysize.bit.keyAlgName.secret.key",
- "Clave secreta {1} de {0} bits generada"}, //-genseckey
- {"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
- "Importa entradas desde una base de datos de identidades JDK 1.1.x-style"}, //-identitydb
- {"Imports.a.certificate.or.a.certificate.chain",
- "Importa un certificado o una cadena de certificados"}, //-importcert
- {"Imports.a.password",
- "Importa una contrase\u00F1a"}, //-importpass
- {"Imports.one.or.all.entries.from.another.keystore",
- "Importa una o todas las entradas desde otro almac\u00E9n de claves"}, //-importkeystore
- {"Clones.a.key.entry",
- "Clona una entrada de clave"}, //-keyclone
- {"Changes.the.key.password.of.an.entry",
- "Cambia la contrase\u00F1a de clave de una entrada"}, //-keypasswd
- {"Lists.entries.in.a.keystore",
- "Enumera las entradas de un almac\u00E9n de claves"}, //-list
- {"Prints.the.content.of.a.certificate",
- "Imprime el contenido de un certificado"}, //-printcert
- {"Prints.the.content.of.a.certificate.request",
- "Imprime el contenido de una solicitud de certificado"}, //-printcertreq
- {"Prints.the.content.of.a.CRL.file",
- "Imprime el contenido de un archivo CRL"}, //-printcrl
- {"Generates.a.self.signed.certificate",
- "Genera un certificado autofirmado"}, //-selfcert
- {"Changes.the.store.password.of.a.keystore",
- "Cambia la contrase\u00F1a de almac\u00E9n de un almac\u00E9n de claves"}, //-storepasswd
- // keytool: help: options
- {"alias.name.of.the.entry.to.process",
- "nombre de alias de la entrada que se va a procesar"}, //-alias
- {"destination.alias",
- "alias de destino"}, //-destalias
- {"destination.key.password",
- "contrase\u00F1a de clave de destino"}, //-destkeypass
- {"destination.keystore.name",
- "nombre de almac\u00E9n de claves de destino"}, //-destkeystore
- {"destination.keystore.password.protected",
- "almac\u00E9n de claves de destino protegido por contrase\u00F1a"}, //-destprotected
- {"destination.keystore.provider.name",
- "nombre de proveedor de almac\u00E9n de claves de destino"}, //-destprovidername
- {"destination.keystore.password",
- "contrase\u00F1a de almac\u00E9n de claves de destino"}, //-deststorepass
- {"destination.keystore.type",
- "tipo de almac\u00E9n de claves de destino"}, //-deststoretype
- {"distinguished.name",
- "nombre distintivo"}, //-dname
- {"X.509.extension",
- "extensi\u00F3n X.509"}, //-ext
- {"output.file.name",
- "nombre de archivo de salida"}, //-file and -outfile
- {"input.file.name",
- "nombre de archivo de entrada"}, //-file and -infile
- {"key.algorithm.name",
- "nombre de algoritmo de clave"}, //-keyalg
- {"key.password",
- "contrase\u00F1a de clave"}, //-keypass
- {"key.bit.size",
- "tama\u00F1o de bit de clave"}, //-keysize
- {"keystore.name",
- "nombre de almac\u00E9n de claves"}, //-keystore
- {"access.the.cacerts.keystore",
- "acceso al almac\u00E9n de claves cacerts"}, // -cacerts
- {"warning.cacerts.option",
- "Advertencia: Utilice la opci\u00F3n -cacerts para acceder al almac\u00E9n de claves cacerts"},
- {"new.password",
- "nueva contrase\u00F1a"}, //-new
- {"do.not.prompt",
- "no solicitar"}, //-noprompt
- {"password.through.protected.mechanism",
- "contrase\u00F1a a trav\u00E9s de mecanismo protegido"}, //-protected
-
- // The following 2 values should span 2 lines, the first for the
- // option itself, the second for its -providerArg value.
- {"addprovider.option",
- "agregar proveedor de seguridad por nombre (por ejemplo, SunPKCS11)\nconfigurar elemento para -addprovider"}, //-addprovider
- {"provider.class.option",
- "agregar proveedor de seguridad por nombre de clase totalmente cualificado\nconfigurar argumento para -providerclass"}, //-providerclass
-
- {"provider.name",
- "nombre del proveedor"}, //-providername
- {"provider.classpath",
- "classpath de proveedor"}, //-providerpath
- {"output.in.RFC.style",
- "salida en estilo RFC"}, //-rfc
- {"signature.algorithm.name",
- "nombre de algoritmo de firma"}, //-sigalg
- {"source.alias",
- "alias de origen"}, //-srcalias
- {"source.key.password",
- "contrase\u00F1a de clave de origen"}, //-srckeypass
- {"source.keystore.name",
- "nombre de almac\u00E9n de claves de origen"}, //-srckeystore
- {"source.keystore.password.protected",
- "almac\u00E9n de claves de origen protegido por contrase\u00F1a"}, //-srcprotected
- {"source.keystore.provider.name",
- "nombre de proveedor de almac\u00E9n de claves de origen"}, //-srcprovidername
- {"source.keystore.password",
- "contrase\u00F1a de almac\u00E9n de claves de origen"}, //-srcstorepass
- {"source.keystore.type",
- "tipo de almac\u00E9n de claves de origen"}, //-srcstoretype
- {"SSL.server.host.and.port",
- "puerto y host del servidor SSL"}, //-sslserver
- {"signed.jar.file",
- "archivo jar firmado"}, //=jarfile
- {"certificate.validity.start.date.time",
- "fecha/hora de inicio de validez del certificado"}, //-startdate
- {"keystore.password",
- "contrase\u00F1a de almac\u00E9n de claves"}, //-storepass
- {"keystore.type",
- "tipo de almac\u00E9n de claves"}, //-storetype
- {"trust.certificates.from.cacerts",
- "certificados de protecci\u00F3n de cacerts"}, //-trustcacerts
- {"verbose.output",
- "salida detallada"}, //-v
- {"validity.number.of.days",
- "n\u00FAmero de validez de d\u00EDas"}, //-validity
- {"Serial.ID.of.cert.to.revoke",
- "identificador de serie del certificado que se va a revocar"}, //-id
- // keytool: Running part
- {"keytool.error.", "error de herramienta de claves: "},
- {"Illegal.option.", "Opci\u00F3n no permitida: "},
- {"Illegal.value.", "Valor no permitido: "},
- {"Unknown.password.type.", "Tipo de contrase\u00F1a desconocido: "},
- {"Cannot.find.environment.variable.",
- "No se ha encontrado la variable del entorno: "},
- {"Cannot.find.file.", "No se ha encontrado el archivo: "},
- {"Command.option.flag.needs.an.argument.", "La opci\u00F3n de comando {0} necesita un argumento."},
- {"Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.",
- "Advertencia: los almacenes de claves en formato PKCS12 no admiten contrase\u00F1as de clave y almacenamiento distintas. Se ignorar\u00E1 el valor especificado por el usuario, {0}."},
- {"the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option",
- "Las opciones -keystore o -storetype no se pueden utilizar con la opci\u00F3n -cacerts"},
- {".keystore.must.be.NONE.if.storetype.is.{0}",
- "-keystore debe ser NONE si -storetype es {0}"},
- {"Too.many.retries.program.terminated",
- "Ha habido demasiados intentos, se ha cerrado el programa"},
- {".storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}",
- "Los comandos -storepasswd y -keypasswd no est\u00E1n soportados si -storetype es {0}"},
- {".keypasswd.commands.not.supported.if.storetype.is.PKCS12",
- "Los comandos -keypasswd no est\u00E1n soportados si -storetype es PKCS12"},
- {".keypass.and.new.can.not.be.specified.if.storetype.is.{0}",
- "-keypass y -new no se pueden especificar si -storetype es {0}"},
- {"if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified",
- "si se especifica -protected, no deben especificarse -storepass, -keypass ni -new"},
- {"if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "Si se especifica -srcprotected, no se puede especificar -srcstorepass ni -srckeypass"},
- {"if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified",
- "Si keystore no est\u00E1 protegido por contrase\u00F1a, no se deben especificar -storepass, -keypass ni -new"},
- {"if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "Si el almac\u00E9n de claves de origen no est\u00E1 protegido por contrase\u00F1a, no se deben especificar -srcstorepass ni -srckeypass"},
- {"Illegal.startdate.value", "Valor de fecha de inicio no permitido"},
- {"Validity.must.be.greater.than.zero",
- "La validez debe ser mayor que cero"},
- {"provclass.not.a.provider", "%s no es un proveedor"},
- {"provider.name.not.found", "No se ha encontrado el proveedor denominado \"%s\""},
- {"provider.class.not.found", "No se ha encontrado el proveedor \"%s\""},
- {"Usage.error.no.command.provided", "Error de sintaxis: no se ha proporcionado ning\u00FAn comando"},
- {"Source.keystore.file.exists.but.is.empty.", "El archivo de almac\u00E9n de claves de origen existe, pero est\u00E1 vac\u00EDo: "},
- {"Please.specify.srckeystore", "Especifique -srckeystore"},
- {"Must.not.specify.both.v.and.rfc.with.list.command",
- "No se deben especificar -v y -rfc simult\u00E1neamente con el comando 'list'"},
- {"Key.password.must.be.at.least.6.characters",
- "La contrase\u00F1a de clave debe tener al menos 6 caracteres"},
- {"New.password.must.be.at.least.6.characters",
- "La nueva contrase\u00F1a debe tener al menos 6 caracteres"},
- {"Keystore.file.exists.but.is.empty.",
- "El archivo de almac\u00E9n de claves existe, pero est\u00E1 vac\u00EDo: "},
- {"Keystore.file.does.not.exist.",
- "El archivo de almac\u00E9n de claves no existe: "},
- {"Must.specify.destination.alias", "Se debe especificar un alias de destino"},
- {"Must.specify.alias", "Se debe especificar un alias"},
- {"Keystore.password.must.be.at.least.6.characters",
- "La contrase\u00F1a del almac\u00E9n de claves debe tener al menos 6 caracteres"},
- {"Enter.the.password.to.be.stored.",
- "Introduzca la contrase\u00F1a que se va a almacenar: "},
- {"Enter.keystore.password.", "Introduzca la contrase\u00F1a del almac\u00E9n de claves: "},
- {"Enter.source.keystore.password.", "Introduzca la contrase\u00F1a de almac\u00E9n de claves de origen: "},
- {"Enter.destination.keystore.password.", "Introduzca la contrase\u00F1a de almac\u00E9n de claves de destino: "},
- {"Keystore.password.is.too.short.must.be.at.least.6.characters",
- "La contrase\u00F1a del almac\u00E9n de claves es demasiado corta, debe tener al menos 6 caracteres"},
- {"Unknown.Entry.Type", "Tipo de Entrada Desconocido"},
- {"Too.many.failures.Alias.not.changed", "Demasiados fallos. No se ha cambiado el alias"},
- {"Entry.for.alias.alias.successfully.imported.",
- "La entrada del alias {0} se ha importado correctamente."},
- {"Entry.for.alias.alias.not.imported.", "La entrada del alias {0} no se ha importado."},
- {"Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.",
- "Problema al importar la entrada del alias {0}: {1}.\nNo se ha importado la entrada del alias {0}."},
- {"Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled",
- "Comando de importaci\u00F3n completado: {0} entradas importadas correctamente, {1} entradas incorrectas o canceladas"},
- {"Warning.Overwriting.existing.alias.alias.in.destination.keystore",
- "Advertencia: se sobrescribir\u00E1 el alias {0} en el almac\u00E9n de claves de destino"},
- {"Existing.entry.alias.alias.exists.overwrite.no.",
- "El alias de entrada existente {0} ya existe, \u00BFdesea sobrescribirlo? [no]: "},
- {"Too.many.failures.try.later", "Demasiados fallos; int\u00E9ntelo m\u00E1s adelante"},
- {"Certification.request.stored.in.file.filename.",
- "Solicitud de certificaci\u00F3n almacenada en el archivo <{0}>"},
- {"Submit.this.to.your.CA", "Enviar a la CA"},
- {"if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified",
- "si no se especifica el alias, no se debe especificar destalias ni srckeypass"},
- {"The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.",
- "El almac\u00E9n de claves pkcs12 de destino tiene storepass y keypass diferentes. Vuelva a intentarlo con -destkeypass especificado."},
- {"Certificate.stored.in.file.filename.",
- "Certificado almacenado en el archivo <{0}>"},
- {"Certificate.reply.was.installed.in.keystore",
- "Se ha instalado la respuesta del certificado en el almac\u00E9n de claves"},
- {"Certificate.reply.was.not.installed.in.keystore",
- "No se ha instalado la respuesta del certificado en el almac\u00E9n de claves"},
- {"Certificate.was.added.to.keystore",
- "Se ha agregado el certificado al almac\u00E9n de claves"},
- {"Certificate.was.not.added.to.keystore",
- "No se ha agregado el certificado al almac\u00E9n de claves"},
- {".Storing.ksfname.", "[Almacenando {0}]"},
- {"alias.has.no.public.key.certificate.",
- "{0} no tiene clave p\u00FAblica (certificado)"},
- {"Cannot.derive.signature.algorithm",
- "No se puede derivar el algoritmo de firma"},
- {"Alias.alias.does.not.exist",
- "El alias <{0}> no existe"},
- {"Alias.alias.has.no.certificate",
- "El alias <{0}> no tiene certificado"},
- {"Key.pair.not.generated.alias.alias.already.exists",
- "No se ha generado el par de claves, el alias <{0}> ya existe"},
- {"Generating.keysize.bit.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.validality.days.for",
- "Generando par de claves {1} de {0} bits para certificado autofirmado ({2}) con una validez de {3} d\u00EDas\n\tpara: {4}"},
- {"Enter.key.password.for.alias.", "Introduzca la contrase\u00F1a de clave para <{0}>"},
- {".RETURN.if.same.as.keystore.password.",
- "\t(INTRO si es la misma contrase\u00F1a que la del almac\u00E9n de claves): "},
- {"Key.password.is.too.short.must.be.at.least.6.characters",
- "La contrase\u00F1a de clave es demasiado corta; debe tener al menos 6 caracteres"},
- {"Too.many.failures.key.not.added.to.keystore",
- "Demasiados fallos; no se ha agregado la clave al almac\u00E9n de claves"},
- {"Destination.alias.dest.already.exists",
- "El alias de destino <{0}> ya existe"},
- {"Password.is.too.short.must.be.at.least.6.characters",
- "La contrase\u00F1a es demasiado corta; debe tener al menos 6 caracteres"},
- {"Too.many.failures.Key.entry.not.cloned",
- "Demasiados fallos. No se ha clonado la entrada de clave"},
- {"key.password.for.alias.", "contrase\u00F1a de clave para <{0}>"},
- {"Keystore.entry.for.id.getName.already.exists",
- "La entrada de almac\u00E9n de claves para <{0}> ya existe"},
- {"Creating.keystore.entry.for.id.getName.",
- "Creando entrada de almac\u00E9n de claves para <{0}> ..."},
- {"No.entries.from.identity.database.added",
- "No se han agregado entradas de la base de datos de identidades"},
- {"Alias.name.alias", "Nombre de Alias: {0}"},
- {"Creation.date.keyStore.getCreationDate.alias.",
- "Fecha de Creaci\u00F3n: {0,date}"},
- {"alias.keyStore.getCreationDate.alias.",
- "{0}, {1,date}, "},
- {"alias.", "{0}, "},
- {"Entry.type.type.", "Tipo de Entrada: {0}"},
- {"Certificate.chain.length.", "Longitud de la Cadena de Certificado: "},
- {"Certificate.i.1.", "Certificado[{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA.256.", "Huella de certificado (SHA-256): "},
- {"Keystore.type.", "Tipo de Almac\u00E9n de Claves: "},
- {"Keystore.provider.", "Proveedor de Almac\u00E9n de Claves: "},
- {"Your.keystore.contains.keyStore.size.entry",
- "Su almac\u00E9n de claves contiene {0,number,integer} entrada"},
- {"Your.keystore.contains.keyStore.size.entries",
- "Su almac\u00E9n de claves contiene {0,number,integer} entradas"},
- {"Failed.to.parse.input", "Fallo al analizar la entrada"},
- {"Empty.input", "Entrada vac\u00EDa"},
- {"Not.X.509.certificate", "No es un certificado X.509"},
- {"alias.has.no.public.key", "{0} no tiene clave p\u00FAblica"},
- {"alias.has.no.X.509.certificate", "{0} no tiene certificado X.509"},
- {"New.certificate.self.signed.", "Nuevo Certificado (Autofirmado):"},
- {"Reply.has.no.certificates", "La respuesta no tiene certificados"},
- {"Certificate.not.imported.alias.alias.already.exists",
- "Certificado no importado, el alias <{0}> ya existe"},
- {"Input.not.an.X.509.certificate", "La entrada no es un certificado X.509"},
- {"Certificate.already.exists.in.keystore.under.alias.trustalias.",
- "El certificado ya existe en el almac\u00E9n de claves con el alias <{0}>"},
- {"Do.you.still.want.to.add.it.no.",
- "\u00BFA\u00FAn desea agregarlo? [no]: "},
- {"Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.",
- "El certificado ya existe en el almac\u00E9n de claves de la CA del sistema, con el alias <{0}>"},
- {"Do.you.still.want.to.add.it.to.your.own.keystore.no.",
- "\u00BFA\u00FAn desea agregarlo a su propio almac\u00E9n de claves? [no]: "},
- {"Trust.this.certificate.no.", "\u00BFConfiar en este certificado? [no]: "},
- {"YES", "S\u00CD"},
- {"New.prompt.", "Nuevo {0}: "},
- {"Passwords.must.differ", "Las contrase\u00F1as deben ser distintas"},
- {"Re.enter.new.prompt.", "Vuelva a escribir el nuevo {0}: "},
- {"Re.enter.password.", "Vuelva a introducir la contrase\u00F1a: "},
- {"Re.enter.new.password.", "Volver a escribir la contrase\u00F1a nueva: "},
- {"They.don.t.match.Try.again", "No coinciden. Int\u00E9ntelo de nuevo"},
- {"Enter.prompt.alias.name.", "Escriba el nombre de alias de {0}: "},
- {"Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.",
- "Indique el nuevo nombre de alias\t(INTRO para cancelar la importaci\u00F3n de esta entrada): "},
- {"Enter.alias.name.", "Introduzca el nombre de alias: "},
- {".RETURN.if.same.as.for.otherAlias.",
- "\t(INTRO si es el mismo que para <{0}>)"},
- {"What.is.your.first.and.last.name.",
- "\u00BFCu\u00E1les son su nombre y su apellido?"},
- {"What.is.the.name.of.your.organizational.unit.",
- "\u00BFCu\u00E1l es el nombre de su unidad de organizaci\u00F3n?"},
- {"What.is.the.name.of.your.organization.",
- "\u00BFCu\u00E1l es el nombre de su organizaci\u00F3n?"},
- {"What.is.the.name.of.your.City.or.Locality.",
- "\u00BFCu\u00E1l es el nombre de su ciudad o localidad?"},
- {"What.is.the.name.of.your.State.or.Province.",
- "\u00BFCu\u00E1l es el nombre de su estado o provincia?"},
- {"What.is.the.two.letter.country.code.for.this.unit.",
- "\u00BFCu\u00E1l es el c\u00F3digo de pa\u00EDs de dos letras de la unidad?"},
- {"Is.name.correct.", "\u00BFEs correcto {0}?"},
- {"no", "no"},
- {"yes", "s\u00ED"},
- {"y", "s"},
- {".defaultValue.", " [{0}]: "},
- {"Alias.alias.has.no.key",
- "El alias <{0}> no tiene clave"},
- {"Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key",
- "El alias <{0}> hace referencia a un tipo de entrada que no es una clave privada. El comando -keyclone s\u00F3lo permite la clonaci\u00F3n de entradas de claves privadas"},
-
- {".WARNING.WARNING.WARNING.",
- "***************** WARNING WARNING WARNING *****************"},
- {"Signer.d.", "#%d de Firmante:"},
- {"Timestamp.", "Registro de Hora:"},
- {"Signature.", "Firma:"},
- {"CRLs.", "CRL:"},
- {"Certificate.owner.", "Propietario del Certificado: "},
- {"Not.a.signed.jar.file", "No es un archivo jar firmado"},
- {"No.certificate.from.the.SSL.server",
- "Ning\u00FAn certificado del servidor SSL"},
-
- {".The.integrity.of.the.information.stored.in.your.keystore.",
- "* La integridad de la informaci\u00F3n almacenada en el almac\u00E9n de claves *\n* NO se ha comprobado. Para comprobar dicha integridad, *\n* debe proporcionar la contrase\u00F1a del almac\u00E9n de claves. *"},
- {".The.integrity.of.the.information.stored.in.the.srckeystore.",
- "* La integridad de la informaci\u00F3n almacenada en srckeystore*\n* NO se ha comprobado. Para comprobar dicha integridad, *\n* debe proporcionar la contrase\u00F1a de srckeystore. *"},
-
- {"Certificate.reply.does.not.contain.public.key.for.alias.",
- "La respuesta de certificado no contiene una clave p\u00FAblica para <{0}>"},
- {"Incomplete.certificate.chain.in.reply",
- "Cadena de certificado incompleta en la respuesta"},
- {"Certificate.chain.in.reply.does.not.verify.",
- "La cadena de certificado de la respuesta no verifica: "},
- {"Top.level.certificate.in.reply.",
- "Certificado de nivel superior en la respuesta:\n"},
- {".is.not.trusted.", "... no es de confianza. "},
- {"Install.reply.anyway.no.", "\u00BFInstalar respuesta de todos modos? [no]: "},
- {"NO", "NO"},
- {"Public.keys.in.reply.and.keystore.don.t.match",
- "Las claves p\u00FAblicas en la respuesta y en el almac\u00E9n de claves no coinciden"},
- {"Certificate.reply.and.certificate.in.keystore.are.identical",
- "La respuesta del certificado y el certificado en el almac\u00E9n de claves son id\u00E9nticos"},
- {"Failed.to.establish.chain.from.reply",
- "No se ha podido definir una cadena a partir de la respuesta"},
- {"n", "n"},
- {"Wrong.answer.try.again", "Respuesta incorrecta, vuelva a intentarlo"},
- {"Secret.key.not.generated.alias.alias.already.exists",
- "No se ha generado la clave secreta, el alias <{0}> ya existe"},
- {"Please.provide.keysize.for.secret.key.generation",
- "Proporcione el valor de -keysize para la generaci\u00F3n de claves secretas"},
-
- {"warning.not.verified.make.sure.keystore.is.correct",
- "ADVERTENCIA: no se ha verificado. Aseg\u00FArese de que el valor de -keystore es correcto."},
-
- {"Extensions.", "Extensiones: "},
- {".Empty.value.", "(Valor vac\u00EDo)"},
- {"Extension.Request.", "Solicitud de Extensi\u00F3n:"},
- {"Unknown.keyUsage.type.", "Tipo de uso de clave desconocido: "},
- {"Unknown.extendedkeyUsage.type.", "Tipo de uso de clave extendida desconocido: "},
- {"Unknown.AccessDescription.type.", "Tipo de descripci\u00F3n de acceso desconocido: "},
- {"Unrecognized.GeneralName.type.", "Tipo de nombre general no reconocido: "},
- {"This.extension.cannot.be.marked.as.critical.",
- "Esta extensi\u00F3n no se puede marcar como cr\u00EDtica. "},
- {"Odd.number.of.hex.digits.found.", "Se ha encontrado un n\u00FAmero impar de d\u00EDgitos hexadecimales: "},
- {"Unknown.extension.type.", "Tipo de extensi\u00F3n desconocida: "},
- {"command.{0}.is.ambiguous.", "El comando {0} es ambiguo:"},
-
- // 8171319: keytool should print out warnings when reading or
- // generating cert/cert req using weak algorithms
- {"the.certificate.request", "La solicitud de certificado"},
- {"the.issuer", "El emisor"},
- {"the.generated.certificate", "El certificado generado"},
- {"the.generated.crl", "La CRL generada"},
- {"the.generated.certificate.request", "La solicitud de certificado generada"},
- {"the.certificate", "El certificado"},
- {"the.crl", "La CRL"},
- {"the.tsa.certificate", "El certificado de TSA"},
- {"the.input", "La entrada"},
- {"reply", "Responder"},
- {"one.in.many", "%1$s #%2$d de %3$d"},
- {"alias.in.cacerts", "Emisor <%s> en cacerts"},
- {"alias.in.keystore", "Emisor <%s>"},
- {"with.weak", "%s (d\u00E9bil)"},
- {"key.bit", "Clave %2$s de %1$d bits"},
- {"key.bit.weak", "Clave %2$s de %1$d bits (d\u00E9bil)"},
- {"unknown.size.1", "clave %s de tama\u00F1o desconocido"},
- {".PATTERN.printX509Cert.with.weak",
- "Propietario: {0}\nEmisor: {1}\nN\u00FAmero de serie: {2}\nV\u00E1lido desde: {3} hasta: {4}\nHuellas digitales del certificado:\n\t SHA1: {5}\n\t SHA256: {6}\nNombre del algoritmo de firma: {7}\nAlgoritmo de clave p\u00FAblica de asunto: {8}\nVersi\u00F3n: {9}"},
- {"PKCS.10.with.weak",
- "Solicitud de certificado PKCS #10 (Versi\u00F3n 1.0)\nAsunto: %1$s\nFormato: %2$s\nClave p\u00FAblica: %3$s\nAlgoritmo de firma: %4$s\n"},
- {"verified.by.s.in.s.weak", "Verificado por %1$s en %2$s con %3$s"},
- {"whose.sigalg.risk", "%1$s utiliza el algoritmo de firma %2$s, lo que se considera un riesgo de seguridad."},
- {"whose.key.risk", "%1$s utiliza %2$s, lo que se considera riesgo de seguridad."},
- {"jks.storetype.warning", "El almac\u00E9n de claves %1$s utiliza un formato propietario. Se recomienda migrar a PKCS12, que es un formato est\u00E1ndar del sector que utiliza \"keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12\"."},
- {"migrate.keystore.warning", "Se ha migrado \"%1$s\" a %4$s. Se ha realizado la copia de seguridad del almac\u00E9n de claves %2$s como \"%3$s\"."},
- {"backup.keystore.warning", "La copia de seguridad del almac\u00E9n de claves \"%1$s\" se ha realizado como \"%3$s\"..."},
- {"importing.keystore.status", "Importando el almac\u00E9n de claves de %1$s a %2$s..."},
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/Resources_fr.java b/src/java.base/share/classes/sun/security/tools/keytool/Resources_fr.java
deleted file mode 100644
index 6ad6a0f69adb9..0000000000000
--- a/src/java.base/share/classes/sun/security/tools/keytool/Resources_fr.java
+++ /dev/null
@@ -1,484 +0,0 @@
-/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.tools.keytool;
-
-/**
- *
This class represents the ResourceBundle
- * for the keytool.
- *
- */
-public class Resources_fr extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
- {"NEWLINE", "\n"},
- {"STAR",
- "*******************************************"},
- {"STARNN",
- "*******************************************\n\n"},
-
- // keytool: Help part
- {".OPTION.", " [OPTION]..."},
- {"Options.", "Options :"},
- {"option.1.set.twice", "L'option %s est sp\u00E9cifi\u00E9e plusieurs fois. Toutes les occurrences seront ignor\u00E9es, sauf la derni\u00E8re."},
- {"multiple.commands.1.2", "Une seule commande est autoris\u00E9e : %1$s et %2$s ont \u00E9t\u00E9 sp\u00E9cifi\u00E9es."},
- {"Use.keytool.help.for.all.available.commands",
- "Utiliser \"keytool -help\" pour toutes les commandes disponibles"},
- {"Key.and.Certificate.Management.Tool",
- "Outil de gestion de certificats et de cl\u00E9s"},
- {"Commands.", "Commandes :"},
- {"Use.keytool.command.name.help.for.usage.of.command.name",
- "Utilisez \"keytool -command_name -help\" pour la syntaxe de command_name.\nUtilisez l'option -conf pour indiquer un fichier d'options pr\u00E9configur\u00E9es."},
- // keytool: help: commands
- {"Generates.a.certificate.request",
- "G\u00E9n\u00E8re une demande de certificat"}, //-certreq
- {"Changes.an.entry.s.alias",
- "Modifie l'alias d'une entr\u00E9e"}, //-changealias
- {"Deletes.an.entry",
- "Supprime une entr\u00E9e"}, //-delete
- {"Exports.certificate",
- "Exporte le certificat"}, //-exportcert
- {"Generates.a.key.pair",
- "G\u00E9n\u00E8re une paire de cl\u00E9s"}, //-genkeypair
- {"Generates.a.secret.key",
- "G\u00E9n\u00E8re une cl\u00E9 secr\u00E8te"}, //-genseckey
- {"Generates.certificate.from.a.certificate.request",
- "G\u00E9n\u00E8re le certificat \u00E0 partir d'une demande de certificat"}, //-gencert
- {"Generates.CRL", "G\u00E9n\u00E8re la liste des certificats r\u00E9voqu\u00E9s (CRL)"}, //-gencrl
- {"Generated.keyAlgName.secret.key",
- "Cl\u00E9 secr\u00E8te {0} g\u00E9n\u00E9r\u00E9e"}, //-genseckey
- {"Generated.keysize.bit.keyAlgName.secret.key",
- "Cl\u00E9 secr\u00E8te {0} bits {1} g\u00E9n\u00E9r\u00E9e"}, //-genseckey
- {"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
- "Importe les entr\u00E9es \u00E0 partir d'une base de donn\u00E9es d'identit\u00E9s de type JDK 1.1.x"}, //-identitydb
- {"Imports.a.certificate.or.a.certificate.chain",
- "Importe un certificat ou une cha\u00EEne de certificat"}, //-importcert
- {"Imports.a.password",
- "Importe un mot de passe"}, //-importpass
- {"Imports.one.or.all.entries.from.another.keystore",
- "Importe une entr\u00E9e ou la totalit\u00E9 des entr\u00E9es depuis un autre fichier de cl\u00E9s"}, //-importkeystore
- {"Clones.a.key.entry",
- "Clone une entr\u00E9e de cl\u00E9"}, //-keyclone
- {"Changes.the.key.password.of.an.entry",
- "Modifie le mot de passe de cl\u00E9 d'une entr\u00E9e"}, //-keypasswd
- {"Lists.entries.in.a.keystore",
- "R\u00E9pertorie les entr\u00E9es d'un fichier de cl\u00E9s"}, //-list
- {"Prints.the.content.of.a.certificate",
- "Imprime le contenu d'un certificat"}, //-printcert
- {"Prints.the.content.of.a.certificate.request",
- "Imprime le contenu d'une demande de certificat"}, //-printcertreq
- {"Prints.the.content.of.a.CRL.file",
- "Imprime le contenu d'un fichier de liste des certificats r\u00E9voqu\u00E9s (CRL)"}, //-printcrl
- {"Generates.a.self.signed.certificate",
- "G\u00E9n\u00E8re un certificat auto-sign\u00E9"}, //-selfcert
- {"Changes.the.store.password.of.a.keystore",
- "Modifie le mot de passe de banque d'un fichier de cl\u00E9s"}, //-storepasswd
- // keytool: help: options
- {"alias.name.of.the.entry.to.process",
- "nom d'alias de l'entr\u00E9e \u00E0 traiter"}, //-alias
- {"destination.alias",
- "alias de destination"}, //-destalias
- {"destination.key.password",
- "mot de passe de la cl\u00E9 de destination"}, //-destkeypass
- {"destination.keystore.name",
- "nom du fichier de cl\u00E9s de destination"}, //-destkeystore
- {"destination.keystore.password.protected",
- "mot de passe du fichier de cl\u00E9s de destination prot\u00E9g\u00E9"}, //-destprotected
- {"destination.keystore.provider.name",
- "nom du fournisseur du fichier de cl\u00E9s de destination"}, //-destprovidername
- {"destination.keystore.password",
- "mot de passe du fichier de cl\u00E9s de destination"}, //-deststorepass
- {"destination.keystore.type",
- "type du fichier de cl\u00E9s de destination"}, //-deststoretype
- {"distinguished.name",
- "nom distinctif"}, //-dname
- {"X.509.extension",
- "extension X.509"}, //-ext
- {"output.file.name",
- "nom du fichier de sortie"}, //-file and -outfile
- {"input.file.name",
- "nom du fichier d'entr\u00E9e"}, //-file and -infile
- {"key.algorithm.name",
- "nom de l'algorithme de cl\u00E9"}, //-keyalg
- {"key.password",
- "mot de passe de la cl\u00E9"}, //-keypass
- {"key.bit.size",
- "taille en bits de la cl\u00E9"}, //-keysize
- {"keystore.name",
- "nom du fichier de cl\u00E9s"}, //-keystore
- {"access.the.cacerts.keystore",
- "acc\u00E9der au fichier de cl\u00E9s cacerts"}, // -cacerts
- {"warning.cacerts.option",
- "Avertissement : utiliser l'option -cacerts pour acc\u00E9der au fichier de cl\u00E9s cacerts"},
- {"new.password",
- "nouveau mot de passe"}, //-new
- {"do.not.prompt",
- "ne pas inviter"}, //-noprompt
- {"password.through.protected.mechanism",
- "mot de passe via m\u00E9canisme prot\u00E9g\u00E9"}, //-protected
-
- // The following 2 values should span 2 lines, the first for the
- // option itself, the second for its -providerArg value.
- {"addprovider.option",
- "ajouter un fournisseur de s\u00E9curit\u00E9 par nom (par ex. SunPKCS11)\nconfigurer l'argument pour -addprovider"}, //-addprovider
- {"provider.class.option",
- "ajouter un fournisseur de s\u00E9curit\u00E9 par nom de classe qualifi\u00E9 complet\nconfigurer l'argument pour -providerclass"}, //-providerclass
-
- {"provider.name",
- "nom du fournisseur"}, //-providername
- {"provider.classpath",
- "variable d'environnement CLASSPATH du fournisseur"}, //-providerpath
- {"output.in.RFC.style",
- "sortie au style RFC"}, //-rfc
- {"signature.algorithm.name",
- "nom de l'algorithme de signature"}, //-sigalg
- {"source.alias",
- "alias source"}, //-srcalias
- {"source.key.password",
- "mot de passe de la cl\u00E9 source"}, //-srckeypass
- {"source.keystore.name",
- "nom du fichier de cl\u00E9s source"}, //-srckeystore
- {"source.keystore.password.protected",
- "mot de passe du fichier de cl\u00E9s source prot\u00E9g\u00E9"}, //-srcprotected
- {"source.keystore.provider.name",
- "nom du fournisseur du fichier de cl\u00E9s source"}, //-srcprovidername
- {"source.keystore.password",
- "mot de passe du fichier de cl\u00E9s source"}, //-srcstorepass
- {"source.keystore.type",
- "type du fichier de cl\u00E9s source"}, //-srcstoretype
- {"SSL.server.host.and.port",
- "Port et h\u00F4te du serveur SSL"}, //-sslserver
- {"signed.jar.file",
- "fichier JAR sign\u00E9"}, //=jarfile
- {"certificate.validity.start.date.time",
- "date/heure de d\u00E9but de validit\u00E9 du certificat"}, //-startdate
- {"keystore.password",
- "mot de passe du fichier de cl\u00E9s"}, //-storepass
- {"keystore.type",
- "type du fichier de cl\u00E9s"}, //-storetype
- {"trust.certificates.from.cacerts",
- "certificats s\u00E9curis\u00E9s issus de certificats CA"}, //-trustcacerts
- {"verbose.output",
- "sortie en mode verbose"}, //-v
- {"validity.number.of.days",
- "nombre de jours de validit\u00E9"}, //-validity
- {"Serial.ID.of.cert.to.revoke",
- "ID de s\u00E9rie du certificat \u00E0 r\u00E9voquer"}, //-id
- // keytool: Running part
- {"keytool.error.", "erreur keytool : "},
- {"Illegal.option.", "Option non admise : "},
- {"Illegal.value.", "Valeur non admise : "},
- {"Unknown.password.type.", "Type de mot de passe inconnu : "},
- {"Cannot.find.environment.variable.",
- "Variable d'environnement introuvable : "},
- {"Cannot.find.file.", "Fichier introuvable : "},
- {"Command.option.flag.needs.an.argument.", "L''option de commande {0} requiert un argument."},
- {"Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.",
- "Avertissement\u00A0: les mots de passe de cl\u00E9 et de banque distincts ne sont pas pris en charge pour les fichiers de cl\u00E9s d''acc\u00E8s PKCS12. La valeur {0} sp\u00E9cifi\u00E9e par l''utilisateur est ignor\u00E9e."},
- {"the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option",
- "Les options -keystore ou -storetype ne peuvent pas \u00EAtre utilis\u00E9es avec l'option -cacerts"},
- {".keystore.must.be.NONE.if.storetype.is.{0}",
- "-keystore doit \u00EAtre d\u00E9fini sur NONE si -storetype est {0}"},
- {"Too.many.retries.program.terminated",
- "Trop de tentatives, fin du programme"},
- {".storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}",
- "Les commandes -storepasswd et -keypasswd ne sont pas prises en charge si -storetype est d\u00E9fini sur {0}"},
- {".keypasswd.commands.not.supported.if.storetype.is.PKCS12",
- "Les commandes -keypasswd ne sont pas prises en charge si -storetype est d\u00E9fini sur PKCS12"},
- {".keypass.and.new.can.not.be.specified.if.storetype.is.{0}",
- "Les commandes -keypass et -new ne peuvent pas \u00EAtre sp\u00E9cifi\u00E9es si -storetype est d\u00E9fini sur {0}"},
- {"if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified",
- "si -protected est sp\u00E9cifi\u00E9, -storepass, -keypass et -new ne doivent pas \u00EAtre indiqu\u00E9s"},
- {"if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "Si -srcprotected est indiqu\u00E9, les commandes -srcstorepass et -srckeypass ne doivent pas \u00EAtre sp\u00E9cifi\u00E9es"},
- {"if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified",
- "Si le fichier de cl\u00E9s n'est pas prot\u00E9g\u00E9 par un mot de passe, les commandes -storepass, -keypass et -new ne doivent pas \u00EAtre sp\u00E9cifi\u00E9es"},
- {"if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "Si le fichier de cl\u00E9s source n'est pas prot\u00E9g\u00E9 par un mot de passe, les commandes -srcstorepass et -srckeypass ne doivent pas \u00EAtre sp\u00E9cifi\u00E9es"},
- {"Illegal.startdate.value", "Valeur de date de d\u00E9but non admise"},
- {"Validity.must.be.greater.than.zero",
- "La validit\u00E9 doit \u00EAtre sup\u00E9rieure \u00E0 z\u00E9ro"},
- {"provclass.not.a.provider", "%s n'est pas un fournisseur"},
- {"provider.name.not.found", "Fournisseur nomm\u00E9 \"%s\" introuvable"},
- {"provider.class.not.found", "Fournisseur \"%s\" introuvable"},
- {"Usage.error.no.command.provided", "Erreur de syntaxe\u00A0: aucune commande fournie"},
- {"Source.keystore.file.exists.but.is.empty.", "Le fichier de cl\u00E9s source existe mais il est vide : "},
- {"Please.specify.srckeystore", "Indiquez -srckeystore"},
- {"Must.not.specify.both.v.and.rfc.with.list.command",
- "-v et -rfc ne doivent pas \u00EAtre sp\u00E9cifi\u00E9s avec la commande 'list'"},
- {"Key.password.must.be.at.least.6.characters",
- "Un mot de passe de cl\u00E9 doit comporter au moins 6 caract\u00E8res"},
- {"New.password.must.be.at.least.6.characters",
- "Le nouveau mot de passe doit comporter au moins 6 caract\u00E8res"},
- {"Keystore.file.exists.but.is.empty.",
- "Fichier de cl\u00E9s existant mais vide : "},
- {"Keystore.file.does.not.exist.",
- "Le fichier de cl\u00E9s n'existe pas : "},
- {"Must.specify.destination.alias", "L'alias de destination doit \u00EAtre sp\u00E9cifi\u00E9"},
- {"Must.specify.alias", "L'alias doit \u00EAtre sp\u00E9cifi\u00E9"},
- {"Keystore.password.must.be.at.least.6.characters",
- "Un mot de passe de fichier de cl\u00E9s doit comporter au moins 6 caract\u00E8res"},
- {"Enter.the.password.to.be.stored.",
- "Saisissez le mot de passe \u00E0 stocker : "},
- {"Enter.keystore.password.", "Entrez le mot de passe du fichier de cl\u00E9s : "},
- {"Enter.source.keystore.password.", "Entrez le mot de passe du fichier de cl\u00E9s source\u00A0: "},
- {"Enter.destination.keystore.password.", "Entrez le mot de passe du fichier de cl\u00E9s de destination\u00A0: "},
- {"Keystore.password.is.too.short.must.be.at.least.6.characters",
- "Le mot de passe du fichier de cl\u00E9s est trop court : il doit comporter au moins 6 caract\u00E8res"},
- {"Unknown.Entry.Type", "Type d'entr\u00E9e inconnu"},
- {"Too.many.failures.Alias.not.changed", "Trop d'erreurs. Alias non modifi\u00E9"},
- {"Entry.for.alias.alias.successfully.imported.",
- "L''entr\u00E9e de l''alias {0} a \u00E9t\u00E9 import\u00E9e."},
- {"Entry.for.alias.alias.not.imported.", "L''entr\u00E9e de l''alias {0} n''a pas \u00E9t\u00E9 import\u00E9e."},
- {"Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.",
- "Probl\u00E8me lors de l''import de l''entr\u00E9e de l''alias {0}\u00A0: {1}.\nL''entr\u00E9e de l''alias {0} n''a pas \u00E9t\u00E9 import\u00E9e."},
- {"Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled",
- "Commande d''import ex\u00E9cut\u00E9e\u00A0: {0} entr\u00E9es import\u00E9es, \u00E9chec ou annulation de {1} entr\u00E9es"},
- {"Warning.Overwriting.existing.alias.alias.in.destination.keystore",
- "Avertissement\u00A0: l''alias {0} existant sera remplac\u00E9 dans le fichier de cl\u00E9s d''acc\u00E8s de destination"},
- {"Existing.entry.alias.alias.exists.overwrite.no.",
- "L''alias d''entr\u00E9e {0} existe d\u00E9j\u00E0. Voulez-vous le remplacer ? [non]\u00A0: "},
- {"Too.many.failures.try.later", "Trop d'erreurs. R\u00E9essayez plus tard"},
- {"Certification.request.stored.in.file.filename.",
- "Demande de certification stock\u00E9e dans le fichier <{0}>"},
- {"Submit.this.to.your.CA", "Soumettre \u00E0 votre CA"},
- {"if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified",
- "si l'alias n'est pas sp\u00E9cifi\u00E9, destalias et srckeypass ne doivent pas \u00EAtre sp\u00E9cifi\u00E9s"},
- {"The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.",
- "Le fichier de cl\u00E9s pkcs12 de destination contient un mot de passe de fichier de cl\u00E9s et un mot de passe de cl\u00E9 diff\u00E9rents. R\u00E9essayez en sp\u00E9cifiant -destkeypass."},
- {"Certificate.stored.in.file.filename.",
- "Certificat stock\u00E9 dans le fichier <{0}>"},
- {"Certificate.reply.was.installed.in.keystore",
- "R\u00E9ponse de certificat install\u00E9e dans le fichier de cl\u00E9s"},
- {"Certificate.reply.was.not.installed.in.keystore",
- "R\u00E9ponse de certificat non install\u00E9e dans le fichier de cl\u00E9s"},
- {"Certificate.was.added.to.keystore",
- "Certificat ajout\u00E9 au fichier de cl\u00E9s"},
- {"Certificate.was.not.added.to.keystore",
- "Certificat non ajout\u00E9 au fichier de cl\u00E9s"},
- {".Storing.ksfname.", "[Stockage de {0}]"},
- {"alias.has.no.public.key.certificate.",
- "{0} ne poss\u00E8de pas de cl\u00E9 publique (certificat)"},
- {"Cannot.derive.signature.algorithm",
- "Impossible de d\u00E9duire l'algorithme de signature"},
- {"Alias.alias.does.not.exist",
- "L''alias <{0}> n''existe pas"},
- {"Alias.alias.has.no.certificate",
- "L''alias <{0}> ne poss\u00E8de pas de certificat"},
- {"Key.pair.not.generated.alias.alias.already.exists",
- "Paire de cl\u00E9s non g\u00E9n\u00E9r\u00E9e, l''alias <{0}> existe d\u00E9j\u00E0"},
- {"Generating.keysize.bit.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.validality.days.for",
- "G\u00E9n\u00E9ration d''une paire de cl\u00E9s {1} de {0} bits et d''un certificat auto-sign\u00E9 ({2}) d''une validit\u00E9 de {3} jours\n\tpour : {4}"},
- {"Enter.key.password.for.alias.", "Entrez le mot de passe de la cl\u00E9 pour <{0}>"},
- {".RETURN.if.same.as.keystore.password.",
- "\t(appuyez sur Entr\u00E9e s'il s'agit du mot de passe du fichier de cl\u00E9s) : "},
- {"Key.password.is.too.short.must.be.at.least.6.characters",
- "Le mot de passe de la cl\u00E9 est trop court : il doit comporter au moins 6 caract\u00E8res"},
- {"Too.many.failures.key.not.added.to.keystore",
- "Trop d'erreurs. Cl\u00E9 non ajout\u00E9e au fichier de cl\u00E9s"},
- {"Destination.alias.dest.already.exists",
- "L''alias de la destination <{0}> existe d\u00E9j\u00E0"},
- {"Password.is.too.short.must.be.at.least.6.characters",
- "Le mot de passe est trop court : il doit comporter au moins 6 caract\u00E8res"},
- {"Too.many.failures.Key.entry.not.cloned",
- "Trop d'erreurs. Entr\u00E9e de cl\u00E9 non clon\u00E9e"},
- {"key.password.for.alias.", "mot de passe de cl\u00E9 pour <{0}>"},
- {"Keystore.entry.for.id.getName.already.exists",
- "L''entr\u00E9e de fichier de cl\u00E9s d''acc\u00E8s pour <{0}> existe d\u00E9j\u00E0"},
- {"Creating.keystore.entry.for.id.getName.",
- "Cr\u00E9ation d''une entr\u00E9e de fichier de cl\u00E9s d''acc\u00E8s pour <{0}>..."},
- {"No.entries.from.identity.database.added",
- "Aucune entr\u00E9e ajout\u00E9e \u00E0 partir de la base de donn\u00E9es d'identit\u00E9s"},
- {"Alias.name.alias", "Nom d''alias : {0}"},
- {"Creation.date.keyStore.getCreationDate.alias.",
- "Date de cr\u00E9ation : {0,date}"},
- {"alias.keyStore.getCreationDate.alias.",
- "{0}, {1,date}, "},
- {"alias.", "{0}, "},
- {"Entry.type.type.", "Type d''entr\u00E9e\u00A0: {0}"},
- {"Certificate.chain.length.", "Longueur de cha\u00EEne du certificat : "},
- {"Certificate.i.1.", "Certificat[{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA.256.", "Empreinte du certificat (SHA-256) : "},
- {"Keystore.type.", "Type de fichier de cl\u00E9s : "},
- {"Keystore.provider.", "Fournisseur de fichier de cl\u00E9s : "},
- {"Your.keystore.contains.keyStore.size.entry",
- "Votre fichier de cl\u00E9s d''acc\u00E8s contient {0,number,integer} entr\u00E9e"},
- {"Your.keystore.contains.keyStore.size.entries",
- "Votre fichier de cl\u00E9s d''acc\u00E8s contient {0,number,integer} entr\u00E9es"},
- {"Failed.to.parse.input", "L'analyse de l'entr\u00E9e a \u00E9chou\u00E9"},
- {"Empty.input", "Entr\u00E9e vide"},
- {"Not.X.509.certificate", "Pas un certificat X.509"},
- {"alias.has.no.public.key", "{0} ne poss\u00E8de pas de cl\u00E9 publique"},
- {"alias.has.no.X.509.certificate", "{0} ne poss\u00E8de pas de certificat X.509"},
- {"New.certificate.self.signed.", "Nouveau certificat (auto-sign\u00E9) :"},
- {"Reply.has.no.certificates", "La r\u00E9ponse n'a pas de certificat"},
- {"Certificate.not.imported.alias.alias.already.exists",
- "Certificat non import\u00E9, l''alias <{0}> existe d\u00E9j\u00E0"},
- {"Input.not.an.X.509.certificate", "L'entr\u00E9e n'est pas un certificat X.509"},
- {"Certificate.already.exists.in.keystore.under.alias.trustalias.",
- "Le certificat existe d\u00E9j\u00E0 dans le fichier de cl\u00E9s d''acc\u00E8s sous l''alias <{0}>"},
- {"Do.you.still.want.to.add.it.no.",
- "Voulez-vous toujours l'ajouter ? [non] : "},
- {"Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.",
- "Le certificat existe d\u00E9j\u00E0 dans le fichier de cl\u00E9s d''acc\u00E8s CA syst\u00E8me sous l''alias <{0}>"},
- {"Do.you.still.want.to.add.it.to.your.own.keystore.no.",
- "Voulez-vous toujours l'ajouter \u00E0 votre fichier de cl\u00E9s ? [non] : "},
- {"Trust.this.certificate.no.", "Faire confiance \u00E0 ce certificat ? [non] : "},
- {"YES", "OUI"},
- {"New.prompt.", "Nouveau {0} : "},
- {"Passwords.must.differ", "Les mots de passe doivent diff\u00E9rer"},
- {"Re.enter.new.prompt.", "Indiquez encore le nouveau {0} : "},
- {"Re.enter.password.", "R\u00E9p\u00E9tez le mot de passe : "},
- {"Re.enter.new.password.", "Ressaisissez le nouveau mot de passe : "},
- {"They.don.t.match.Try.again", "Ils sont diff\u00E9rents. R\u00E9essayez."},
- {"Enter.prompt.alias.name.", "Indiquez le nom d''alias {0} : "},
- {"Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.",
- "Saisissez le nom du nouvel alias\t(ou appuyez sur Entr\u00E9e pour annuler l'import de cette entr\u00E9e)\u00A0: "},
- {"Enter.alias.name.", "Indiquez le nom d'alias : "},
- {".RETURN.if.same.as.for.otherAlias.",
- "\t(appuyez sur Entr\u00E9e si le r\u00E9sultat est identique \u00E0 <{0}>)"},
- {"What.is.your.first.and.last.name.",
- "Quels sont vos nom et pr\u00E9nom ?"},
- {"What.is.the.name.of.your.organizational.unit.",
- "Quel est le nom de votre unit\u00E9 organisationnelle ?"},
- {"What.is.the.name.of.your.organization.",
- "Quel est le nom de votre entreprise ?"},
- {"What.is.the.name.of.your.City.or.Locality.",
- "Quel est le nom de votre ville de r\u00E9sidence ?"},
- {"What.is.the.name.of.your.State.or.Province.",
- "Quel est le nom de votre \u00E9tat ou province ?"},
- {"What.is.the.two.letter.country.code.for.this.unit.",
- "Quel est le code pays \u00E0 deux lettres pour cette unit\u00E9 ?"},
- {"Is.name.correct.", "Est-ce {0} ?"},
- {"no", "non"},
- {"yes", "oui"},
- {"y", "o"},
- {".defaultValue.", " [{0}]: "},
- {"Alias.alias.has.no.key",
- "L''alias <{0}> n''est associ\u00E9 \u00E0 aucune cl\u00E9"},
- {"Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key",
- "L''entr\u00E9e \u00E0 laquelle l''alias <{0}> fait r\u00E9f\u00E9rence n''est pas une entr\u00E9e de type cl\u00E9 priv\u00E9e. La commande -keyclone prend uniquement en charge le clonage des cl\u00E9s priv\u00E9es"},
-
- {".WARNING.WARNING.WARNING.",
- "***************** WARNING WARNING WARNING *****************"},
- {"Signer.d.", "Signataire n\u00B0%d :"},
- {"Timestamp.", "Horodatage :"},
- {"Signature.", "Signature :"},
- {"CRLs.", "Listes des certificats r\u00E9voqu\u00E9s (CRL) :"},
- {"Certificate.owner.", "Propri\u00E9taire du certificat : "},
- {"Not.a.signed.jar.file", "Fichier JAR non sign\u00E9"},
- {"No.certificate.from.the.SSL.server",
- "Aucun certificat du serveur SSL"},
-
- {".The.integrity.of.the.information.stored.in.your.keystore.",
- "* L'int\u00E9grit\u00E9 des informations stock\u00E9es dans votre fichier de cl\u00E9s *\n* n'a PAS \u00E9t\u00E9 v\u00E9rifi\u00E9e. Pour cela, *\n* vous devez fournir le mot de passe de votre fichier de cl\u00E9s. *"},
- {".The.integrity.of.the.information.stored.in.the.srckeystore.",
- "* L'int\u00E9grit\u00E9 des informations stock\u00E9es dans le fichier de cl\u00E9s source *\n* n'a PAS \u00E9t\u00E9 v\u00E9rifi\u00E9e. Pour cela, *\n* vous devez fournir le mot de passe de votre fichier de cl\u00E9s source. *"},
-
- {"Certificate.reply.does.not.contain.public.key.for.alias.",
- "La r\u00E9ponse au certificat ne contient pas de cl\u00E9 publique pour <{0}>"},
- {"Incomplete.certificate.chain.in.reply",
- "Cha\u00EEne de certificat incompl\u00E8te dans la r\u00E9ponse"},
- {"Certificate.chain.in.reply.does.not.verify.",
- "La cha\u00EEne de certificat de la r\u00E9ponse ne concorde pas : "},
- {"Top.level.certificate.in.reply.",
- "Certificat de niveau sup\u00E9rieur dans la r\u00E9ponse :\n"},
- {".is.not.trusted.", "... non s\u00E9curis\u00E9. "},
- {"Install.reply.anyway.no.", "Installer la r\u00E9ponse quand m\u00EAme ? [non] : "},
- {"NO", "NON"},
- {"Public.keys.in.reply.and.keystore.don.t.match",
- "Les cl\u00E9s publiques de la r\u00E9ponse et du fichier de cl\u00E9s ne concordent pas"},
- {"Certificate.reply.and.certificate.in.keystore.are.identical",
- "La r\u00E9ponse au certificat et le certificat du fichier de cl\u00E9s sont identiques"},
- {"Failed.to.establish.chain.from.reply",
- "Impossible de cr\u00E9er une cha\u00EEne \u00E0 partir de la r\u00E9ponse"},
- {"n", "n"},
- {"Wrong.answer.try.again", "R\u00E9ponse incorrecte, recommencez"},
- {"Secret.key.not.generated.alias.alias.already.exists",
- "Cl\u00E9 secr\u00E8te non g\u00E9n\u00E9r\u00E9e, l''alias <{0}> existe d\u00E9j\u00E0"},
- {"Please.provide.keysize.for.secret.key.generation",
- "Indiquez -keysize pour la g\u00E9n\u00E9ration de la cl\u00E9 secr\u00E8te"},
-
- {"warning.not.verified.make.sure.keystore.is.correct",
- "AVERTISSEMENT : non v\u00E9rifi\u00E9. Assurez-vous que -keystore est correct."},
-
- {"Extensions.", "Extensions\u00A0: "},
- {".Empty.value.", "(Valeur vide)"},
- {"Extension.Request.", "Demande d'extension :"},
- {"Unknown.keyUsage.type.", "Type keyUsage inconnu : "},
- {"Unknown.extendedkeyUsage.type.", "Type extendedkeyUsage inconnu : "},
- {"Unknown.AccessDescription.type.", "Type AccessDescription inconnu : "},
- {"Unrecognized.GeneralName.type.", "Type GeneralName non reconnu : "},
- {"This.extension.cannot.be.marked.as.critical.",
- "Cette extension ne peut pas \u00EAtre marqu\u00E9e comme critique. "},
- {"Odd.number.of.hex.digits.found.", "Nombre impair de chiffres hexad\u00E9cimaux trouv\u00E9 : "},
- {"Unknown.extension.type.", "Type d'extension inconnu : "},
- {"command.{0}.is.ambiguous.", "commande {0} ambigu\u00EB :"},
-
- // 8171319: keytool should print out warnings when reading or
- // generating cert/cert req using weak algorithms
- {"the.certificate.request", "Demande de certificat"},
- {"the.issuer", "Emetteur"},
- {"the.generated.certificate", "Certificat g\u00E9n\u00E9r\u00E9"},
- {"the.generated.crl", "Liste des certificats r\u00E9voqu\u00E9s g\u00E9n\u00E9r\u00E9e"},
- {"the.generated.certificate.request", "Demande de certificat g\u00E9n\u00E9r\u00E9"},
- {"the.certificate", "Certificat"},
- {"the.crl", "Liste de certificats r\u00E9voqu\u00E9s"},
- {"the.tsa.certificate", "Certificat TSA"},
- {"the.input", "Entr\u00E9e"},
- {"reply", "R\u00E9pondre"},
- {"one.in.many", "%1$s #%2$d sur %3$d"},
- {"alias.in.cacerts", "Emetteur <%s> dans les certificats CA"},
- {"alias.in.keystore", "Emetteur <%s>"},
- {"with.weak", "%s (faible)"},
- {"key.bit", "Cl\u00E9 %2$s %1$d bits"},
- {"key.bit.weak", "Cl\u00E9 %2$s %1$d bits (faible)"},
- {"unknown.size.1", "taille de cl\u00E9 %s inconnue"},
- {".PATTERN.printX509Cert.with.weak",
- "Propri\u00E9taire : {0}\nEmetteur : {1}\nNum\u00E9ro de s\u00E9rie : {2}\nValide du {3} au {4}\nEmpreintes du certificat :\n\t SHA 1: {5}\n\t SHA 256: {6}\nNom de l''algorithme de signature : {7}\nAlgorithme de cl\u00E9 publique du sujet : {8}\nVersion : {9}"},
- {"PKCS.10.with.weak",
- "Demande de certificat PKCS #10 (version 1.0)\nSujet : %1$s\nFormat : %2$s\nCl\u00E9 publique : %3$s\nAlgorithme de signature : %4$s\n"},
- {"verified.by.s.in.s.weak", "V\u00E9rifi\u00E9 par %1$s dans %2$s avec un \u00E9l\u00E9ment %3$s"},
- {"whose.sigalg.risk", "%1$s utilise l'algorithme de signature %2$s, qui repr\u00E9sente un risque pour la s\u00E9curit\u00E9."},
- {"whose.key.risk", "%1$s utilise un \u00E9l\u00E9ment %2$s, qui repr\u00E9sente un risque pour la s\u00E9curit\u00E9."},
- {"jks.storetype.warning", "Le fichier de cl\u00E9s %1$s utilise un format propri\u00E9taire. Il est recommand\u00E9 de migrer vers PKCS12, qui est un format standard de l'industrie en utilisant \"keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12\"."},
- {"migrate.keystore.warning", "El\u00E9ment \"%1$s\" migr\u00E9 vers %4$s. Le fichier de cl\u00E9s %2$s est sauvegard\u00E9 en tant que \"%3$s\"."},
- {"backup.keystore.warning", "Le fichier de cl\u00E9s d'origine \"%1$s\" est sauvegard\u00E9 en tant que \"%3$s\"..."},
- {"importing.keystore.status", "Import du fichier de cl\u00E9s %1$s vers %2$s..."},
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/Resources_it.java b/src/java.base/share/classes/sun/security/tools/keytool/Resources_it.java
deleted file mode 100644
index 4b1625a456898..0000000000000
--- a/src/java.base/share/classes/sun/security/tools/keytool/Resources_it.java
+++ /dev/null
@@ -1,484 +0,0 @@
-/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.tools.keytool;
-
-/**
- *
This class represents the ResourceBundle
- * for the keytool.
- *
- */
-public class Resources_it extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
- {"NEWLINE", "\n"},
- {"STAR",
- "*******************************************"},
- {"STARNN",
- "*******************************************\n\n"},
-
- // keytool: Help part
- {".OPTION.", " [OPTION]..."},
- {"Options.", "Opzioni:"},
- {"option.1.set.twice", "L'opzione %s \u00E8 specificata pi\u00F9 volte. Tutte le ricorrenze verranno ignorate tranne l'ultima."},
- {"multiple.commands.1.2", "\u00C8 consentito un solo comando: \u00E8 stato specificato sia %1$s che %2$s."},
- {"Use.keytool.help.for.all.available.commands",
- "Utilizzare \"keytool -help\" per visualizzare tutti i comandi disponibili"},
- {"Key.and.Certificate.Management.Tool",
- "Strumento di gestione di chiavi e certificati"},
- {"Commands.", "Comandi:"},
- {"Use.keytool.command.name.help.for.usage.of.command.name",
- "Utilizzare \"keytool -command_name -help\" per informazioni sull'uso di command_name.\nUtilizzare l'opzione -conf per specificare un file di opzioni preconfigurato."},
- // keytool: help: commands
- {"Generates.a.certificate.request",
- "Genera una richiesta di certificato"}, //-certreq
- {"Changes.an.entry.s.alias",
- "Modifica l'alias di una voce"}, //-changealias
- {"Deletes.an.entry",
- "Elimina una voce"}, //-delete
- {"Exports.certificate",
- "Esporta il certificato"}, //-exportcert
- {"Generates.a.key.pair",
- "Genera una coppia di chiavi"}, //-genkeypair
- {"Generates.a.secret.key",
- "Genera una chiave segreta"}, //-genseckey
- {"Generates.certificate.from.a.certificate.request",
- "Genera un certificato da una richiesta di certificato"}, //-gencert
- {"Generates.CRL", "Genera CRL"}, //-gencrl
- {"Generated.keyAlgName.secret.key",
- "Generata chiave segreta {0}"}, //-genseckey
- {"Generated.keysize.bit.keyAlgName.secret.key",
- "Generata chiave segreta {1} a {0} bit"}, //-genseckey
- {"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
- "Importa le voci da un database delle identit\u00E0 di tipo JDK 1.1.x"}, //-identitydb
- {"Imports.a.certificate.or.a.certificate.chain",
- "Importa un certificato o una catena di certificati"}, //-importcert
- {"Imports.a.password",
- "Importa una password"}, //-importpass
- {"Imports.one.or.all.entries.from.another.keystore",
- "Importa una o tutte le voci da un altro keystore"}, //-importkeystore
- {"Clones.a.key.entry",
- "Duplica una voce di chiave"}, //-keyclone
- {"Changes.the.key.password.of.an.entry",
- "Modifica la password della chiave per una voce"}, //-keypasswd
- {"Lists.entries.in.a.keystore",
- "Elenca le voci in un keystore"}, //-list
- {"Prints.the.content.of.a.certificate",
- "Visualizza i contenuti di un certificato"}, //-printcert
- {"Prints.the.content.of.a.certificate.request",
- "Visualizza i contenuti di una richiesta di certificato"}, //-printcertreq
- {"Prints.the.content.of.a.CRL.file",
- "Visualizza i contenuti di un file CRL"}, //-printcrl
- {"Generates.a.self.signed.certificate",
- "Genera certificato con firma automatica"}, //-selfcert
- {"Changes.the.store.password.of.a.keystore",
- "Modifica la password di area di memorizzazione di un keystore"}, //-storepasswd
- // keytool: help: options
- {"alias.name.of.the.entry.to.process",
- "nome alias della voce da elaborare"}, //-alias
- {"destination.alias",
- "alias di destinazione"}, //-destalias
- {"destination.key.password",
- "password chiave di destinazione"}, //-destkeypass
- {"destination.keystore.name",
- "nome keystore di destinazione"}, //-destkeystore
- {"destination.keystore.password.protected",
- "password keystore di destinazione protetta"}, //-destprotected
- {"destination.keystore.provider.name",
- "nome provider keystore di destinazione"}, //-destprovidername
- {"destination.keystore.password",
- "password keystore di destinazione"}, //-deststorepass
- {"destination.keystore.type",
- "tipo keystore di destinazione"}, //-deststoretype
- {"distinguished.name",
- "nome distinto"}, //-dname
- {"X.509.extension",
- "estensione X.509"}, //-ext
- {"output.file.name",
- "nome file di output"}, //-file and -outfile
- {"input.file.name",
- "nome file di input"}, //-file and -infile
- {"key.algorithm.name",
- "nome algoritmo chiave"}, //-keyalg
- {"key.password",
- "password chiave"}, //-keypass
- {"key.bit.size",
- "dimensione bit chiave"}, //-keysize
- {"keystore.name",
- "nome keystore"}, //-keystore
- {"access.the.cacerts.keystore",
- "accedi al keystore cacerts"}, // -cacerts
- {"warning.cacerts.option",
- "Avvertenza: utilizzare l'opzione -cacerts per accedere al keystore cacerts"},
- {"new.password",
- "nuova password"}, //-new
- {"do.not.prompt",
- "non richiedere"}, //-noprompt
- {"password.through.protected.mechanism",
- "password mediante meccanismo protetto"}, //-protected
-
- // The following 2 values should span 2 lines, the first for the
- // option itself, the second for its -providerArg value.
- {"addprovider.option",
- "aggiunge il provider di sicurezza in base al nome (ad esempio SunPKCS11)\nconfigura l'argomento per -addprovider"}, //-addprovider
- {"provider.class.option",
- "aggiunge il provider di sicurezza in base al nome di classe completamente qualificato\nconfigura l'argomento per -providerclass"}, //-providerclass
-
- {"provider.name",
- "nome provider"}, //-providername
- {"provider.classpath",
- "classpath provider"}, //-providerpath
- {"output.in.RFC.style",
- "output in stile RFC"}, //-rfc
- {"signature.algorithm.name",
- "nome algoritmo firma"}, //-sigalg
- {"source.alias",
- "alias origine"}, //-srcalias
- {"source.key.password",
- "password chiave di origine"}, //-srckeypass
- {"source.keystore.name",
- "nome keystore di origine"}, //-srckeystore
- {"source.keystore.password.protected",
- "password keystore di origine protetta"}, //-srcprotected
- {"source.keystore.provider.name",
- "nome provider keystore di origine"}, //-srcprovidername
- {"source.keystore.password",
- "password keystore di origine"}, //-srcstorepass
- {"source.keystore.type",
- "tipo keystore di origine"}, //-srcstoretype
- {"SSL.server.host.and.port",
- "host e porta server SSL"}, //-sslserver
- {"signed.jar.file",
- "file jar firmato"}, //=jarfile
- {"certificate.validity.start.date.time",
- "data/ora di inizio validit\u00E0 certificato"}, //-startdate
- {"keystore.password",
- "password keystore"}, //-storepass
- {"keystore.type",
- "tipo keystore"}, //-storetype
- {"trust.certificates.from.cacerts",
- "considera sicuri i certificati da cacerts"}, //-trustcacerts
- {"verbose.output",
- "output descrittivo"}, //-v
- {"validity.number.of.days",
- "numero di giorni di validit\u00E0"}, //-validity
- {"Serial.ID.of.cert.to.revoke",
- "ID seriale del certificato da revocare"}, //-id
- // keytool: Running part
- {"keytool.error.", "Errore keytool: "},
- {"Illegal.option.", "Opzione non valida: "},
- {"Illegal.value.", "Valore non valido: "},
- {"Unknown.password.type.", "Tipo di password sconosciuto: "},
- {"Cannot.find.environment.variable.",
- "Impossibile trovare la variabile di ambiente: "},
- {"Cannot.find.file.", "Impossibile trovare il file: "},
- {"Command.option.flag.needs.an.argument.", "\u00C8 necessario specificare un argomento per l''opzione di comando {0}."},
- {"Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.",
- "Avvertenza: non sono supportate password diverse di chiave e di archivio per i keystore PKCS12. Il valore {0} specificato dall''utente verr\u00E0 ignorato."},
- {"the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option",
- "L'opzione -keystore o -storetype non pu\u00F2 essere utilizzata con l'opzione -cacerts"},
- {".keystore.must.be.NONE.if.storetype.is.{0}",
- "Se -storetype \u00E8 impostato su {0}, -keystore deve essere impostato su NONE"},
- {"Too.many.retries.program.terminated",
- "Il numero dei tentativi consentiti \u00E8 stato superato. Il programma verr\u00E0 terminato."},
- {".storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}",
- "Se -storetype \u00E8 impostato su {0}, i comandi -storepasswd e -keypasswd non sono supportati"},
- {".keypasswd.commands.not.supported.if.storetype.is.PKCS12",
- "Se -storetype \u00E8 impostato su PKCS12 i comandi -keypasswd non vengono supportati"},
- {".keypass.and.new.can.not.be.specified.if.storetype.is.{0}",
- "Se -storetype \u00E8 impostato su {0}, non \u00E8 possibile specificare un valore per -keypass e -new"},
- {"if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified",
- "Se \u00E8 specificata l'opzione -protected, le opzioni -storepass, -keypass e -new non possono essere specificate"},
- {"if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "Se viene specificato -srcprotected, -srcstorepass e -srckeypass non dovranno essere specificati"},
- {"if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified",
- "Se il file keystore non \u00E8 protetto da password, non deve essere specificato alcun valore per -storepass, -keypass e -new"},
- {"if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "Se il file keystore non \u00E8 protetto da password, non deve essere specificato alcun valore per -srcstorepass e -srckeypass"},
- {"Illegal.startdate.value", "Valore di data di inizio non valido"},
- {"Validity.must.be.greater.than.zero",
- "La validit\u00E0 deve essere maggiore di zero"},
- {"provclass.not.a.provider", "%s non \u00E8 un provider"},
- {"provider.name.not.found", "Provider denominato \"%s\" non trovato"},
- {"provider.class.not.found", "Provider \"%s\" non trovato"},
- {"Usage.error.no.command.provided", "Errore di utilizzo: nessun comando specificato"},
- {"Source.keystore.file.exists.but.is.empty.", "Il file keystore di origine esiste, ma \u00E8 vuoto: "},
- {"Please.specify.srckeystore", "Specificare -srckeystore"},
- {"Must.not.specify.both.v.and.rfc.with.list.command",
- "Impossibile specificare sia -v sia -rfc con il comando 'list'"},
- {"Key.password.must.be.at.least.6.characters",
- "La password della chiave deve contenere almeno 6 caratteri"},
- {"New.password.must.be.at.least.6.characters",
- "La nuova password deve contenere almeno 6 caratteri"},
- {"Keystore.file.exists.but.is.empty.",
- "Il file keystore esiste ma \u00E8 vuoto: "},
- {"Keystore.file.does.not.exist.",
- "Il file keystore non esiste: "},
- {"Must.specify.destination.alias", "\u00C8 necessario specificare l'alias di destinazione"},
- {"Must.specify.alias", "\u00C8 necessario specificare l'alias"},
- {"Keystore.password.must.be.at.least.6.characters",
- "La password del keystore deve contenere almeno 6 caratteri"},
- {"Enter.the.password.to.be.stored.",
- "Immettere la password da memorizzare: "},
- {"Enter.keystore.password.", "Immettere la password del keystore: "},
- {"Enter.source.keystore.password.", "Immettere la password del keystore di origine: "},
- {"Enter.destination.keystore.password.", "Immettere la password del keystore di destinazione: "},
- {"Keystore.password.is.too.short.must.be.at.least.6.characters",
- "La password del keystore \u00E8 troppo corta - deve contenere almeno 6 caratteri"},
- {"Unknown.Entry.Type", "Tipo di voce sconosciuto"},
- {"Too.many.failures.Alias.not.changed", "Numero eccessivo di errori. L'alias non \u00E8 stato modificato."},
- {"Entry.for.alias.alias.successfully.imported.",
- "La voce dell''alias {0} \u00E8 stata importata."},
- {"Entry.for.alias.alias.not.imported.", "La voce dell''alias {0} non \u00E8 stata importata."},
- {"Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.",
- "Si \u00E8 verificato un problema durante l''importazione della voce dell''alias {0}: {1}.\nLa voce dell''alias {0} non \u00E8 stata importata."},
- {"Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled",
- "Comando di importazione completato: {0} voce/i importata/e, {1} voce/i non importata/e o annullata/e"},
- {"Warning.Overwriting.existing.alias.alias.in.destination.keystore",
- "Avvertenza: sovrascrittura in corso dell''alias {0} nel file keystore di destinazione"},
- {"Existing.entry.alias.alias.exists.overwrite.no.",
- "La voce dell''alias {0} esiste gi\u00E0. Sovrascrivere? [no]: "},
- {"Too.many.failures.try.later", "Troppi errori - riprovare"},
- {"Certification.request.stored.in.file.filename.",
- "La richiesta di certificazione \u00E8 memorizzata nel file <{0}>"},
- {"Submit.this.to.your.CA", "Sottomettere alla propria CA"},
- {"if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified",
- "Se l'alias non \u00E8 specificato, destalias e srckeypass non dovranno essere specificati"},
- {"The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.",
- "Keystore pkcs12 di destinazione con storepass e keypass differenti. Riprovare con -destkeypass specificato."},
- {"Certificate.stored.in.file.filename.",
- "Il certificato \u00E8 memorizzato nel file <{0}>"},
- {"Certificate.reply.was.installed.in.keystore",
- "La risposta del certificato \u00E8 stata installata nel keystore"},
- {"Certificate.reply.was.not.installed.in.keystore",
- "La risposta del certificato non \u00E8 stata installata nel keystore"},
- {"Certificate.was.added.to.keystore",
- "Il certificato \u00E8 stato aggiunto al keystore"},
- {"Certificate.was.not.added.to.keystore",
- "Il certificato non \u00E8 stato aggiunto al keystore"},
- {".Storing.ksfname.", "[Memorizzazione di {0}] in corso"},
- {"alias.has.no.public.key.certificate.",
- "{0} non dispone di chiave pubblica (certificato)"},
- {"Cannot.derive.signature.algorithm",
- "Impossibile derivare l'algoritmo di firma"},
- {"Alias.alias.does.not.exist",
- "L''alias <{0}> non esiste"},
- {"Alias.alias.has.no.certificate",
- "L''alias <{0}> non dispone di certificato"},
- {"Key.pair.not.generated.alias.alias.already.exists",
- "Non \u00E8 stata generata la coppia di chiavi, l''alias <{0}> \u00E8 gi\u00E0 esistente"},
- {"Generating.keysize.bit.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.validality.days.for",
- "Generazione in corso di una coppia di chiavi {1} da {0} bit e di un certificato autofirmato ({2}) con una validit\u00E0 di {3} giorni\n\tper: {4}"},
- {"Enter.key.password.for.alias.", "Immettere la password della chiave per <{0}>"},
- {".RETURN.if.same.as.keystore.password.",
- "\t(INVIO se corrisponde alla password del keystore): "},
- {"Key.password.is.too.short.must.be.at.least.6.characters",
- "La password della chiave \u00E8 troppo corta - deve contenere almeno 6 caratteri"},
- {"Too.many.failures.key.not.added.to.keystore",
- "Troppi errori - la chiave non \u00E8 stata aggiunta al keystore"},
- {"Destination.alias.dest.already.exists",
- "L''alias di destinazione <{0}> \u00E8 gi\u00E0 esistente"},
- {"Password.is.too.short.must.be.at.least.6.characters",
- "La password \u00E8 troppo corta - deve contenere almeno 6 caratteri"},
- {"Too.many.failures.Key.entry.not.cloned",
- "Numero eccessivo di errori. Il valore della chiave non \u00E8 stato copiato."},
- {"key.password.for.alias.", "password della chiave per <{0}>"},
- {"Keystore.entry.for.id.getName.already.exists",
- "La voce del keystore per <{0}> esiste gi\u00E0"},
- {"Creating.keystore.entry.for.id.getName.",
- "Creazione della voce del keystore per <{0}> in corso..."},
- {"No.entries.from.identity.database.added",
- "Nessuna voce aggiunta dal database delle identit\u00E0"},
- {"Alias.name.alias", "Nome alias: {0}"},
- {"Creation.date.keyStore.getCreationDate.alias.",
- "Data di creazione: {0,date}"},
- {"alias.keyStore.getCreationDate.alias.",
- "{0}, {1,date}, "},
- {"alias.", "{0}, "},
- {"Entry.type.type.", "Tipo di voce: {0}"},
- {"Certificate.chain.length.", "Lunghezza catena certificati: "},
- {"Certificate.i.1.", "Certificato[{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA.256.", "Copia di certificato (SHA-256): "},
- {"Keystore.type.", "Tipo keystore: "},
- {"Keystore.provider.", "Provider keystore: "},
- {"Your.keystore.contains.keyStore.size.entry",
- "Il keystore contiene {0,number,integer} voce"},
- {"Your.keystore.contains.keyStore.size.entries",
- "Il keystore contiene {0,number,integer} voci"},
- {"Failed.to.parse.input", "Impossibile analizzare l'input"},
- {"Empty.input", "Input vuoto"},
- {"Not.X.509.certificate", "Il certificato non \u00E8 X.509"},
- {"alias.has.no.public.key", "{0} non dispone di chiave pubblica"},
- {"alias.has.no.X.509.certificate", "{0} non dispone di certificato X.509"},
- {"New.certificate.self.signed.", "Nuovo certificato (autofirmato):"},
- {"Reply.has.no.certificates", "La risposta non dispone di certificati"},
- {"Certificate.not.imported.alias.alias.already.exists",
- "Impossibile importare il certificato, l''alias <{0}> \u00E8 gi\u00E0 esistente"},
- {"Input.not.an.X.509.certificate", "L'input non \u00E8 un certificato X.509"},
- {"Certificate.already.exists.in.keystore.under.alias.trustalias.",
- "Il certificato esiste gi\u00E0 nel keystore con alias <{0}>"},
- {"Do.you.still.want.to.add.it.no.",
- "Aggiungerlo ugualmente? [no]: "},
- {"Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.",
- "Il certificato esiste gi\u00E0 nel keystore CA con alias <{0}>"},
- {"Do.you.still.want.to.add.it.to.your.own.keystore.no.",
- "Aggiungerlo al proprio keystore? [no]: "},
- {"Trust.this.certificate.no.", "Considerare sicuro questo certificato? [no]: "},
- {"YES", "S\u00EC"},
- {"New.prompt.", "Nuova {0}: "},
- {"Passwords.must.differ", "Le password non devono coincidere"},
- {"Re.enter.new.prompt.", "Reimmettere un nuovo valore per {0}: "},
- {"Re.enter.password.", "Reimmettere la password: "},
- {"Re.enter.new.password.", "Immettere nuovamente la nuova password: "},
- {"They.don.t.match.Try.again", "Non corrispondono. Riprovare."},
- {"Enter.prompt.alias.name.", "Immettere nome alias {0}: "},
- {"Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.",
- "Immettere un nuovo nome alias\t(premere INVIO per annullare l'importazione della voce): "},
- {"Enter.alias.name.", "Immettere nome alias: "},
- {".RETURN.if.same.as.for.otherAlias.",
- "\t(INVIO se corrisponde al nome di <{0}>)"},
- {"What.is.your.first.and.last.name.",
- "Specificare nome e cognome"},
- {"What.is.the.name.of.your.organizational.unit.",
- "Specificare il nome dell'unit\u00E0 organizzativa"},
- {"What.is.the.name.of.your.organization.",
- "Specificare il nome dell'organizzazione"},
- {"What.is.the.name.of.your.City.or.Locality.",
- "Specificare la localit\u00E0"},
- {"What.is.the.name.of.your.State.or.Province.",
- "Specificare la provincia"},
- {"What.is.the.two.letter.country.code.for.this.unit.",
- "Specificare il codice a due lettere del paese in cui si trova l'unit\u00E0"},
- {"Is.name.correct.", "Il dato {0} \u00E8 corretto?"},
- {"no", "no"},
- {"yes", "s\u00EC"},
- {"y", "s"},
- {".defaultValue.", " [{0}]: "},
- {"Alias.alias.has.no.key",
- "All''alias <{0}> non \u00E8 associata alcuna chiave"},
- {"Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key",
- "L''alias <{0}> fa riferimento a un tipo di voce che non \u00E8 una voce di chiave privata. Il comando -keyclone supporta solo la copia delle voci di chiave private."},
-
- {".WARNING.WARNING.WARNING.",
- "***************** WARNING WARNING WARNING *****************"},
- {"Signer.d.", "Firmatario #%d:"},
- {"Timestamp.", "Indicatore orario:"},
- {"Signature.", "Firma:"},
- {"CRLs.", "CRL:"},
- {"Certificate.owner.", "Proprietario certificato: "},
- {"Not.a.signed.jar.file", "Non \u00E8 un file jar firmato"},
- {"No.certificate.from.the.SSL.server",
- "Nessun certificato dal server SSL"},
-
- {".The.integrity.of.the.information.stored.in.your.keystore.",
- "* L'integrit\u00E0 delle informazioni memorizzate nel keystore *\n* NON \u00E8 stata verificata. Per verificarne l'integrit\u00E0 *\n* \u00E8 necessario fornire la password del keystore. *"},
- {".The.integrity.of.the.information.stored.in.the.srckeystore.",
- "* L'integrit\u00E0 delle informazioni memorizzate nel srckeystore *\n* NON \u00E8 stata verificata. Per verificarne l'integrit\u00E0 *\n* \u00E8 necessario fornire la password del srckeystore. *"},
-
- {"Certificate.reply.does.not.contain.public.key.for.alias.",
- "La risposta del certificato non contiene la chiave pubblica per <{0}>"},
- {"Incomplete.certificate.chain.in.reply",
- "Catena dei certificati incompleta nella risposta"},
- {"Certificate.chain.in.reply.does.not.verify.",
- "La catena dei certificati nella risposta non verifica: "},
- {"Top.level.certificate.in.reply.",
- "Certificato di primo livello nella risposta:\n"},
- {".is.not.trusted.", "...non \u00E8 considerato sicuro. "},
- {"Install.reply.anyway.no.", "Installare la risposta? [no]: "},
- {"NO", "NO"},
- {"Public.keys.in.reply.and.keystore.don.t.match",
- "Le chiavi pubbliche nella risposta e nel keystore non corrispondono"},
- {"Certificate.reply.and.certificate.in.keystore.are.identical",
- "La risposta del certificato e il certificato nel keystore sono identici"},
- {"Failed.to.establish.chain.from.reply",
- "Impossibile stabilire la catena dalla risposta"},
- {"n", "n"},
- {"Wrong.answer.try.again", "Risposta errata, riprovare"},
- {"Secret.key.not.generated.alias.alias.already.exists",
- "La chiave segreta non \u00E8 stata generata; l''alias <{0}> esiste gi\u00E0"},
- {"Please.provide.keysize.for.secret.key.generation",
- "Specificare il valore -keysize per la generazione della chiave segreta"},
-
- {"warning.not.verified.make.sure.keystore.is.correct",
- "AVVERTENZA: non verificato. Assicurarsi che -keystore sia corretto."},
-
- {"Extensions.", "Estensioni: "},
- {".Empty.value.", "(valore vuoto)"},
- {"Extension.Request.", "Richiesta di estensione:"},
- {"Unknown.keyUsage.type.", "Tipo keyUsage sconosciuto: "},
- {"Unknown.extendedkeyUsage.type.", "Tipo extendedkeyUsage sconosciuto: "},
- {"Unknown.AccessDescription.type.", "Tipo AccessDescription sconosciuto: "},
- {"Unrecognized.GeneralName.type.", "Tipo GeneralName non riconosciuto: "},
- {"This.extension.cannot.be.marked.as.critical.",
- "Impossibile contrassegnare questa estensione come critica. "},
- {"Odd.number.of.hex.digits.found.", "\u00C8 stato trovato un numero dispari di cifre esadecimali: "},
- {"Unknown.extension.type.", "Tipo di estensione sconosciuto: "},
- {"command.{0}.is.ambiguous.", "il comando {0} \u00E8 ambiguo:"},
-
- // 8171319: keytool should print out warnings when reading or
- // generating cert/cert req using weak algorithms
- {"the.certificate.request", "La richiesta di certificato"},
- {"the.issuer", "L'emittente"},
- {"the.generated.certificate", "Il certificato generato"},
- {"the.generated.crl", "La CRL generata"},
- {"the.generated.certificate.request", "La richiesta di certificato generata"},
- {"the.certificate", "Il certificato"},
- {"the.crl", "La CRL"},
- {"the.tsa.certificate", "Il certificato TSA"},
- {"the.input", "L'input"},
- {"reply", "Rispondi"},
- {"one.in.many", "%1$s #%2$d di %3$d"},
- {"alias.in.cacerts", "Emittente <%s> in cacerts"},
- {"alias.in.keystore", "Emittente <%s>"},
- {"with.weak", "%s (debole)"},
- {"key.bit", "Chiave %2$s a %1$d bit"},
- {"key.bit.weak", "Chiave %2$s a %1$d bit (debole)"},
- {"unknown.size.1", "chiave %s di dimensione sconosciuta"},
- {".PATTERN.printX509Cert.with.weak",
- "Proprietario: {0}\nEmittente: {1}\nNumero di serie: {2}\nValido da: {3} a: {4}\nImpronte digitali certificato:\n\t SHA1: {5}\n\t SHA256: {6}\nNome algoritmo firma: {7}\nAlgoritmo di chiave pubblica oggetto: {8}\nVersione: {9}"},
- {"PKCS.10.with.weak",
- "Richiesta di certificato PKCS #10 (versione 1.0)\nOggetto: %1$s\nFormato: %2$s\nChiave pubblica: %3$s\nAlgoritmo firma: %4$s\n"},
- {"verified.by.s.in.s.weak", "Verificato da %1$s in %2$s con un %3$s"},
- {"whose.sigalg.risk", "%1$s utilizza l'algoritmo firma %2$s che \u00E8 considerato un rischio per la sicurezza."},
- {"whose.key.risk", "%1$s utilizza un %2$s che \u00E8 considerato un rischio per la sicurezza."},
- {"jks.storetype.warning", "Il keystore %1$s utilizza un formato proprietario. Si consiglia di eseguire la migrazione a PKCS12, un formato standard di settore, utilizzando il comando \"keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12\"."},
- {"migrate.keystore.warning", "Migrazione di \"%1$s\" in %4$s eseguita. Backup del keystore %2$s eseguito con il nome \"%3$s\"."},
- {"backup.keystore.warning", "Backup del keystore originale \"%1$s\" eseguito con il nome \"%3$s\"..."},
- {"importing.keystore.status", "Importazione del keystore %1$s in %2$s in corso..."},
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/Resources_ja.java b/src/java.base/share/classes/sun/security/tools/keytool/Resources_ja.java
deleted file mode 100644
index 225b6eabd7101..0000000000000
--- a/src/java.base/share/classes/sun/security/tools/keytool/Resources_ja.java
+++ /dev/null
@@ -1,511 +0,0 @@
-/*
- * Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.tools.keytool;
-
-/**
- *
This class represents the ResourceBundle
- * for the keytool.
- *
- */
-public class Resources_ja extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
- {"NEWLINE", "\n"},
- {"STAR",
- "*******************************************"},
- {"STARNN",
- "*******************************************\n\n"},
-
- // keytool: Help part
- {".OPTION.", " [OPTION]..."},
- {"Options.", "\u30AA\u30D7\u30B7\u30E7\u30F3:"},
- {"option.1.set.twice", "%s\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u8907\u6570\u56DE\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u6700\u5F8C\u306E\u3082\u306E\u4EE5\u5916\u306F\u3059\u3079\u3066\u7121\u8996\u3055\u308C\u307E\u3059\u3002"},
- {"multiple.commands.1.2", "1\u3064\u306E\u30B3\u30DE\u30F3\u30C9\u306E\u307F\u8A31\u53EF\u3055\u308C\u307E\u3059: %1$s\u3068%2$s\u306E\u4E21\u65B9\u304C\u6307\u5B9A\u3055\u308C\u307E\u3057\u305F\u3002"},
- {"Use.keytool.help.for.all.available.commands",
- "\u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u8868\u793A\u3059\u308B\u306B\u306F\"keytool -?\u3001-h\u307E\u305F\u306F--help\"\u3092\u4F7F\u7528\u3057\u307E\u3059"},
- {"Key.and.Certificate.Management.Tool",
- "\u30AD\u30FC\u304A\u3088\u3073\u8A3C\u660E\u66F8\u7BA1\u7406\u30C4\u30FC\u30EB"},
- {"Commands.", "\u30B3\u30DE\u30F3\u30C9:"},
- {"Use.keytool.command.name.help.for.usage.of.command.name",
- "command_name\u306E\u4F7F\u7528\u65B9\u6CD5\u306B\u3064\u3044\u3066\u306F\u3001\"keytool -command_name --help\"\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\n\u4E8B\u524D\u69CB\u6210\u6E08\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u6307\u5B9A\u3059\u308B\u306B\u306F\u3001-conf \u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002"},
- // keytool: help: commands
- {"Generates.a.certificate.request",
- "\u8A3C\u660E\u66F8\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u751F\u6210\u3057\u307E\u3059"}, //-certreq
- {"Changes.an.entry.s.alias",
- "\u30A8\u30F3\u30C8\u30EA\u306E\u5225\u540D\u3092\u5909\u66F4\u3057\u307E\u3059"}, //-changealias
- {"Deletes.an.entry",
- "\u30A8\u30F3\u30C8\u30EA\u3092\u524A\u9664\u3057\u307E\u3059"}, //-delete
- {"Exports.certificate",
- "\u8A3C\u660E\u66F8\u3092\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3057\u307E\u3059"}, //-exportcert
- {"Generates.a.key.pair",
- "\u30AD\u30FC\u30FB\u30DA\u30A2\u3092\u751F\u6210\u3057\u307E\u3059"}, //-genkeypair
- {"Generates.a.secret.key",
- "\u79D8\u5BC6\u30AD\u30FC\u3092\u751F\u6210\u3057\u307E\u3059"}, //-genseckey
- {"Generates.certificate.from.a.certificate.request",
- "\u8A3C\u660E\u66F8\u30EA\u30AF\u30A8\u30B9\u30C8\u304B\u3089\u8A3C\u660E\u66F8\u3092\u751F\u6210\u3057\u307E\u3059"}, //-gencert
- {"Generates.CRL", "CRL\u3092\u751F\u6210\u3057\u307E\u3059"}, //-gencrl
- {"Generated.keyAlgName.secret.key",
- "{0}\u79D8\u5BC6\u30AD\u30FC\u3092\u751F\u6210\u3057\u307E\u3057\u305F"}, //-genseckey
- {"Generated.keysize.bit.keyAlgName.secret.key",
- "{0}\u30D3\u30C3\u30C8{1}\u79D8\u5BC6\u30AD\u30FC\u3092\u751F\u6210\u3057\u307E\u3057\u305F"}, //-genseckey
- {"key.algorithm.weak", "%1$s\u306F%2$s\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u3092\u4F7F\u7528\u3057\u3066\u304A\u308A\u3001\u3053\u308C\u306F\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30EA\u30B9\u30AF\u3068\u307F\u306A\u3055\u308C\u307E\u3059\u3002"},
- {"key.size.weak", "%1$s\u306F%2$s\u3092\u4F7F\u7528\u3057\u3066\u304A\u308A\u3001\u3053\u308C\u306F\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30EA\u30B9\u30AF\u3068\u307F\u306A\u3055\u308C\u307E\u3059\u3002"},
- {"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
- "JDK 1.1.x-style\u30A2\u30A4\u30C7\u30F3\u30C6\u30A3\u30C6\u30A3\u30FB\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304B\u3089\u30A8\u30F3\u30C8\u30EA\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3057\u307E\u3059"}, //-identitydb
- {"Imports.a.certificate.or.a.certificate.chain",
- "\u8A3C\u660E\u66F8\u307E\u305F\u306F\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3057\u307E\u3059"}, //-importcert
- {"Imports.a.password",
- "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3057\u307E\u3059"}, //-importpass
- {"Imports.one.or.all.entries.from.another.keystore",
- "\u5225\u306E\u30AD\u30FC\u30B9\u30C8\u30A2\u304B\u30891\u3064\u307E\u305F\u306F\u3059\u3079\u3066\u306E\u30A8\u30F3\u30C8\u30EA\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3057\u307E\u3059"}, //-importkeystore
- {"Clones.a.key.entry",
- "\u30AD\u30FC\u30FB\u30A8\u30F3\u30C8\u30EA\u306E\u30AF\u30ED\u30FC\u30F3\u3092\u4F5C\u6210\u3057\u307E\u3059"}, //-keyclone
- {"Changes.the.key.password.of.an.entry",
- "\u30A8\u30F3\u30C8\u30EA\u306E\u30AD\u30FC\u30FB\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5909\u66F4\u3057\u307E\u3059"}, //-keypasswd
- {"Lists.entries.in.a.keystore",
- "\u30AD\u30FC\u30B9\u30C8\u30A2\u5185\u306E\u30A8\u30F3\u30C8\u30EA\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059"}, //-list
- {"Prints.the.content.of.a.certificate",
- "\u8A3C\u660E\u66F8\u306E\u5185\u5BB9\u3092\u51FA\u529B\u3057\u307E\u3059"}, //-printcert
- {"Prints.the.content.of.a.certificate.request",
- "\u8A3C\u660E\u66F8\u30EA\u30AF\u30A8\u30B9\u30C8\u306E\u5185\u5BB9\u3092\u51FA\u529B\u3057\u307E\u3059"}, //-printcertreq
- {"Prints.the.content.of.a.CRL.file",
- "CRL\u30D5\u30A1\u30A4\u30EB\u306E\u5185\u5BB9\u3092\u51FA\u529B\u3057\u307E\u3059"}, //-printcrl
- {"Generates.a.self.signed.certificate",
- "\u81EA\u5DF1\u7F72\u540D\u578B\u8A3C\u660E\u66F8\u3092\u751F\u6210\u3057\u307E\u3059"}, //-selfcert
- {"Changes.the.store.password.of.a.keystore",
- "\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30B9\u30C8\u30A2\u30FB\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5909\u66F4\u3057\u307E\u3059"}, //-storepasswd
- {"showinfo.command.help", "\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u95A2\u9023\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059"},
- {"Prints.the.program.version", "\u30D7\u30ED\u30B0\u30E9\u30E0\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3057\u307E\u3059"},
-
- // keytool: help: options
- {"alias.name.of.the.entry.to.process",
- "\u51E6\u7406\u3059\u308B\u30A8\u30F3\u30C8\u30EA\u306E\u5225\u540D"}, //-alias
- {"groupname.option.help",
- "\u30B0\u30EB\u30FC\u30D7\u540D\u3002\u305F\u3068\u3048\u3070\u3001\u6955\u5186\u66F2\u7DDA\u540D\u3067\u3059\u3002"}, //-groupname
- {"destination.alias",
- "\u51FA\u529B\u5148\u306E\u5225\u540D"}, //-destalias
- {"destination.key.password",
- "\u51FA\u529B\u5148\u30AD\u30FC\u306E\u30D1\u30B9\u30EF\u30FC\u30C9"}, //-destkeypass
- {"destination.keystore.name",
- "\u51FA\u529B\u5148\u30AD\u30FC\u30B9\u30C8\u30A2\u540D"}, //-destkeystore
- {"destination.keystore.password.protected",
- "\u51FA\u529B\u5148\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u4FDD\u8B77\u5BFE\u8C61\u30D1\u30B9\u30EF\u30FC\u30C9"}, //-destprotected
- {"destination.keystore.provider.name",
- "\u51FA\u529B\u5148\u30AD\u30FC\u30B9\u30C8\u30A2\u30FB\u30D7\u30ED\u30D0\u30A4\u30C0\u540D"}, //-destprovidername
- {"destination.keystore.password",
- "\u51FA\u529B\u5148\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9"}, //-deststorepass
- {"destination.keystore.type",
- "\u51FA\u529B\u5148\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30BF\u30A4\u30D7"}, //-deststoretype
- {"distinguished.name",
- "\u8B58\u5225\u540D"}, //-dname
- {"X.509.extension",
- "X.509\u62E1\u5F35"}, //-ext
- {"output.file.name",
- "\u51FA\u529B\u30D5\u30A1\u30A4\u30EB\u540D"}, //-file and -outfile
- {"input.file.name",
- "\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u540D"}, //-file and -infile
- {"key.algorithm.name",
- "\u30AD\u30FC\u30FB\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u540D"}, //-keyalg
- {"key.password",
- "\u30AD\u30FC\u306E\u30D1\u30B9\u30EF\u30FC\u30C9"}, //-keypass
- {"key.bit.size",
- "\u30AD\u30FC\u306E\u30D3\u30C3\u30C8\u30FB\u30B5\u30A4\u30BA"}, //-keysize
- {"keystore.name",
- "\u30AD\u30FC\u30B9\u30C8\u30A2\u540D"}, //-keystore
- {"access.the.cacerts.keystore",
- "cacerts\u30AD\u30FC\u30B9\u30C8\u30A2\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B"}, // -cacerts
- {"warning.cacerts.option",
- "\u8B66\u544A: cacerts\u30AD\u30FC\u30B9\u30C8\u30A2\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u306B\u306F-cacerts\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044"},
- {"new.password",
- "\u65B0\u898F\u30D1\u30B9\u30EF\u30FC\u30C9"}, //-new
- {"do.not.prompt",
- "\u30D7\u30ED\u30F3\u30D7\u30C8\u3092\u8868\u793A\u3057\u306A\u3044"}, //-noprompt
- {"password.through.protected.mechanism",
- "\u4FDD\u8B77\u30E1\u30AB\u30CB\u30BA\u30E0\u306B\u3088\u308B\u30D1\u30B9\u30EF\u30FC\u30C9"}, //-protected
- {"tls.option.help", "TLS\u69CB\u6210\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059"},
-
- // The following 2 values should span 2 lines, the first for the
- // option itself, the second for its -providerArg value.
- {"addprovider.option",
- "\u540D\u524D\u3067\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30D7\u30ED\u30D0\u30A4\u30C0\u3092\u8FFD\u52A0\u3059\u308B(SunPKCS11\u306A\u3069)\n-addprovider\u306E\u5F15\u6570\u3092\u69CB\u6210\u3059\u308B"}, //-addprovider
- {"provider.class.option",
- "\u5B8C\u5168\u4FEE\u98FE\u30AF\u30E9\u30B9\u540D\u3067\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30D7\u30ED\u30D0\u30A4\u30C0\u3092\u8FFD\u52A0\u3059\u308B\n-providerclass\u306E\u5F15\u6570\u3092\u69CB\u6210\u3059\u308B"}, //-providerclass
-
- {"provider.name",
- "\u30D7\u30ED\u30D0\u30A4\u30C0\u540D"}, //-providername
- {"provider.classpath",
- "\u30D7\u30ED\u30D0\u30A4\u30C0\u30FB\u30AF\u30E9\u30B9\u30D1\u30B9"}, //-providerpath
- {"output.in.RFC.style",
- "RFC\u30B9\u30BF\u30A4\u30EB\u306E\u51FA\u529B"}, //-rfc
- {"signature.algorithm.name",
- "\u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u540D"}, //-sigalg
- {"signer.alias",
- "\u7F72\u540D\u8005\u306E\u5225\u540D"}, //-signer
- {"signer.key.password",
- "\u7F72\u540D\u8005\u306E\u30AD\u30FC\u306E\u30D1\u30B9\u30EF\u30FC\u30C9"}, //-signerkeypass
- {"source.alias",
- "\u30BD\u30FC\u30B9\u5225\u540D"}, //-srcalias
- {"source.key.password",
- "\u30BD\u30FC\u30B9\u30FB\u30AD\u30FC\u306E\u30D1\u30B9\u30EF\u30FC\u30C9"}, //-srckeypass
- {"source.keystore.name",
- "\u30BD\u30FC\u30B9\u30FB\u30AD\u30FC\u30B9\u30C8\u30A2\u540D"}, //-srckeystore
- {"source.keystore.password.protected",
- "\u30BD\u30FC\u30B9\u30FB\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u4FDD\u8B77\u5BFE\u8C61\u30D1\u30B9\u30EF\u30FC\u30C9"}, //-srcprotected
- {"source.keystore.provider.name",
- "\u30BD\u30FC\u30B9\u30FB\u30AD\u30FC\u30B9\u30C8\u30A2\u30FB\u30D7\u30ED\u30D0\u30A4\u30C0\u540D"}, //-srcprovidername
- {"source.keystore.password",
- "\u30BD\u30FC\u30B9\u30FB\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9"}, //-srcstorepass
- {"source.keystore.type",
- "\u30BD\u30FC\u30B9\u30FB\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30BF\u30A4\u30D7"}, //-srcstoretype
- {"SSL.server.host.and.port",
- "SSL\u30B5\u30FC\u30D0\u30FC\u306E\u30DB\u30B9\u30C8\u3068\u30DD\u30FC\u30C8"}, //-sslserver
- {"signed.jar.file",
- "\u7F72\u540D\u4ED8\u304DJAR\u30D5\u30A1\u30A4\u30EB"}, //=jarfile
- {"certificate.validity.start.date.time",
- "\u8A3C\u660E\u66F8\u306E\u6709\u52B9\u958B\u59CB\u65E5\u6642"}, //-startdate
- {"keystore.password",
- "\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9"}, //-storepass
- {"keystore.type",
- "\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30BF\u30A4\u30D7"}, //-storetype
- {"trust.certificates.from.cacerts",
- "cacerts\u304B\u3089\u306E\u8A3C\u660E\u66F8\u3092\u4FE1\u983C\u3059\u308B"}, //-trustcacerts
- {"verbose.output",
- "\u8A73\u7D30\u51FA\u529B"}, //-v
- {"validity.number.of.days",
- "\u59A5\u5F53\u6027\u65E5\u6570"}, //-validity
- {"Serial.ID.of.cert.to.revoke",
- "\u5931\u52B9\u3059\u308B\u8A3C\u660E\u66F8\u306E\u30B7\u30EA\u30A2\u30EBID"}, //-id
- // keytool: Running part
- {"keytool.error.", "keytool\u30A8\u30E9\u30FC: "},
- {"Illegal.option.", "\u4E0D\u6B63\u306A\u30AA\u30D7\u30B7\u30E7\u30F3: "},
- {"Illegal.value.", "\u4E0D\u6B63\u306A\u5024: "},
- {"Unknown.password.type.", "\u4E0D\u660E\u306A\u30D1\u30B9\u30EF\u30FC\u30C9\u30FB\u30BF\u30A4\u30D7: "},
- {"Cannot.find.environment.variable.",
- "\u74B0\u5883\u5909\u6570\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: "},
- {"Cannot.find.file.", "\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: "},
- {"Command.option.flag.needs.an.argument.", "\u30B3\u30DE\u30F3\u30C9\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3{0}\u306B\u306F\u5F15\u6570\u304C\u5FC5\u8981\u3067\u3059\u3002"},
- {"Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.",
- "\u8B66\u544A: PKCS12\u30AD\u30FC\u30B9\u30C8\u30A2\u3067\u306F\u3001\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3068\u30AD\u30FC\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u7570\u306A\u308B\u72B6\u6CC1\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u307E\u305B\u3093\u3002\u30E6\u30FC\u30B6\u30FC\u304C\u6307\u5B9A\u3057\u305F{0}\u306E\u5024\u306F\u7121\u8996\u3057\u307E\u3059\u3002"},
- {"the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option",
- "-keystore\u307E\u305F\u306F-storetype\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001-cacerts\u30AA\u30D7\u30B7\u30E7\u30F3\u3068\u3068\u3082\u306B\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093"},
- {".keystore.must.be.NONE.if.storetype.is.{0}",
- "-storetype\u304C{0}\u306E\u5834\u5408\u3001-keystore\u306FNONE\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"},
- {"Too.many.retries.program.terminated",
- "\u518D\u8A66\u884C\u304C\u591A\u3059\u304E\u307E\u3059\u3002\u30D7\u30ED\u30B0\u30E9\u30E0\u304C\u7D42\u4E86\u3057\u307E\u3057\u305F"},
- {".storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}",
- "-storetype\u304C{0}\u306E\u5834\u5408\u3001-storepasswd\u30B3\u30DE\u30F3\u30C9\u304A\u3088\u3073-keypasswd\u30B3\u30DE\u30F3\u30C9\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u307E\u305B\u3093"},
- {".keypasswd.commands.not.supported.if.storetype.is.PKCS12",
- "-storetype\u304CPKCS12\u306E\u5834\u5408\u3001-keypasswd\u30B3\u30DE\u30F3\u30C9\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u307E\u305B\u3093"},
- {".keypass.and.new.can.not.be.specified.if.storetype.is.{0}",
- "-storetype\u304C{0}\u306E\u5834\u5408\u3001-keypass\u3068-new\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093"},
- {"if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified",
- "-protected\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001-storepass\u3001-keypass\u304A\u3088\u3073-new\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093"},
- {"if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "-srcprotected\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001-srcstorepass\u304A\u3088\u3073-srckeypass\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093"},
- {"if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified",
- "\u30AD\u30FC\u30B9\u30C8\u30A2\u304C\u30D1\u30B9\u30EF\u30FC\u30C9\u3067\u4FDD\u8B77\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408\u3001-storepass\u3001-keypass\u304A\u3088\u3073-new\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093"},
- {"if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "\u30BD\u30FC\u30B9\u30FB\u30AD\u30FC\u30B9\u30C8\u30A2\u304C\u30D1\u30B9\u30EF\u30FC\u30C9\u3067\u4FDD\u8B77\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408\u3001-srcstorepass\u304A\u3088\u3073-srckeypass\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093"},
- {"Illegal.startdate.value", "startdate\u5024\u304C\u7121\u52B9\u3067\u3059"},
- {"Validity.must.be.greater.than.zero",
- "\u59A5\u5F53\u6027\u306F\u30BC\u30ED\u3088\u308A\u5927\u304D\u3044\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"},
- {"provclass.not.a.provider", "%s\u306F\u30D7\u30ED\u30D0\u30A4\u30C0\u3067\u306F\u3042\u308A\u307E\u305B\u3093"},
- {"provider.name.not.found", "\u30D7\u30ED\u30D0\u30A4\u30C0\u540D\"%s\"\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093"},
- {"provider.class.not.found", "\u30D7\u30ED\u30D0\u30A4\u30C0\"%s\"\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093"},
- {"Usage.error.no.command.provided", "\u4F7F\u7528\u30A8\u30E9\u30FC: \u30B3\u30DE\u30F3\u30C9\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093"},
- {"Source.keystore.file.exists.but.is.empty.", "\u30BD\u30FC\u30B9\u30FB\u30AD\u30FC\u30B9\u30C8\u30A2\u30FB\u30D5\u30A1\u30A4\u30EB\u306F\u3001\u5B58\u5728\u3057\u307E\u3059\u304C\u7A7A\u3067\u3059: "},
- {"Please.specify.srckeystore", "-srckeystore\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"},
- {"Must.not.specify.both.v.and.rfc.with.list.command",
- "'list'\u30B3\u30DE\u30F3\u30C9\u306B-v\u3068-rfc\u306E\u4E21\u65B9\u3092\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093"},
- {"Key.password.must.be.at.least.6.characters",
- "\u30AD\u30FC\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u306F6\u6587\u5B57\u4EE5\u4E0A\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"},
- {"New.password.must.be.at.least.6.characters",
- "\u65B0\u898F\u30D1\u30B9\u30EF\u30FC\u30C9\u306F6\u6587\u5B57\u4EE5\u4E0A\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"},
- {"Keystore.file.exists.but.is.empty.",
- "\u30AD\u30FC\u30B9\u30C8\u30A2\u30FB\u30D5\u30A1\u30A4\u30EB\u306F\u5B58\u5728\u3057\u307E\u3059\u304C\u3001\u7A7A\u3067\u3059: "},
- {"Keystore.file.does.not.exist.",
- "\u30AD\u30FC\u30B9\u30C8\u30A2\u30FB\u30D5\u30A1\u30A4\u30EB\u306F\u5B58\u5728\u3057\u307E\u305B\u3093: "},
- {"Must.specify.destination.alias", "\u51FA\u529B\u5148\u306E\u5225\u540D\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"},
- {"Must.specify.alias", "\u5225\u540D\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"},
- {"Keystore.password.must.be.at.least.6.characters",
- "\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u306F6\u6587\u5B57\u4EE5\u4E0A\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"},
- {"Enter.the.password.to.be.stored.",
- "\u4FDD\u5B58\u3059\u308B\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044: "},
- {"Enter.keystore.password.", "\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044: "},
- {"Enter.source.keystore.password.", "\u30BD\u30FC\u30B9\u30FB\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044: "},
- {"Enter.destination.keystore.password.", "\u51FA\u529B\u5148\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044: "},
- {"Keystore.password.is.too.short.must.be.at.least.6.characters",
- "\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u77ED\u3059\u304E\u307E\u3059 - 6\u6587\u5B57\u4EE5\u4E0A\u306B\u3057\u3066\u304F\u3060\u3055\u3044"},
- {"Unknown.Entry.Type", "\u4E0D\u660E\u306A\u30A8\u30F3\u30C8\u30EA\u30FB\u30BF\u30A4\u30D7"},
- {"Entry.for.alias.alias.successfully.imported.",
- "\u5225\u540D{0}\u306E\u30A8\u30F3\u30C8\u30EA\u306E\u30A4\u30F3\u30DD\u30FC\u30C8\u306B\u6210\u529F\u3057\u307E\u3057\u305F\u3002"},
- {"Entry.for.alias.alias.not.imported.", "\u5225\u540D{0}\u306E\u30A8\u30F3\u30C8\u30EA\u306F\u30A4\u30F3\u30DD\u30FC\u30C8\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002"},
- {"Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.",
- "\u5225\u540D{0}\u306E\u30A8\u30F3\u30C8\u30EA\u306E\u30A4\u30F3\u30DD\u30FC\u30C8\u4E2D\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F: {1}\u3002\n\u5225\u540D{0}\u306E\u30A8\u30F3\u30C8\u30EA\u306F\u30A4\u30F3\u30DD\u30FC\u30C8\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002"},
- {"Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled",
- "\u30A4\u30F3\u30DD\u30FC\u30C8\u30FB\u30B3\u30DE\u30F3\u30C9\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F: {0}\u4EF6\u306E\u30A8\u30F3\u30C8\u30EA\u306E\u30A4\u30F3\u30DD\u30FC\u30C8\u304C\u6210\u529F\u3057\u307E\u3057\u305F\u3002{1}\u4EF6\u306E\u30A8\u30F3\u30C8\u30EA\u306E\u30A4\u30F3\u30DD\u30FC\u30C8\u304C\u5931\u6557\u3057\u305F\u304B\u53D6\u308A\u6D88\u3055\u308C\u307E\u3057\u305F"},
- {"Warning.Overwriting.existing.alias.alias.in.destination.keystore",
- "\u8B66\u544A: \u51FA\u529B\u5148\u30AD\u30FC\u30B9\u30C8\u30A2\u5185\u306E\u65E2\u5B58\u306E\u5225\u540D{0}\u3092\u4E0A\u66F8\u304D\u3057\u3066\u3044\u307E\u3059"},
- {"Existing.entry.alias.alias.exists.overwrite.no.",
- "\u65E2\u5B58\u306E\u30A8\u30F3\u30C8\u30EA\u306E\u5225\u540D{0}\u304C\u5B58\u5728\u3057\u3066\u3044\u307E\u3059\u3002\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B\u3002[\u3044\u3044\u3048]: "},
- {"Too.many.failures.try.later", "\u969C\u5BB3\u304C\u591A\u3059\u304E\u307E\u3059 - \u5F8C\u3067\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044"},
- {"Certification.request.stored.in.file.filename.",
- "\u8A8D\u8A3C\u30EA\u30AF\u30A8\u30B9\u30C8\u304C\u30D5\u30A1\u30A4\u30EB<{0}>\u306B\u4FDD\u5B58\u3055\u308C\u307E\u3057\u305F"},
- {"Submit.this.to.your.CA", "\u3053\u308C\u3092CA\u306B\u63D0\u51FA\u3057\u3066\u304F\u3060\u3055\u3044"},
- {"if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified",
- "\u5225\u540D\u3092\u6307\u5B9A\u3057\u306A\u3044\u5834\u5408\u3001\u51FA\u529B\u5148\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u5225\u540D\u304A\u3088\u3073\u30BD\u30FC\u30B9\u30FB\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093"},
- {"The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.",
- "\u51FA\u529B\u5148pkcs12\u30AD\u30FC\u30B9\u30C8\u30A2\u306B\u3001\u7570\u306A\u308Bstorepass\u304A\u3088\u3073keypass\u304C\u3042\u308A\u307E\u3059\u3002-destkeypass\u3092\u6307\u5B9A\u3057\u3066\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
- {"Certificate.stored.in.file.filename.",
- "\u8A3C\u660E\u66F8\u304C\u30D5\u30A1\u30A4\u30EB<{0}>\u306B\u4FDD\u5B58\u3055\u308C\u307E\u3057\u305F"},
- {"Certificate.reply.was.installed.in.keystore",
- "\u8A3C\u660E\u66F8\u5FDC\u7B54\u304C\u30AD\u30FC\u30B9\u30C8\u30A2\u306B\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u307E\u3057\u305F"},
- {"Certificate.reply.was.not.installed.in.keystore",
- "\u8A3C\u660E\u66F8\u5FDC\u7B54\u304C\u30AD\u30FC\u30B9\u30C8\u30A2\u306B\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F"},
- {"Certificate.was.added.to.keystore",
- "\u8A3C\u660E\u66F8\u304C\u30AD\u30FC\u30B9\u30C8\u30A2\u306B\u8FFD\u52A0\u3055\u308C\u307E\u3057\u305F"},
- {"Certificate.was.not.added.to.keystore",
- "\u8A3C\u660E\u66F8\u304C\u30AD\u30FC\u30B9\u30C8\u30A2\u306B\u8FFD\u52A0\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F"},
- {".Storing.ksfname.", "[{0}\u3092\u683C\u7D0D\u4E2D]"},
- {"alias.has.no.public.key.certificate.",
- "{0}\u306B\u306F\u516C\u958B\u30AD\u30FC(\u8A3C\u660E\u66F8)\u304C\u3042\u308A\u307E\u305B\u3093"},
- {"Cannot.derive.signature.algorithm",
- "\u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093"},
- {"Alias.alias.does.not.exist",
- "\u5225\u540D<{0}>\u306F\u5B58\u5728\u3057\u307E\u305B\u3093"},
- {"Alias.alias.has.no.certificate",
- "\u5225\u540D<{0}>\u306B\u306F\u8A3C\u660E\u66F8\u304C\u3042\u308A\u307E\u305B\u3093"},
- {"groupname.keysize.coexist",
- "-groupname\u3068-keysize\u306E\u4E21\u65B9\u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093"},
- {"deprecate.keysize.for.ec",
- "-keysize\u306E\u6307\u5B9A\u306B\u3088\u308BEC\u30AD\u30FC\u306E\u751F\u6210\u306F\u975E\u63A8\u5968\u3067\u3059\u3002\u304B\u308F\u308A\u306B\"-groupname %s\"\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
- {"Key.pair.not.generated.alias.alias.already.exists",
- "\u30AD\u30FC\u30FB\u30DA\u30A2\u306F\u751F\u6210\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u5225\u540D<{0}>\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u307E\u3059"},
- {"size.bit.alg",
- "%1$d\u30D3\u30C3\u30C8%2$s"},
- {"Generating.full.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.days.for",
- "{0}\u30AD\u30FC\u30FB\u30DA\u30A2\u304A\u3088\u3073\u81EA\u5DF1\u7F72\u540D\u8A3C\u660E\u66F8({1})\u3092{2}\u65E5\u306E\u6709\u52B9\u6027\u3067\u751F\u6210\u3057\u3066\u3044\u307E\u3059\n\t\u5BFE\u8C61: {3}"},
- {"Generating.full.keyAlgName.key.pair.and.a.certificate.sigAlgName.issued.by.signerAlias.with.a.validity.of.days.for",
- "{0}\u30AD\u30FC\u30FB\u30DA\u30A2\u3068\u003C\u007B\u0032\u007D\u003E\u306B\u3088\u3063\u3066\u767A\u884C\u3055\u308C\u305F\u8A3C\u660E\u66F8({1})\u3092{3}\u65E5\u9593\u306E\u6709\u52B9\u6027\u3067\u751F\u6210\u3057\u3066\u3044\u307E\u3059\n\t\u5BFE\u8C61: {4}"},
- {"Enter.key.password.for.alias.", "<{0}>\u306E\u30AD\u30FC\u30FB\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044"},
- {".RETURN.if.same.as.keystore.password.",
- "\t(\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3068\u540C\u3058\u5834\u5408\u306FRETURN\u3092\u62BC\u3057\u3066\u304F\u3060\u3055\u3044): "},
- {"Key.password.is.too.short.must.be.at.least.6.characters",
- "\u30AD\u30FC\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u77ED\u3059\u304E\u307E\u3059 - 6\u6587\u5B57\u4EE5\u4E0A\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"},
- {"Too.many.failures.key.not.added.to.keystore",
- "\u969C\u5BB3\u304C\u591A\u3059\u304E\u307E\u3059 - \u30AD\u30FC\u306F\u30AD\u30FC\u30B9\u30C8\u30A2\u306B\u8FFD\u52A0\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F"},
- {"Destination.alias.dest.already.exists",
- "\u51FA\u529B\u5148\u306E\u5225\u540D<{0}>\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u307E\u3059"},
- {"Password.is.too.short.must.be.at.least.6.characters",
- "\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u77ED\u3059\u304E\u307E\u3059 - 6\u6587\u5B57\u4EE5\u4E0A\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"},
- {"Too.many.failures.Key.entry.not.cloned",
- "\u969C\u5BB3\u304C\u591A\u3059\u304E\u307E\u3059\u3002\u30AD\u30FC\u30FB\u30A8\u30F3\u30C8\u30EA\u306E\u30AF\u30ED\u30FC\u30F3\u306F\u4F5C\u6210\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F"},
- {"key.password.for.alias.", "<{0}>\u306E\u30AD\u30FC\u306E\u30D1\u30B9\u30EF\u30FC\u30C9"},
- {"No.entries.from.identity.database.added",
- "\u30A2\u30A4\u30C7\u30F3\u30C6\u30A3\u30C6\u30A3\u30FB\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304B\u3089\u8FFD\u52A0\u3055\u308C\u305F\u30A8\u30F3\u30C8\u30EA\u306F\u3042\u308A\u307E\u305B\u3093"},
- {"Alias.name.alias", "\u5225\u540D: {0}"},
- {"Creation.date.keyStore.getCreationDate.alias.",
- "\u4F5C\u6210\u65E5: {0,date}"},
- {"alias.keyStore.getCreationDate.alias.",
- "{0},{1,date}, "},
- {"alias.", "{0}, "},
- {"Entry.type.type.", "\u30A8\u30F3\u30C8\u30EA\u30FB\u30BF\u30A4\u30D7: {0}"},
- {"Certificate.chain.length.", "\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u306E\u9577\u3055: "},
- {"Certificate.i.1.", "\u8A3C\u660E\u66F8[{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA.256.", "\u8A3C\u660E\u66F8\u306E\u30D5\u30A3\u30F3\u30AC\u30D7\u30EA\u30F3\u30C8(SHA-256): "},
- {"Keystore.type.", "\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30BF\u30A4\u30D7: "},
- {"Keystore.provider.", "\u30AD\u30FC\u30B9\u30C8\u30A2\u30FB\u30D7\u30ED\u30D0\u30A4\u30C0: "},
- {"Your.keystore.contains.keyStore.size.entry",
- "\u30AD\u30FC\u30B9\u30C8\u30A2\u306B\u306F{0,number,integer}\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u307E\u3059"},
- {"Your.keystore.contains.keyStore.size.entries",
- "\u30AD\u30FC\u30B9\u30C8\u30A2\u306B\u306F{0,number,integer}\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u307E\u3059"},
- {"Failed.to.parse.input", "\u5165\u529B\u306E\u69CB\u6587\u89E3\u6790\u306B\u5931\u6557\u3057\u307E\u3057\u305F"},
- {"Empty.input", "\u5165\u529B\u304C\u3042\u308A\u307E\u305B\u3093"},
- {"Not.X.509.certificate", "X.509\u8A3C\u660E\u66F8\u3067\u306F\u3042\u308A\u307E\u305B\u3093"},
- {"alias.has.no.public.key", "{0}\u306B\u306F\u516C\u958B\u30AD\u30FC\u304C\u3042\u308A\u307E\u305B\u3093"},
- {"alias.has.no.X.509.certificate", "{0}\u306B\u306FX.509\u8A3C\u660E\u66F8\u304C\u3042\u308A\u307E\u305B\u3093"},
- {"New.certificate.self.signed.", "\u65B0\u3057\u3044\u8A3C\u660E\u66F8(\u81EA\u5DF1\u7F72\u540D\u578B):"},
- {"Reply.has.no.certificates", "\u5FDC\u7B54\u306B\u306F\u8A3C\u660E\u66F8\u304C\u3042\u308A\u307E\u305B\u3093"},
- {"Certificate.not.imported.alias.alias.already.exists",
- "\u8A3C\u660E\u66F8\u306F\u30A4\u30F3\u30DD\u30FC\u30C8\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u5225\u540D<{0}>\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u307E\u3059"},
- {"Input.not.an.X.509.certificate", "\u5165\u529B\u306FX.509\u8A3C\u660E\u66F8\u3067\u306F\u3042\u308A\u307E\u305B\u3093"},
- {"Certificate.already.exists.in.keystore.under.alias.trustalias.",
- "\u8A3C\u660E\u66F8\u306F\u3001\u5225\u540D<{0}>\u306E\u30AD\u30FC\u30B9\u30C8\u30A2\u306B\u3059\u3067\u306B\u5B58\u5728\u3057\u307E\u3059"},
- {"Do.you.still.want.to.add.it.no.",
- "\u8FFD\u52A0\u3057\u307E\u3059\u304B\u3002[\u3044\u3044\u3048]: "},
- {"Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.",
- "\u8A3C\u660E\u66F8\u306F\u3001\u5225\u540D<{0}>\u306E\u30B7\u30B9\u30C6\u30E0\u898F\u6A21\u306ECA\u30AD\u30FC\u30B9\u30C8\u30A2\u5185\u306B\u3059\u3067\u306B\u5B58\u5728\u3057\u307E\u3059"},
- {"Do.you.still.want.to.add.it.to.your.own.keystore.no.",
- "\u30AD\u30FC\u30B9\u30C8\u30A2\u306B\u8FFD\u52A0\u3057\u307E\u3059\u304B\u3002 [\u3044\u3044\u3048]: "},
- {"Trust.this.certificate.no.", "\u3053\u306E\u8A3C\u660E\u66F8\u3092\u4FE1\u983C\u3057\u307E\u3059\u304B\u3002 [\u3044\u3044\u3048]: "},
- {"New.prompt.", "\u65B0\u898F{0}: "},
- {"Passwords.must.differ", "\u30D1\u30B9\u30EF\u30FC\u30C9\u306F\u7570\u306A\u3063\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"},
- {"Re.enter.new.prompt.", "\u65B0\u898F{0}\u3092\u518D\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044: "},
- {"Re.enter.password.", "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u518D\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044: "},
- {"Re.enter.new.password.", "\u65B0\u898F\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u518D\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044: "},
- {"They.don.t.match.Try.again", "\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u3082\u3046\u4E00\u5EA6\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044"},
- {"Enter.prompt.alias.name.", "{0}\u306E\u5225\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044: "},
- {"Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.",
- "\u65B0\u3057\u3044\u5225\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\t(\u3053\u306E\u30A8\u30F3\u30C8\u30EA\u306E\u30A4\u30F3\u30DD\u30FC\u30C8\u3092\u53D6\u308A\u6D88\u3059\u5834\u5408\u306FRETURN\u3092\u62BC\u3057\u3066\u304F\u3060\u3055\u3044): "},
- {"Enter.alias.name.", "\u5225\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044: "},
- {".RETURN.if.same.as.for.otherAlias.",
- "\t(<{0}>\u3068\u540C\u3058\u5834\u5408\u306FRETURN\u3092\u62BC\u3057\u3066\u304F\u3060\u3055\u3044)"},
- {"enter.dname.components",
- "\u8B58\u5225\u540D\u3092\u5165\u529B\u3057\u307E\u3059\u3002\u30B5\u30D6\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u7A7A\u306E\u307E\u307E\u306B\u3059\u308B\u5834\u5408\u306F\u30C9\u30C3\u30C8(.)\u30921\u3064\u5165\u529B\u3057\u3001\u4E2D\u30AB\u30C3\u30B3\u5185\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u5024\u3092\u4F7F\u7528\u3059\u308B\u5834\u5408\u306F[ENTER]\u3092\u62BC\u3057\u307E\u3059\u3002"},
- {"What.is.your.first.and.last.name.",
- "\u59D3\u540D\u306F\u4F55\u3067\u3059\u304B\u3002"},
- {"What.is.the.name.of.your.organizational.unit.",
- "\u7D44\u7E54\u5358\u4F4D\u540D\u306F\u4F55\u3067\u3059\u304B\u3002"},
- {"What.is.the.name.of.your.organization.",
- "\u7D44\u7E54\u540D\u306F\u4F55\u3067\u3059\u304B\u3002"},
- {"What.is.the.name.of.your.City.or.Locality.",
- "\u90FD\u5E02\u540D\u307E\u305F\u306F\u5730\u57DF\u540D\u306F\u4F55\u3067\u3059\u304B\u3002"},
- {"What.is.the.name.of.your.State.or.Province.",
- "\u90FD\u9053\u5E9C\u770C\u540D\u307E\u305F\u306F\u5DDE\u540D\u306F\u4F55\u3067\u3059\u304B\u3002"},
- {"What.is.the.two.letter.country.code.for.this.unit.",
- "\u3053\u306E\u5358\u4F4D\u306B\u8A72\u5F53\u3059\u308B2\u6587\u5B57\u306E\u56FD\u30B3\u30FC\u30C9\u306F\u4F55\u3067\u3059\u304B\u3002"},
- {"no.field.in.dname",
- "\u5C11\u306A\u304F\u3068\u30821\u3064\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u518D\u5EA6\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
- {"Is.name.correct.", "{0}\u3067\u3088\u308D\u3057\u3044\u3067\u3059\u304B\u3002"},
- {"no", "\u3044\u3044\u3048"},
- {"yes", "\u306F\u3044"},
- {"y", "y"},
- {".defaultValue.", " [{0}]: "},
- {"Alias.alias.has.no.key",
- "\u5225\u540D<{0}>\u306B\u306F\u30AD\u30FC\u304C\u3042\u308A\u307E\u305B\u3093"},
- {"Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key",
- "\u5225\u540D<{0}>\u304C\u53C2\u7167\u3057\u3066\u3044\u308B\u30A8\u30F3\u30C8\u30EA\u30FB\u30BF\u30A4\u30D7\u306F\u79D8\u5BC6\u30AD\u30FC\u30FB\u30A8\u30F3\u30C8\u30EA\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002-keyclone\u30B3\u30DE\u30F3\u30C9\u306F\u79D8\u5BC6\u30AD\u30FC\u30FB\u30A8\u30F3\u30C8\u30EA\u306E\u30AF\u30ED\u30FC\u30F3\u4F5C\u6210\u306E\u307F\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059"},
-
- {".WARNING.WARNING.WARNING.",
- "***************** WARNING WARNING WARNING *****************"},
- {"Signer.d.", "\u7F72\u540D\u8005\u756A\u53F7%d:"},
- {"Certificate.d.", "\u8A3C\u660E\u66F8#%d:"},
- {"Timestamp.", "\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7:"},
- {"Certificate.owner.", "\u8A3C\u660E\u66F8\u306E\u6240\u6709\u8005: "},
- {"Not.a.signed.jar.file", "\u7F72\u540D\u4ED8\u304DJAR\u30D5\u30A1\u30A4\u30EB\u3067\u306F\u3042\u308A\u307E\u305B\u3093"},
- {"No.certificate.from.the.SSL.server",
- "SSL\u30B5\u30FC\u30D0\u30FC\u304B\u3089\u306E\u8A3C\u660E\u66F8\u304C\u3042\u308A\u307E\u305B\u3093"},
-
- {".The.integrity.of.the.information.stored.in.your.keystore.",
- "*\u30AD\u30FC\u30B9\u30C8\u30A2\u306B\u4FDD\u5B58\u3055\u308C\u305F\u60C5\u5831\u306E\u6574\u5408\u6027\u306F*\n*\u691C\u8A3C\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u6574\u5408\u6027\u3092\u691C\u8A3C\u3059\u308B\u306B\u306F*\n*\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002*"},
- {".The.integrity.of.the.information.stored.in.the.srckeystore.",
- "*\u30BD\u30FC\u30B9\u30FB\u30AD\u30FC\u30B9\u30C8\u30A2\u306B\u4FDD\u5B58\u3055\u308C\u305F\u60C5\u5831\u306E\u6574\u5408\u6027\u306F*\n*\u691C\u8A3C\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u6574\u5408\u6027\u3092\u691C\u8A3C\u3059\u308B\u306B\u306F*\n*\u30BD\u30FC\u30B9\u30FB\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002*"},
-
- {"Certificate.reply.does.not.contain.public.key.for.alias.",
- "\u8A3C\u660E\u66F8\u5FDC\u7B54\u306B\u306F\u3001<{0}>\u306E\u516C\u958B\u30AD\u30FC\u306F\u542B\u307E\u308C\u307E\u305B\u3093"},
- {"Incomplete.certificate.chain.in.reply",
- "\u5FDC\u7B54\u3057\u305F\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u306F\u4E0D\u5B8C\u5168\u3067\u3059"},
- {"Top.level.certificate.in.reply.",
- "\u5FDC\u7B54\u3057\u305F\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB\u306E\u8A3C\u660E\u66F8:\n"},
- {".is.not.trusted.", "... \u306F\u4FE1\u983C\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 "},
- {"Install.reply.anyway.no.", "\u5FDC\u7B54\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u304B\u3002[\u3044\u3044\u3048]: "},
- {"Public.keys.in.reply.and.keystore.don.t.match",
- "\u5FDC\u7B54\u3057\u305F\u516C\u958B\u30AD\u30FC\u3068\u30AD\u30FC\u30B9\u30C8\u30A2\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093"},
- {"Certificate.reply.and.certificate.in.keystore.are.identical",
- "\u8A3C\u660E\u66F8\u5FDC\u7B54\u3068\u30AD\u30FC\u30B9\u30C8\u30A2\u5185\u306E\u8A3C\u660E\u66F8\u304C\u540C\u3058\u3067\u3059"},
- {"Failed.to.establish.chain.from.reply",
- "\u5FDC\u7B54\u304B\u3089\u9023\u9396\u3092\u78BA\u7ACB\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F"},
- {"n", "n"},
- {"Wrong.answer.try.again", "\u5FDC\u7B54\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3002\u3082\u3046\u4E00\u5EA6\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044"},
- {"Secret.key.not.generated.alias.alias.already.exists",
- "\u79D8\u5BC6\u30AD\u30FC\u306F\u751F\u6210\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u5225\u540D<{0}>\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u307E\u3059"},
- {"Please.provide.keysize.for.secret.key.generation",
- "\u79D8\u5BC6\u30AD\u30FC\u306E\u751F\u6210\u6642\u306B\u306F -keysize\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"},
-
- {"warning.not.verified.make.sure.keystore.is.correct",
- "\u8B66\u544A: \u691C\u8A3C\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002-keystore\u304C\u6B63\u3057\u3044\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
- {"warning.not.verified.make.sure.keystore.is.correct.or.specify.trustcacerts",
- "\u8B66\u544A: \u691C\u8A3C\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002-keystore\u304C\u6B63\u3057\u3044\u3053\u3068\u3092\u78BA\u8A8D\u3059\u308B\u304B\u3001-trustcacerts\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
-
- {"Extensions.", "\u62E1\u5F35: "},
- {".Empty.value.", "(\u7A7A\u306E\u5024)"},
- {"Extension.Request.", "\u62E1\u5F35\u30EA\u30AF\u30A8\u30B9\u30C8:"},
- {"Unknown.keyUsage.type.", "\u4E0D\u660E\u306AkeyUsage\u30BF\u30A4\u30D7: "},
- {"Unknown.extendedkeyUsage.type.", "\u4E0D\u660E\u306AextendedkeyUsage\u30BF\u30A4\u30D7: "},
- {"Unknown.AccessDescription.type.", "\u4E0D\u660E\u306AAccessDescription\u30BF\u30A4\u30D7: "},
- {"Unrecognized.GeneralName.type.", "\u8A8D\u8B58\u3055\u308C\u306A\u3044GeneralName\u30BF\u30A4\u30D7: "},
- {"This.extension.cannot.be.marked.as.critical.",
- "\u3053\u306E\u62E1\u5F35\u306F\u30AF\u30EA\u30C6\u30A3\u30AB\u30EB\u3068\u3057\u3066\u30DE\u30FC\u30AF\u4ED8\u3051\u3067\u304D\u307E\u305B\u3093\u3002 "},
- {"Odd.number.of.hex.digits.found.", "\u5947\u6570\u306E16\u9032\u6570\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F: "},
- {"Unknown.extension.type.", "\u4E0D\u660E\u306A\u62E1\u5F35\u30BF\u30A4\u30D7: "},
- {"command.{0}.is.ambiguous.", "\u30B3\u30DE\u30F3\u30C9{0}\u306F\u3042\u3044\u307E\u3044\u3067\u3059:"},
-
- // 8171319: keytool should print out warnings when reading or
- // generating cert/cert req using weak algorithms
- {"the.certificate.request", "\u8A3C\u660E\u66F8\u30EA\u30AF\u30A8\u30B9\u30C8"},
- {"the.issuer", "\u767A\u884C\u8005"},
- {"the.generated.secretkey", "\u751F\u6210\u3055\u308C\u305F\u79D8\u5BC6\u30AD\u30FC"},
- {"the.generated.certificate", "\u751F\u6210\u3055\u308C\u305F\u8A3C\u660E\u66F8"},
- {"the.generated.crl", "\u751F\u6210\u3055\u308C\u305FCRL"},
- {"the.generated.certificate.request", "\u751F\u6210\u3055\u308C\u305F\u8A3C\u660E\u66F8\u30EA\u30AF\u30A8\u30B9\u30C8"},
- {"the.certificate", "\u8A3C\u660E\u66F8"},
- {"the.crl", "CRL"},
- {"the.tsa.certificate", "TSA\u8A3C\u660E\u66F8"},
- {"the.input", "\u5165\u529B"},
- {"reply", "\u5FDC\u7B54"},
- {"one.in.many", "%1$s #%2$d / %3$d"},
- {"one.in.many1", "%1$s #%2$d"},
- {"one.in.many2", "\u7F72\u540D\u8005\u306E%1$s #%2$d"},
- {"one.in.many3", "\u7F72\u540D\u8005\u306E%1$s #%2$d #%3$d"},
- {"alias.in.cacerts", "cacerts\u5185\u306E\u767A\u884C\u8005<%s>"},
- {"alias.in.keystore", "\u767A\u884C\u8005<%s>"},
- {"with.weak", "%s (\u5F31)"},
- {"with.disabled", "%s (\u7121\u52B9)"},
- {"key.bit", "%s\u30AD\u30FC"},
- {"key.bit.weak", "%s\u30AD\u30FC(\u5F31\u3044)"},
- {"key.bit.disabled", "%s\u30AD\u30FC(\u7121\u52B9)"},
- {".PATTERN.printX509Cert.with.weak",
- "\u6240\u6709\u8005: {0}\n\u767A\u884C\u8005: {1}\n\u30B7\u30EA\u30A2\u30EB\u756A\u53F7: {2}\n\u6709\u52B9\u671F\u9593\u306E\u958B\u59CB\u65E5: {3}\u7D42\u4E86\u65E5: {4}\n\u8A3C\u660E\u66F8\u306E\u30D5\u30A3\u30F3\u30AC\u30D7\u30EA\u30F3\u30C8:\n\t SHA1: {5}\n\t SHA256: {6}\n\u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u540D: {7}\n\u30B5\u30D6\u30B8\u30A7\u30AF\u30C8\u516C\u958B\u30AD\u30FC\u30FB\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0: {8}\n\u30D0\u30FC\u30B8\u30E7\u30F3: {9}"},
- {"PKCS.10.with.weak",
- "PKCS #10\u8A3C\u660E\u66F8\u30EA\u30AF\u30A8\u30B9\u30C8(\u30D0\u30FC\u30B8\u30E7\u30F31.0)\n\u30B5\u30D6\u30B8\u30A7\u30AF\u30C8: %1$s\n\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8: %2$s\n\u516C\u958B\u30AD\u30FC: %3$s\n\u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0: %4$s\n"},
- {"verified.by.s.in.s.weak", "%2$s\u5185\u306E%1$s\u306B\u3088\u308A%3$s\u3067\u691C\u8A3C\u3055\u308C\u307E\u3057\u305F"},
- {"whose.sigalg.disabled", "%1$s\u306F%2$s\u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u3092\u4F7F\u7528\u3057\u3066\u304A\u308A\u3001\u3053\u308C\u306F\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30EA\u30B9\u30AF\u3068\u307F\u306A\u3055\u308C\u3001\u7121\u52B9\u5316\u3055\u308C\u3066\u3044\u307E\u3059\u3002"},
- {"whose.sigalg.usagesignedjar", "%1$s\u306F%2$s\u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u3092\u4F7F\u7528\u3057\u3066\u304A\u308A\u3001\u3053\u308C\u306F\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30EA\u30B9\u30AF\u3068\u307F\u306A\u3055\u308C\u307E\u3059\u3002%3$s\u306E\u5F8C\u3067JAR\u306B\u7F72\u540D\u3059\u308B\u305F\u3081\u306B\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002"},
- {"Unable.to.parse.denyAfter.string.in.exception.message", "\u4F8B\u5916\u30E1\u30C3\u30BB\u30FC\u30B8\u306EdenyAfter\u65E5\u4ED8\u6587\u5B57\u5217\u3092\u89E3\u6790\u3067\u304D\u307E\u305B\u3093"},
- {"whose.sigalg.weak", "%1$s\u306F%2$s\u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u3092\u4F7F\u7528\u3057\u3066\u304A\u308A\u3001\u3053\u308C\u306F\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30EA\u30B9\u30AF\u3068\u307F\u306A\u3055\u308C\u307E\u3059\u3002"},
- {"whose.key.disabled", "%1$s\u306F%2$s\u3092\u4F7F\u7528\u3057\u3066\u304A\u308A\u3001\u3053\u308C\u306F\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30EA\u30B9\u30AF\u3068\u307F\u306A\u3055\u308C\u3001\u7121\u52B9\u5316\u3055\u308C\u3066\u3044\u307E\u3059\u3002"},
- {"whose.key.weak", "%1$s\u306F%2$s\u3092\u4F7F\u7528\u3057\u3066\u304A\u308A\u3001\u3053\u308C\u306F\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30EA\u30B9\u30AF\u3068\u307F\u306A\u3055\u308C\u307E\u3059\u3002\u4ECA\u5F8C\u306E\u66F4\u65B0\u3067\u306F\u7121\u52B9\u306B\u306A\u308A\u307E\u3059\u3002"},
- {"jks.storetype.warning", "%1$s\u30AD\u30FC\u30B9\u30C8\u30A2\u306F\u72EC\u81EA\u306E\u5F62\u5F0F\u3092\u4F7F\u7528\u3057\u3066\u3044\u307E\u3059\u3002\"keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12\"\u3092\u4F7F\u7528\u3059\u308B\u696D\u754C\u6A19\u6E96\u306E\u5F62\u5F0F\u3067\u3042\u308BPKCS12\u306B\u79FB\u884C\u3059\u308B\u3053\u3068\u3092\u304A\u85A6\u3081\u3057\u307E\u3059\u3002"},
- {"migrate.keystore.warning", "\"%1$s\"\u304C%4$s\u306B\u79FB\u884C\u3055\u308C\u307E\u3057\u305F\u3002%2$s\u30AD\u30FC\u30B9\u30C8\u30A2\u306F\"%3$s\"\u3068\u3057\u3066\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3055\u308C\u307E\u3059\u3002"},
- {"backup.keystore.warning", "\u5143\u306E\u30AD\u30FC\u30B9\u30C8\u30A2\"%1$s\"\u306F\"%3$s\"\u3068\u3057\u3066\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3055\u308C\u307E\u3059..."},
- {"importing.keystore.status", "\u30AD\u30FC\u30B9\u30C8\u30A2%1$s\u3092%2$s\u306B\u30A4\u30F3\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u3059..."},
- {"keyalg.option.missing.error", "-keyalg\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002"},
- {"showinfo.no.option", "-showinfo\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u305B\u3093\u3002\"keytool -showinfo -tls\"\u3092\u8A66\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/Resources_ko.java b/src/java.base/share/classes/sun/security/tools/keytool/Resources_ko.java
deleted file mode 100644
index 45c88cb2e076f..0000000000000
--- a/src/java.base/share/classes/sun/security/tools/keytool/Resources_ko.java
+++ /dev/null
@@ -1,484 +0,0 @@
-/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.tools.keytool;
-
-/**
- *
This class represents the ResourceBundle
- * for the keytool.
- *
- */
-public class Resources_ko extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
- {"NEWLINE", "\n"},
- {"STAR",
- "*******************************************"},
- {"STARNN",
- "*******************************************\n\n"},
-
- // keytool: Help part
- {".OPTION.", " [OPTION]..."},
- {"Options.", "\uC635\uC158:"},
- {"option.1.set.twice", "%s \uC635\uC158\uC774 \uC5EC\uB7EC \uBC88 \uC9C0\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uB9C8\uC9C0\uB9C9 \uD56D\uBAA9\uC744 \uC81C\uC678\uD55C \uBAA8\uB4E0 \uD56D\uBAA9\uC774 \uBB34\uC2DC\uB429\uB2C8\uB2E4."},
- {"multiple.commands.1.2", "\uBA85\uB839\uC740 \uD558\uB098\uB9CC \uD5C8\uC6A9\uB429\uB2C8\uB2E4. %1$s \uBC0F %2$s\uC774(\uAC00) \uBAA8\uB450 \uC9C0\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
- {"Use.keytool.help.for.all.available.commands",
- "\uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uBAA8\uB4E0 \uBA85\uB839\uC5D0 \"keytool -help\" \uC0AC\uC6A9"},
- {"Key.and.Certificate.Management.Tool",
- "\uD0A4 \uBC0F \uC778\uC99D\uC11C \uAD00\uB9AC \uD234"},
- {"Commands.", "\uBA85\uB839:"},
- {"Use.keytool.command.name.help.for.usage.of.command.name",
- "command_name \uC0AC\uC6A9\uBC95\uC5D0 \"keytool -command_name -help\"\uB97C \uC0AC\uC6A9\uD569\uB2C8\uB2E4.\n-conf \uC635\uC158\uC744 \uC0AC\uC6A9\uD558\uC5EC \uC0AC\uC804 \uAD6C\uC131\uB41C \uC635\uC158 \uD30C\uC77C\uC744 \uC9C0\uC815\uD569\uB2C8\uB2E4."},
- // keytool: help: commands
- {"Generates.a.certificate.request",
- "\uC778\uC99D\uC11C \uC694\uCCAD\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4."}, //-certreq
- {"Changes.an.entry.s.alias",
- "\uD56D\uBAA9\uC758 \uBCC4\uCE6D\uC744 \uBCC0\uACBD\uD569\uB2C8\uB2E4."}, //-changealias
- {"Deletes.an.entry",
- "\uD56D\uBAA9\uC744 \uC0AD\uC81C\uD569\uB2C8\uB2E4."}, //-delete
- {"Exports.certificate",
- "\uC778\uC99D\uC11C\uB97C \uC775\uC2A4\uD3EC\uD2B8\uD569\uB2C8\uB2E4."}, //-exportcert
- {"Generates.a.key.pair",
- "\uD0A4 \uC30D\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4."}, //-genkeypair
- {"Generates.a.secret.key",
- "\uBCF4\uC548 \uD0A4\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4."}, //-genseckey
- {"Generates.certificate.from.a.certificate.request",
- "\uC778\uC99D\uC11C \uC694\uCCAD\uC5D0\uC11C \uC778\uC99D\uC11C\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4."}, //-gencert
- {"Generates.CRL", "CRL\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4."}, //-gencrl
- {"Generated.keyAlgName.secret.key",
- "{0} \uBCF4\uC548 \uD0A4\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4."}, //-genseckey
- {"Generated.keysize.bit.keyAlgName.secret.key",
- "{0}\uBE44\uD2B8 {1} \uBCF4\uC548 \uD0A4\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4."}, //-genseckey
- {"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
- "JDK 1.1.x \uC2A4\uD0C0\uC77C ID \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0\uC11C \uD56D\uBAA9\uC744 \uC784\uD3EC\uD2B8\uD569\uB2C8\uB2E4."}, //-identitydb
- {"Imports.a.certificate.or.a.certificate.chain",
- "\uC778\uC99D\uC11C \uB610\uB294 \uC778\uC99D\uC11C \uCCB4\uC778\uC744 \uC784\uD3EC\uD2B8\uD569\uB2C8\uB2E4."}, //-importcert
- {"Imports.a.password",
- "\uBE44\uBC00\uBC88\uD638\uB97C \uC784\uD3EC\uD2B8\uD569\uB2C8\uB2E4."}, //-importpass
- {"Imports.one.or.all.entries.from.another.keystore",
- "\uB2E4\uB978 \uD0A4 \uC800\uC7A5\uC18C\uC5D0\uC11C \uD558\uB098 \uB610\uB294 \uBAA8\uB4E0 \uD56D\uBAA9\uC744 \uC784\uD3EC\uD2B8\uD569\uB2C8\uB2E4."}, //-importkeystore
- {"Clones.a.key.entry",
- "\uD0A4 \uD56D\uBAA9\uC744 \uBCF5\uC81C\uD569\uB2C8\uB2E4."}, //-keyclone
- {"Changes.the.key.password.of.an.entry",
- "\uD56D\uBAA9\uC758 \uD0A4 \uBE44\uBC00\uBC88\uD638\uB97C \uBCC0\uACBD\uD569\uB2C8\uB2E4."}, //-keypasswd
- {"Lists.entries.in.a.keystore",
- "\uD0A4 \uC800\uC7A5\uC18C\uC758 \uD56D\uBAA9\uC744 \uB098\uC5F4\uD569\uB2C8\uB2E4."}, //-list
- {"Prints.the.content.of.a.certificate",
- "\uC778\uC99D\uC11C\uC758 \uCF58\uD150\uCE20\uB97C \uC778\uC1C4\uD569\uB2C8\uB2E4."}, //-printcert
- {"Prints.the.content.of.a.certificate.request",
- "\uC778\uC99D\uC11C \uC694\uCCAD\uC758 \uCF58\uD150\uCE20\uB97C \uC778\uC1C4\uD569\uB2C8\uB2E4."}, //-printcertreq
- {"Prints.the.content.of.a.CRL.file",
- "CRL \uD30C\uC77C\uC758 \uCF58\uD150\uCE20\uB97C \uC778\uC1C4\uD569\uB2C8\uB2E4."}, //-printcrl
- {"Generates.a.self.signed.certificate",
- "\uC790\uCCB4 \uC11C\uBA85\uB41C \uC778\uC99D\uC11C\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4."}, //-selfcert
- {"Changes.the.store.password.of.a.keystore",
- "\uD0A4 \uC800\uC7A5\uC18C\uC758 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638\uB97C \uBCC0\uACBD\uD569\uB2C8\uB2E4."}, //-storepasswd
- // keytool: help: options
- {"alias.name.of.the.entry.to.process",
- "\uCC98\uB9AC\uD560 \uD56D\uBAA9\uC758 \uBCC4\uCE6D \uC774\uB984"}, //-alias
- {"destination.alias",
- "\uB300\uC0C1 \uBCC4\uCE6D"}, //-destalias
- {"destination.key.password",
- "\uB300\uC0C1 \uD0A4 \uBE44\uBC00\uBC88\uD638"}, //-destkeypass
- {"destination.keystore.name",
- "\uB300\uC0C1 \uD0A4 \uC800\uC7A5\uC18C \uC774\uB984"}, //-destkeystore
- {"destination.keystore.password.protected",
- "\uB300\uC0C1 \uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638\uB85C \uBCF4\uD638\uB428"}, //-destprotected
- {"destination.keystore.provider.name",
- "\uB300\uC0C1 \uD0A4 \uC800\uC7A5\uC18C \uC81C\uACF5\uC790 \uC774\uB984"}, //-destprovidername
- {"destination.keystore.password",
- "\uB300\uC0C1 \uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638"}, //-deststorepass
- {"destination.keystore.type",
- "\uB300\uC0C1 \uD0A4 \uC800\uC7A5\uC18C \uC720\uD615"}, //-deststoretype
- {"distinguished.name",
- "\uC2DD\uBCC4 \uC774\uB984"}, //-dname
- {"X.509.extension",
- "X.509 \uD655\uC7A5"}, //-ext
- {"output.file.name",
- "\uCD9C\uB825 \uD30C\uC77C \uC774\uB984"}, //-file and -outfile
- {"input.file.name",
- "\uC785\uB825 \uD30C\uC77C \uC774\uB984"}, //-file and -infile
- {"key.algorithm.name",
- "\uD0A4 \uC54C\uACE0\uB9AC\uC998 \uC774\uB984"}, //-keyalg
- {"key.password",
- "\uD0A4 \uBE44\uBC00\uBC88\uD638"}, //-keypass
- {"key.bit.size",
- "\uD0A4 \uBE44\uD2B8 \uD06C\uAE30"}, //-keysize
- {"keystore.name",
- "\uD0A4 \uC800\uC7A5\uC18C \uC774\uB984"}, //-keystore
- {"access.the.cacerts.keystore",
- "cacerts \uD0A4 \uC800\uC7A5\uC18C \uC561\uC138\uC2A4"}, // -cacerts
- {"warning.cacerts.option",
- "\uACBD\uACE0: -cacerts \uC635\uC158\uC744 \uC0AC\uC6A9\uD558\uC5EC cacerts \uD0A4 \uC800\uC7A5\uC18C\uC5D0 \uC561\uC138\uC2A4\uD558\uC2ED\uC2DC\uC624."},
- {"new.password",
- "\uC0C8 \uBE44\uBC00\uBC88\uD638"}, //-new
- {"do.not.prompt",
- "\uD655\uC778\uD558\uC9C0 \uC54A\uC74C"}, //-noprompt
- {"password.through.protected.mechanism",
- "\uBCF4\uD638\uB418\uB294 \uBA54\uCEE4\uB2C8\uC998\uC744 \uD1B5\uD55C \uBE44\uBC00\uBC88\uD638"}, //-protected
-
- // The following 2 values should span 2 lines, the first for the
- // option itself, the second for its -providerArg value.
- {"addprovider.option",
- "\uC774\uB984\uBCC4 \uBCF4\uC548 \uC81C\uACF5\uC790 \uCD94\uAC00(\uC608: SunPKCS11)\n-addprovider\uC5D0 \uB300\uD55C \uC778\uC218 \uAD6C\uC131"}, //-addprovider
- {"provider.class.option",
- "\uC804\uCCB4 \uD074\uB798\uC2A4 \uC774\uB984\uBCC4 \uBCF4\uC548 \uC81C\uACF5\uC790 \uCD94\uAC00\n-providerclass\uC5D0 \uB300\uD55C \uC778\uC218 \uAD6C\uC131"}, //-providerclass
-
- {"provider.name",
- "\uC81C\uACF5\uC790 \uC774\uB984"}, //-providername
- {"provider.classpath",
- "\uC81C\uACF5\uC790 \uD074\uB798\uC2A4 \uACBD\uB85C"}, //-providerpath
- {"output.in.RFC.style",
- "RFC \uC2A4\uD0C0\uC77C\uC758 \uCD9C\uB825"}, //-rfc
- {"signature.algorithm.name",
- "\uC11C\uBA85 \uC54C\uACE0\uB9AC\uC998 \uC774\uB984"}, //-sigalg
- {"source.alias",
- "\uC18C\uC2A4 \uBCC4\uCE6D"}, //-srcalias
- {"source.key.password",
- "\uC18C\uC2A4 \uD0A4 \uBE44\uBC00\uBC88\uD638"}, //-srckeypass
- {"source.keystore.name",
- "\uC18C\uC2A4 \uD0A4 \uC800\uC7A5\uC18C \uC774\uB984"}, //-srckeystore
- {"source.keystore.password.protected",
- "\uC18C\uC2A4 \uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638\uB85C \uBCF4\uD638\uB428"}, //-srcprotected
- {"source.keystore.provider.name",
- "\uC18C\uC2A4 \uD0A4 \uC800\uC7A5\uC18C \uC81C\uACF5\uC790 \uC774\uB984"}, //-srcprovidername
- {"source.keystore.password",
- "\uC18C\uC2A4 \uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638"}, //-srcstorepass
- {"source.keystore.type",
- "\uC18C\uC2A4 \uD0A4 \uC800\uC7A5\uC18C \uC720\uD615"}, //-srcstoretype
- {"SSL.server.host.and.port",
- "SSL \uC11C\uBC84 \uD638\uC2A4\uD2B8 \uBC0F \uD3EC\uD2B8"}, //-sslserver
- {"signed.jar.file",
- "\uC11C\uBA85\uB41C jar \uD30C\uC77C"}, //=jarfile
- {"certificate.validity.start.date.time",
- "\uC778\uC99D\uC11C \uC720\uD6A8 \uAE30\uAC04 \uC2DC\uC791 \uB0A0\uC9DC/\uC2DC\uAC04"}, //-startdate
- {"keystore.password",
- "\uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638"}, //-storepass
- {"keystore.type",
- "\uD0A4 \uC800\uC7A5\uC18C \uC720\uD615"}, //-storetype
- {"trust.certificates.from.cacerts",
- "cacerts\uC758 \uBCF4\uC548 \uC778\uC99D\uC11C"}, //-trustcacerts
- {"verbose.output",
- "\uC0C1\uC138 \uC815\uBCF4 \uCD9C\uB825"}, //-v
- {"validity.number.of.days",
- "\uC720\uD6A8 \uAE30\uAC04 \uC77C \uC218"}, //-validity
- {"Serial.ID.of.cert.to.revoke",
- "\uCCA0\uD68C\uD560 \uC778\uC99D\uC11C\uC758 \uC77C\uB828 ID"}, //-id
- // keytool: Running part
- {"keytool.error.", "keytool \uC624\uB958: "},
- {"Illegal.option.", "\uC798\uBABB\uB41C \uC635\uC158: "},
- {"Illegal.value.", "\uC798\uBABB\uB41C \uAC12: "},
- {"Unknown.password.type.", "\uC54C \uC218 \uC5C6\uB294 \uBE44\uBC00\uBC88\uD638 \uC720\uD615: "},
- {"Cannot.find.environment.variable.",
- "\uD658\uACBD \uBCC0\uC218\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC74C: "},
- {"Cannot.find.file.", "\uD30C\uC77C\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC74C: "},
- {"Command.option.flag.needs.an.argument.", "\uBA85\uB839 \uC635\uC158 {0}\uC5D0 \uC778\uC218\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4."},
- {"Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.",
- "\uACBD\uACE0: \uB2E4\uB978 \uC800\uC7A5\uC18C \uBC0F \uD0A4 \uBE44\uBC00\uBC88\uD638\uB294 PKCS12 KeyStores\uC5D0 \uB300\uD574 \uC9C0\uC6D0\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uC0AC\uC6A9\uC790\uAC00 \uC9C0\uC815\uD55C {0} \uAC12\uC744 \uBB34\uC2DC\uD558\uB294 \uC911\uC785\uB2C8\uB2E4."},
- {"the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option",
- "-keystore \uB610\uB294 -storetype \uC635\uC158\uC740 -cacerts \uC635\uC158\uACFC \uD568\uAED8 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {".keystore.must.be.NONE.if.storetype.is.{0}",
- "-storetype\uC774 {0}\uC778 \uACBD\uC6B0 -keystore\uB294 NONE\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4."},
- {"Too.many.retries.program.terminated",
- "\uC7AC\uC2DC\uB3C4 \uD69F\uC218\uAC00 \uB108\uBB34 \uB9CE\uC544 \uD504\uB85C\uADF8\uB7A8\uC774 \uC885\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
- {".storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}",
- "-storetype\uC774 {0}\uC778 \uACBD\uC6B0 -storepasswd \uBC0F -keypasswd \uBA85\uB839\uC774 \uC9C0\uC6D0\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4."},
- {".keypasswd.commands.not.supported.if.storetype.is.PKCS12",
- "-storetype\uC774 PKCS12\uC778 \uACBD\uC6B0 -keypasswd \uBA85\uB839\uC774 \uC9C0\uC6D0\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4."},
- {".keypass.and.new.can.not.be.specified.if.storetype.is.{0}",
- "-storetype\uC774 {0}\uC778 \uACBD\uC6B0 -keypass \uBC0F -new\uB97C \uC9C0\uC815\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified",
- "-protected\uB97C \uC9C0\uC815\uD55C \uACBD\uC6B0 -storepass, -keypass \uBC0F -new\uB97C \uC9C0\uC815\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4."},
- {"if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "-srcprotected\uB97C \uC9C0\uC815\uD55C \uACBD\uC6B0 -srcstorepass \uBC0F -srckeypass\uB97C \uC9C0\uC815\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4."},
- {"if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified",
- "\uD0A4 \uC800\uC7A5\uC18C\uAC00 \uBE44\uBC00\uBC88\uD638\uB85C \uBCF4\uD638\uB418\uC9C0 \uC54A\uB294 \uACBD\uC6B0 -storepass, -keypass \uBC0F -new\uB97C \uC9C0\uC815\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4."},
- {"if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "\uC18C\uC2A4 \uD0A4 \uC800\uC7A5\uC18C\uAC00 \uBE44\uBC00\uBC88\uD638\uB85C \uBCF4\uD638\uB418\uC9C0 \uC54A\uB294 \uACBD\uC6B0 -srcstorepass \uBC0F -srckeypass\uB97C \uC9C0\uC815\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4."},
- {"Illegal.startdate.value", "startdate \uAC12\uC774 \uC798\uBABB\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
- {"Validity.must.be.greater.than.zero",
- "\uC720\uD6A8 \uAE30\uAC04\uC740 0\uBCF4\uB2E4 \uCEE4\uC57C \uD569\uB2C8\uB2E4."},
- {"provclass.not.a.provider", "%s\uC740(\uB294) \uC81C\uACF5\uC790\uAC00 \uC544\uB2D9\uB2C8\uB2E4."},
- {"provider.name.not.found", "\"%s\" \uC774\uB984\uC758 \uC81C\uACF5\uC790\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"provider.class.not.found", "\"%s\" \uC81C\uACF5\uC790\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"Usage.error.no.command.provided", "\uC0AC\uC6A9\uBC95 \uC624\uB958: \uBA85\uB839\uC744 \uC785\uB825\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4."},
- {"Source.keystore.file.exists.but.is.empty.", "\uC18C\uC2A4 \uD0A4 \uC800\uC7A5\uC18C \uD30C\uC77C\uC774 \uC874\uC7AC\uD558\uC9C0\uB9CC \uBE44\uC5B4 \uC788\uC74C: "},
- {"Please.specify.srckeystore", "-srckeystore\uB97C \uC9C0\uC815\uD558\uC2ED\uC2DC\uC624."},
- {"Must.not.specify.both.v.and.rfc.with.list.command",
- "'list' \uBA85\uB839\uC5D0 -v\uC640 -rfc\uB97C \uD568\uAED8 \uC9C0\uC815\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4."},
- {"Key.password.must.be.at.least.6.characters",
- "\uD0A4 \uBE44\uBC00\uBC88\uD638\uB294 6\uC790 \uC774\uC0C1\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4."},
- {"New.password.must.be.at.least.6.characters",
- "\uC0C8 \uBE44\uBC00\uBC88\uD638\uB294 6\uC790 \uC774\uC0C1\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4."},
- {"Keystore.file.exists.but.is.empty.",
- "\uD0A4 \uC800\uC7A5\uC18C \uD30C\uC77C\uC774 \uC874\uC7AC\uD558\uC9C0\uB9CC \uBE44\uC5B4 \uC788\uC74C: "},
- {"Keystore.file.does.not.exist.",
- "\uD0A4 \uC800\uC7A5\uC18C \uD30C\uC77C\uC774 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC74C: "},
- {"Must.specify.destination.alias", "\uB300\uC0C1 \uBCC4\uCE6D\uC744 \uC9C0\uC815\uD574\uC57C \uD569\uB2C8\uB2E4."},
- {"Must.specify.alias", "\uBCC4\uCE6D\uC744 \uC9C0\uC815\uD574\uC57C \uD569\uB2C8\uB2E4."},
- {"Keystore.password.must.be.at.least.6.characters",
- "\uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638\uB294 6\uC790 \uC774\uC0C1\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4."},
- {"Enter.the.password.to.be.stored.",
- "\uC800\uC7A5\uD560 \uBE44\uBC00\uBC88\uD638 \uC785\uB825: "},
- {"Enter.keystore.password.", "\uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638 \uC785\uB825: "},
- {"Enter.source.keystore.password.", "\uC18C\uC2A4 \uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638 \uC785\uB825: "},
- {"Enter.destination.keystore.password.", "\uB300\uC0C1 \uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638 \uC785\uB825: "},
- {"Keystore.password.is.too.short.must.be.at.least.6.characters",
- "\uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638\uAC00 \uB108\uBB34 \uC9E7\uC74C - 6\uC790 \uC774\uC0C1\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4."},
- {"Unknown.Entry.Type", "\uC54C \uC218 \uC5C6\uB294 \uD56D\uBAA9 \uC720\uD615"},
- {"Too.many.failures.Alias.not.changed", "\uC624\uB958\uAC00 \uB108\uBB34 \uB9CE\uC2B5\uB2C8\uB2E4. \uBCC4\uCE6D\uC774 \uBCC0\uACBD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4."},
- {"Entry.for.alias.alias.successfully.imported.",
- "{0} \uBCC4\uCE6D\uC5D0 \uB300\uD55C \uD56D\uBAA9\uC774 \uC131\uACF5\uC801\uC73C\uB85C \uC784\uD3EC\uD2B8\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
- {"Entry.for.alias.alias.not.imported.", "{0} \uBCC4\uCE6D\uC5D0 \uB300\uD55C \uD56D\uBAA9\uC774 \uC784\uD3EC\uD2B8\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4."},
- {"Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.",
- "{0} \uBCC4\uCE6D\uC5D0 \uB300\uD55C \uD56D\uBAA9\uC744 \uC784\uD3EC\uD2B8\uD558\uB294 \uC911 \uBB38\uC81C \uBC1C\uC0DD: {1}.\n{0} \uBCC4\uCE6D\uC5D0 \uB300\uD55C \uD56D\uBAA9\uC774 \uC784\uD3EC\uD2B8\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4."},
- {"Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled",
- "\uC784\uD3EC\uD2B8 \uBA85\uB839 \uC644\uB8CC: \uC131\uACF5\uC801\uC73C\uB85C \uC784\uD3EC\uD2B8\uB41C \uD56D\uBAA9\uC740 {0}\uAC1C, \uC2E4\uD328\uD558\uAC70\uB098 \uCDE8\uC18C\uB41C \uD56D\uBAA9\uC740 {1}\uAC1C\uC785\uB2C8\uB2E4."},
- {"Warning.Overwriting.existing.alias.alias.in.destination.keystore",
- "\uACBD\uACE0: \uB300\uC0C1 \uD0A4 \uC800\uC7A5\uC18C\uC5D0\uC11C \uAE30\uC874 \uBCC4\uCE6D {0}\uC744(\uB97C) \uACB9\uCCD0 \uC4F0\uB294 \uC911"},
- {"Existing.entry.alias.alias.exists.overwrite.no.",
- "\uAE30\uC874 \uD56D\uBAA9 \uBCC4\uCE6D {0}\uC774(\uAC00) \uC874\uC7AC\uD569\uB2C8\uB2E4. \uACB9\uCCD0 \uC4F0\uACA0\uC2B5\uB2C8\uAE4C? [\uC544\uB2C8\uC624]: "},
- {"Too.many.failures.try.later", "\uC624\uB958\uAC00 \uB108\uBB34 \uB9CE\uC74C - \uB098\uC911\uC5D0 \uC2DC\uB3C4\uD558\uC2ED\uC2DC\uC624."},
- {"Certification.request.stored.in.file.filename.",
- "\uC778\uC99D \uC694\uCCAD\uC774 <{0}> \uD30C\uC77C\uC5D0 \uC800\uC7A5\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
- {"Submit.this.to.your.CA", "CA\uC5D0\uAC8C \uC81C\uCD9C\uD558\uC2ED\uC2DC\uC624."},
- {"if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified",
- "\uBCC4\uCE6D\uC744 \uC9C0\uC815\uD558\uC9C0 \uC54A\uC740 \uACBD\uC6B0 destalias \uBC0F srckeypass\uB97C \uC9C0\uC815\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4."},
- {"The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.",
- "\uB300\uC0C1 pkcs12 \uD0A4 \uC800\uC7A5\uC18C\uC5D0 \uB2E4\uB978 storepass \uBC0F keypass\uAC00 \uC788\uC2B5\uB2C8\uB2E4. \uC9C0\uC815\uB41C -destkeypass\uB85C \uC7AC\uC2DC\uB3C4\uD558\uC2ED\uC2DC\uC624."},
- {"Certificate.stored.in.file.filename.",
- "\uC778\uC99D\uC11C\uAC00 <{0}> \uD30C\uC77C\uC5D0 \uC800\uC7A5\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
- {"Certificate.reply.was.installed.in.keystore",
- "\uC778\uC99D\uC11C \uD68C\uC2E0\uC774 \uD0A4 \uC800\uC7A5\uC18C\uC5D0 \uC124\uCE58\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
- {"Certificate.reply.was.not.installed.in.keystore",
- "\uC778\uC99D\uC11C \uD68C\uC2E0\uC774 \uD0A4 \uC800\uC7A5\uC18C\uC5D0 \uC124\uCE58\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4."},
- {"Certificate.was.added.to.keystore",
- "\uC778\uC99D\uC11C\uAC00 \uD0A4 \uC800\uC7A5\uC18C\uC5D0 \uCD94\uAC00\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
- {"Certificate.was.not.added.to.keystore",
- "\uC778\uC99D\uC11C\uAC00 \uD0A4 \uC800\uC7A5\uC18C\uC5D0 \uCD94\uAC00\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4."},
- {".Storing.ksfname.", "[{0}\uC744(\uB97C) \uC800\uC7A5\uD558\uB294 \uC911]"},
- {"alias.has.no.public.key.certificate.",
- "{0}\uC5D0 \uACF5\uC6A9 \uD0A4(\uC778\uC99D\uC11C)\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"Cannot.derive.signature.algorithm",
- "\uC11C\uBA85 \uC54C\uACE0\uB9AC\uC998\uC744 \uD30C\uC0DD\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"Alias.alias.does.not.exist",
- "<{0}> \uBCC4\uCE6D\uC774 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4."},
- {"Alias.alias.has.no.certificate",
- "<{0}> \uBCC4\uCE6D\uC5D0 \uC778\uC99D\uC11C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"Key.pair.not.generated.alias.alias.already.exists",
- "\uD0A4 \uC30D\uC774 \uC0DD\uC131\uB418\uC9C0 \uC54A\uC558\uC73C\uBA70 <{0}> \uBCC4\uCE6D\uC774 \uC874\uC7AC\uD569\uB2C8\uB2E4."},
- {"Generating.keysize.bit.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.validality.days.for",
- "\uB2E4\uC74C\uC5D0 \uB300\uD574 \uC720\uD6A8 \uAE30\uAC04\uC774 {3}\uC77C\uC778 {0}\uBE44\uD2B8 {1} \uD0A4 \uC30D \uBC0F \uC790\uCCB4 \uC11C\uBA85\uB41C \uC778\uC99D\uC11C({2})\uB97C \uC0DD\uC131\uD558\uB294 \uC911\n\t: {4}"},
- {"Enter.key.password.for.alias.", "<{0}>\uC5D0 \uB300\uD55C \uD0A4 \uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD558\uC2ED\uC2DC\uC624."},
- {".RETURN.if.same.as.keystore.password.",
- "\t(\uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638\uC640 \uB3D9\uC77C\uD55C \uACBD\uC6B0 Enter \uD0A4\uB97C \uB204\uB984): "},
- {"Key.password.is.too.short.must.be.at.least.6.characters",
- "\uD0A4 \uBE44\uBC00\uBC88\uD638\uAC00 \uB108\uBB34 \uC9E7\uC74C - 6\uC790 \uC774\uC0C1\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4."},
- {"Too.many.failures.key.not.added.to.keystore",
- "\uC624\uB958\uAC00 \uB108\uBB34 \uB9CE\uC74C - \uD0A4 \uC800\uC7A5\uC18C\uC5D0 \uD0A4\uAC00 \uCD94\uAC00\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4."},
- {"Destination.alias.dest.already.exists",
- "\uB300\uC0C1 \uBCC4\uCE6D <{0}>\uC774(\uAC00) \uC874\uC7AC\uD569\uB2C8\uB2E4."},
- {"Password.is.too.short.must.be.at.least.6.characters",
- "\uBE44\uBC00\uBC88\uD638\uAC00 \uB108\uBB34 \uC9E7\uC74C - 6\uC790 \uC774\uC0C1\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4."},
- {"Too.many.failures.Key.entry.not.cloned",
- "\uC624\uB958\uAC00 \uB108\uBB34 \uB9CE\uC2B5\uB2C8\uB2E4. \uD0A4 \uD56D\uBAA9\uC774 \uBCF5\uC81C\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4."},
- {"key.password.for.alias.", "<{0}>\uC5D0 \uB300\uD55C \uD0A4 \uBE44\uBC00\uBC88\uD638"},
- {"Keystore.entry.for.id.getName.already.exists",
- "<{0}>\uC5D0 \uB300\uD55C \uD0A4 \uC800\uC7A5\uC18C \uD56D\uBAA9\uC774 \uC874\uC7AC\uD569\uB2C8\uB2E4."},
- {"Creating.keystore.entry.for.id.getName.",
- "<{0}>\uC5D0 \uB300\uD55C \uD0A4 \uC800\uC7A5\uC18C \uD56D\uBAA9\uC744 \uC0DD\uC131\uD558\uB294 \uC911..."},
- {"No.entries.from.identity.database.added",
- "ID \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0\uC11C \uCD94\uAC00\uB41C \uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"Alias.name.alias", "\uBCC4\uCE6D \uC774\uB984: {0}"},
- {"Creation.date.keyStore.getCreationDate.alias.",
- "\uC0DD\uC131 \uB0A0\uC9DC: {0,date}"},
- {"alias.keyStore.getCreationDate.alias.",
- "{0}, {1,date}, "},
- {"alias.", "{0}, "},
- {"Entry.type.type.", "\uD56D\uBAA9 \uC720\uD615: {0}"},
- {"Certificate.chain.length.", "\uC778\uC99D\uC11C \uCCB4\uC778 \uAE38\uC774: "},
- {"Certificate.i.1.", "\uC778\uC99D\uC11C[{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA.256.", "\uC778\uC99D\uC11C \uC9C0\uBB38(SHA-256): "},
- {"Keystore.type.", "\uD0A4 \uC800\uC7A5\uC18C \uC720\uD615: "},
- {"Keystore.provider.", "\uD0A4 \uC800\uC7A5\uC18C \uC81C\uACF5\uC790: "},
- {"Your.keystore.contains.keyStore.size.entry",
- "\uD0A4 \uC800\uC7A5\uC18C\uC5D0 {0,number,integer}\uAC1C\uC758 \uD56D\uBAA9\uC774 \uD3EC\uD568\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4."},
- {"Your.keystore.contains.keyStore.size.entries",
- "\uD0A4 \uC800\uC7A5\uC18C\uC5D0 {0,number,integer}\uAC1C\uC758 \uD56D\uBAA9\uC774 \uD3EC\uD568\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4."},
- {"Failed.to.parse.input", "\uC785\uB825\uAC12\uC758 \uAD6C\uBB38 \uBD84\uC11D\uC744 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4."},
- {"Empty.input", "\uC785\uB825\uAC12\uC774 \uBE44\uC5B4 \uC788\uC2B5\uB2C8\uB2E4."},
- {"Not.X.509.certificate", "X.509 \uC778\uC99D\uC11C\uAC00 \uC544\uB2D9\uB2C8\uB2E4."},
- {"alias.has.no.public.key", "{0}\uC5D0 \uACF5\uC6A9 \uD0A4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"alias.has.no.X.509.certificate", "{0}\uC5D0 X.509 \uC778\uC99D\uC11C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"New.certificate.self.signed.", "\uC0C8 \uC778\uC99D\uC11C(\uC790\uCCB4 \uC11C\uBA85):"},
- {"Reply.has.no.certificates", "\uD68C\uC2E0\uC5D0 \uC778\uC99D\uC11C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"Certificate.not.imported.alias.alias.already.exists",
- "\uC778\uC99D\uC11C\uAC00 \uC784\uD3EC\uD2B8\uB418\uC9C0 \uC54A\uC558\uC73C\uBA70 <{0}> \uBCC4\uCE6D\uC774 \uC874\uC7AC\uD569\uB2C8\uB2E4."},
- {"Input.not.an.X.509.certificate", "\uC785\uB825\uC774 X.509 \uC778\uC99D\uC11C\uAC00 \uC544\uB2D9\uB2C8\uB2E4."},
- {"Certificate.already.exists.in.keystore.under.alias.trustalias.",
- "\uC778\uC99D\uC11C\uAC00 <{0}> \uBCC4\uCE6D \uC544\uB798\uC758 \uD0A4 \uC800\uC7A5\uC18C\uC5D0 \uC874\uC7AC\uD569\uB2C8\uB2E4."},
- {"Do.you.still.want.to.add.it.no.",
- "\uCD94\uAC00\uD558\uACA0\uC2B5\uB2C8\uAE4C? [\uC544\uB2C8\uC624]: "},
- {"Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.",
- "\uC778\uC99D\uC11C\uAC00 <{0}> \uBCC4\uCE6D \uC544\uB798\uC5D0 \uC788\uB294 \uC2DC\uC2A4\uD15C \uCC28\uC6D0\uC758 CA \uD0A4 \uC800\uC7A5\uC18C\uC5D0 \uC874\uC7AC\uD569\uB2C8\uB2E4."},
- {"Do.you.still.want.to.add.it.to.your.own.keystore.no.",
- "\uACE0\uC720\uD55C \uD0A4 \uC800\uC7A5\uC18C\uC5D0 \uCD94\uAC00\uD558\uACA0\uC2B5\uB2C8\uAE4C? [\uC544\uB2C8\uC624]: "},
- {"Trust.this.certificate.no.", "\uC774 \uC778\uC99D\uC11C\uB97C \uC2E0\uB8B0\uD569\uB2C8\uAE4C? [\uC544\uB2C8\uC624]: "},
- {"YES", "\uC608"},
- {"New.prompt.", "\uC0C8 {0}: "},
- {"Passwords.must.differ", "\uBE44\uBC00\uBC88\uD638\uB294 \uB2EC\uB77C\uC57C \uD569\uB2C8\uB2E4."},
- {"Re.enter.new.prompt.", "\uC0C8 {0} \uB2E4\uC2DC \uC785\uB825: "},
- {"Re.enter.password.", "\uBE44\uBC00\uBC88\uD638 \uB2E4\uC2DC \uC785\uB825: "},
- {"Re.enter.new.password.", "\uC0C8 \uBE44\uBC00\uBC88\uD638 \uB2E4\uC2DC \uC785\uB825: "},
- {"They.don.t.match.Try.again", "\uC77C\uCE58\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uC2ED\uC2DC\uC624."},
- {"Enter.prompt.alias.name.", "{0} \uBCC4\uCE6D \uC774\uB984 \uC785\uB825: "},
- {"Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.",
- "\uC0C8 \uBCC4\uCE6D \uC774\uB984 \uC785\uB825\t(\uC774 \uD56D\uBAA9\uC5D0 \uB300\uD55C \uC784\uD3EC\uD2B8\uB97C \uCDE8\uC18C\uD558\uB824\uBA74 Enter \uD0A4\uB97C \uB204\uB984): "},
- {"Enter.alias.name.", "\uBCC4\uCE6D \uC774\uB984 \uC785\uB825: "},
- {".RETURN.if.same.as.for.otherAlias.",
- "\t(<{0}>\uACFC(\uC640) \uB3D9\uC77C\uD55C \uACBD\uC6B0 Enter \uD0A4\uB97C \uB204\uB984)"},
- {"What.is.your.first.and.last.name.",
- "\uC774\uB984\uACFC \uC131\uC744 \uC785\uB825\uD558\uC2ED\uC2DC\uC624."},
- {"What.is.the.name.of.your.organizational.unit.",
- "\uC870\uC9C1 \uB2E8\uC704 \uC774\uB984\uC744 \uC785\uB825\uD558\uC2ED\uC2DC\uC624."},
- {"What.is.the.name.of.your.organization.",
- "\uC870\uC9C1 \uC774\uB984\uC744 \uC785\uB825\uD558\uC2ED\uC2DC\uC624."},
- {"What.is.the.name.of.your.City.or.Locality.",
- "\uAD6C/\uAD70/\uC2DC \uC774\uB984\uC744 \uC785\uB825\uD558\uC2ED\uC2DC\uC624?"},
- {"What.is.the.name.of.your.State.or.Province.",
- "\uC2DC/\uB3C4 \uC774\uB984\uC744 \uC785\uB825\uD558\uC2ED\uC2DC\uC624."},
- {"What.is.the.two.letter.country.code.for.this.unit.",
- "\uC774 \uC870\uC9C1\uC758 \uB450 \uC790\uB9AC \uAD6D\uAC00 \uCF54\uB4DC\uB97C \uC785\uB825\uD558\uC2ED\uC2DC\uC624."},
- {"Is.name.correct.", "{0}\uC774(\uAC00) \uB9DE\uC2B5\uB2C8\uAE4C?"},
- {"no", "\uC544\uB2C8\uC624"},
- {"yes", "\uC608"},
- {"y", "y"},
- {".defaultValue.", " [{0}]: "},
- {"Alias.alias.has.no.key",
- "<{0}> \uBCC4\uCE6D\uC5D0 \uD0A4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key",
- "<{0}> \uBCC4\uCE6D\uC740 \uC804\uC6A9 \uD0A4 \uD56D\uBAA9\uC774 \uC544\uB2CC \uD56D\uBAA9 \uC720\uD615\uC744 \uCC38\uC870\uD569\uB2C8\uB2E4. -keyclone \uBA85\uB839\uC740 \uC804\uC6A9 \uD0A4 \uD56D\uBAA9\uC758 \uBCF5\uC81C\uB9CC \uC9C0\uC6D0\uD569\uB2C8\uB2E4."},
-
- {".WARNING.WARNING.WARNING.",
- "***************** WARNING WARNING WARNING *****************"},
- {"Signer.d.", "\uC11C\uBA85\uC790 #%d:"},
- {"Timestamp.", "\uC2DC\uAC04 \uAE30\uB85D:"},
- {"Signature.", "\uC11C\uBA85:"},
- {"CRLs.", "CRL:"},
- {"Certificate.owner.", "\uC778\uC99D\uC11C \uC18C\uC720\uC790: "},
- {"Not.a.signed.jar.file", "\uC11C\uBA85\uB41C jar \uD30C\uC77C\uC774 \uC544\uB2D9\uB2C8\uB2E4."},
- {"No.certificate.from.the.SSL.server",
- "SSL \uC11C\uBC84\uC5D0\uC11C \uAC00\uC838\uC628 \uC778\uC99D\uC11C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."},
-
- {".The.integrity.of.the.information.stored.in.your.keystore.",
- "* \uD0A4 \uC800\uC7A5\uC18C\uC5D0 \uC800\uC7A5\uB41C \uC815\uBCF4\uC758 \uBB34\uACB0\uC131\uC774 *\n* \uD655\uC778\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4! \uBB34\uACB0\uC131\uC744 \uD655\uC778\uD558\uB824\uBA74, *\n* \uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638\uB97C \uC81C\uACF5\uD574\uC57C \uD569\uB2C8\uB2E4. *"},
- {".The.integrity.of.the.information.stored.in.the.srckeystore.",
- "* srckeystore\uC5D0 \uC800\uC7A5\uB41C \uC815\uBCF4\uC758 \uBB34\uACB0\uC131\uC774 *\n* \uD655\uC778\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4! \uBB34\uACB0\uC131\uC744 \uD655\uC778\uD558\uB824\uBA74, *\n* srckeystore \uBE44\uBC00\uBC88\uD638\uB97C \uC81C\uACF5\uD574\uC57C \uD569\uB2C8\uB2E4. *"},
-
- {"Certificate.reply.does.not.contain.public.key.for.alias.",
- "\uC778\uC99D\uC11C \uD68C\uC2E0\uC5D0 <{0}>\uC5D0 \uB300\uD55C \uACF5\uC6A9 \uD0A4\uAC00 \uD3EC\uD568\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4."},
- {"Incomplete.certificate.chain.in.reply",
- "\uD68C\uC2E0\uC5D0 \uBD88\uC644\uC804\uD55C \uC778\uC99D\uC11C \uCCB4\uC778\uC774 \uC788\uC2B5\uB2C8\uB2E4."},
- {"Certificate.chain.in.reply.does.not.verify.",
- "\uD68C\uC2E0\uC758 \uC778\uC99D\uC11C \uCCB4\uC778\uC774 \uD655\uC778\uB418\uC9C0 \uC54A\uC74C: "},
- {"Top.level.certificate.in.reply.",
- "\uD68C\uC2E0\uC5D0 \uCD5C\uC0C1\uC704 \uB808\uBCA8 \uC778\uC99D\uC11C\uAC00 \uC788\uC74C:\n"},
- {".is.not.trusted.", "...\uC744(\uB97C) \uC2E0\uB8B0\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. "},
- {"Install.reply.anyway.no.", "\uD68C\uC2E0\uC744 \uC124\uCE58\uD558\uACA0\uC2B5\uB2C8\uAE4C? [\uC544\uB2C8\uC624]: "},
- {"NO", "\uC544\uB2C8\uC624"},
- {"Public.keys.in.reply.and.keystore.don.t.match",
- "\uD68C\uC2E0\uACFC \uD0A4 \uC800\uC7A5\uC18C\uC758 \uACF5\uC6A9 \uD0A4\uAC00 \uC77C\uCE58\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4."},
- {"Certificate.reply.and.certificate.in.keystore.are.identical",
- "\uD68C\uC2E0\uACFC \uD0A4 \uC800\uC7A5\uC18C\uC758 \uC778\uC99D\uC11C\uAC00 \uB3D9\uC77C\uD569\uB2C8\uB2E4."},
- {"Failed.to.establish.chain.from.reply",
- "\uD68C\uC2E0\uC758 \uCCB4\uC778 \uC124\uC815\uC744 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4."},
- {"n", "n"},
- {"Wrong.answer.try.again", "\uC798\uBABB\uB41C \uC751\uB2F5\uC785\uB2C8\uB2E4. \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uC2ED\uC2DC\uC624."},
- {"Secret.key.not.generated.alias.alias.already.exists",
- "\uBCF4\uC548 \uD0A4\uAC00 \uC0DD\uC131\uB418\uC9C0 \uC54A\uC558\uC73C\uBA70 <{0}> \uBCC4\uCE6D\uC774 \uC874\uC7AC\uD569\uB2C8\uB2E4."},
- {"Please.provide.keysize.for.secret.key.generation",
- "\uBCF4\uC548 \uD0A4\uB97C \uC0DD\uC131\uD558\uB824\uBA74 -keysize\uB97C \uC81C\uACF5\uD558\uC2ED\uC2DC\uC624."},
-
- {"warning.not.verified.make.sure.keystore.is.correct",
- "\uACBD\uACE0: \uD655\uC778\uB418\uC9C0 \uC54A\uC74C. -keystore\uAC00 \uC62C\uBC14\uB978\uC9C0 \uD655\uC778\uD558\uC2ED\uC2DC\uC624."},
-
- {"Extensions.", "\uD655\uC7A5: "},
- {".Empty.value.", "(\uBE44\uC5B4 \uC788\uB294 \uAC12)"},
- {"Extension.Request.", "\uD655\uC7A5 \uC694\uCCAD:"},
- {"Unknown.keyUsage.type.", "\uC54C \uC218 \uC5C6\uB294 keyUsage \uC720\uD615: "},
- {"Unknown.extendedkeyUsage.type.", "\uC54C \uC218 \uC5C6\uB294 extendedkeyUsage \uC720\uD615: "},
- {"Unknown.AccessDescription.type.", "\uC54C \uC218 \uC5C6\uB294 AccessDescription \uC720\uD615: "},
- {"Unrecognized.GeneralName.type.", "\uC54C \uC218 \uC5C6\uB294 GeneralName \uC720\uD615: "},
- {"This.extension.cannot.be.marked.as.critical.",
- "\uC774 \uD655\uC7A5\uC740 \uC911\uC694\uD55C \uAC83\uC73C\uB85C \uD45C\uC2DC\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. "},
- {"Odd.number.of.hex.digits.found.", "\uD640\uC218 \uAC1C\uC758 16\uC9C4\uC218\uAC00 \uBC1C\uACAC\uB428: "},
- {"Unknown.extension.type.", "\uC54C \uC218 \uC5C6\uB294 \uD655\uC7A5 \uC720\uD615: "},
- {"command.{0}.is.ambiguous.", "{0} \uBA85\uB839\uC774 \uBAA8\uD638\uD568:"},
-
- // 8171319: keytool should print out warnings when reading or
- // generating cert/cert req using weak algorithms
- {"the.certificate.request", "\uC778\uC99D\uC11C \uC694\uCCAD"},
- {"the.issuer", "\uBC1C\uD589\uC790"},
- {"the.generated.certificate", "\uC0DD\uC131\uB41C \uC778\uC99D\uC11C"},
- {"the.generated.crl", "\uC0DD\uC131\uB41C CRL"},
- {"the.generated.certificate.request", "\uC0DD\uC131\uB41C \uC778\uC99D\uC11C \uC694\uCCAD"},
- {"the.certificate", "\uC778\uC99D\uC11C"},
- {"the.crl", "CRL"},
- {"the.tsa.certificate", "TSA \uC778\uC99D\uC11C"},
- {"the.input", "\uC785\uB825"},
- {"reply", "\uD68C\uC2E0"},
- {"one.in.many", "%1$s #%2$d/%3$d"},
- {"alias.in.cacerts", "cacerts\uC758 <%s> \uBC1C\uD589\uC790"},
- {"alias.in.keystore", "<%s> \uBC1C\uD589\uC790"},
- {"with.weak", "%s(\uC57D\uD568)"},
- {"key.bit", "%1$d\uBE44\uD2B8 %2$s \uD0A4"},
- {"key.bit.weak", "%1$d\uBE44\uD2B8 %2$s \uD0A4(\uC57D\uD568)"},
- {"unknown.size.1", "\uC54C \uC218 \uC5C6\uB294 \uD06C\uAE30 %s \uD0A4"},
- {".PATTERN.printX509Cert.with.weak",
- "\uC18C\uC720\uC790: {0}\n\uBC1C\uD589\uC790: {1}\n\uC77C\uB828 \uBC88\uD638: {2}\n\uC801\uD569\uD55C \uC2DC\uC791 \uB0A0\uC9DC: {3} \uC885\uB8CC \uB0A0\uC9DC: {4}\n\uC778\uC99D\uC11C \uC9C0\uBB38:\n\t SHA1: {5}\n\t SHA256: {6}\n\uC11C\uBA85 \uC54C\uACE0\uB9AC\uC998 \uC774\uB984: {7}\n\uC8FC\uCCB4 \uACF5\uC6A9 \uD0A4 \uC54C\uACE0\uB9AC\uC998: {8}\n\uBC84\uC804: {9}"},
- {"PKCS.10.with.weak",
- "PKCS #10 \uC778\uC99D\uC11C \uC694\uCCAD(1.0 \uBC84\uC804)\n\uC81C\uBAA9: %1$s\n\uD615\uC2DD: %2$s\n\uACF5\uC6A9 \uD0A4: %3$s\n\uC11C\uBA85 \uC54C\uACE0\uB9AC\uC998: %4$s\n"},
- {"verified.by.s.in.s.weak", "%3$s\uC744(\uB97C) \uD3EC\uD568\uD558\uB294 %2$s\uC758 %1$s\uC5D0 \uC758\uD574 \uD655\uC778\uB428"},
- {"whose.sigalg.risk", "%1$s\uC774(\uAC00) \uBCF4\uC548 \uC704\uD5D8\uC73C\uB85C \uAC04\uC8FC\uB418\uB294 %2$s \uC11C\uBA85 \uC54C\uACE0\uB9AC\uC998\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4."},
- {"whose.key.risk", "%1$s\uC774(\uAC00) \uBCF4\uC548 \uC704\uD5D8\uC73C\uB85C \uAC04\uC8FC\uB418\uB294 %2$s\uC744(\uB97C) \uC0AC\uC6A9\uD569\uB2C8\uB2E4."},
- {"jks.storetype.warning", "%1$s \uD0A4 \uC800\uC7A5\uC18C\uB294 \uACE0\uC720 \uD615\uC2DD\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4. \"keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12\"\uB97C \uC0AC\uC6A9\uD558\uB294 \uC0B0\uC5C5 \uD45C\uC900 \uD615\uC2DD\uC778 PKCS12\uB85C \uC774\uC804\uD558\uB294 \uAC83\uC774 \uC88B\uC2B5\uB2C8\uB2E4."},
- {"migrate.keystore.warning", "\"%1$s\"\uC744(\uB97C) %4$s(\uC73C)\uB85C \uC774\uC804\uD588\uC2B5\uB2C8\uB2E4. %2$s \uD0A4 \uC800\uC7A5\uC18C\uAC00 \"%3$s\"(\uC73C)\uB85C \uBC31\uC5C5\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
- {"backup.keystore.warning", "\uC6D0\uBCF8 \uD0A4 \uC800\uC7A5\uC18C \"%1$s\"\uC774(\uAC00) \"%3$s\"(\uC73C)\uB85C \uBC31\uC5C5\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
- {"importing.keystore.status", "\uD0A4 \uC800\uC7A5\uC18C %1$s\uC744(\uB97C) %2$s(\uC73C)\uB85C \uC784\uD3EC\uD2B8\uD558\uB294 \uC911..."},
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/Resources_pt_BR.java b/src/java.base/share/classes/sun/security/tools/keytool/Resources_pt_BR.java
deleted file mode 100644
index a83e63dbdd9bf..0000000000000
--- a/src/java.base/share/classes/sun/security/tools/keytool/Resources_pt_BR.java
+++ /dev/null
@@ -1,484 +0,0 @@
-/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.tools.keytool;
-
-/**
- *
This class represents the ResourceBundle
- * for the keytool.
- *
- */
-public class Resources_pt_BR extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
- {"NEWLINE", "\n"},
- {"STAR",
- "*******************************************"},
- {"STARNN",
- "*******************************************\n\n"},
-
- // keytool: Help part
- {".OPTION.", " [OPTION]..."},
- {"Options.", "Op\u00E7\u00F5es:"},
- {"option.1.set.twice", "A op\u00E7\u00E3o %s foi especificada v\u00E1rias vezes. Todas, exceto a \u00FAltima, ser\u00E3o ignoradas."},
- {"multiple.commands.1.2", "Somente um comando \u00E9 permitido: tanto %1$s quanto %2$s foram especificados."},
- {"Use.keytool.help.for.all.available.commands",
- "Use \"keytool -help\" para todos os comandos dispon\u00EDveis"},
- {"Key.and.Certificate.Management.Tool",
- "Ferramenta de Gerenciamento de Chave e Certificado"},
- {"Commands.", "Comandos:"},
- {"Use.keytool.command.name.help.for.usage.of.command.name",
- "Utilize \"keytool -command_name -help\" para uso de command_name.\nUtilize a op\u00E7\u00E3o -conf para especificar um arquivo de op\u00E7\u00F5es pr\u00E9-configurado."},
- // keytool: help: commands
- {"Generates.a.certificate.request",
- "Gera uma solicita\u00E7\u00E3o de certificado"}, //-certreq
- {"Changes.an.entry.s.alias",
- "Altera um alias de entrada"}, //-changealias
- {"Deletes.an.entry",
- "Exclui uma entrada"}, //-delete
- {"Exports.certificate",
- "Exporta o certificado"}, //-exportcert
- {"Generates.a.key.pair",
- "Gera um par de chaves"}, //-genkeypair
- {"Generates.a.secret.key",
- "Gera uma chave secreta"}, //-genseckey
- {"Generates.certificate.from.a.certificate.request",
- "Gera um certificado de uma solicita\u00E7\u00E3o de certificado"}, //-gencert
- {"Generates.CRL", "Gera CRL"}, //-gencrl
- {"Generated.keyAlgName.secret.key",
- "Chave secreta {0} gerada"}, //-genseckey
- {"Generated.keysize.bit.keyAlgName.secret.key",
- "Chave secreta {1} de {0} bits gerada"}, //-genseckey
- {"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
- "Importa entradas de um banco de dados de identidade JDK 1.1.x-style"}, //-identitydb
- {"Imports.a.certificate.or.a.certificate.chain",
- "Importa um certificado ou uma cadeia de certificados"}, //-importcert
- {"Imports.a.password",
- "Importa uma senha"}, //-importpass
- {"Imports.one.or.all.entries.from.another.keystore",
- "Importa uma ou todas as entradas de outra \u00E1rea de armazenamento de chaves"}, //-importkeystore
- {"Clones.a.key.entry",
- "Clona uma entrada de chave"}, //-keyclone
- {"Changes.the.key.password.of.an.entry",
- "Altera a senha da chave de uma entrada"}, //-keypasswd
- {"Lists.entries.in.a.keystore",
- "Lista entradas em uma \u00E1rea de armazenamento de chaves"}, //-list
- {"Prints.the.content.of.a.certificate",
- "Imprime o conte\u00FAdo de um certificado"}, //-printcert
- {"Prints.the.content.of.a.certificate.request",
- "Imprime o conte\u00FAdo de uma solicita\u00E7\u00E3o de certificado"}, //-printcertreq
- {"Prints.the.content.of.a.CRL.file",
- "Imprime o conte\u00FAdo de um arquivo CRL"}, //-printcrl
- {"Generates.a.self.signed.certificate",
- "Gera um certificado autoassinado"}, //-selfcert
- {"Changes.the.store.password.of.a.keystore",
- "Altera a senha de armazenamento de uma \u00E1rea de armazenamento de chaves"}, //-storepasswd
- // keytool: help: options
- {"alias.name.of.the.entry.to.process",
- "nome do alias da entrada a ser processada"}, //-alias
- {"destination.alias",
- "alias de destino"}, //-destalias
- {"destination.key.password",
- "senha da chave de destino"}, //-destkeypass
- {"destination.keystore.name",
- "nome da \u00E1rea de armazenamento de chaves de destino"}, //-destkeystore
- {"destination.keystore.password.protected",
- "senha protegida da \u00E1rea de armazenamento de chaves de destino"}, //-destprotected
- {"destination.keystore.provider.name",
- "nome do fornecedor da \u00E1rea de armazenamento de chaves de destino"}, //-destprovidername
- {"destination.keystore.password",
- "senha da \u00E1rea de armazenamento de chaves de destino"}, //-deststorepass
- {"destination.keystore.type",
- "tipo de \u00E1rea de armazenamento de chaves de destino"}, //-deststoretype
- {"distinguished.name",
- "nome distinto"}, //-dname
- {"X.509.extension",
- "extens\u00E3o X.509"}, //-ext
- {"output.file.name",
- "nome do arquivo de sa\u00EDda"}, //-file and -outfile
- {"input.file.name",
- "nome do arquivo de entrada"}, //-file and -infile
- {"key.algorithm.name",
- "nome do algoritmo da chave"}, //-keyalg
- {"key.password",
- "senha da chave"}, //-keypass
- {"key.bit.size",
- "tamanho do bit da chave"}, //-keysize
- {"keystore.name",
- "nome da \u00E1rea de armazenamento de chaves"}, //-keystore
- {"access.the.cacerts.keystore",
- "acessar a \u00E1rea de armazenamento de chaves cacerts"}, // -cacerts
- {"warning.cacerts.option",
- "Advert\u00EAncia: use a op\u00E7\u00E3o -cacerts para acessar a \u00E1rea de armazenamento de chaves cacerts"},
- {"new.password",
- "nova senha"}, //-new
- {"do.not.prompt",
- "n\u00E3o perguntar"}, //-noprompt
- {"password.through.protected.mechanism",
- "senha por meio de mecanismo protegido"}, //-protected
-
- // The following 2 values should span 2 lines, the first for the
- // option itself, the second for its -providerArg value.
- {"addprovider.option",
- "adicionar provedor de seguran\u00E7a por nome (por exemplo, SunPKCS11)\nconfigurar argumento para -addprovider"}, //-addprovider
- {"provider.class.option",
- "adicionar provedor de seguran\u00E7a por nome de classe totalmente qualificado\nconfigurar argumento para -providerclass"}, //-providerclass
-
- {"provider.name",
- "nome do fornecedor"}, //-providername
- {"provider.classpath",
- "classpath do fornecedor"}, //-providerpath
- {"output.in.RFC.style",
- "sa\u00EDda no estilo RFC"}, //-rfc
- {"signature.algorithm.name",
- "nome do algoritmo de assinatura"}, //-sigalg
- {"source.alias",
- "alias de origem"}, //-srcalias
- {"source.key.password",
- "senha da chave de origem"}, //-srckeypass
- {"source.keystore.name",
- "nome da \u00E1rea de armazenamento de chaves de origem"}, //-srckeystore
- {"source.keystore.password.protected",
- "senha protegida da \u00E1rea de armazenamento de chaves de origem"}, //-srcprotected
- {"source.keystore.provider.name",
- "nome do fornecedor da \u00E1rea de armazenamento de chaves de origem"}, //-srcprovidername
- {"source.keystore.password",
- "senha da \u00E1rea de armazenamento de chaves de origem"}, //-srcstorepass
- {"source.keystore.type",
- "tipo de \u00E1rea de armazenamento de chaves de origem"}, //-srcstoretype
- {"SSL.server.host.and.port",
- "porta e host do servidor SSL"}, //-sslserver
- {"signed.jar.file",
- "arquivo jar assinado"}, //=jarfile
- {"certificate.validity.start.date.time",
- "data/hora inicial de validade do certificado"}, //-startdate
- {"keystore.password",
- "senha da \u00E1rea de armazenamento de chaves"}, //-storepass
- {"keystore.type",
- "tipo de \u00E1rea de armazenamento de chaves"}, //-storetype
- {"trust.certificates.from.cacerts",
- "certificados confi\u00E1veis do cacerts"}, //-trustcacerts
- {"verbose.output",
- "sa\u00EDda detalhada"}, //-v
- {"validity.number.of.days",
- "n\u00FAmero de dias da validade"}, //-validity
- {"Serial.ID.of.cert.to.revoke",
- "ID de s\u00E9rie do certificado a ser revogado"}, //-id
- // keytool: Running part
- {"keytool.error.", "erro de keytool: "},
- {"Illegal.option.", "Op\u00E7\u00E3o inv\u00E1lida: "},
- {"Illegal.value.", "Valor inv\u00E1lido: "},
- {"Unknown.password.type.", "Tipo de senha desconhecido: "},
- {"Cannot.find.environment.variable.",
- "N\u00E3o \u00E9 poss\u00EDvel localizar a vari\u00E1vel do ambiente: "},
- {"Cannot.find.file.", "N\u00E3o \u00E9 poss\u00EDvel localizar o arquivo: "},
- {"Command.option.flag.needs.an.argument.", "A op\u00E7\u00E3o de comando {0} precisa de um argumento."},
- {"Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.",
- "Advert\u00EAncia: Senhas de chave e de armazenamento diferentes n\u00E3o suportadas para KeyStores PKCS12. Ignorando valor {0} especificado pelo usu\u00E1rio."},
- {"the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option",
- "A op\u00E7\u00E3o -keystore ou -storetype n\u00E3o pode ser usada com a op\u00E7\u00E3o -cacerts"},
- {".keystore.must.be.NONE.if.storetype.is.{0}",
- "-keystore deve ser NONE se -storetype for {0}"},
- {"Too.many.retries.program.terminated",
- "Excesso de tentativas de repeti\u00E7\u00E3o; programa finalizado"},
- {".storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}",
- "comandos -storepasswd e -keypasswd n\u00E3o suportados se -storetype for {0}"},
- {".keypasswd.commands.not.supported.if.storetype.is.PKCS12",
- "comandos -keypasswd n\u00E3o suportados se -storetype for PKCS12"},
- {".keypass.and.new.can.not.be.specified.if.storetype.is.{0}",
- "-keypass e -new n\u00E3o podem ser especificados se -storetype for {0}"},
- {"if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified",
- "se -protected for especificado, ent\u00E3o -storepass, -keypass e -new n\u00E3o dever\u00E3o ser especificados"},
- {"if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "se -srcprotected for especificado, ent\u00E3o -srcstorepass e -srckeypass n\u00E3o dever\u00E3o ser especificados"},
- {"if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified",
- "se a \u00E1rea de armazenamento de chaves n\u00E3o estiver protegida por senha, ent\u00E3o -storepass, -keypass e -new n\u00E3o dever\u00E3o ser especificados"},
- {"if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "se a \u00E1rea de armazenamento de chaves de origem n\u00E3o estiver protegida por senha, ent\u00E3o -srcstorepass e -srckeypass n\u00E3o dever\u00E3o ser especificados"},
- {"Illegal.startdate.value", "valor da data inicial inv\u00E1lido"},
- {"Validity.must.be.greater.than.zero",
- "A validade deve ser maior do que zero"},
- {"provclass.not.a.provider", "%s n\u00E3o \u00E9 um fornecedor"},
- {"provider.name.not.found", "O fornecedor chamado \"%s\" n\u00E3o foi encontrado"},
- {"provider.class.not.found", "Fornecedor \"%s\" n\u00E3o encontrado"},
- {"Usage.error.no.command.provided", "Erro de uso: nenhum comando fornecido"},
- {"Source.keystore.file.exists.but.is.empty.", "O arquivo da \u00E1rea de armazenamento de chaves de origem existe, mas est\u00E1 vazio: "},
- {"Please.specify.srckeystore", "Especifique -srckeystore"},
- {"Must.not.specify.both.v.and.rfc.with.list.command",
- "N\u00E3o devem ser especificados -v e -rfc com o comando 'list'"},
- {"Key.password.must.be.at.least.6.characters",
- "A senha da chave deve ter, no m\u00EDnimo, 6 caracteres"},
- {"New.password.must.be.at.least.6.characters",
- "A nova senha deve ter, no m\u00EDnimo, 6 caracteres"},
- {"Keystore.file.exists.but.is.empty.",
- "O arquivo da \u00E1rea de armazenamento de chaves existe, mas est\u00E1 vazio: "},
- {"Keystore.file.does.not.exist.",
- "O arquivo da \u00E1rea de armazenamento de chaves n\u00E3o existe. "},
- {"Must.specify.destination.alias", "Deve ser especificado um alias de destino"},
- {"Must.specify.alias", "Deve ser especificado um alias"},
- {"Keystore.password.must.be.at.least.6.characters",
- "A senha da \u00E1rea de armazenamento de chaves deve ter, no m\u00EDnimo, 6 caracteres"},
- {"Enter.the.password.to.be.stored.",
- "Digite a senha a ser armazenada: "},
- {"Enter.keystore.password.", "Informe a senha da \u00E1rea de armazenamento de chaves: "},
- {"Enter.source.keystore.password.", "Informe a senha da \u00E1rea de armazenamento de chaves de origem: "},
- {"Enter.destination.keystore.password.", "Informe a senha da \u00E1rea de armazenamento de chaves de destino: "},
- {"Keystore.password.is.too.short.must.be.at.least.6.characters",
- "A senha da \u00E1rea de armazenamento de chaves \u00E9 muito curta - ela deve ter, no m\u00EDnimo, 6 caracteres"},
- {"Unknown.Entry.Type", "Tipo de Entrada Desconhecido"},
- {"Too.many.failures.Alias.not.changed", "Excesso de falhas. Alias n\u00E3o alterado"},
- {"Entry.for.alias.alias.successfully.imported.",
- "Entrada do alias {0} importada com \u00EAxito."},
- {"Entry.for.alias.alias.not.imported.", "Entrada do alias {0} n\u00E3o importada."},
- {"Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.",
- "Problema ao importar a entrada do alias {0}: {1}.\nEntrada do alias {0} n\u00E3o importada."},
- {"Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled",
- "Comando de importa\u00E7\u00E3o conclu\u00EDdo: {0} entradas importadas com \u00EAxito, {1} entradas falharam ou foram canceladas"},
- {"Warning.Overwriting.existing.alias.alias.in.destination.keystore",
- "Advert\u00EAncia: Substitui\u00E7\u00E3o do alias {0} existente na \u00E1rea de armazenamento de chaves de destino"},
- {"Existing.entry.alias.alias.exists.overwrite.no.",
- "Entrada j\u00E1 existente no alias {0}, substituir? [n\u00E3o]: "},
- {"Too.many.failures.try.later", "Excesso de falhas - tente mais tarde"},
- {"Certification.request.stored.in.file.filename.",
- "Solicita\u00E7\u00E3o de certificado armazenada no arquivo <{0}>"},
- {"Submit.this.to.your.CA", "Submeter \u00E0 CA"},
- {"if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified",
- "se o alias n\u00E3o estiver especificado, destalias e srckeypass n\u00E3o dever\u00E3o ser especificados"},
- {"The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.",
- "O armazenamento de chaves pkcs12 de destino tem storepass e keypass diferentes. Tente novamente especificando -destkeypass."},
- {"Certificate.stored.in.file.filename.",
- "Certificado armazenado no arquivo <{0}>"},
- {"Certificate.reply.was.installed.in.keystore",
- "A resposta do certificado foi instalada na \u00E1rea de armazenamento de chaves"},
- {"Certificate.reply.was.not.installed.in.keystore",
- "A resposta do certificado n\u00E3o foi instalada na \u00E1rea de armazenamento de chaves"},
- {"Certificate.was.added.to.keystore",
- "O certificado foi adicionado \u00E0 \u00E1rea de armazenamento de chaves"},
- {"Certificate.was.not.added.to.keystore",
- "O certificado n\u00E3o foi adicionado \u00E0 \u00E1rea de armazenamento de chaves"},
- {".Storing.ksfname.", "[Armazenando {0}]"},
- {"alias.has.no.public.key.certificate.",
- "{0} n\u00E3o tem chave p\u00FAblica (certificado)"},
- {"Cannot.derive.signature.algorithm",
- "N\u00E3o \u00E9 poss\u00EDvel obter um algoritmo de assinatura"},
- {"Alias.alias.does.not.exist",
- "O alias <{0}> n\u00E3o existe"},
- {"Alias.alias.has.no.certificate",
- "O alias <{0}> n\u00E3o tem certificado"},
- {"Key.pair.not.generated.alias.alias.already.exists",
- "Par de chaves n\u00E3o gerado; o alias <{0}> j\u00E1 existe"},
- {"Generating.keysize.bit.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.validality.days.for",
- "Gerando o par de chaves {1} de {0} bit e o certificado autoassinado ({2}) com uma validade de {3} dias\n\tpara: {4}"},
- {"Enter.key.password.for.alias.", "Informar a senha da chave de <{0}>"},
- {".RETURN.if.same.as.keystore.password.",
- "\t(RETURN se for igual \u00E0 senha da \u00E1rea do armazenamento de chaves): "},
- {"Key.password.is.too.short.must.be.at.least.6.characters",
- "A senha da chave \u00E9 muito curta - deve ter, no m\u00EDnimo, 6 caracteres"},
- {"Too.many.failures.key.not.added.to.keystore",
- "Excesso de falhas - chave n\u00E3o adicionada a \u00E1rea de armazenamento de chaves"},
- {"Destination.alias.dest.already.exists",
- "O alias de destino <{0}> j\u00E1 existe"},
- {"Password.is.too.short.must.be.at.least.6.characters",
- "A senha \u00E9 muito curta - deve ter, no m\u00EDnimo, 6 caracteres"},
- {"Too.many.failures.Key.entry.not.cloned",
- "Excesso de falhas. Entrada da chave n\u00E3o clonada"},
- {"key.password.for.alias.", "senha da chave de <{0}>"},
- {"Keystore.entry.for.id.getName.already.exists",
- "A entrada da \u00E1rea do armazenamento de chaves de <{0}> j\u00E1 existe"},
- {"Creating.keystore.entry.for.id.getName.",
- "Criando entrada da \u00E1rea do armazenamento de chaves para <{0}> ..."},
- {"No.entries.from.identity.database.added",
- "Nenhuma entrada adicionada do banco de dados de identidades"},
- {"Alias.name.alias", "Nome do alias: {0}"},
- {"Creation.date.keyStore.getCreationDate.alias.",
- "Data de cria\u00E7\u00E3o: {0,date}"},
- {"alias.keyStore.getCreationDate.alias.",
- "{0}, {1,date}, "},
- {"alias.", "{0}, "},
- {"Entry.type.type.", "Tipo de entrada: {0}"},
- {"Certificate.chain.length.", "Comprimento da cadeia de certificados: "},
- {"Certificate.i.1.", "Certificado[{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA.256.", "Fingerprint (SHA-256) do certificado: "},
- {"Keystore.type.", "Tipo de \u00E1rea de armazenamento de chaves: "},
- {"Keystore.provider.", "Fornecedor da \u00E1rea de armazenamento de chaves: "},
- {"Your.keystore.contains.keyStore.size.entry",
- "Sua \u00E1rea de armazenamento de chaves cont\u00E9m {0,number,integer} entrada"},
- {"Your.keystore.contains.keyStore.size.entries",
- "Sua \u00E1rea de armazenamento de chaves cont\u00E9m {0,number,integer} entradas"},
- {"Failed.to.parse.input", "Falha durante o parsing da entrada"},
- {"Empty.input", "Entrada vazia"},
- {"Not.X.509.certificate", "N\u00E3o \u00E9 um certificado X.509"},
- {"alias.has.no.public.key", "{0} n\u00E3o tem chave p\u00FAblica"},
- {"alias.has.no.X.509.certificate", "{0} n\u00E3o tem certificado X.509"},
- {"New.certificate.self.signed.", "Novo certificado (autoassinado):"},
- {"Reply.has.no.certificates", "A resposta n\u00E3o tem certificado"},
- {"Certificate.not.imported.alias.alias.already.exists",
- "Certificado n\u00E3o importado, o alias <{0}> j\u00E1 existe"},
- {"Input.not.an.X.509.certificate", "A entrada n\u00E3o \u00E9 um certificado X.509"},
- {"Certificate.already.exists.in.keystore.under.alias.trustalias.",
- "O certificado j\u00E1 existe no armazenamento de chaves no alias <{0}>"},
- {"Do.you.still.want.to.add.it.no.",
- "Ainda deseja adicion\u00E1-lo? [n\u00E3o]: "},
- {"Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.",
- "O certificado j\u00E1 existe na \u00E1rea de armazenamento de chaves da CA em todo o sistema no alias <{0}>"},
- {"Do.you.still.want.to.add.it.to.your.own.keystore.no.",
- "Ainda deseja adicion\u00E1-lo \u00E0 sua \u00E1rea de armazenamento de chaves? [n\u00E3o]: "},
- {"Trust.this.certificate.no.", "Confiar neste certificado? [n\u00E3o]: "},
- {"YES", "SIM"},
- {"New.prompt.", "Nova {0}: "},
- {"Passwords.must.differ", "As senhas devem ser diferentes"},
- {"Re.enter.new.prompt.", "Informe novamente a nova {0}: "},
- {"Re.enter.password.", "Redigite a senha: "},
- {"Re.enter.new.password.", "Informe novamente a nova senha: "},
- {"They.don.t.match.Try.again", "Elas n\u00E3o correspondem. Tente novamente"},
- {"Enter.prompt.alias.name.", "Informe o nome do alias {0}: "},
- {"Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.",
- "Informe o novo nome do alias\t(RETURN para cancelar a importa\u00E7\u00E3o desta entrada): "},
- {"Enter.alias.name.", "Informe o nome do alias: "},
- {".RETURN.if.same.as.for.otherAlias.",
- "\t(RETURN se for igual ao de <{0}>)"},
- {"What.is.your.first.and.last.name.",
- "Qual \u00E9 o seu nome e o seu sobrenome?"},
- {"What.is.the.name.of.your.organizational.unit.",
- "Qual \u00E9 o nome da sua unidade organizacional?"},
- {"What.is.the.name.of.your.organization.",
- "Qual \u00E9 o nome da sua empresa?"},
- {"What.is.the.name.of.your.City.or.Locality.",
- "Qual \u00E9 o nome da sua Cidade ou Localidade?"},
- {"What.is.the.name.of.your.State.or.Province.",
- "Qual \u00E9 o nome do seu Estado ou Munic\u00EDpio?"},
- {"What.is.the.two.letter.country.code.for.this.unit.",
- "Quais s\u00E3o as duas letras do c\u00F3digo do pa\u00EDs desta unidade?"},
- {"Is.name.correct.", "{0} Est\u00E1 correto?"},
- {"no", "n\u00E3o"},
- {"yes", "sim"},
- {"y", "s"},
- {".defaultValue.", " [{0}]: "},
- {"Alias.alias.has.no.key",
- "O alias <{0}> n\u00E3o tem chave"},
- {"Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key",
- "O alias <{0}> faz refer\u00EAncia a um tipo de entrada que n\u00E3o \u00E9 uma entrada de chave privada. O comando -keyclone oferece suporte somente \u00E0 clonagem de entradas de chave privada"},
-
- {".WARNING.WARNING.WARNING.",
- "***************** WARNING WARNING WARNING *****************"},
- {"Signer.d.", "Signat\u00E1rio #%d:"},
- {"Timestamp.", "Timestamp:"},
- {"Signature.", "Assinatura:"},
- {"CRLs.", "CRLs:"},
- {"Certificate.owner.", "Propriet\u00E1rio do certificado: "},
- {"Not.a.signed.jar.file", "N\u00E3o \u00E9 um arquivo jar assinado"},
- {"No.certificate.from.the.SSL.server",
- "N\u00E3o \u00E9 um certificado do servidor SSL"},
-
- {".The.integrity.of.the.information.stored.in.your.keystore.",
- "* A integridade das informa\u00E7\u00F5es armazenadas na sua \u00E1rea de armazenamento de chaves *\n* N\u00C3O foi verificada! Para que seja poss\u00EDvel verificar sua integridade, *\n* voc\u00EA deve fornecer a senha da \u00E1rea de armazenamento de chaves. *"},
- {".The.integrity.of.the.information.stored.in.the.srckeystore.",
- "* A integridade das informa\u00E7\u00F5es armazenadas no srckeystore *\n* N\u00C3O foi verificada! Para que seja poss\u00EDvel verificar sua integridade, *\n* voc\u00EA deve fornecer a senha do srckeystore. *"},
-
- {"Certificate.reply.does.not.contain.public.key.for.alias.",
- "A resposta do certificado n\u00E3o cont\u00E9m a chave p\u00FAblica de <{0}>"},
- {"Incomplete.certificate.chain.in.reply",
- "Cadeia de certificados incompleta na resposta"},
- {"Certificate.chain.in.reply.does.not.verify.",
- "A cadeia de certificados da resposta n\u00E3o verifica: "},
- {"Top.level.certificate.in.reply.",
- "Certificado de n\u00EDvel superior na resposta:\n"},
- {".is.not.trusted.", "... n\u00E3o \u00E9 confi\u00E1vel. "},
- {"Install.reply.anyway.no.", "Instalar resposta assim mesmo? [n\u00E3o]: "},
- {"NO", "N\u00C3O"},
- {"Public.keys.in.reply.and.keystore.don.t.match",
- "As chaves p\u00FAblicas da resposta e da \u00E1rea de armazenamento de chaves n\u00E3o correspondem"},
- {"Certificate.reply.and.certificate.in.keystore.are.identical",
- "O certificado da resposta e o certificado da \u00E1rea de armazenamento de chaves s\u00E3o id\u00EAnticos"},
- {"Failed.to.establish.chain.from.reply",
- "Falha ao estabelecer a cadeia a partir da resposta"},
- {"n", "n"},
- {"Wrong.answer.try.again", "Resposta errada; tente novamente"},
- {"Secret.key.not.generated.alias.alias.already.exists",
- "Chave secreta n\u00E3o gerada; o alias <{0}> j\u00E1 existe"},
- {"Please.provide.keysize.for.secret.key.generation",
- "Forne\u00E7a o -keysize para a gera\u00E7\u00E3o da chave secreta"},
-
- {"warning.not.verified.make.sure.keystore.is.correct",
- "ADVERT\u00CANCIA: n\u00E3o verificado. Certifique-se que -keystore esteja correto."},
-
- {"Extensions.", "Extens\u00F5es: "},
- {".Empty.value.", "(Valor vazio)"},
- {"Extension.Request.", "Solicita\u00E7\u00E3o de Extens\u00E3o:"},
- {"Unknown.keyUsage.type.", "Tipo de keyUsage desconhecido: "},
- {"Unknown.extendedkeyUsage.type.", "Tipo de extendedkeyUsage desconhecido: "},
- {"Unknown.AccessDescription.type.", "Tipo de AccessDescription desconhecido: "},
- {"Unrecognized.GeneralName.type.", "Tipo de GeneralName n\u00E3o reconhecido: "},
- {"This.extension.cannot.be.marked.as.critical.",
- "Esta extens\u00E3o n\u00E3o pode ser marcada como cr\u00EDtica. "},
- {"Odd.number.of.hex.digits.found.", "Encontrado n\u00FAmero \u00EDmpar de seis d\u00EDgitos: "},
- {"Unknown.extension.type.", "Tipo de extens\u00E3o desconhecido: "},
- {"command.{0}.is.ambiguous.", "o comando {0} \u00E9 amb\u00EDguo:"},
-
- // 8171319: keytool should print out warnings when reading or
- // generating cert/cert req using weak algorithms
- {"the.certificate.request", "A solicita\u00E7\u00E3o do certificado"},
- {"the.issuer", "O emissor"},
- {"the.generated.certificate", "O certificado gerado"},
- {"the.generated.crl", "A CRL gerada"},
- {"the.generated.certificate.request", "A solicita\u00E7\u00E3o do certificado gerada"},
- {"the.certificate", "O certificado"},
- {"the.crl", "A CRL"},
- {"the.tsa.certificate", "O certificado TSA"},
- {"the.input", "A entrada"},
- {"reply", "Resposta"},
- {"one.in.many", "%1$s #%2$d de %3$d"},
- {"alias.in.cacerts", "Emissor <%s> no cacerts"},
- {"alias.in.keystore", "Emissor <%s>"},
- {"with.weak", "%s (fraca)"},
- {"key.bit", "Chave %2$s de %1$d bits"},
- {"key.bit.weak", "Chave %2$s de %1$d bits (fraca)"},
- {"unknown.size.1", "chave de tamanho desconhecido %s"},
- {".PATTERN.printX509Cert.with.weak",
- "Propriet\u00E1rio: {0}\nEmissor: {1}\nN\u00FAmero de s\u00E9rie: {2}\nV\u00E1lido de: {3} at\u00E9: {4}\nFingerprints do certificado:\n\t SHA1: {5}\n\t SHA256: {6}\nNome do algoritmo de assinatura: {7}\nAlgoritmo de Chave P\u00FAblica do Assunto: {8}\nVers\u00E3o: {9}"},
- {"PKCS.10.with.weak",
- "Solicita\u00E7\u00E3o do Certificado PKCS #10 (Vers\u00E3o 1.0)\nAssunto: %1$s\nFormato: %2$s\nChave P\u00FAblica: %3$s\nAlgoritmo de assinatura: %4$s\n"},
- {"verified.by.s.in.s.weak", "Verificado por %1$s em %2$s com um %3$s"},
- {"whose.sigalg.risk", "%1$s usa o algoritmo de assinatura %2$s que \u00E9 considerado um risco \u00E0 seguran\u00E7a."},
- {"whose.key.risk", "%1$s usa um %2$s que \u00E9 considerado um risco \u00E0 seguran\u00E7a."},
- {"jks.storetype.warning", "O armazenamento de chaves %1$s usa um formato propriet\u00E1rio. \u00C9 recomendada a migra\u00E7\u00E3o para PKCS12, que \u00E9 um formato de padr\u00E3o industrial que usa \"keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12\"."},
- {"migrate.keystore.warning", "\"%1$s\" foi migrado para %4$s. O backup do armazenamento de chaves %2$s \u00E9 feito como \"%3$s\"."},
- {"backup.keystore.warning", "O backup do armazenamento de chaves original \"%1$s\" \u00E9 feito como \"%3$s\"..."},
- {"importing.keystore.status", "Importando armazenamento de chaves %1$s to %2$s..."},
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/Resources_sv.java b/src/java.base/share/classes/sun/security/tools/keytool/Resources_sv.java
deleted file mode 100644
index ee83e853b2849..0000000000000
--- a/src/java.base/share/classes/sun/security/tools/keytool/Resources_sv.java
+++ /dev/null
@@ -1,484 +0,0 @@
-/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.tools.keytool;
-
-/**
- *
This class represents the ResourceBundle
- * for the keytool.
- *
- */
-public class Resources_sv extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
- {"NEWLINE", "\n"},
- {"STAR",
- "*******************************************"},
- {"STARNN",
- "*******************************************\n\n"},
-
- // keytool: Help part
- {".OPTION.", " [OPTION]..."},
- {"Options.", "Alternativ:"},
- {"option.1.set.twice", "Du har angett alternativet %s flera g\u00E5nger. Alla f\u00F6rutom det sista ignoreras."},
- {"multiple.commands.1.2", "Endast ett kommando \u00E4r till\u00E5tet: du har angett b\u00E5de %1$s och %2$s."},
- {"Use.keytool.help.for.all.available.commands",
- "L\u00E4s \"Hj\u00E4lp - Nyckelverktyg\" f\u00F6r alla tillg\u00E4ngliga kommandon"},
- {"Key.and.Certificate.Management.Tool",
- "Hanteringsverktyg f\u00F6r nycklar och certifikat"},
- {"Commands.", "Kommandon:"},
- {"Use.keytool.command.name.help.for.usage.of.command.name",
- "Anv\u00E4nd \"keytool -command_name -help\" f\u00F6r syntax f\u00F6r command_name.\nAnv\u00E4nd alternativet -conf f\u00F6r att ange en f\u00F6rkonfigurerad alternativfil."},
- // keytool: help: commands
- {"Generates.a.certificate.request",
- "Genererar certifikatbeg\u00E4ran"}, //-certreq
- {"Changes.an.entry.s.alias",
- "\u00C4ndrar postalias"}, //-changealias
- {"Deletes.an.entry",
- "Tar bort en post"}, //-delete
- {"Exports.certificate",
- "Exporterar certifikat"}, //-exportcert
- {"Generates.a.key.pair",
- "Genererar nyckelpar"}, //-genkeypair
- {"Generates.a.secret.key",
- "Genererar hemlig nyckel"}, //-genseckey
- {"Generates.certificate.from.a.certificate.request",
- "Genererar certifikat fr\u00E5n certifikatbeg\u00E4ran"}, //-gencert
- {"Generates.CRL", "Genererar CRL"}, //-gencrl
- {"Generated.keyAlgName.secret.key",
- "Genererade {0} hemlig nyckel"}, //-genseckey
- {"Generated.keysize.bit.keyAlgName.secret.key",
- "Genererade {0}-bitars {1} hemlig nyckel"}, //-genseckey
- {"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
- "Importerar poster fr\u00E5n identitetsdatabas i JDK 1.1.x-format"}, //-identitydb
- {"Imports.a.certificate.or.a.certificate.chain",
- "Importerar ett certifikat eller en certifikatkedja"}, //-importcert
- {"Imports.a.password",
- "Importerar ett l\u00F6senord"}, //-importpass
- {"Imports.one.or.all.entries.from.another.keystore",
- "Importerar en eller alla poster fr\u00E5n annat nyckellager"}, //-importkeystore
- {"Clones.a.key.entry",
- "Klonar en nyckelpost"}, //-keyclone
- {"Changes.the.key.password.of.an.entry",
- "\u00C4ndrar nyckell\u00F6senordet f\u00F6r en post"}, //-keypasswd
- {"Lists.entries.in.a.keystore",
- "Visar lista \u00F6ver poster i nyckellager"}, //-list
- {"Prints.the.content.of.a.certificate",
- "Skriver ut inneh\u00E5llet i ett certifikat"}, //-printcert
- {"Prints.the.content.of.a.certificate.request",
- "Skriver ut inneh\u00E5llet i en certifikatbeg\u00E4ran"}, //-printcertreq
- {"Prints.the.content.of.a.CRL.file",
- "Skriver ut inneh\u00E5llet i en CRL-fil"}, //-printcrl
- {"Generates.a.self.signed.certificate",
- "Genererar ett sj\u00E4lvsignerat certifikat"}, //-selfcert
- {"Changes.the.store.password.of.a.keystore",
- "\u00C4ndrar lagerl\u00F6senordet f\u00F6r ett nyckellager"}, //-storepasswd
- // keytool: help: options
- {"alias.name.of.the.entry.to.process",
- "aliasnamn f\u00F6r post som ska bearbetas"}, //-alias
- {"destination.alias",
- "destinationsalias"}, //-destalias
- {"destination.key.password",
- "l\u00F6senord f\u00F6r destinationsnyckel"}, //-destkeypass
- {"destination.keystore.name",
- "namn p\u00E5 destinationsnyckellager"}, //-destkeystore
- {"destination.keystore.password.protected",
- "skyddat l\u00F6senord f\u00F6r destinationsnyckellager"}, //-destprotected
- {"destination.keystore.provider.name",
- "leverant\u00F6rsnamn f\u00F6r destinationsnyckellager"}, //-destprovidername
- {"destination.keystore.password",
- "l\u00F6senord f\u00F6r destinationsnyckellager"}, //-deststorepass
- {"destination.keystore.type",
- "typ av destinationsnyckellager"}, //-deststoretype
- {"distinguished.name",
- "unikt namn"}, //-dname
- {"X.509.extension",
- "X.509-till\u00E4gg"}, //-ext
- {"output.file.name",
- "namn p\u00E5 utdatafil"}, //-file and -outfile
- {"input.file.name",
- "namn p\u00E5 indatafil"}, //-file and -infile
- {"key.algorithm.name",
- "namn p\u00E5 nyckelalgoritm"}, //-keyalg
- {"key.password",
- "nyckell\u00F6senord"}, //-keypass
- {"key.bit.size",
- "nyckelbitstorlek"}, //-keysize
- {"keystore.name",
- "namn p\u00E5 nyckellager"}, //-keystore
- {"access.the.cacerts.keystore",
- "\u00E5tkomst till nyckellagret cacerts"}, // -cacerts
- {"warning.cacerts.option",
- "Varning: anv\u00E4nd alternativet -cacerts f\u00F6r att f\u00E5 \u00E5tkomst till nyckellagret cacerts"},
- {"new.password",
- "nytt l\u00F6senord"}, //-new
- {"do.not.prompt",
- "fr\u00E5ga inte"}, //-noprompt
- {"password.through.protected.mechanism",
- "l\u00F6senord med skyddad mekanism"}, //-protected
-
- // The following 2 values should span 2 lines, the first for the
- // option itself, the second for its -providerArg value.
- {"addprovider.option",
- "l\u00E4gg till s\u00E4kerhetsleverant\u00F6r per namn (t.ex. SunPKCS11)\nkonfigurera argument f\u00F6r -addprovider"}, //-addprovider
- {"provider.class.option",
- "l\u00E4gg till s\u00E4kerhetsleverant\u00F6r per fullt kvalificerat klassnamn\nkonfigurera argument f\u00F6r -providerclass"}, //-providerclass
-
- {"provider.name",
- "leverant\u00F6rsnamn"}, //-providername
- {"provider.classpath",
- "leverant\u00F6rsklass\u00F6kv\u00E4g"}, //-providerpath
- {"output.in.RFC.style",
- "utdata i RFC-format"}, //-rfc
- {"signature.algorithm.name",
- "namn p\u00E5 signaturalgoritm"}, //-sigalg
- {"source.alias",
- "k\u00E4llalias"}, //-srcalias
- {"source.key.password",
- "l\u00F6senord f\u00F6r k\u00E4llnyckel"}, //-srckeypass
- {"source.keystore.name",
- "namn p\u00E5 k\u00E4llnyckellager"}, //-srckeystore
- {"source.keystore.password.protected",
- "skyddat l\u00F6senord f\u00F6r k\u00E4llnyckellager"}, //-srcprotected
- {"source.keystore.provider.name",
- "leverant\u00F6rsnamn f\u00F6r k\u00E4llnyckellager"}, //-srcprovidername
- {"source.keystore.password",
- "l\u00F6senord f\u00F6r k\u00E4llnyckellager"}, //-srcstorepass
- {"source.keystore.type",
- "typ av k\u00E4llnyckellager"}, //-srcstoretype
- {"SSL.server.host.and.port",
- "SSL-serverv\u00E4rd och -port"}, //-sslserver
- {"signed.jar.file",
- "signerad jar-fil"}, //=jarfile
- {"certificate.validity.start.date.time",
- "startdatum/-tid f\u00F6r certifikatets giltighet"}, //-startdate
- {"keystore.password",
- "l\u00F6senord f\u00F6r nyckellager"}, //-storepass
- {"keystore.type",
- "nyckellagertyp"}, //-storetype
- {"trust.certificates.from.cacerts",
- "tillf\u00F6rlitliga certifikat fr\u00E5n cacerts"}, //-trustcacerts
- {"verbose.output",
- "utf\u00F6rliga utdata"}, //-v
- {"validity.number.of.days",
- "antal dagar f\u00F6r giltighet"}, //-validity
- {"Serial.ID.of.cert.to.revoke",
- "Serienummer p\u00E5 certifikat som ska \u00E5terkallas"}, //-id
- // keytool: Running part
- {"keytool.error.", "nyckelverktygsfel: "},
- {"Illegal.option.", "Otill\u00E5tet alternativ: "},
- {"Illegal.value.", "Otill\u00E5tet v\u00E4rde: "},
- {"Unknown.password.type.", "Ok\u00E4nd l\u00F6senordstyp: "},
- {"Cannot.find.environment.variable.",
- "Hittar inte milj\u00F6variabel: "},
- {"Cannot.find.file.", "Hittar inte fil: "},
- {"Command.option.flag.needs.an.argument.", "Kommandoalternativet {0} beh\u00F6ver ett argument."},
- {"Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.",
- "Varning! PKCS12-nyckellager har inte st\u00F6d f\u00F6r olika l\u00F6senord f\u00F6r lagret och nyckeln. Det anv\u00E4ndarspecificerade {0}-v\u00E4rdet ignoreras."},
- {"the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option",
- "Alternativen -keystore och -storetype kan inte anv\u00E4ndas med alternativet -cacerts"},
- {".keystore.must.be.NONE.if.storetype.is.{0}",
- "-keystore m\u00E5ste vara NONE om -storetype \u00E4r {0}"},
- {"Too.many.retries.program.terminated",
- "F\u00F6r m\u00E5nga f\u00F6rs\u00F6k. Programmet avslutas"},
- {".storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}",
- "-storepasswd- och -keypasswd-kommandon st\u00F6ds inte om -storetype \u00E4r {0}"},
- {".keypasswd.commands.not.supported.if.storetype.is.PKCS12",
- "-keypasswd-kommandon st\u00F6ds inte om -storetype \u00E4r PKCS12"},
- {".keypass.and.new.can.not.be.specified.if.storetype.is.{0}",
- "-keypass och -new kan inte anges om -storetype \u00E4r {0}"},
- {"if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified",
- "om -protected har angetts f\u00E5r inte -storepass, -keypass och -new anges"},
- {"if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "om -srcprotected anges f\u00E5r -srcstorepass och -srckeypass inte anges"},
- {"if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified",
- "om nyckellagret inte \u00E4r l\u00F6senordsskyddat f\u00E5r -storepass, -keypass och -new inte anges"},
- {"if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "om k\u00E4llnyckellagret inte \u00E4r l\u00F6senordsskyddat f\u00E5r -srcstorepass och -srckeypass inte anges"},
- {"Illegal.startdate.value", "Otill\u00E5tet v\u00E4rde f\u00F6r startdatum"},
- {"Validity.must.be.greater.than.zero",
- "Giltigheten m\u00E5ste vara st\u00F6rre \u00E4n noll"},
- {"provclass.not.a.provider", "%s \u00E4r inte en leverant\u00F6r"},
- {"provider.name.not.found", "Leverant\u00F6ren med namnet \"%s\" hittades inte"},
- {"provider.class.not.found", "Leverant\u00F6ren \"%s\" hittades inte"},
- {"Usage.error.no.command.provided", "Syntaxfel: inget kommando angivet"},
- {"Source.keystore.file.exists.but.is.empty.", "Nyckellagrets k\u00E4llfil finns, men \u00E4r tom: "},
- {"Please.specify.srckeystore", "Ange -srckeystore"},
- {"Must.not.specify.both.v.and.rfc.with.list.command",
- "Kan inte specificera b\u00E5de -v och -rfc med 'list'-kommandot"},
- {"Key.password.must.be.at.least.6.characters",
- "Nyckell\u00F6senordet m\u00E5ste inneh\u00E5lla minst 6 tecken"},
- {"New.password.must.be.at.least.6.characters",
- "Det nya l\u00F6senordet m\u00E5ste inneh\u00E5lla minst 6 tecken"},
- {"Keystore.file.exists.but.is.empty.",
- "Nyckellagerfilen finns, men \u00E4r tom: "},
- {"Keystore.file.does.not.exist.",
- "Nyckellagerfilen finns inte: "},
- {"Must.specify.destination.alias", "Du m\u00E5ste ange destinationsalias"},
- {"Must.specify.alias", "Du m\u00E5ste ange alias"},
- {"Keystore.password.must.be.at.least.6.characters",
- "Nyckellagerl\u00F6senordet m\u00E5ste inneh\u00E5lla minst 6 tecken"},
- {"Enter.the.password.to.be.stored.",
- "Ange det l\u00F6senord som ska lagras: "},
- {"Enter.keystore.password.", "Ange nyckellagerl\u00F6senord: "},
- {"Enter.source.keystore.password.", "Ange l\u00F6senord f\u00F6r k\u00E4llnyckellagret: "},
- {"Enter.destination.keystore.password.", "Ange nyckellagerl\u00F6senord f\u00F6r destination: "},
- {"Keystore.password.is.too.short.must.be.at.least.6.characters",
- "Nyckellagerl\u00F6senordet \u00E4r f\u00F6r kort - det m\u00E5ste inneh\u00E5lla minst 6 tecken"},
- {"Unknown.Entry.Type", "Ok\u00E4nd posttyp"},
- {"Too.many.failures.Alias.not.changed", "F\u00F6r m\u00E5nga fel. Alias har inte \u00E4ndrats"},
- {"Entry.for.alias.alias.successfully.imported.",
- "Posten f\u00F6r alias {0} har importerats."},
- {"Entry.for.alias.alias.not.imported.", "Posten f\u00F6r alias {0} har inte importerats."},
- {"Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.",
- "Ett problem uppstod vid importen av posten f\u00F6r alias {0}: {1}.\nPosten {0} har inte importerats."},
- {"Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled",
- "Kommandoimporten slutf\u00F6rd: {0} poster har importerats, {1} poster var felaktiga eller annullerades"},
- {"Warning.Overwriting.existing.alias.alias.in.destination.keystore",
- "Varning! Det befintliga aliaset {0} i destinationsnyckellagret skrivs \u00F6ver"},
- {"Existing.entry.alias.alias.exists.overwrite.no.",
- "Aliaset {0} finns redan. Vill du skriva \u00F6ver det? [nej]: "},
- {"Too.many.failures.try.later", "F\u00F6r m\u00E5nga fel - f\u00F6rs\u00F6k igen senare"},
- {"Certification.request.stored.in.file.filename.",
- "Certifikatbeg\u00E4ran har lagrats i filen <{0}>"},
- {"Submit.this.to.your.CA", "Skicka detta till certifikatutf\u00E4rdaren"},
- {"if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified",
- "om alias inte angivits ska inte heller destalias och srckeypass anges"},
- {"The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.",
- "Destinationsnyckellagret pkcs12 har olika storepass och keypass. F\u00F6rs\u00F6k igen med -destkeypass angivet."},
- {"Certificate.stored.in.file.filename.",
- "Certifikatet har lagrats i filen <{0}>"},
- {"Certificate.reply.was.installed.in.keystore",
- "Certifikatsvaret har installerats i nyckellagret"},
- {"Certificate.reply.was.not.installed.in.keystore",
- "Certifikatsvaret har inte installerats i nyckellagret"},
- {"Certificate.was.added.to.keystore",
- "Certifikatet har lagts till i nyckellagret"},
- {"Certificate.was.not.added.to.keystore",
- "Certifikatet har inte lagts till i nyckellagret"},
- {".Storing.ksfname.", "[Lagrar {0}]"},
- {"alias.has.no.public.key.certificate.",
- "{0} saknar \u00F6ppen nyckel (certifikat)"},
- {"Cannot.derive.signature.algorithm",
- "Kan inte h\u00E4rleda signaturalgoritm"},
- {"Alias.alias.does.not.exist",
- "Aliaset <{0}> finns inte"},
- {"Alias.alias.has.no.certificate",
- "Aliaset <{0}> saknar certifikat"},
- {"Key.pair.not.generated.alias.alias.already.exists",
- "Nyckelparet genererades inte. Aliaset <{0}> finns redan"},
- {"Generating.keysize.bit.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.validality.days.for",
- "Genererar {0} bitars {1}-nyckelpar och sj\u00E4lvsignerat certifikat ({2}) med en giltighet p\u00E5 {3} dagar\n\tf\u00F6r: {4}"},
- {"Enter.key.password.for.alias.", "Ange nyckell\u00F6senord f\u00F6r <{0}>"},
- {".RETURN.if.same.as.keystore.password.",
- "\t(RETURN om det \u00E4r identiskt med nyckellagerl\u00F6senordet): "},
- {"Key.password.is.too.short.must.be.at.least.6.characters",
- "Nyckell\u00F6senordet \u00E4r f\u00F6r kort - det m\u00E5ste inneh\u00E5lla minst 6 tecken"},
- {"Too.many.failures.key.not.added.to.keystore",
- "F\u00F6r m\u00E5nga fel - nyckeln lades inte till i nyckellagret"},
- {"Destination.alias.dest.already.exists",
- "Destinationsaliaset <{0}> finns redan"},
- {"Password.is.too.short.must.be.at.least.6.characters",
- "L\u00F6senordet \u00E4r f\u00F6r kort - det m\u00E5ste inneh\u00E5lla minst 6 tecken"},
- {"Too.many.failures.Key.entry.not.cloned",
- "F\u00F6r m\u00E5nga fel. Nyckelposten har inte klonats"},
- {"key.password.for.alias.", "nyckell\u00F6senord f\u00F6r <{0}>"},
- {"Keystore.entry.for.id.getName.already.exists",
- "Nyckellagerpost f\u00F6r <{0}> finns redan"},
- {"Creating.keystore.entry.for.id.getName.",
- "Skapar nyckellagerpost f\u00F6r <{0}> ..."},
- {"No.entries.from.identity.database.added",
- "Inga poster fr\u00E5n identitetsdatabasen har lagts till"},
- {"Alias.name.alias", "Aliasnamn: {0}"},
- {"Creation.date.keyStore.getCreationDate.alias.",
- "Skapat den: {0,date}"},
- {"alias.keyStore.getCreationDate.alias.",
- "{0}, {1,date}, "},
- {"alias.", "{0}, "},
- {"Entry.type.type.", "Posttyp: {0}"},
- {"Certificate.chain.length.", "L\u00E4ngd p\u00E5 certifikatskedja: "},
- {"Certificate.i.1.", "Certifikat[{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA.256.", "Certifikatfingeravtryck (SHA-256): "},
- {"Keystore.type.", "Nyckellagertyp: "},
- {"Keystore.provider.", "Nyckellagerleverant\u00F6r: "},
- {"Your.keystore.contains.keyStore.size.entry",
- "Nyckellagret inneh\u00E5ller {0,number,integer} post"},
- {"Your.keystore.contains.keyStore.size.entries",
- "Nyckellagret inneh\u00E5ller {0,number,integer} poster"},
- {"Failed.to.parse.input", "Kunde inte tolka indata"},
- {"Empty.input", "Inga indata"},
- {"Not.X.509.certificate", "Inte ett X.509-certifikat"},
- {"alias.has.no.public.key", "{0} saknar \u00F6ppen nyckel"},
- {"alias.has.no.X.509.certificate", "{0} saknar X.509-certifikat"},
- {"New.certificate.self.signed.", "Nytt certifikat (sj\u00E4lvsignerat):"},
- {"Reply.has.no.certificates", "Svaret saknar certifikat"},
- {"Certificate.not.imported.alias.alias.already.exists",
- "Certifikatet importerades inte. Aliaset <{0}> finns redan"},
- {"Input.not.an.X.509.certificate", "Indata \u00E4r inte ett X.509-certifikat"},
- {"Certificate.already.exists.in.keystore.under.alias.trustalias.",
- "Certifikatet finns redan i nyckellagerfilen under aliaset <{0}>"},
- {"Do.you.still.want.to.add.it.no.",
- "Vill du fortfarande l\u00E4gga till det? [nej]: "},
- {"Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.",
- "Certifikatet finns redan i den systemomsp\u00E4nnande CA-nyckellagerfilen under aliaset <{0}>"},
- {"Do.you.still.want.to.add.it.to.your.own.keystore.no.",
- "Vill du fortfarande l\u00E4gga till det i ditt eget nyckellagret? [nej]: "},
- {"Trust.this.certificate.no.", "Litar du p\u00E5 det h\u00E4r certifikatet? [nej]: "},
- {"YES", "JA"},
- {"New.prompt.", "Nytt {0}: "},
- {"Passwords.must.differ", "L\u00F6senorden m\u00E5ste vara olika"},
- {"Re.enter.new.prompt.", "Ange nytt {0} igen: "},
- {"Re.enter.password.", "Ange l\u00F6senord igen: "},
- {"Re.enter.new.password.", "Ange det nya l\u00F6senordet igen: "},
- {"They.don.t.match.Try.again", "De matchar inte. F\u00F6rs\u00F6k igen"},
- {"Enter.prompt.alias.name.", "Ange aliasnamn f\u00F6r {0}: "},
- {"Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.",
- "Ange ett nytt aliasnamn\t(skriv RETURN f\u00F6r att avbryta importen av denna post): "},
- {"Enter.alias.name.", "Ange aliasnamn: "},
- {".RETURN.if.same.as.for.otherAlias.",
- "\t(RETURN om det \u00E4r det samma som f\u00F6r <{0}>)"},
- {"What.is.your.first.and.last.name.",
- "Vad heter du i f\u00F6r- och efternamn?"},
- {"What.is.the.name.of.your.organizational.unit.",
- "Vad heter din avdelning inom organisationen?"},
- {"What.is.the.name.of.your.organization.",
- "Vad heter din organisation?"},
- {"What.is.the.name.of.your.City.or.Locality.",
- "Vad heter din ort eller plats?"},
- {"What.is.the.name.of.your.State.or.Province.",
- "Vad heter ditt land eller din provins?"},
- {"What.is.the.two.letter.country.code.for.this.unit.",
- "Vilken \u00E4r den tv\u00E5st\u00E4lliga landskoden?"},
- {"Is.name.correct.", "\u00C4r {0} korrekt?"},
- {"no", "nej"},
- {"yes", "ja"},
- {"y", "j"},
- {".defaultValue.", " [{0}]: "},
- {"Alias.alias.has.no.key",
- "Aliaset <{0}> saknar nyckel"},
- {"Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key",
- "Aliaset <{0}> refererar till en posttyp som inte \u00E4r n\u00E5gon privat nyckelpost. Kommandot -keyclone har endast st\u00F6d f\u00F6r kloning av privata nyckelposter"},
-
- {".WARNING.WARNING.WARNING.",
- "***************** WARNING WARNING WARNING *****************"},
- {"Signer.d.", "Undertecknare %d:"},
- {"Timestamp.", "Tidsst\u00E4mpel:"},
- {"Signature.", "Signatur:"},
- {"CRLs.", "CRL:er:"},
- {"Certificate.owner.", "Certifikat\u00E4gare: "},
- {"Not.a.signed.jar.file", "Ingen signerad jar-fil"},
- {"No.certificate.from.the.SSL.server",
- "Inget certifikat fr\u00E5n SSL-servern"},
-
- {".The.integrity.of.the.information.stored.in.your.keystore.",
- "* Integriteten f\u00F6r den information som lagras i nyckellagerfilen *\n* har INTE verifierats! Om du vill verifiera dess integritet *\n* m\u00E5ste du ange l\u00F6senordet f\u00F6r nyckellagret. *"},
- {".The.integrity.of.the.information.stored.in.the.srckeystore.",
- "* Integriteten f\u00F6r den information som lagras i srckeystore*\n* har INTE verifierats! Om du vill verifiera dess integritet *\n* m\u00E5ste du ange l\u00F6senordet f\u00F6r srckeystore. *"},
-
- {"Certificate.reply.does.not.contain.public.key.for.alias.",
- "Certifikatsvaret inneh\u00E5ller inte n\u00E5gon \u00F6ppen nyckel f\u00F6r <{0}>"},
- {"Incomplete.certificate.chain.in.reply",
- "Ofullst\u00E4ndig certifikatskedja i svaret"},
- {"Certificate.chain.in.reply.does.not.verify.",
- "Certifikatskedjan i svaret g\u00E5r inte att verifiera: "},
- {"Top.level.certificate.in.reply.",
- "Toppniv\u00E5certifikatet i svaret:\n"},
- {".is.not.trusted.", "... \u00E4r inte betrott. "},
- {"Install.reply.anyway.no.", "Vill du installera svaret \u00E4nd\u00E5? [nej]: "},
- {"NO", "NEJ"},
- {"Public.keys.in.reply.and.keystore.don.t.match",
- "De offentliga nycklarna i svaret och nyckellagret matchar inte varandra"},
- {"Certificate.reply.and.certificate.in.keystore.are.identical",
- "Certifikatsvaret och certifikatet i nyckellagret \u00E4r identiska"},
- {"Failed.to.establish.chain.from.reply",
- "Kunde inte uppr\u00E4tta kedja fr\u00E5n svaret"},
- {"n", "n"},
- {"Wrong.answer.try.again", "Fel svar. F\u00F6rs\u00F6k p\u00E5 nytt."},
- {"Secret.key.not.generated.alias.alias.already.exists",
- "Den hemliga nyckeln har inte genererats eftersom aliaset <{0}> redan finns"},
- {"Please.provide.keysize.for.secret.key.generation",
- "Ange -keysize f\u00F6r att skapa hemlig nyckel"},
-
- {"warning.not.verified.make.sure.keystore.is.correct",
- "VARNING: ej verifierad. Se till att -nyckellager \u00E4r korrekt."},
-
- {"Extensions.", "Till\u00E4gg: "},
- {".Empty.value.", "(Tomt v\u00E4rde)"},
- {"Extension.Request.", "Till\u00E4ggsbeg\u00E4ran:"},
- {"Unknown.keyUsage.type.", "Ok\u00E4nd keyUsage-typ: "},
- {"Unknown.extendedkeyUsage.type.", "Ok\u00E4nd extendedkeyUsage-typ: "},
- {"Unknown.AccessDescription.type.", "Ok\u00E4nd AccessDescription-typ: "},
- {"Unrecognized.GeneralName.type.", "Ok\u00E4nd GeneralName-typ: "},
- {"This.extension.cannot.be.marked.as.critical.",
- "Detta till\u00E4gg kan inte markeras som kritiskt. "},
- {"Odd.number.of.hex.digits.found.", "Udda antal hex-siffror p\u00E5tr\u00E4ffades: "},
- {"Unknown.extension.type.", "Ok\u00E4nd till\u00E4ggstyp: "},
- {"command.{0}.is.ambiguous.", "kommandot {0} \u00E4r tvetydigt:"},
-
- // 8171319: keytool should print out warnings when reading or
- // generating cert/cert req using weak algorithms
- {"the.certificate.request", "Certifikatbeg\u00E4ran"},
- {"the.issuer", "Utf\u00E4rdaren"},
- {"the.generated.certificate", "Det genererade certifikatet"},
- {"the.generated.crl", "Den genererade listan \u00F6ver \u00E5terkallade certifikat"},
- {"the.generated.certificate.request", "Den genererade certifikatbeg\u00E4ran"},
- {"the.certificate", "Certifikatet"},
- {"the.crl", "Listan \u00F6ver \u00E5terkallade certifikat"},
- {"the.tsa.certificate", "TSA-certifikatet"},
- {"the.input", "Indata"},
- {"reply", "Svar"},
- {"one.in.many", "%1$s #%2$d av %3$d"},
- {"alias.in.cacerts", "Utf\u00E4rdaren <%s> i cacerts"},
- {"alias.in.keystore", "Utf\u00E4rdaren <%s>"},
- {"with.weak", "%s (svag)"},
- {"key.bit", "%1$d-bitars %2$s-nyckel"},
- {"key.bit.weak", "%1$d-bitars %2$s-nyckel (svag)"},
- {"unknown.size.1", "ok\u00E4nd storlek p\u00E5 nyckeln %s"},
- {".PATTERN.printX509Cert.with.weak",
- "\u00C4gare: {0}\nUtf\u00E4rdare: {1}\nSerienummer: {2}\nGiltigt fr\u00E5n: {3}, till: {4}\nCertifikatfingeravtryck:\n\t SHA1: {5}\n\t SHA256: {6}\nSignaturalgoritmnamn: {7}\nAlgoritm f\u00F6r \u00F6ppen nyckel f\u00F6r \u00E4mne: {8}\nVersion: {9}"},
- {"PKCS.10.with.weak",
- "PKCS #10-certifikatbeg\u00E4ran (version 1.0)\n\u00C4mne: %1$s\nFormat: %2$s\n\u00D6ppen nyckel: %3$s\nSignaturalgoritm: %4$s\n"},
- {"verified.by.s.in.s.weak", "Verifierades av %1$s i %2$s med en %3$s"},
- {"whose.sigalg.risk", "%1$s anv\u00E4nder signaturalgoritmen %2$s, vilket anses utg\u00F6ra en s\u00E4kerhetsrisk."},
- {"whose.key.risk", "%1$s anv\u00E4nder en %2$s, vilket anses utg\u00F6ra en s\u00E4kerhetsrisk."},
- {"jks.storetype.warning", "Nyckellagret %1$s anv\u00E4nder ett propriet\u00E4rt format. Du b\u00F6r migrera till PKCS12, som \u00E4r ett branschstandardformat, med \"keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12\"."},
- {"migrate.keystore.warning", "Migrerade \"%1$s\" till %4$s. Nyckellagret %2$s s\u00E4kerhetskopierades som \"%3$s\"."},
- {"backup.keystore.warning", "Det ursprungliga nyckellagret, \"%1$s\", s\u00E4kerhetskopieras som \"%3$s\"..."},
- {"importing.keystore.status", "Importerar nyckellagret %1$s till %2$s..."},
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/Resources_zh_CN.java b/src/java.base/share/classes/sun/security/tools/keytool/Resources_zh_CN.java
deleted file mode 100644
index cb697082242d7..0000000000000
--- a/src/java.base/share/classes/sun/security/tools/keytool/Resources_zh_CN.java
+++ /dev/null
@@ -1,511 +0,0 @@
-/*
- * Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.tools.keytool;
-
-/**
- *
This class represents the ResourceBundle
- * for the keytool.
- *
- */
-public class Resources_zh_CN extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
- {"NEWLINE", "\n"},
- {"STAR",
- "*******************************************"},
- {"STARNN",
- "*******************************************\n\n"},
-
- // keytool: Help part
- {".OPTION.", " [OPTION]..."},
- {"Options.", "\u9009\u9879:"},
- {"option.1.set.twice", "\u591A\u6B21\u6307\u5B9A\u4E86 %s \u9009\u9879\u3002\u9664\u6700\u540E\u4E00\u4E2A\u4E4B\u5916, \u5176\u4F59\u7684\u5C06\u5168\u90E8\u5FFD\u7565\u3002"},
- {"multiple.commands.1.2", "\u53EA\u5141\u8BB8\u4E00\u4E2A\u547D\u4EE4: \u540C\u65F6\u6307\u5B9A\u4E86 %1$s \u548C %2$s\u3002"},
- {"Use.keytool.help.for.all.available.commands",
- "\u4F7F\u7528 \"keytool -?, -h, or --help\" \u53EF\u8F93\u51FA\u6B64\u5E2E\u52A9\u6D88\u606F"},
- {"Key.and.Certificate.Management.Tool",
- "\u5BC6\u94A5\u548C\u8BC1\u4E66\u7BA1\u7406\u5DE5\u5177"},
- {"Commands.", "\u547D\u4EE4:"},
- {"Use.keytool.command.name.help.for.usage.of.command.name",
- "\u4F7F\u7528 \"keytool -command_name --help\" \u53EF\u83B7\u53D6 command_name \u7684\u7528\u6CD5\u3002\n\u4F7F\u7528 -conf \u9009\u9879\u53EF\u6307\u5B9A\u9884\u914D\u7F6E\u7684\u9009\u9879\u6587\u4EF6\u3002"},
- // keytool: help: commands
- {"Generates.a.certificate.request",
- "\u751F\u6210\u8BC1\u4E66\u8BF7\u6C42"}, //-certreq
- {"Changes.an.entry.s.alias",
- "\u66F4\u6539\u6761\u76EE\u7684\u522B\u540D"}, //-changealias
- {"Deletes.an.entry",
- "\u5220\u9664\u6761\u76EE"}, //-delete
- {"Exports.certificate",
- "\u5BFC\u51FA\u8BC1\u4E66"}, //-exportcert
- {"Generates.a.key.pair",
- "\u751F\u6210\u5BC6\u94A5\u5BF9"}, //-genkeypair
- {"Generates.a.secret.key",
- "\u751F\u6210\u5BC6\u94A5"}, //-genseckey
- {"Generates.certificate.from.a.certificate.request",
- "\u6839\u636E\u8BC1\u4E66\u8BF7\u6C42\u751F\u6210\u8BC1\u4E66"}, //-gencert
- {"Generates.CRL", "\u751F\u6210 CRL"}, //-gencrl
- {"Generated.keyAlgName.secret.key",
- "\u5DF2\u751F\u6210{0}\u5BC6\u94A5"}, //-genseckey
- {"Generated.keysize.bit.keyAlgName.secret.key",
- "\u5DF2\u751F\u6210 {0} \u4F4D{1}\u5BC6\u94A5"}, //-genseckey
- {"key.algorithm.weak", "%1$s \u4F7F\u7528\u7684 %2$s \u7B97\u6CD5\u88AB\u89C6\u4E3A\u5B58\u5728\u5B89\u5168\u98CE\u9669\u3002"},
- {"key.size.weak", "%1$s \u4F7F\u7528\u7684 %2$s \u5B58\u5728\u5B89\u5168\u98CE\u9669\u3002"},
- {"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
- "\u4ECE JDK 1.1.x \u6837\u5F0F\u7684\u8EAB\u4EFD\u6570\u636E\u5E93\u5BFC\u5165\u6761\u76EE"}, //-identitydb
- {"Imports.a.certificate.or.a.certificate.chain",
- "\u5BFC\u5165\u8BC1\u4E66\u6216\u8BC1\u4E66\u94FE"}, //-importcert
- {"Imports.a.password",
- "\u5BFC\u5165\u53E3\u4EE4"}, //-importpass
- {"Imports.one.or.all.entries.from.another.keystore",
- "\u4ECE\u5176\u4ED6\u5BC6\u94A5\u5E93\u5BFC\u5165\u4E00\u4E2A\u6216\u6240\u6709\u6761\u76EE"}, //-importkeystore
- {"Clones.a.key.entry",
- "\u514B\u9686\u5BC6\u94A5\u6761\u76EE"}, //-keyclone
- {"Changes.the.key.password.of.an.entry",
- "\u66F4\u6539\u6761\u76EE\u7684\u5BC6\u94A5\u53E3\u4EE4"}, //-keypasswd
- {"Lists.entries.in.a.keystore",
- "\u5217\u51FA\u5BC6\u94A5\u5E93\u4E2D\u7684\u6761\u76EE"}, //-list
- {"Prints.the.content.of.a.certificate",
- "\u6253\u5370\u8BC1\u4E66\u5185\u5BB9"}, //-printcert
- {"Prints.the.content.of.a.certificate.request",
- "\u6253\u5370\u8BC1\u4E66\u8BF7\u6C42\u7684\u5185\u5BB9"}, //-printcertreq
- {"Prints.the.content.of.a.CRL.file",
- "\u6253\u5370 CRL \u6587\u4EF6\u7684\u5185\u5BB9"}, //-printcrl
- {"Generates.a.self.signed.certificate",
- "\u751F\u6210\u81EA\u7B7E\u540D\u8BC1\u4E66"}, //-selfcert
- {"Changes.the.store.password.of.a.keystore",
- "\u66F4\u6539\u5BC6\u94A5\u5E93\u7684\u5B58\u50A8\u53E3\u4EE4"}, //-storepasswd
- {"showinfo.command.help", "\u663E\u793A\u5B89\u5168\u76F8\u5173\u4FE1\u606F"},
- {"Prints.the.program.version", "\u8F93\u51FA\u7A0B\u5E8F\u7248\u672C"},
-
- // keytool: help: options
- {"alias.name.of.the.entry.to.process",
- "\u8981\u5904\u7406\u7684\u6761\u76EE\u7684\u522B\u540D"}, //-alias
- {"groupname.option.help",
- "\u7EC4\u540D\u3002\u4F8B\u5982\uFF0C\u692D\u5706\u66F2\u7EBF\u540D\u79F0\u3002"}, //-groupname
- {"destination.alias",
- "\u76EE\u6807\u522B\u540D"}, //-destalias
- {"destination.key.password",
- "\u76EE\u6807\u5BC6\u94A5\u53E3\u4EE4"}, //-destkeypass
- {"destination.keystore.name",
- "\u76EE\u6807\u5BC6\u94A5\u5E93\u540D\u79F0"}, //-destkeystore
- {"destination.keystore.password.protected",
- "\u53D7\u4FDD\u62A4\u7684\u76EE\u6807\u5BC6\u94A5\u5E93\u53E3\u4EE4"}, //-destprotected
- {"destination.keystore.provider.name",
- "\u76EE\u6807\u5BC6\u94A5\u5E93\u63D0\u4F9B\u65B9\u540D\u79F0"}, //-destprovidername
- {"destination.keystore.password",
- "\u76EE\u6807\u5BC6\u94A5\u5E93\u53E3\u4EE4"}, //-deststorepass
- {"destination.keystore.type",
- "\u76EE\u6807\u5BC6\u94A5\u5E93\u7C7B\u578B"}, //-deststoretype
- {"distinguished.name",
- "\u552F\u4E00\u5224\u522B\u540D"}, //-dname
- {"X.509.extension",
- "X.509 \u6269\u5C55"}, //-ext
- {"output.file.name",
- "\u8F93\u51FA\u6587\u4EF6\u540D"}, //-file and -outfile
- {"input.file.name",
- "\u8F93\u5165\u6587\u4EF6\u540D"}, //-file and -infile
- {"key.algorithm.name",
- "\u5BC6\u94A5\u7B97\u6CD5\u540D\u79F0"}, //-keyalg
- {"key.password",
- "\u5BC6\u94A5\u53E3\u4EE4"}, //-keypass
- {"key.bit.size",
- "\u5BC6\u94A5\u4F4D\u5927\u5C0F"}, //-keysize
- {"keystore.name",
- "\u5BC6\u94A5\u5E93\u540D\u79F0"}, //-keystore
- {"access.the.cacerts.keystore",
- "\u8BBF\u95EE cacerts \u5BC6\u94A5\u5E93"}, // -cacerts
- {"warning.cacerts.option",
- "\u8B66\u544A: \u4F7F\u7528 -cacerts \u9009\u9879\u8BBF\u95EE cacerts \u5BC6\u94A5\u5E93"},
- {"new.password",
- "\u65B0\u53E3\u4EE4"}, //-new
- {"do.not.prompt",
- "\u4E0D\u63D0\u793A"}, //-noprompt
- {"password.through.protected.mechanism",
- "\u901A\u8FC7\u53D7\u4FDD\u62A4\u7684\u673A\u5236\u7684\u53E3\u4EE4"}, //-protected
- {"tls.option.help", "\u663E\u793A TLS \u914D\u7F6E\u4FE1\u606F"},
-
- // The following 2 values should span 2 lines, the first for the
- // option itself, the second for its -providerArg value.
- {"addprovider.option",
- "\u6309\u540D\u79F0 (\u4F8B\u5982 SunPKCS11) \u6DFB\u52A0\u5B89\u5168\u63D0\u4F9B\u65B9\n\u914D\u7F6E -addprovider \u7684\u53C2\u6570"}, //-addprovider
- {"provider.class.option",
- "\u6309\u5168\u9650\u5B9A\u7C7B\u540D\u6DFB\u52A0\u5B89\u5168\u63D0\u4F9B\u65B9\n\u914D\u7F6E -providerclass \u7684\u53C2\u6570"}, //-providerclass
-
- {"provider.name",
- "\u63D0\u4F9B\u65B9\u540D\u79F0"}, //-providername
- {"provider.classpath",
- "\u63D0\u4F9B\u65B9\u7C7B\u8DEF\u5F84"}, //-providerpath
- {"output.in.RFC.style",
- "\u4EE5 RFC \u6837\u5F0F\u8F93\u51FA"}, //-rfc
- {"signature.algorithm.name",
- "\u7B7E\u540D\u7B97\u6CD5\u540D\u79F0"}, //-sigalg
- {"signer.alias",
- "\u7B7E\u540D\u8005\u522B\u540D"}, //-signer
- {"signer.key.password",
- "\u7B7E\u540D\u8005\u5BC6\u94A5\u5BC6\u7801"}, //-signerkeypass
- {"source.alias",
- "\u6E90\u522B\u540D"}, //-srcalias
- {"source.key.password",
- "\u6E90\u5BC6\u94A5\u53E3\u4EE4"}, //-srckeypass
- {"source.keystore.name",
- "\u6E90\u5BC6\u94A5\u5E93\u540D\u79F0"}, //-srckeystore
- {"source.keystore.password.protected",
- "\u53D7\u4FDD\u62A4\u7684\u6E90\u5BC6\u94A5\u5E93\u53E3\u4EE4"}, //-srcprotected
- {"source.keystore.provider.name",
- "\u6E90\u5BC6\u94A5\u5E93\u63D0\u4F9B\u65B9\u540D\u79F0"}, //-srcprovidername
- {"source.keystore.password",
- "\u6E90\u5BC6\u94A5\u5E93\u53E3\u4EE4"}, //-srcstorepass
- {"source.keystore.type",
- "\u6E90\u5BC6\u94A5\u5E93\u7C7B\u578B"}, //-srcstoretype
- {"SSL.server.host.and.port",
- "SSL \u670D\u52A1\u5668\u4E3B\u673A\u548C\u7AEF\u53E3"}, //-sslserver
- {"signed.jar.file",
- "\u5DF2\u7B7E\u540D\u7684 jar \u6587\u4EF6"}, //=jarfile
- {"certificate.validity.start.date.time",
- "\u8BC1\u4E66\u6709\u6548\u671F\u5F00\u59CB\u65E5\u671F/\u65F6\u95F4"}, //-startdate
- {"keystore.password",
- "\u5BC6\u94A5\u5E93\u53E3\u4EE4"}, //-storepass
- {"keystore.type",
- "\u5BC6\u94A5\u5E93\u7C7B\u578B"}, //-storetype
- {"trust.certificates.from.cacerts",
- "\u4FE1\u4EFB\u6765\u81EA cacerts \u7684\u8BC1\u4E66"}, //-trustcacerts
- {"verbose.output",
- "\u8BE6\u7EC6\u8F93\u51FA"}, //-v
- {"validity.number.of.days",
- "\u6709\u6548\u5929\u6570"}, //-validity
- {"Serial.ID.of.cert.to.revoke",
- "\u8981\u64A4\u9500\u7684\u8BC1\u4E66\u7684\u5E8F\u5217 ID"}, //-id
- // keytool: Running part
- {"keytool.error.", "keytool \u9519\u8BEF: "},
- {"Illegal.option.", "\u975E\u6CD5\u9009\u9879: "},
- {"Illegal.value.", "\u975E\u6CD5\u503C: "},
- {"Unknown.password.type.", "\u672A\u77E5\u53E3\u4EE4\u7C7B\u578B: "},
- {"Cannot.find.environment.variable.",
- "\u627E\u4E0D\u5230\u73AF\u5883\u53D8\u91CF: "},
- {"Cannot.find.file.", "\u627E\u4E0D\u5230\u6587\u4EF6: "},
- {"Command.option.flag.needs.an.argument.", "\u547D\u4EE4\u9009\u9879{0}\u9700\u8981\u4E00\u4E2A\u53C2\u6570\u3002"},
- {"Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.",
- "\u8B66\u544A: PKCS12 \u5BC6\u94A5\u5E93\u4E0D\u652F\u6301\u5176\u4ED6\u5B58\u50A8\u548C\u5BC6\u94A5\u53E3\u4EE4\u3002\u6B63\u5728\u5FFD\u7565\u7528\u6237\u6307\u5B9A\u7684{0}\u503C\u3002"},
- {"the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option",
- "-keystore \u6216 -storetype \u9009\u9879\u4E0D\u80FD\u4E0E -cacerts \u9009\u9879\u4E00\u8D77\u4F7F\u7528"},
- {".keystore.must.be.NONE.if.storetype.is.{0}",
- "\u5982\u679C -storetype \u4E3A {0}, \u5219 -keystore \u5FC5\u987B\u4E3A NONE"},
- {"Too.many.retries.program.terminated",
- "\u91CD\u8BD5\u6B21\u6570\u8FC7\u591A, \u7A0B\u5E8F\u5DF2\u7EC8\u6B62"},
- {".storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}",
- "\u5982\u679C -storetype \u4E3A {0}, \u5219\u4E0D\u652F\u6301 -storepasswd \u548C -keypasswd \u547D\u4EE4"},
- {".keypasswd.commands.not.supported.if.storetype.is.PKCS12",
- "\u5982\u679C -storetype \u4E3A PKCS12, \u5219\u4E0D\u652F\u6301 -keypasswd \u547D\u4EE4"},
- {".keypass.and.new.can.not.be.specified.if.storetype.is.{0}",
- "\u5982\u679C -storetype \u4E3A {0}, \u5219\u4E0D\u80FD\u6307\u5B9A -keypass \u548C -new"},
- {"if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified",
- "\u5982\u679C\u6307\u5B9A\u4E86 -protected, \u5219\u4E0D\u80FD\u6307\u5B9A -storepass, -keypass \u548C -new"},
- {"if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "\u5982\u679C\u6307\u5B9A\u4E86 -srcprotected, \u5219\u4E0D\u80FD\u6307\u5B9A -srcstorepass \u548C -srckeypass"},
- {"if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified",
- "\u5982\u679C\u5BC6\u94A5\u5E93\u672A\u53D7\u53E3\u4EE4\u4FDD\u62A4, \u5219\u4E0D\u80FD\u6307\u5B9A -storepass, -keypass \u548C -new"},
- {"if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "\u5982\u679C\u6E90\u5BC6\u94A5\u5E93\u672A\u53D7\u53E3\u4EE4\u4FDD\u62A4, \u5219\u4E0D\u80FD\u6307\u5B9A -srcstorepass \u548C -srckeypass"},
- {"Illegal.startdate.value", "\u975E\u6CD5\u5F00\u59CB\u65E5\u671F\u503C"},
- {"Validity.must.be.greater.than.zero",
- "\u6709\u6548\u6027\u5FC5\u987B\u5927\u4E8E\u96F6"},
- {"provclass.not.a.provider", "%s\u4E0D\u662F\u63D0\u4F9B\u65B9"},
- {"provider.name.not.found", "\u672A\u627E\u5230\u540D\u4E3A \"%s\" \u7684\u63D0\u4F9B\u65B9"},
- {"provider.class.not.found", "\u672A\u627E\u5230\u63D0\u4F9B\u65B9 \"%s\""},
- {"Usage.error.no.command.provided", "\u7528\u6CD5\u9519\u8BEF: \u6CA1\u6709\u63D0\u4F9B\u547D\u4EE4"},
- {"Source.keystore.file.exists.but.is.empty.", "\u6E90\u5BC6\u94A5\u5E93\u6587\u4EF6\u5B58\u5728, \u4F46\u4E3A\u7A7A: "},
- {"Please.specify.srckeystore", "\u8BF7\u6307\u5B9A -srckeystore"},
- {"Must.not.specify.both.v.and.rfc.with.list.command",
- "\u4E0D\u80FD\u4F7F\u7528 'list' \u547D\u4EE4\u6765\u6307\u5B9A -v \u53CA -rfc"},
- {"Key.password.must.be.at.least.6.characters",
- "\u5BC6\u94A5\u53E3\u4EE4\u81F3\u5C11\u5FC5\u987B\u4E3A 6 \u4E2A\u5B57\u7B26"},
- {"New.password.must.be.at.least.6.characters",
- "\u65B0\u53E3\u4EE4\u81F3\u5C11\u5FC5\u987B\u4E3A 6 \u4E2A\u5B57\u7B26"},
- {"Keystore.file.exists.but.is.empty.",
- "\u5BC6\u94A5\u5E93\u6587\u4EF6\u5B58\u5728, \u4F46\u4E3A\u7A7A: "},
- {"Keystore.file.does.not.exist.",
- "\u5BC6\u94A5\u5E93\u6587\u4EF6\u4E0D\u5B58\u5728: "},
- {"Must.specify.destination.alias", "\u5FC5\u987B\u6307\u5B9A\u76EE\u6807\u522B\u540D"},
- {"Must.specify.alias", "\u5FC5\u987B\u6307\u5B9A\u522B\u540D"},
- {"Keystore.password.must.be.at.least.6.characters",
- "\u5BC6\u94A5\u5E93\u53E3\u4EE4\u81F3\u5C11\u5FC5\u987B\u4E3A 6 \u4E2A\u5B57\u7B26"},
- {"Enter.the.password.to.be.stored.",
- "\u8F93\u5165\u8981\u5B58\u50A8\u7684\u53E3\u4EE4: "},
- {"Enter.keystore.password.", "\u8F93\u5165\u5BC6\u94A5\u5E93\u53E3\u4EE4: "},
- {"Enter.source.keystore.password.", "\u8F93\u5165\u6E90\u5BC6\u94A5\u5E93\u53E3\u4EE4: "},
- {"Enter.destination.keystore.password.", "\u8F93\u5165\u76EE\u6807\u5BC6\u94A5\u5E93\u53E3\u4EE4: "},
- {"Keystore.password.is.too.short.must.be.at.least.6.characters",
- "\u5BC6\u94A5\u5E93\u53E3\u4EE4\u592A\u77ED - \u81F3\u5C11\u5FC5\u987B\u4E3A 6 \u4E2A\u5B57\u7B26"},
- {"Unknown.Entry.Type", "\u672A\u77E5\u6761\u76EE\u7C7B\u578B"},
- {"Entry.for.alias.alias.successfully.imported.",
- "\u5DF2\u6210\u529F\u5BFC\u5165\u522B\u540D {0} \u7684\u6761\u76EE\u3002"},
- {"Entry.for.alias.alias.not.imported.", "\u672A\u5BFC\u5165\u522B\u540D {0} \u7684\u6761\u76EE\u3002"},
- {"Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.",
- "\u5BFC\u5165\u522B\u540D {0} \u7684\u6761\u76EE\u65F6\u51FA\u73B0\u95EE\u9898: {1}\u3002\n\u672A\u5BFC\u5165\u522B\u540D {0} \u7684\u6761\u76EE\u3002"},
- {"Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled",
- "\u5DF2\u5B8C\u6210\u5BFC\u5165\u547D\u4EE4: {0} \u4E2A\u6761\u76EE\u6210\u529F\u5BFC\u5165, {1} \u4E2A\u6761\u76EE\u5931\u8D25\u6216\u53D6\u6D88"},
- {"Warning.Overwriting.existing.alias.alias.in.destination.keystore",
- "\u8B66\u544A: \u6B63\u5728\u8986\u76D6\u76EE\u6807\u5BC6\u94A5\u5E93\u4E2D\u7684\u73B0\u6709\u522B\u540D {0}"},
- {"Existing.entry.alias.alias.exists.overwrite.no.",
- "\u5B58\u5728\u73B0\u6709\u6761\u76EE\u522B\u540D {0}, \u662F\u5426\u8986\u76D6? [\u5426]: "},
- {"Too.many.failures.try.later", "\u6545\u969C\u592A\u591A - \u8BF7\u7A0D\u540E\u518D\u8BD5"},
- {"Certification.request.stored.in.file.filename.",
- "\u5B58\u50A8\u5728\u6587\u4EF6 <{0}> \u4E2D\u7684\u8BA4\u8BC1\u8BF7\u6C42"},
- {"Submit.this.to.your.CA", "\u5C06\u6B64\u63D0\u4EA4\u7ED9\u60A8\u7684 CA"},
- {"if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified",
- "\u5982\u679C\u6CA1\u6709\u6307\u5B9A\u522B\u540D, \u5219\u4E0D\u80FD\u6307\u5B9A\u76EE\u6807\u522B\u540D\u548C\u6E90\u5BC6\u94A5\u5E93\u53E3\u4EE4"},
- {"The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.",
- "\u76EE\u6807 pkcs12 \u5BC6\u94A5\u5E93\u5177\u6709\u4E0D\u540C\u7684 storepass \u548C keypass\u3002\u8BF7\u5728\u6307\u5B9A\u4E86 -destkeypass \u65F6\u91CD\u8BD5\u3002"},
- {"Certificate.stored.in.file.filename.",
- "\u5B58\u50A8\u5728\u6587\u4EF6 <{0}> \u4E2D\u7684\u8BC1\u4E66"},
- {"Certificate.reply.was.installed.in.keystore",
- "\u8BC1\u4E66\u56DE\u590D\u5DF2\u5B89\u88C5\u5728\u5BC6\u94A5\u5E93\u4E2D"},
- {"Certificate.reply.was.not.installed.in.keystore",
- "\u8BC1\u4E66\u56DE\u590D\u672A\u5B89\u88C5\u5728\u5BC6\u94A5\u5E93\u4E2D"},
- {"Certificate.was.added.to.keystore",
- "\u8BC1\u4E66\u5DF2\u6DFB\u52A0\u5230\u5BC6\u94A5\u5E93\u4E2D"},
- {"Certificate.was.not.added.to.keystore",
- "\u8BC1\u4E66\u672A\u6DFB\u52A0\u5230\u5BC6\u94A5\u5E93\u4E2D"},
- {".Storing.ksfname.", "[\u6B63\u5728\u5B58\u50A8{0}]"},
- {"alias.has.no.public.key.certificate.",
- "{0}\u6CA1\u6709\u516C\u5171\u5BC6\u94A5 (\u8BC1\u4E66)"},
- {"Cannot.derive.signature.algorithm",
- "\u65E0\u6CD5\u6D3E\u751F\u7B7E\u540D\u7B97\u6CD5"},
- {"Alias.alias.does.not.exist",
- "\u522B\u540D <{0}> \u4E0D\u5B58\u5728"},
- {"Alias.alias.has.no.certificate",
- "\u522B\u540D <{0}> \u6CA1\u6709\u8BC1\u4E66"},
- {"groupname.keysize.coexist",
- "\u65E0\u6CD5\u540C\u65F6\u6307\u5B9A -groupname \u548C -keysize"},
- {"deprecate.keysize.for.ec",
- "\u4E3A\u751F\u6210 EC \u5BC6\u94A5\u6307\u5B9A -keysize \u5DF2\u8FC7\u65F6\uFF0C\u8BF7\u6539\u4E3A\u4F7F\u7528 \"-groupname %s\"\u3002"},
- {"Key.pair.not.generated.alias.alias.already.exists",
- "\u672A\u751F\u6210\u5BC6\u94A5\u5BF9, \u522B\u540D <{0}> \u5DF2\u7ECF\u5B58\u5728"},
- {"size.bit.alg",
- "%1$d \u4F4D %2$s"},
- {"Generating.full.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.days.for",
- "\u6B63\u5728\u4E3A {3} \u751F\u6210\u6709\u6548\u671F\u4E3A {2} \u5929\u7684 {0} \u5BC6\u94A5\u5BF9\u548C\u81EA\u7B7E\u540D\u8BC1\u4E66 ({1})\n"},
- {"Generating.full.keyAlgName.key.pair.and.a.certificate.sigAlgName.issued.by.signerAlias.with.a.validity.of.days.for",
- "\u751F\u6210 {0} \u5BC6\u94A5\u5BF9\u548C <{2}> \u9881\u53D1\u7684\u8BC1\u4E66 ({1})\uFF0C\u6709\u6548\u671F\u4E3A {3} \u5929 \n\t \u5BF9\u4E8E\uFF1A{4}"},
- {"Enter.key.password.for.alias.", "\u8F93\u5165 <{0}> \u7684\u5BC6\u94A5\u53E3\u4EE4"},
- {".RETURN.if.same.as.keystore.password.",
- "\t(\u5982\u679C\u548C\u5BC6\u94A5\u5E93\u53E3\u4EE4\u76F8\u540C, \u6309\u56DE\u8F66): "},
- {"Key.password.is.too.short.must.be.at.least.6.characters",
- "\u5BC6\u94A5\u53E3\u4EE4\u592A\u77ED - \u81F3\u5C11\u5FC5\u987B\u4E3A 6 \u4E2A\u5B57\u7B26"},
- {"Too.many.failures.key.not.added.to.keystore",
- "\u6545\u969C\u592A\u591A - \u5BC6\u94A5\u672A\u6DFB\u52A0\u5230\u5BC6\u94A5\u5E93\u4E2D"},
- {"Destination.alias.dest.already.exists",
- "\u76EE\u6807\u522B\u540D <{0}> \u5DF2\u7ECF\u5B58\u5728"},
- {"Password.is.too.short.must.be.at.least.6.characters",
- "\u53E3\u4EE4\u592A\u77ED - \u81F3\u5C11\u5FC5\u987B\u4E3A 6 \u4E2A\u5B57\u7B26"},
- {"Too.many.failures.Key.entry.not.cloned",
- "\u6545\u969C\u592A\u591A\u3002\u672A\u514B\u9686\u5BC6\u94A5\u6761\u76EE"},
- {"key.password.for.alias.", "<{0}> \u7684\u5BC6\u94A5\u53E3\u4EE4"},
- {"No.entries.from.identity.database.added",
- "\u672A\u4ECE\u8EAB\u4EFD\u6570\u636E\u5E93\u4E2D\u6DFB\u52A0\u4EFB\u4F55\u6761\u76EE"},
- {"Alias.name.alias", "\u522B\u540D: {0}"},
- {"Creation.date.keyStore.getCreationDate.alias.",
- "\u521B\u5EFA\u65E5\u671F: {0,date}"},
- {"alias.keyStore.getCreationDate.alias.",
- "{0}, {1,date}, "},
- {"alias.", "{0}, "},
- {"Entry.type.type.", "\u6761\u76EE\u7C7B\u578B: {0}"},
- {"Certificate.chain.length.", "\u8BC1\u4E66\u94FE\u957F\u5EA6: "},
- {"Certificate.i.1.", "\u8BC1\u4E66[{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA.256.", "\u8BC1\u4E66\u6307\u7EB9 (SHA-256): "},
- {"Keystore.type.", "\u5BC6\u94A5\u5E93\u7C7B\u578B: "},
- {"Keystore.provider.", "\u5BC6\u94A5\u5E93\u63D0\u4F9B\u65B9: "},
- {"Your.keystore.contains.keyStore.size.entry",
- "\u60A8\u7684\u5BC6\u94A5\u5E93\u5305\u542B {0,number,integer} \u4E2A\u6761\u76EE"},
- {"Your.keystore.contains.keyStore.size.entries",
- "\u60A8\u7684\u5BC6\u94A5\u5E93\u5305\u542B {0,number,integer} \u4E2A\u6761\u76EE"},
- {"Failed.to.parse.input", "\u65E0\u6CD5\u89E3\u6790\u8F93\u5165"},
- {"Empty.input", "\u7A7A\u8F93\u5165"},
- {"Not.X.509.certificate", "\u975E X.509 \u8BC1\u4E66"},
- {"alias.has.no.public.key", "{0}\u6CA1\u6709\u516C\u5171\u5BC6\u94A5"},
- {"alias.has.no.X.509.certificate", "{0}\u6CA1\u6709 X.509 \u8BC1\u4E66"},
- {"New.certificate.self.signed.", "\u65B0\u8BC1\u4E66 (\u81EA\u7B7E\u540D):"},
- {"Reply.has.no.certificates", "\u56DE\u590D\u4E2D\u6CA1\u6709\u8BC1\u4E66"},
- {"Certificate.not.imported.alias.alias.already.exists",
- "\u8BC1\u4E66\u672A\u5BFC\u5165, \u522B\u540D <{0}> \u5DF2\u7ECF\u5B58\u5728"},
- {"Input.not.an.X.509.certificate", "\u6240\u8F93\u5165\u7684\u4E0D\u662F X.509 \u8BC1\u4E66"},
- {"Certificate.already.exists.in.keystore.under.alias.trustalias.",
- "\u5728\u522B\u540D <{0}> \u4E4B\u4E0B, \u8BC1\u4E66\u5DF2\u7ECF\u5B58\u5728\u4E8E\u5BC6\u94A5\u5E93\u4E2D"},
- {"Do.you.still.want.to.add.it.no.",
- "\u662F\u5426\u4ECD\u8981\u6DFB\u52A0? [\u5426]: "},
- {"Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.",
- "\u5728\u522B\u540D <{0}> \u4E4B\u4E0B, \u8BC1\u4E66\u5DF2\u7ECF\u5B58\u5728\u4E8E\u7CFB\u7EDF\u8303\u56F4\u7684 CA \u5BC6\u94A5\u5E93\u4E2D"},
- {"Do.you.still.want.to.add.it.to.your.own.keystore.no.",
- "\u662F\u5426\u4ECD\u8981\u5C06\u5B83\u6DFB\u52A0\u5230\u81EA\u5DF1\u7684\u5BC6\u94A5\u5E93? [\u5426]: "},
- {"Trust.this.certificate.no.", "\u662F\u5426\u4FE1\u4EFB\u6B64\u8BC1\u4E66? [\u5426]: "},
- {"New.prompt.", "\u65B0{0}: "},
- {"Passwords.must.differ", "\u53E3\u4EE4\u4E0D\u80FD\u76F8\u540C"},
- {"Re.enter.new.prompt.", "\u91CD\u65B0\u8F93\u5165\u65B0{0}: "},
- {"Re.enter.password.", "\u518D\u6B21\u8F93\u5165\u53E3\u4EE4: "},
- {"Re.enter.new.password.", "\u518D\u6B21\u8F93\u5165\u65B0\u53E3\u4EE4: "},
- {"They.don.t.match.Try.again", "\u5B83\u4EEC\u4E0D\u5339\u914D\u3002\u8BF7\u91CD\u8BD5"},
- {"Enter.prompt.alias.name.", "\u8F93\u5165{0}\u522B\u540D: "},
- {"Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.",
- "\u5BFC\u5165\u65B0\u7684\u522B\u540D\t(\u6309\u56DE\u8F66\u4EE5\u53D6\u6D88\u5BF9\u6B64\u6761\u76EE\u7684\u5BFC\u5165): "},
- {"Enter.alias.name.", "\u8F93\u5165\u522B\u540D: "},
- {".RETURN.if.same.as.for.otherAlias.",
- "\t(\u5982\u679C\u548C <{0}> \u76F8\u540C, \u5219\u6309\u56DE\u8F66)"},
- {"enter.dname.components",
- "\u8F93\u5165\u552F\u4E00\u5224\u522B\u540D\u3002\u63D0\u4F9B\u5355\u4E2A\u70B9 (.) \u4EE5\u5C06\u5B50\u7EC4\u4EF6\u7559\u7A7A\uFF0C\u6216\u6309 ENTER \u4EE5\u4F7F\u7528\u5927\u62EC\u53F7\u4E2D\u7684\u9ED8\u8BA4\u503C\u3002"},
- {"What.is.your.first.and.last.name.",
- "\u60A8\u7684\u540D\u5B57\u4E0E\u59D3\u6C0F\u662F\u4EC0\u4E48?"},
- {"What.is.the.name.of.your.organizational.unit.",
- "\u60A8\u7684\u7EC4\u7EC7\u5355\u4F4D\u540D\u79F0\u662F\u4EC0\u4E48?"},
- {"What.is.the.name.of.your.organization.",
- "\u60A8\u7684\u7EC4\u7EC7\u540D\u79F0\u662F\u4EC0\u4E48?"},
- {"What.is.the.name.of.your.City.or.Locality.",
- "\u60A8\u6240\u5728\u7684\u57CE\u5E02\u6216\u533A\u57DF\u540D\u79F0\u662F\u4EC0\u4E48?"},
- {"What.is.the.name.of.your.State.or.Province.",
- "\u60A8\u6240\u5728\u7684\u7701/\u5E02/\u81EA\u6CBB\u533A\u540D\u79F0\u662F\u4EC0\u4E48?"},
- {"What.is.the.two.letter.country.code.for.this.unit.",
- "\u8BE5\u5355\u4F4D\u7684\u53CC\u5B57\u6BCD\u56FD\u5BB6/\u5730\u533A\u4EE3\u7801\u662F\u4EC0\u4E48?"},
- {"no.field.in.dname",
- "\u5FC5\u987B\u81F3\u5C11\u63D0\u4F9B\u4E00\u4E2A\u5B57\u6BB5\u3002\u8BF7\u518D\u6B21\u8F93\u5165\u3002"},
- {"Is.name.correct.", "{0}\u662F\u5426\u6B63\u786E?"},
- {"no", "\u5426"},
- {"yes", "\u662F"},
- {"y", "y"},
- {".defaultValue.", " [{0}]: "},
- {"Alias.alias.has.no.key",
- "\u522B\u540D <{0}> \u6CA1\u6709\u5BC6\u94A5"},
- {"Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key",
- "\u522B\u540D <{0}> \u5F15\u7528\u4E86\u4E0D\u5C5E\u4E8E\u79C1\u6709\u5BC6\u94A5\u6761\u76EE\u7684\u6761\u76EE\u7C7B\u578B\u3002-keyclone \u547D\u4EE4\u4EC5\u652F\u6301\u5BF9\u79C1\u6709\u5BC6\u94A5\u6761\u76EE\u7684\u514B\u9686"},
-
- {".WARNING.WARNING.WARNING.",
- "***************** WARNING WARNING WARNING *****************"},
- {"Signer.d.", "\u7B7E\u540D\u8005 #%d:"},
- {"Certificate.d.", "\u8BC1\u4E66 #%d\uFF1A"},
- {"Timestamp.", "\u65F6\u95F4\u6233:"},
- {"Certificate.owner.", "\u8BC1\u4E66\u6240\u6709\u8005: "},
- {"Not.a.signed.jar.file", "\u4E0D\u662F\u5DF2\u7B7E\u540D\u7684 jar \u6587\u4EF6"},
- {"No.certificate.from.the.SSL.server",
- "\u6CA1\u6709\u6765\u81EA SSL \u670D\u52A1\u5668\u7684\u8BC1\u4E66"},
-
- {".The.integrity.of.the.information.stored.in.your.keystore.",
- "* \u5B58\u50A8\u5728\u60A8\u7684\u5BC6\u94A5\u5E93\u4E2D\u7684\u4FE1\u606F\u7684\u5B8C\u6574\u6027 *\n* \u5C1A\u672A\u7ECF\u8FC7\u9A8C\u8BC1! \u4E3A\u4E86\u9A8C\u8BC1\u5176\u5B8C\u6574\u6027, *\n* \u5FC5\u987B\u63D0\u4F9B\u5BC6\u94A5\u5E93\u53E3\u4EE4\u3002 *"},
- {".The.integrity.of.the.information.stored.in.the.srckeystore.",
- "* \u5B58\u50A8\u5728 srckeystore \u4E2D\u7684\u4FE1\u606F\u7684\u5B8C\u6574\u6027*\n* \u5C1A\u672A\u7ECF\u8FC7\u9A8C\u8BC1! \u4E3A\u4E86\u9A8C\u8BC1\u5176\u5B8C\u6574\u6027, *\n* \u5FC5\u987B\u63D0\u4F9B\u6E90\u5BC6\u94A5\u5E93\u53E3\u4EE4\u3002 *"},
-
- {"Certificate.reply.does.not.contain.public.key.for.alias.",
- "\u8BC1\u4E66\u56DE\u590D\u4E2D\u4E0D\u5305\u542B <{0}> \u7684\u516C\u5171\u5BC6\u94A5"},
- {"Incomplete.certificate.chain.in.reply",
- "\u56DE\u590D\u4E2D\u7684\u8BC1\u4E66\u94FE\u4E0D\u5B8C\u6574"},
- {"Top.level.certificate.in.reply.",
- "\u56DE\u590D\u4E2D\u7684\u9876\u7EA7\u8BC1\u4E66:\n"},
- {".is.not.trusted.", "... \u662F\u4E0D\u53EF\u4FE1\u7684\u3002"},
- {"Install.reply.anyway.no.", "\u662F\u5426\u4ECD\u8981\u5B89\u88C5\u56DE\u590D? [\u5426]: "},
- {"Public.keys.in.reply.and.keystore.don.t.match",
- "\u56DE\u590D\u4E2D\u7684\u516C\u5171\u5BC6\u94A5\u4E0E\u5BC6\u94A5\u5E93\u4E0D\u5339\u914D"},
- {"Certificate.reply.and.certificate.in.keystore.are.identical",
- "\u8BC1\u4E66\u56DE\u590D\u4E0E\u5BC6\u94A5\u5E93\u4E2D\u7684\u8BC1\u4E66\u662F\u76F8\u540C\u7684"},
- {"Failed.to.establish.chain.from.reply",
- "\u65E0\u6CD5\u4ECE\u56DE\u590D\u4E2D\u5EFA\u7ACB\u94FE"},
- {"n", "n"},
- {"Wrong.answer.try.again", "\u9519\u8BEF\u7684\u7B54\u6848, \u8BF7\u518D\u8BD5\u4E00\u6B21"},
- {"Secret.key.not.generated.alias.alias.already.exists",
- "\u6CA1\u6709\u751F\u6210\u5BC6\u94A5, \u522B\u540D <{0}> \u5DF2\u7ECF\u5B58\u5728"},
- {"Please.provide.keysize.for.secret.key.generation",
- "\u8BF7\u63D0\u4F9B -keysize \u4EE5\u751F\u6210\u5BC6\u94A5"},
-
- {"warning.not.verified.make.sure.keystore.is.correct",
- "\u8B66\u544A: \u672A\u9A8C\u8BC1\u3002\u8BF7\u786E\u4FDD\u5BC6\u94A5\u5E93\u662F\u6B63\u786E\u7684\u3002"},
- {"warning.not.verified.make.sure.keystore.is.correct.or.specify.trustcacerts",
- "\u8B66\u544A\uFF1A\u672A\u9A8C\u8BC1\u3002\u8BF7\u786E\u4FDD\u5BC6\u94A5\u5E93\u662F\u6B63\u786E\u7684\uFF0C\u6216\u8005\u6307\u5B9A -trustcacerts\u3002"},
-
- {"Extensions.", "\u6269\u5C55: "},
- {".Empty.value.", "(\u7A7A\u503C)"},
- {"Extension.Request.", "\u6269\u5C55\u8BF7\u6C42:"},
- {"Unknown.keyUsage.type.", "\u672A\u77E5 keyUsage \u7C7B\u578B: "},
- {"Unknown.extendedkeyUsage.type.", "\u672A\u77E5 extendedkeyUsage \u7C7B\u578B: "},
- {"Unknown.AccessDescription.type.", "\u672A\u77E5 AccessDescription \u7C7B\u578B: "},
- {"Unrecognized.GeneralName.type.", "\u65E0\u6CD5\u8BC6\u522B\u7684 GeneralName \u7C7B\u578B: "},
- {"This.extension.cannot.be.marked.as.critical.",
- "\u65E0\u6CD5\u5C06\u6B64\u6269\u5C55\u6807\u8BB0\u4E3A\u201C\u4E25\u91CD\u201D\u3002"},
- {"Odd.number.of.hex.digits.found.", "\u627E\u5230\u5947\u6570\u4E2A\u5341\u516D\u8FDB\u5236\u6570\u5B57: "},
- {"Unknown.extension.type.", "\u672A\u77E5\u6269\u5C55\u7C7B\u578B: "},
- {"command.{0}.is.ambiguous.", "\u547D\u4EE4{0}\u4E0D\u660E\u786E:"},
-
- // 8171319: keytool should print out warnings when reading or
- // generating cert/cert req using weak algorithms
- {"the.certificate.request", "\u8BC1\u4E66\u8BF7\u6C42"},
- {"the.issuer", "\u53D1\u5E03\u8005"},
- {"the.generated.secretkey", "\u751F\u6210\u7684\u5BC6\u94A5"},
- {"the.generated.certificate", "\u751F\u6210\u7684\u8BC1\u4E66"},
- {"the.generated.crl", "\u751F\u6210\u7684 CRL"},
- {"the.generated.certificate.request", "\u751F\u6210\u7684\u8BC1\u4E66\u8BF7\u6C42"},
- {"the.certificate", "\u8BC1\u4E66"},
- {"the.crl", "CRL"},
- {"the.tsa.certificate", "TSA \u8BC1\u4E66"},
- {"the.input", "\u8F93\u5165"},
- {"reply", "\u56DE\u590D"},
- {"one.in.many", "%1$s #%2$d/%3$d"},
- {"one.in.many1", "%1$s #%2$d"},
- {"one.in.many2", "\u7B7E\u540D\u8005 #%2$d \u7684 %1$s"},
- {"one.in.many3", "\u7B7E\u540D\u8005 #%3$d \u7684 %1$s #%2$d"},
- {"alias.in.cacerts", "cacerts \u4E2D\u7684\u53D1\u5E03\u8005 <%s>"},
- {"alias.in.keystore", "\u53D1\u5E03\u8005 <%s>"},
- {"with.weak", "%s (\u5F31)"},
- {"with.disabled", "%s\uFF08\u7981\u7528\uFF09"},
- {"key.bit", "%s \u5BC6\u94A5"},
- {"key.bit.weak", "%s \u5BC6\u94A5\uFF08\u5F31\uFF09"},
- {"key.bit.disabled", "%s \u5BC6\u94A5\uFF08\u5DF2\u7981\u7528\uFF09"},
- {".PATTERN.printX509Cert.with.weak",
- "\u6240\u6709\u8005: {0}\n\u53D1\u5E03\u8005: {1}\n\u5E8F\u5217\u53F7: {2}\n\u751F\u6548\u65F6\u95F4: {3}, \u5931\u6548\u65F6\u95F4: {4}\n\u8BC1\u4E66\u6307\u7EB9:\n\t SHA1: {5}\n\t SHA256: {6}\n\u7B7E\u540D\u7B97\u6CD5\u540D\u79F0: {7}\n\u4E3B\u4F53\u516C\u5171\u5BC6\u94A5\u7B97\u6CD5: {8}\n\u7248\u672C: {9}"},
- {"PKCS.10.with.weak",
- "PKCS #10 \u8BC1\u4E66\u8BF7\u6C42 (\u7248\u672C 1.0)\n\u4E3B\u4F53: %1$s\n\u683C\u5F0F: %2$s\n\u516C\u5171\u5BC6\u94A5: %3$s\n\u7B7E\u540D\u7B97\u6CD5: %4$s\n"},
- {"verified.by.s.in.s.weak", "\u7531 %2$s \u4E2D\u7684 %1$s \u4EE5 %3$s \u9A8C\u8BC1"},
- {"whose.sigalg.disabled", "%1$s \u4F7F\u7528\u7684 %2$s \u7B7E\u540D\u7B97\u6CD5\u88AB\u89C6\u4E3A\u5B58\u5728\u5B89\u5168\u98CE\u9669\u800C\u4E14\u88AB\u7981\u7528\u3002"},
- {"whose.sigalg.usagesignedjar", "%1$s \u4F7F\u7528\u7684 %2$s \u7B7E\u540D\u7B97\u6CD5\u88AB\u89C6\u4E3A\u5B58\u5728\u5B89\u5168\u98CE\u9669\uFF0C\u65E0\u6CD5\u7528\u4E8E\u5728 %3$s \u540E\u5BF9 JAR \u8FDB\u884C\u7B7E\u540D\u3002"},
- {"Unable.to.parse.denyAfter.string.in.exception.message", "\u65E0\u6CD5\u89E3\u6790\u5F02\u5E38\u9519\u8BEF\u6D88\u606F\u4E2D\u7684 denyAfter \u65E5\u671F\u5B57\u7B26\u4E32"},
- {"whose.sigalg.weak", "%1$s \u4F7F\u7528\u7684 %2$s \u7B7E\u540D\u7B97\u6CD5\u5B58\u5728\u5B89\u5168\u98CE\u9669\u3002"},
- {"whose.key.disabled", "%1$s \u4F7F\u7528\u7684 %2$s \u88AB\u89C6\u4E3A\u5B58\u5728\u5B89\u5168\u98CE\u9669\u800C\u4E14\u88AB\u7981\u7528\u3002"},
- {"whose.key.weak", "%1$s \u4F7F\u7528\u7684 %2$s \u88AB\u89C6\u4E3A\u5B58\u5728\u5B89\u5168\u98CE\u9669\u3002\u5728\u5C06\u6765\u7684\u66F4\u65B0\u4E2D\u5C06\u7981\u7528\u5B83\u3002"},
- {"jks.storetype.warning", "%1$s \u5BC6\u94A5\u5E93\u4F7F\u7528\u4E13\u7528\u683C\u5F0F\u3002\u5EFA\u8BAE\u4F7F\u7528 \"keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12\" \u8FC1\u79FB\u5230\u884C\u4E1A\u6807\u51C6\u683C\u5F0F PKCS12\u3002"},
- {"migrate.keystore.warning", "\u5DF2\u5C06 \"%1$s\" \u8FC1\u79FB\u5230 %4$s\u3002\u5C06 %2$s \u5BC6\u94A5\u5E93\u4F5C\u4E3A \"%3$s\" \u8FDB\u884C\u4E86\u5907\u4EFD\u3002"},
- {"backup.keystore.warning", "\u5DF2\u5C06\u539F\u59CB\u5BC6\u94A5\u5E93 \"%1$s\" \u5907\u4EFD\u4E3A \"%3$s\"..."},
- {"importing.keystore.status", "\u6B63\u5728\u5C06\u5BC6\u94A5\u5E93 %1$s \u5BFC\u5165\u5230 %2$s..."},
- {"keyalg.option.missing.error", "\u5FC5\u987B\u6307\u5B9A -keyalg \u9009\u9879\u3002"},
- {"showinfo.no.option", "-showinfo \u7F3A\u5C11\u9009\u9879\u3002\u8BF7\u5C1D\u8BD5\u4F7F\u7528 \"keytool -showinfo -tls\"\u3002"},
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/Resources_zh_HK.java b/src/java.base/share/classes/sun/security/tools/keytool/Resources_zh_HK.java
deleted file mode 100644
index 89ef6076a62f6..0000000000000
--- a/src/java.base/share/classes/sun/security/tools/keytool/Resources_zh_HK.java
+++ /dev/null
@@ -1,429 +0,0 @@
-/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.tools.keytool;
-
-/**
- * This class represents the ResourceBundle
- * for the keytool.
- *
- */
-public class Resources_zh_HK extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
- {"NEWLINE", "\n"},
- {"STAR",
- "*******************************************"},
- {"STARNN",
- "*******************************************\n\n"},
-
- // keytool: Help part
-// "Option" should be translated.
- {".OPTION.", " [\u9078\u9805]..."},
- {"Options.", "\u9078\u9805:"},
- {"Use.keytool.help.for.all.available.commands",
- "\u4F7F\u7528 \"keytool -help\" \u53D6\u5F97\u6240\u6709\u53EF\u7528\u7684\u547D\u4EE4"},
- {"Key.and.Certificate.Management.Tool",
- "\u91D1\u9470\u8207\u6191\u8B49\u7BA1\u7406\u5DE5\u5177"},
- {"Commands.", "\u547D\u4EE4:"},
- {"Use.keytool.command.name.help.for.usage.of.command.name",
- "\u4F7F\u7528 \"keytool -command_name -help\" \u53D6\u5F97 command_name \u7684\u7528\u6CD5"},
- // keytool: help: commands
- {"Generates.a.certificate.request",
- "\u7522\u751F\u6191\u8B49\u8981\u6C42"}, //-certreq
- {"Changes.an.entry.s.alias",
- "\u8B8A\u66F4\u9805\u76EE\u7684\u5225\u540D"}, //-changealias
- {"Deletes.an.entry",
- "\u522A\u9664\u9805\u76EE"}, //-delete
- {"Exports.certificate",
- "\u532F\u51FA\u6191\u8B49"}, //-exportcert
- {"Generates.a.key.pair",
- "\u7522\u751F\u91D1\u9470\u7D44"}, //-genkeypair
-// translation of "secret" key should be different to "private" key.
- {"Generates.a.secret.key",
- "\u7522\u751F\u79D8\u5BC6\u91D1\u9470"}, //-genseckey
- {"Generates.certificate.from.a.certificate.request",
- "\u5F9E\u6191\u8B49\u8981\u6C42\u7522\u751F\u6191\u8B49"}, //-gencert
- {"Generates.CRL", "\u7522\u751F CRL"}, //-gencrl
- {"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
- "\u5F9E JDK 1.1.x-style \u8B58\u5225\u8CC7\u6599\u5EAB\u532F\u5165\u9805\u76EE"}, //-identitydb
- {"Imports.a.certificate.or.a.certificate.chain",
- "\u532F\u5165\u6191\u8B49\u6216\u6191\u8B49\u93C8"}, //-importcert
- {"Imports.one.or.all.entries.from.another.keystore",
- "\u5F9E\u5176\u4ED6\u91D1\u9470\u5132\u5B58\u5EAB\u532F\u5165\u4E00\u500B\u6216\u5168\u90E8\u9805\u76EE"}, //-importkeystore
- {"Clones.a.key.entry",
- "\u8907\u88FD\u91D1\u9470\u9805\u76EE"}, //-keyclone
- {"Changes.the.key.password.of.an.entry",
- "\u8B8A\u66F4\u9805\u76EE\u7684\u91D1\u9470\u5BC6\u78BC"}, //-keypasswd
- {"Lists.entries.in.a.keystore",
- "\u5217\u793A\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D\u7684\u9805\u76EE"}, //-list
- {"Prints.the.content.of.a.certificate",
- "\u5217\u5370\u6191\u8B49\u7684\u5167\u5BB9"}, //-printcert
- {"Prints.the.content.of.a.certificate.request",
- "\u5217\u5370\u6191\u8B49\u8981\u6C42\u7684\u5167\u5BB9"}, //-printcertreq
- {"Prints.the.content.of.a.CRL.file",
- "\u5217\u5370 CRL \u6A94\u6848\u7684\u5167\u5BB9"}, //-printcrl
- {"Generates.a.self.signed.certificate",
- "\u7522\u751F\u81EA\u884C\u7C3D\u7F72\u7684\u6191\u8B49"}, //-selfcert
- {"Changes.the.store.password.of.a.keystore",
- "\u8B8A\u66F4\u91D1\u9470\u5132\u5B58\u5EAB\u7684\u5132\u5B58\u5BC6\u78BC"}, //-storepasswd
- // keytool: help: options
- {"alias.name.of.the.entry.to.process",
- "\u8981\u8655\u7406\u9805\u76EE\u7684\u5225\u540D\u540D\u7A31"}, //-alias
- {"destination.alias",
- "\u76EE\u7684\u5730\u5225\u540D"}, //-destalias
- {"destination.key.password",
- "\u76EE\u7684\u5730\u91D1\u9470\u5BC6\u78BC"}, //-destkeypass
- {"destination.keystore.name",
- "\u76EE\u7684\u5730\u91D1\u9470\u5132\u5B58\u5EAB\u540D\u7A31"}, //-destkeystore
- {"destination.keystore.password.protected",
- "\u76EE\u7684\u5730\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC\u4FDD\u8B77"}, //-destprotected
- {"destination.keystore.provider.name",
- "\u76EE\u7684\u5730\u91D1\u9470\u5132\u5B58\u5EAB\u63D0\u4F9B\u8005\u540D\u7A31"}, //-destprovidername
- {"destination.keystore.password",
- "\u76EE\u7684\u5730\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC"}, //-deststorepass
- {"destination.keystore.type",
- "\u76EE\u7684\u5730\u91D1\u9470\u5132\u5B58\u5EAB\u985E\u578B"}, //-deststoretype
- {"distinguished.name",
- "\u8FA8\u5225\u540D\u7A31"}, //-dname
- {"X.509.extension",
- "X.509 \u64F4\u5145\u5957\u4EF6"}, //-ext
- {"output.file.name",
- "\u8F38\u51FA\u6A94\u6848\u540D\u7A31"}, //-file and -outfile
- {"input.file.name",
- "\u8F38\u5165\u6A94\u6848\u540D\u7A31"}, //-file and -infile
- {"key.algorithm.name",
- "\u91D1\u9470\u6F14\u7B97\u6CD5\u540D\u7A31"}, //-keyalg
- {"key.password",
- "\u91D1\u9470\u5BC6\u78BC"}, //-keypass
- {"key.bit.size",
- "\u91D1\u9470\u4F4D\u5143\u5927\u5C0F"}, //-keysize
- {"keystore.name",
- "\u91D1\u9470\u5132\u5B58\u5EAB\u540D\u7A31"}, //-keystore
- {"new.password",
- "\u65B0\u5BC6\u78BC"}, //-new
- {"do.not.prompt",
- "\u4E0D\u8981\u63D0\u793A"}, //-noprompt
- {"password.through.protected.mechanism",
- "\u7D93\u7531\u4FDD\u8B77\u6A5F\u5236\u7684\u5BC6\u78BC"}, //-protected
- {"provider.argument",
- "\u63D0\u4F9B\u8005\u5F15\u6578"}, //-providerarg
- {"provider.class.name",
- "\u63D0\u4F9B\u8005\u985E\u5225\u540D\u7A31"}, //-providerclass
- {"provider.name",
- "\u63D0\u4F9B\u8005\u540D\u7A31"}, //-providername
- {"provider.classpath",
- "\u63D0\u4F9B\u8005\u985E\u5225\u8DEF\u5F91"}, //-providerpath
- {"output.in.RFC.style",
- "\u4EE5 RFC \u6A23\u5F0F\u8F38\u51FA"}, //-rfc
- {"signature.algorithm.name",
- "\u7C3D\u7AE0\u6F14\u7B97\u6CD5\u540D\u7A31"}, //-sigalg
- {"source.alias",
- "\u4F86\u6E90\u5225\u540D"}, //-srcalias
- {"source.key.password",
- "\u4F86\u6E90\u91D1\u9470\u5BC6\u78BC"}, //-srckeypass
- {"source.keystore.name",
- "\u4F86\u6E90\u91D1\u9470\u5132\u5B58\u5EAB\u540D\u7A31"}, //-srckeystore
- {"source.keystore.password.protected",
- "\u4F86\u6E90\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC\u4FDD\u8B77"}, //-srcprotected
- {"source.keystore.provider.name",
- "\u4F86\u6E90\u91D1\u9470\u5132\u5B58\u5EAB\u63D0\u4F9B\u8005\u540D\u7A31"}, //-srcprovidername
- {"source.keystore.password",
- "\u4F86\u6E90\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC"}, //-srcstorepass
- {"source.keystore.type",
- "\u4F86\u6E90\u91D1\u9470\u5132\u5B58\u5EAB\u985E\u578B"}, //-srcstoretype
- {"SSL.server.host.and.port",
- "SSL \u4F3A\u670D\u5668\u4E3B\u6A5F\u8207\u9023\u63A5\u57E0"}, //-sslserver
- {"signed.jar.file",
- "\u7C3D\u7F72\u7684 jar \u6A94\u6848"}, //=jarfile
- {"certificate.validity.start.date.time",
- "\u6191\u8B49\u6709\u6548\u6027\u958B\u59CB\u65E5\u671F/\u6642\u9593"}, //-startdate
- {"keystore.password",
- "\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC"}, //-storepass
- {"keystore.type",
- "\u91D1\u9470\u5132\u5B58\u5EAB\u985E\u578B"}, //-storetype
- {"trust.certificates.from.cacerts",
- "\u4F86\u81EA cacerts \u7684\u4FE1\u4EFB\u6191\u8B49"}, //-trustcacerts
- {"verbose.output",
- "\u8A73\u7D30\u8CC7\u8A0A\u8F38\u51FA"}, //-v
- {"validity.number.of.days",
- "\u6709\u6548\u6027\u65E5\u6578"}, //-validity
- {"Serial.ID.of.cert.to.revoke",
- "\u8981\u64A4\u92B7\u6191\u8B49\u7684\u5E8F\u5217 ID"}, //-id
- // keytool: Running part
- {"keytool.error.", "\u91D1\u9470\u5DE5\u5177\u932F\u8AA4: "},
- {"Illegal.option.", "\u7121\u6548\u7684\u9078\u9805:"},
- {"Illegal.value.", "\u7121\u6548\u503C: "},
- {"Unknown.password.type.", "\u4E0D\u660E\u7684\u5BC6\u78BC\u985E\u578B: "},
- {"Cannot.find.environment.variable.",
- "\u627E\u4E0D\u5230\u74B0\u5883\u8B8A\u6578: "},
- {"Cannot.find.file.", "\u627E\u4E0D\u5230\u6A94\u6848: "},
- {"Command.option.flag.needs.an.argument.", "\u547D\u4EE4\u9078\u9805 {0} \u9700\u8981\u5F15\u6578\u3002"},
- {"Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.",
- "\u8B66\u544A: PKCS12 \u91D1\u9470\u5132\u5B58\u5EAB\u4E0D\u652F\u63F4\u4E0D\u540C\u7684\u5132\u5B58\u5EAB\u548C\u91D1\u9470\u5BC6\u78BC\u3002\u5FFD\u7565\u4F7F\u7528\u8005\u6307\u5B9A\u7684 {0} \u503C\u3002"},
- {".keystore.must.be.NONE.if.storetype.is.{0}",
- "\u5982\u679C -storetype \u70BA {0}\uFF0C\u5247 -keystore \u5FC5\u9808\u70BA NONE"},
- {"Too.many.retries.program.terminated",
- "\u91CD\u8A66\u6B21\u6578\u592A\u591A\uFF0C\u7A0B\u5F0F\u5DF2\u7D42\u6B62"},
- {".storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}",
- "\u5982\u679C -storetype \u70BA {0}\uFF0C\u5247\u4E0D\u652F\u63F4 -storepasswd \u548C -keypasswd \u547D\u4EE4"},
- {".keypasswd.commands.not.supported.if.storetype.is.PKCS12",
- "\u5982\u679C -storetype \u70BA PKCS12\uFF0C\u5247\u4E0D\u652F\u63F4 -keypasswd \u547D\u4EE4"},
- {".keypass.and.new.can.not.be.specified.if.storetype.is.{0}",
- "\u5982\u679C -storetype \u70BA {0}\uFF0C\u5247\u4E0D\u80FD\u6307\u5B9A -keypass \u548C -new"},
- {"if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified",
- "\u5982\u679C\u6307\u5B9A -protected\uFF0C\u5247\u4E0D\u80FD\u6307\u5B9A -storepass\u3001-keypass \u548C -new"},
- {"if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "\u5982\u679C\u6307\u5B9A -srcprotected\uFF0C\u5247\u4E0D\u80FD\u6307\u5B9A -srcstorepass \u548C -srckeypass"},
- {"if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified",
- "\u5982\u679C\u91D1\u9470\u5132\u5B58\u5EAB\u4E0D\u53D7\u5BC6\u78BC\u4FDD\u8B77\uFF0C\u5247\u4E0D\u80FD\u6307\u5B9A -storepass\u3001-keypass \u548C -new"},
- {"if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "\u5982\u679C\u4F86\u6E90\u91D1\u9470\u5132\u5B58\u5EAB\u4E0D\u53D7\u5BC6\u78BC\u4FDD\u8B77\uFF0C\u5247\u4E0D\u80FD\u6307\u5B9A -srcstorepass \u548C -srckeypass"},
- {"Illegal.startdate.value", "\u7121\u6548\u7684 startdate \u503C"},
- {"Validity.must.be.greater.than.zero",
- "\u6709\u6548\u6027\u5FC5\u9808\u5927\u65BC\u96F6"},
- {"provName.not.a.provider", "{0} \u4E0D\u662F\u4E00\u500B\u63D0\u4F9B\u8005"},
- {"Usage.error.no.command.provided", "\u7528\u6CD5\u932F\u8AA4: \u672A\u63D0\u4F9B\u547D\u4EE4"},
- {"Source.keystore.file.exists.but.is.empty.", "\u4F86\u6E90\u91D1\u9470\u5132\u5B58\u5EAB\u6A94\u6848\u5B58\u5728\uFF0C\u4F46\u70BA\u7A7A: "},
- {"Please.specify.srckeystore", "\u8ACB\u6307\u5B9A -srckeystore"},
- {"Must.not.specify.both.v.and.rfc.with.list.command",
- " 'list' \u547D\u4EE4\u4E0D\u80FD\u540C\u6642\u6307\u5B9A -v \u53CA -rfc"},
- {"Key.password.must.be.at.least.6.characters",
- "\u91D1\u9470\u5BC6\u78BC\u5FC5\u9808\u81F3\u5C11\u70BA 6 \u500B\u5B57\u5143"},
- {"New.password.must.be.at.least.6.characters",
- "\u65B0\u7684\u5BC6\u78BC\u5FC5\u9808\u81F3\u5C11\u70BA 6 \u500B\u5B57\u5143"},
- {"Keystore.file.exists.but.is.empty.",
- "\u91D1\u9470\u5132\u5B58\u5EAB\u6A94\u6848\u5B58\u5728\uFF0C\u4F46\u70BA\u7A7A\u767D: "},
- {"Keystore.file.does.not.exist.",
- "\u91D1\u9470\u5132\u5B58\u5EAB\u6A94\u6848\u4E0D\u5B58\u5728: "},
- {"Must.specify.destination.alias", "\u5FC5\u9808\u6307\u5B9A\u76EE\u7684\u5730\u5225\u540D"},
- {"Must.specify.alias", "\u5FC5\u9808\u6307\u5B9A\u5225\u540D"},
- {"Keystore.password.must.be.at.least.6.characters",
- "\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC\u5FC5\u9808\u81F3\u5C11\u70BA 6 \u500B\u5B57\u5143"},
- {"Enter.keystore.password.", "\u8F38\u5165\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC: "},
- {"Enter.source.keystore.password.", "\u8ACB\u8F38\u5165\u4F86\u6E90\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC: "},
- {"Enter.destination.keystore.password.", "\u8ACB\u8F38\u5165\u76EE\u7684\u5730\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC: "},
- {"Keystore.password.is.too.short.must.be.at.least.6.characters",
- "\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC\u592A\u77ED - \u5FC5\u9808\u81F3\u5C11\u70BA 6 \u500B\u5B57\u5143"},
- {"Unknown.Entry.Type", "\u4E0D\u660E\u7684\u9805\u76EE\u985E\u578B"},
- {"Too.many.failures.Alias.not.changed", "\u592A\u591A\u932F\u8AA4\u3002\u672A\u8B8A\u66F4\u5225\u540D"},
- {"Entry.for.alias.alias.successfully.imported.",
- "\u5DF2\u6210\u529F\u532F\u5165\u5225\u540D {0} \u7684\u9805\u76EE\u3002"},
- {"Entry.for.alias.alias.not.imported.", "\u672A\u532F\u5165\u5225\u540D {0} \u7684\u9805\u76EE\u3002"},
- {"Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.",
- "\u532F\u5165\u5225\u540D {0} \u7684\u9805\u76EE\u6642\u51FA\u73FE\u554F\u984C: {1}\u3002\n\u672A\u532F\u5165\u5225\u540D {0} \u7684\u9805\u76EE\u3002"},
- {"Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled",
- "\u5DF2\u5B8C\u6210\u532F\u5165\u547D\u4EE4: \u6210\u529F\u532F\u5165 {0} \u500B\u9805\u76EE\uFF0C{1} \u500B\u9805\u76EE\u5931\u6557\u6216\u5DF2\u53D6\u6D88"},
- {"Warning.Overwriting.existing.alias.alias.in.destination.keystore",
- "\u8B66\u544A: \u6B63\u5728\u8986\u5BEB\u76EE\u7684\u5730\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D\u7684\u73FE\u6709\u5225\u540D {0}"},
- {"Existing.entry.alias.alias.exists.overwrite.no.",
- "\u73FE\u6709\u9805\u76EE\u5225\u540D {0} \u5B58\u5728\uFF0C\u662F\u5426\u8986\u5BEB\uFF1F[\u5426]: "},
- {"Too.many.failures.try.later", "\u592A\u591A\u932F\u8AA4 - \u8ACB\u7A0D\u5F8C\u518D\u8A66"},
- {"Certification.request.stored.in.file.filename.",
- "\u8A8D\u8B49\u8981\u6C42\u5132\u5B58\u5728\u6A94\u6848 <{0}>"},
- {"Submit.this.to.your.CA", "\u5C07\u6B64\u9001\u51FA\u81F3\u60A8\u7684 CA"},
- {"if.alias.not.specified.destalias.srckeypass.and.destkeypass.must.not.be.specified",
- "\u5982\u679C\u672A\u6307\u5B9A\u5225\u540D\uFF0C\u5247\u4E0D\u80FD\u6307\u5B9A destalias\u3001srckeypass \u53CA destkeypass"},
- {"Certificate.stored.in.file.filename.",
- "\u6191\u8B49\u5132\u5B58\u5728\u6A94\u6848 <{0}>"},
- {"Certificate.reply.was.installed.in.keystore",
- "\u6191\u8B49\u56DE\u8986\u5DF2\u5B89\u88DD\u5728\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D"},
- {"Certificate.reply.was.not.installed.in.keystore",
- "\u6191\u8B49\u56DE\u8986\u672A\u5B89\u88DD\u5728\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D"},
- {"Certificate.was.added.to.keystore",
- "\u6191\u8B49\u5DF2\u65B0\u589E\u81F3\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D"},
- {"Certificate.was.not.added.to.keystore",
- "\u6191\u8B49\u672A\u65B0\u589E\u81F3\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D"},
- {".Storing.ksfname.", "[\u5132\u5B58 {0}]"},
- {"alias.has.no.public.key.certificate.",
- "{0} \u6C92\u6709\u516C\u958B\u91D1\u9470 (\u6191\u8B49)"},
- {"Cannot.derive.signature.algorithm",
- "\u7121\u6CD5\u53D6\u5F97\u7C3D\u7AE0\u6F14\u7B97\u6CD5"},
- {"Alias.alias.does.not.exist",
- "\u5225\u540D <{0}> \u4E0D\u5B58\u5728"},
- {"Alias.alias.has.no.certificate",
- "\u5225\u540D <{0}> \u6C92\u6709\u6191\u8B49"},
- {"Key.pair.not.generated.alias.alias.already.exists",
- "\u6C92\u6709\u5EFA\u7ACB\u91D1\u9470\u7D44\uFF0C\u5225\u540D <{0}> \u5DF2\u7D93\u5B58\u5728"},
- {"Generating.keysize.bit.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.validality.days.for",
- "\u91DD\u5C0D {4} \u7522\u751F\u6709\u6548\u671F {3} \u5929\u7684 {0} \u4F4D\u5143 {1} \u91D1\u9470\u7D44\u4EE5\u53CA\u81EA\u6211\u7C3D\u7F72\u6191\u8B49 ({2})\n\t"},
- {"Enter.key.password.for.alias.", "\u8F38\u5165 <{0}> \u7684\u91D1\u9470\u5BC6\u78BC"},
- {".RETURN.if.same.as.keystore.password.",
- "\t(RETURN \u5982\u679C\u548C\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC\u76F8\u540C): "},
- {"Key.password.is.too.short.must.be.at.least.6.characters",
- "\u91D1\u9470\u5BC6\u78BC\u592A\u77ED - \u5FC5\u9808\u81F3\u5C11\u70BA 6 \u500B\u5B57\u5143"},
- {"Too.many.failures.key.not.added.to.keystore",
- "\u592A\u591A\u932F\u8AA4 - \u91D1\u9470\u672A\u65B0\u589E\u81F3\u91D1\u9470\u5132\u5B58\u5EAB"},
- {"Destination.alias.dest.already.exists",
- "\u76EE\u7684\u5730\u5225\u540D <{0}> \u5DF2\u7D93\u5B58\u5728"},
- {"Password.is.too.short.must.be.at.least.6.characters",
- "\u5BC6\u78BC\u592A\u77ED - \u5FC5\u9808\u81F3\u5C11\u70BA 6 \u500B\u5B57\u5143"},
- {"Too.many.failures.Key.entry.not.cloned",
- "\u592A\u591A\u932F\u8AA4\u3002\u672A\u8907\u88FD\u91D1\u9470\u9805\u76EE"},
- {"key.password.for.alias.", "<{0}> \u7684\u91D1\u9470\u5BC6\u78BC"},
- {"Keystore.entry.for.id.getName.already.exists",
- "<{0}> \u7684\u91D1\u9470\u5132\u5B58\u5EAB\u9805\u76EE\u5DF2\u7D93\u5B58\u5728"},
- {"Creating.keystore.entry.for.id.getName.",
- "\u5EFA\u7ACB <{0}> \u7684\u91D1\u9470\u5132\u5B58\u5EAB\u9805\u76EE..."},
- {"No.entries.from.identity.database.added",
- "\u6C92\u6709\u65B0\u589E\u4F86\u81EA\u8B58\u5225\u8CC7\u6599\u5EAB\u7684\u9805\u76EE"},
- {"Alias.name.alias", "\u5225\u540D\u540D\u7A31: {0}"},
- {"Creation.date.keyStore.getCreationDate.alias.",
- "\u5EFA\u7ACB\u65E5\u671F: {0,date}"},
- {"alias.keyStore.getCreationDate.alias.",
- "{0}, {1,date}, "},
- {"alias.", "{0}, "},
- {"Entry.type.type.", "\u9805\u76EE\u985E\u578B: {0}"},
- {"Certificate.chain.length.", "\u6191\u8B49\u93C8\u9577\u5EA6: "},
- {"Certificate.i.1.", "\u6191\u8B49 [{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA1.", "\u6191\u8B49\u6307\u7D0B (SHA1): "},
- {"Keystore.type.", "\u91D1\u9470\u5132\u5B58\u5EAB\u985E\u578B: "},
- {"Keystore.provider.", "\u91D1\u9470\u5132\u5B58\u5EAB\u63D0\u4F9B\u8005: "},
- {"Your.keystore.contains.keyStore.size.entry",
- "\u60A8\u7684\u91D1\u9470\u5132\u5B58\u5EAB\u5305\u542B {0,number,integer} \u9805\u76EE"},
- {"Your.keystore.contains.keyStore.size.entries",
- "\u60A8\u7684\u91D1\u9470\u5132\u5B58\u5EAB\u5305\u542B {0,number,integer} \u9805\u76EE"},
- {"Failed.to.parse.input", "\u7121\u6CD5\u5256\u6790\u8F38\u5165"},
- {"Empty.input", "\u7A7A\u8F38\u5165"},
- {"Not.X.509.certificate", "\u975E X.509 \u6191\u8B49"},
- {"alias.has.no.public.key", "{0} \u7121\u516C\u958B\u91D1\u9470"},
- {"alias.has.no.X.509.certificate", "{0} \u7121 X.509 \u6191\u8B49"},
- {"New.certificate.self.signed.", "\u65B0\u6191\u8B49 (\u81EA\u6211\u7C3D\u7F72): "},
- {"Reply.has.no.certificates", "\u56DE\u8986\u4E0D\u542B\u6191\u8B49"},
- {"Certificate.not.imported.alias.alias.already.exists",
- "\u6191\u8B49\u672A\u8F38\u5165\uFF0C\u5225\u540D <{0}> \u5DF2\u7D93\u5B58\u5728"},
- {"Input.not.an.X.509.certificate", "\u8F38\u5165\u7684\u4E0D\u662F X.509 \u6191\u8B49"},
- {"Certificate.already.exists.in.keystore.under.alias.trustalias.",
- "\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D\u7684 <{0}> \u5225\u540D\u4E4B\u4E0B\uFF0C\u6191\u8B49\u5DF2\u7D93\u5B58\u5728"},
- {"Do.you.still.want.to.add.it.no.",
- "\u60A8\u4ECD\u7136\u60F3\u8981\u5C07\u4E4B\u65B0\u589E\u55CE\uFF1F [\u5426]: "},
- {"Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.",
- "\u6574\u500B\u7CFB\u7D71 CA \u91D1\u9470\u5132\u5B58\u5EAB\u4E2D\u7684 <{0}> \u5225\u540D\u4E4B\u4E0B\uFF0C\u6191\u8B49\u5DF2\u7D93\u5B58\u5728"},
- {"Do.you.still.want.to.add.it.to.your.own.keystore.no.",
- "\u60A8\u4ECD\u7136\u60F3\u8981\u5C07\u4E4B\u65B0\u589E\u81F3\u81EA\u5DF1\u7684\u91D1\u9470\u5132\u5B58\u5EAB\u55CE\uFF1F [\u5426]: "},
- {"Trust.this.certificate.no.", "\u4FE1\u4EFB\u9019\u500B\u6191\u8B49\uFF1F [\u5426]: "},
- {"YES", "\u662F"},
- {"New.prompt.", "\u65B0 {0}: "},
- {"Passwords.must.differ", "\u5FC5\u9808\u662F\u4E0D\u540C\u7684\u5BC6\u78BC"},
- {"Re.enter.new.prompt.", "\u91CD\u65B0\u8F38\u5165\u65B0 {0}: "},
- {"Re.enter.new.password.", "\u91CD\u65B0\u8F38\u5165\u65B0\u5BC6\u78BC: "},
- {"They.don.t.match.Try.again", "\u5B83\u5011\u4E0D\u76F8\u7B26\u3002\u8ACB\u91CD\u8A66"},
- {"Enter.prompt.alias.name.", "\u8F38\u5165 {0} \u5225\u540D\u540D\u7A31: "},
- {"Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.",
- "\u8ACB\u8F38\u5165\u65B0\u7684\u5225\u540D\u540D\u7A31\t(RETURN \u4EE5\u53D6\u6D88\u532F\u5165\u6B64\u9805\u76EE):"},
- {"Enter.alias.name.", "\u8F38\u5165\u5225\u540D\u540D\u7A31: "},
- {".RETURN.if.same.as.for.otherAlias.",
- "\t(RETURN \u5982\u679C\u548C <{0}> \u7684\u76F8\u540C)"},
- {".PATTERN.printX509Cert",
- "\u64C1\u6709\u8005: {0}\n\u767C\u51FA\u8005: {1}\n\u5E8F\u865F: {2}\n\u6709\u6548\u671F\u81EA: {3} \u5230: {4}\n\u6191\u8B49\u6307\u7D0B:\n\t MD5: {5}\n\t SHA1: {6}\n\t SHA256: {7}\n\t \u7C3D\u7AE0\u6F14\u7B97\u6CD5\u540D\u7A31: {8}\n\t \u7248\u672C: {9}"},
- {"What.is.your.first.and.last.name.",
- "\u60A8\u7684\u540D\u5B57\u8207\u59D3\u6C0F\u70BA\u4F55\uFF1F"},
- {"What.is.the.name.of.your.organizational.unit.",
- "\u60A8\u7684\u7D44\u7E54\u55AE\u4F4D\u540D\u7A31\u70BA\u4F55\uFF1F"},
- {"What.is.the.name.of.your.organization.",
- "\u60A8\u7684\u7D44\u7E54\u540D\u7A31\u70BA\u4F55\uFF1F"},
- {"What.is.the.name.of.your.City.or.Locality.",
- "\u60A8\u6240\u5728\u7684\u57CE\u5E02\u6216\u5730\u5340\u540D\u7A31\u70BA\u4F55\uFF1F"},
- {"What.is.the.name.of.your.State.or.Province.",
- "\u60A8\u6240\u5728\u7684\u5DDE\u53CA\u7701\u4EFD\u540D\u7A31\u70BA\u4F55\uFF1F"},
- {"What.is.the.two.letter.country.code.for.this.unit.",
- "\u6B64\u55AE\u4F4D\u7684\u5169\u500B\u5B57\u6BCD\u570B\u5225\u4EE3\u78BC\u70BA\u4F55\uFF1F"},
- {"Is.name.correct.", "{0} \u6B63\u78BA\u55CE\uFF1F"},
- {"no", "\u5426"},
- {"yes", "\u662F"},
- {"y", "y"},
- {".defaultValue.", " [{0}]: "},
- {"Alias.alias.has.no.key",
- "\u5225\u540D <{0}> \u6C92\u6709\u91D1\u9470"},
- {"Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key",
- "\u5225\u540D <{0}> \u6240\u53C3\u7167\u7684\u9805\u76EE\u4E0D\u662F\u79C1\u5BC6\u91D1\u9470\u985E\u578B\u3002-keyclone \u547D\u4EE4\u50C5\u652F\u63F4\u79C1\u5BC6\u91D1\u9470\u9805\u76EE\u7684\u8907\u88FD"},
-
- {".WARNING.WARNING.WARNING.",
- "***************** \u8B66\u544A \u8B66\u544A \u8B66\u544A *****************"},
- {"Signer.d.", "\u7C3D\u7F72\u8005 #%d:"},
- {"Timestamp.", "\u6642\u6233:"},
- {"Signature.", "\u7C3D\u7AE0:"},
- {"CRLs.", "CRL:"},
- {"Certificate.owner.", "\u6191\u8B49\u64C1\u6709\u8005: "},
- {"Not.a.signed.jar.file", "\u4E0D\u662F\u7C3D\u7F72\u7684 jar \u6A94\u6848"},
- {"No.certificate.from.the.SSL.server",
- "\u6C92\u6709\u4F86\u81EA SSL \u4F3A\u670D\u5668\u7684\u6191\u8B49"},
-
- {".The.integrity.of.the.information.stored.in.your.keystore.",
- "* \u5C1A\u672A\u9A57\u8B49\u5132\u5B58\u65BC\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D\u8CC7\u8A0A *\n* \u7684\u5B8C\u6574\u6027\uFF01\u82E5\u8981\u9A57\u8B49\u5176\u5B8C\u6574\u6027\uFF0C*\n* \u60A8\u5FC5\u9808\u63D0\u4F9B\u60A8\u7684\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC\u3002 *"},
- {".The.integrity.of.the.information.stored.in.the.srckeystore.",
- "* \u5C1A\u672A\u9A57\u8B49\u5132\u5B58\u65BC srckeystore \u4E2D\u8CC7\u8A0A*\n* \u7684\u5B8C\u6574\u6027\uFF01\u82E5\u8981\u9A57\u8B49\u5176\u5B8C\u6574\u6027\uFF0C\u60A8\u5FC5\u9808 *\n* \u63D0\u4F9B srckeystore \u5BC6\u78BC\u3002 *"},
-
- {"Certificate.reply.does.not.contain.public.key.for.alias.",
- "\u6191\u8B49\u56DE\u8986\u4E26\u672A\u5305\u542B <{0}> \u7684\u516C\u958B\u91D1\u9470"},
- {"Incomplete.certificate.chain.in.reply",
- "\u56DE\u8986\u6642\u7684\u6191\u8B49\u93C8\u4E0D\u5B8C\u6574"},
- {"Certificate.chain.in.reply.does.not.verify.",
- "\u56DE\u8986\u6642\u7684\u6191\u8B49\u93C8\u672A\u9A57\u8B49: "},
- {"Top.level.certificate.in.reply.",
- "\u56DE\u8986\u6642\u7684\u6700\u9AD8\u7D1A\u6191\u8B49:\\n"},
- {".is.not.trusted.", "... \u662F\u4E0D\u88AB\u4FE1\u4EFB\u7684\u3002"},
- {"Install.reply.anyway.no.", "\u9084\u662F\u8981\u5B89\u88DD\u56DE\u8986\uFF1F [\u5426]: "},
- {"NO", "\u5426"},
- {"Public.keys.in.reply.and.keystore.don.t.match",
- "\u56DE\u8986\u6642\u7684\u516C\u958B\u91D1\u9470\u8207\u91D1\u9470\u5132\u5B58\u5EAB\u4E0D\u7B26"},
- {"Certificate.reply.and.certificate.in.keystore.are.identical",
- "\u6191\u8B49\u56DE\u8986\u8207\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D\u7684\u6191\u8B49\u662F\u76F8\u540C\u7684"},
- {"Failed.to.establish.chain.from.reply",
- "\u7121\u6CD5\u5F9E\u56DE\u8986\u4E2D\u5C07\u93C8\u5EFA\u7ACB\u8D77\u4F86"},
- {"n", "n"},
- {"Wrong.answer.try.again", "\u932F\u8AA4\u7684\u7B54\u6848\uFF0C\u8ACB\u518D\u8A66\u4E00\u6B21"},
- {"Secret.key.not.generated.alias.alias.already.exists",
- "\u672A\u7522\u751F\u79D8\u5BC6\u91D1\u9470\uFF0C\u5225\u540D <{0}> \u5DF2\u5B58\u5728"},
- {"Please.provide.keysize.for.secret.key.generation",
- "\u8ACB\u63D0\u4F9B -keysize \u4EE5\u7522\u751F\u79D8\u5BC6\u91D1\u9470"},
-
- {"Extensions.", "\u64F4\u5145\u5957\u4EF6: "},
- {".Empty.value.", "(\u7A7A\u767D\u503C)"},
- {"Extension.Request.", "\u64F4\u5145\u5957\u4EF6\u8981\u6C42:"},
- {"PKCS.10.Certificate.Request.Version.1.0.Subject.s.Public.Key.s.format.s.key.",
- "PKCS #10 \u6191\u8B49\u8981\u6C42 (\u7248\u672C 1.0)\n\u4E3B\u9AD4: %s\n\u516C\u7528\u91D1\u9470: %s \u683C\u5F0F %s \u91D1\u9470\n"},
- {"Unknown.keyUsage.type.", "\u4E0D\u660E\u7684 keyUsage \u985E\u578B: "},
- {"Unknown.extendedkeyUsage.type.", "\u4E0D\u660E\u7684 extendedkeyUsage \u985E\u578B: "},
- {"Unknown.AccessDescription.type.", "\u4E0D\u660E\u7684 AccessDescription \u985E\u578B: "},
- {"Unrecognized.GeneralName.type.", "\u7121\u6CD5\u8FA8\u8B58\u7684 GeneralName \u985E\u578B: "},
- {"This.extension.cannot.be.marked.as.critical.",
- "\u6B64\u64F4\u5145\u5957\u4EF6\u7121\u6CD5\u6A19\u793A\u70BA\u95DC\u9375\u3002"},
- {"Odd.number.of.hex.digits.found.", "\u627E\u5230\u5341\u516D\u9032\u4F4D\u6578\u5B57\u7684\u5947\u6578: "},
- {"Unknown.extension.type.", "\u4E0D\u660E\u7684\u64F4\u5145\u5957\u4EF6\u985E\u578B: "},
- {"command.{0}.is.ambiguous.", "\u547D\u4EE4 {0} \u4E0D\u660E\u78BA:"}
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/Resources_zh_TW.java b/src/java.base/share/classes/sun/security/tools/keytool/Resources_zh_TW.java
deleted file mode 100644
index c20c0eb871b76..0000000000000
--- a/src/java.base/share/classes/sun/security/tools/keytool/Resources_zh_TW.java
+++ /dev/null
@@ -1,484 +0,0 @@
-/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.tools.keytool;
-
-/**
- *
This class represents the ResourceBundle
- * for the keytool.
- *
- */
-public class Resources_zh_TW extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
- {"NEWLINE", "\n"},
- {"STAR",
- "*******************************************"},
- {"STARNN",
- "*******************************************\n\n"},
-
- // keytool: Help part
- {".OPTION.", " [OPTION]..."},
- {"Options.", "\u9078\u9805:"},
- {"option.1.set.twice", "%s \u9078\u9805\u5DF2\u6307\u5B9A\u591A\u6B21\u3002\u5C07\u5FFD\u7565\u6700\u5F8C\u4E00\u500B\u9078\u9805\u4EE5\u5916\u7684\u5176\u4ED6\u6240\u6709\u9078\u9805\u3002"},
- {"multiple.commands.1.2", "\u53EA\u5141\u8A31\u4E00\u500B\u547D\u4EE4: \u6307\u5B9A\u4E86 %1$s \u548C %2$s \u5169\u8005\u3002"},
- {"Use.keytool.help.for.all.available.commands",
- "\u4F7F\u7528 \"keytool -help\" \u53D6\u5F97\u6240\u6709\u53EF\u7528\u7684\u547D\u4EE4"},
- {"Key.and.Certificate.Management.Tool",
- "\u91D1\u9470\u8207\u6191\u8B49\u7BA1\u7406\u5DE5\u5177"},
- {"Commands.", "\u547D\u4EE4:"},
- {"Use.keytool.command.name.help.for.usage.of.command.name",
- "\u4F7F\u7528 \"keytool -command_name -help\" \u53D6\u5F97 command_name \u7684\u7528\u6CD5\u3002\n\u4F7F\u7528 -conf \u9078\u9805\u6307\u5B9A\u9810\u5148\u8A2D\u5B9A\u7684\u9078\u9805\u6A94\u6848\u3002"},
- // keytool: help: commands
- {"Generates.a.certificate.request",
- "\u7522\u751F\u6191\u8B49\u8981\u6C42"}, //-certreq
- {"Changes.an.entry.s.alias",
- "\u8B8A\u66F4\u9805\u76EE\u7684\u5225\u540D"}, //-changealias
- {"Deletes.an.entry",
- "\u522A\u9664\u9805\u76EE"}, //-delete
- {"Exports.certificate",
- "\u532F\u51FA\u6191\u8B49"}, //-exportcert
- {"Generates.a.key.pair",
- "\u7522\u751F\u91D1\u9470\u7D44"}, //-genkeypair
- {"Generates.a.secret.key",
- "\u7522\u751F\u79D8\u5BC6\u91D1\u9470"}, //-genseckey
- {"Generates.certificate.from.a.certificate.request",
- "\u5F9E\u6191\u8B49\u8981\u6C42\u7522\u751F\u6191\u8B49"}, //-gencert
- {"Generates.CRL", "\u7522\u751F CRL"}, //-gencrl
- {"Generated.keyAlgName.secret.key",
- "\u5DF2\u7522\u751F {0} \u79D8\u5BC6\u91D1\u9470"}, //-genseckey
- {"Generated.keysize.bit.keyAlgName.secret.key",
- "\u5DF2\u7522\u751F {0} \u4F4D\u5143 {1} \u79D8\u5BC6\u91D1\u9470"}, //-genseckey
- {"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
- "\u5F9E JDK 1.1.x-style \u8B58\u5225\u8CC7\u6599\u5EAB\u532F\u5165\u9805\u76EE"}, //-identitydb
- {"Imports.a.certificate.or.a.certificate.chain",
- "\u532F\u5165\u6191\u8B49\u6216\u6191\u8B49\u93C8"}, //-importcert
- {"Imports.a.password",
- "\u532F\u5165\u5BC6\u78BC"}, //-importpass
- {"Imports.one.or.all.entries.from.another.keystore",
- "\u5F9E\u5176\u4ED6\u91D1\u9470\u5132\u5B58\u5EAB\u532F\u5165\u4E00\u500B\u6216\u5168\u90E8\u9805\u76EE"}, //-importkeystore
- {"Clones.a.key.entry",
- "\u8907\u88FD\u91D1\u9470\u9805\u76EE"}, //-keyclone
- {"Changes.the.key.password.of.an.entry",
- "\u8B8A\u66F4\u9805\u76EE\u7684\u91D1\u9470\u5BC6\u78BC"}, //-keypasswd
- {"Lists.entries.in.a.keystore",
- "\u5217\u793A\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D\u7684\u9805\u76EE"}, //-list
- {"Prints.the.content.of.a.certificate",
- "\u5217\u5370\u6191\u8B49\u7684\u5167\u5BB9"}, //-printcert
- {"Prints.the.content.of.a.certificate.request",
- "\u5217\u5370\u6191\u8B49\u8981\u6C42\u7684\u5167\u5BB9"}, //-printcertreq
- {"Prints.the.content.of.a.CRL.file",
- "\u5217\u5370 CRL \u6A94\u6848\u7684\u5167\u5BB9"}, //-printcrl
- {"Generates.a.self.signed.certificate",
- "\u7522\u751F\u81EA\u884C\u7C3D\u7F72\u7684\u6191\u8B49"}, //-selfcert
- {"Changes.the.store.password.of.a.keystore",
- "\u8B8A\u66F4\u91D1\u9470\u5132\u5B58\u5EAB\u7684\u5132\u5B58\u5BC6\u78BC"}, //-storepasswd
- // keytool: help: options
- {"alias.name.of.the.entry.to.process",
- "\u8981\u8655\u7406\u9805\u76EE\u7684\u5225\u540D\u540D\u7A31"}, //-alias
- {"destination.alias",
- "\u76EE\u7684\u5730\u5225\u540D"}, //-destalias
- {"destination.key.password",
- "\u76EE\u7684\u5730\u91D1\u9470\u5BC6\u78BC"}, //-destkeypass
- {"destination.keystore.name",
- "\u76EE\u7684\u5730\u91D1\u9470\u5132\u5B58\u5EAB\u540D\u7A31"}, //-destkeystore
- {"destination.keystore.password.protected",
- "\u76EE\u7684\u5730\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC\u4FDD\u8B77"}, //-destprotected
- {"destination.keystore.provider.name",
- "\u76EE\u7684\u5730\u91D1\u9470\u5132\u5B58\u5EAB\u63D0\u4F9B\u8005\u540D\u7A31"}, //-destprovidername
- {"destination.keystore.password",
- "\u76EE\u7684\u5730\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC"}, //-deststorepass
- {"destination.keystore.type",
- "\u76EE\u7684\u5730\u91D1\u9470\u5132\u5B58\u5EAB\u985E\u578B"}, //-deststoretype
- {"distinguished.name",
- "\u8FA8\u5225\u540D\u7A31"}, //-dname
- {"X.509.extension",
- "X.509 \u64F4\u5145\u5957\u4EF6"}, //-ext
- {"output.file.name",
- "\u8F38\u51FA\u6A94\u6848\u540D\u7A31"}, //-file and -outfile
- {"input.file.name",
- "\u8F38\u5165\u6A94\u6848\u540D\u7A31"}, //-file and -infile
- {"key.algorithm.name",
- "\u91D1\u9470\u6F14\u7B97\u6CD5\u540D\u7A31"}, //-keyalg
- {"key.password",
- "\u91D1\u9470\u5BC6\u78BC"}, //-keypass
- {"key.bit.size",
- "\u91D1\u9470\u4F4D\u5143\u5927\u5C0F"}, //-keysize
- {"keystore.name",
- "\u91D1\u9470\u5132\u5B58\u5EAB\u540D\u7A31"}, //-keystore
- {"access.the.cacerts.keystore",
- "\u5B58\u53D6 cacerts \u91D1\u9470\u5132\u5B58\u5EAB"}, // -cacerts
- {"warning.cacerts.option",
- "\u8B66\u544A: \u4F7F\u7528 -cacerts \u9078\u9805\u5B58\u53D6 cacerts \u91D1\u9470\u5132\u5B58\u5EAB"},
- {"new.password",
- "\u65B0\u5BC6\u78BC"}, //-new
- {"do.not.prompt",
- "\u4E0D\u8981\u63D0\u793A"}, //-noprompt
- {"password.through.protected.mechanism",
- "\u7D93\u7531\u4FDD\u8B77\u6A5F\u5236\u7684\u5BC6\u78BC"}, //-protected
-
- // The following 2 values should span 2 lines, the first for the
- // option itself, the second for its -providerArg value.
- {"addprovider.option",
- "\u4F7F\u7528\u540D\u7A31\u65B0\u589E\u5B89\u5168\u63D0\u4F9B\u8005 (\u4F8B\u5982 SunPKCS11)\n\u8A2D\u5B9A -addprovider \u5F15\u6578"}, //-addprovider
- {"provider.class.option",
- "\u4F7F\u7528\u5B8C\u6574\u985E\u5225\u540D\u7A31\u65B0\u589E\u5B89\u5168\u63D0\u4F9B\u8005\n\u8A2D\u5B9A -providerclass \u5F15\u6578"}, //-providerclass
-
- {"provider.name",
- "\u63D0\u4F9B\u8005\u540D\u7A31"}, //-providername
- {"provider.classpath",
- "\u63D0\u4F9B\u8005\u985E\u5225\u8DEF\u5F91"}, //-providerpath
- {"output.in.RFC.style",
- "\u4EE5 RFC \u6A23\u5F0F\u8F38\u51FA"}, //-rfc
- {"signature.algorithm.name",
- "\u7C3D\u7AE0\u6F14\u7B97\u6CD5\u540D\u7A31"}, //-sigalg
- {"source.alias",
- "\u4F86\u6E90\u5225\u540D"}, //-srcalias
- {"source.key.password",
- "\u4F86\u6E90\u91D1\u9470\u5BC6\u78BC"}, //-srckeypass
- {"source.keystore.name",
- "\u4F86\u6E90\u91D1\u9470\u5132\u5B58\u5EAB\u540D\u7A31"}, //-srckeystore
- {"source.keystore.password.protected",
- "\u4F86\u6E90\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC\u4FDD\u8B77"}, //-srcprotected
- {"source.keystore.provider.name",
- "\u4F86\u6E90\u91D1\u9470\u5132\u5B58\u5EAB\u63D0\u4F9B\u8005\u540D\u7A31"}, //-srcprovidername
- {"source.keystore.password",
- "\u4F86\u6E90\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC"}, //-srcstorepass
- {"source.keystore.type",
- "\u4F86\u6E90\u91D1\u9470\u5132\u5B58\u5EAB\u985E\u578B"}, //-srcstoretype
- {"SSL.server.host.and.port",
- "SSL \u4F3A\u670D\u5668\u4E3B\u6A5F\u8207\u9023\u63A5\u57E0"}, //-sslserver
- {"signed.jar.file",
- "\u7C3D\u7F72\u7684 jar \u6A94\u6848"}, //=jarfile
- {"certificate.validity.start.date.time",
- "\u6191\u8B49\u6709\u6548\u6027\u958B\u59CB\u65E5\u671F/\u6642\u9593"}, //-startdate
- {"keystore.password",
- "\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC"}, //-storepass
- {"keystore.type",
- "\u91D1\u9470\u5132\u5B58\u5EAB\u985E\u578B"}, //-storetype
- {"trust.certificates.from.cacerts",
- "\u4F86\u81EA cacerts \u7684\u4FE1\u4EFB\u6191\u8B49"}, //-trustcacerts
- {"verbose.output",
- "\u8A73\u7D30\u8CC7\u8A0A\u8F38\u51FA"}, //-v
- {"validity.number.of.days",
- "\u6709\u6548\u6027\u65E5\u6578"}, //-validity
- {"Serial.ID.of.cert.to.revoke",
- "\u8981\u64A4\u92B7\u6191\u8B49\u7684\u5E8F\u5217 ID"}, //-id
- // keytool: Running part
- {"keytool.error.", "\u91D1\u9470\u5DE5\u5177\u932F\u8AA4: "},
- {"Illegal.option.", "\u7121\u6548\u7684\u9078\u9805:"},
- {"Illegal.value.", "\u7121\u6548\u503C: "},
- {"Unknown.password.type.", "\u4E0D\u660E\u7684\u5BC6\u78BC\u985E\u578B: "},
- {"Cannot.find.environment.variable.",
- "\u627E\u4E0D\u5230\u74B0\u5883\u8B8A\u6578: "},
- {"Cannot.find.file.", "\u627E\u4E0D\u5230\u6A94\u6848: "},
- {"Command.option.flag.needs.an.argument.", "\u547D\u4EE4\u9078\u9805 {0} \u9700\u8981\u5F15\u6578\u3002"},
- {"Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.",
- "\u8B66\u544A: PKCS12 \u91D1\u9470\u5132\u5B58\u5EAB\u4E0D\u652F\u63F4\u4E0D\u540C\u7684\u5132\u5B58\u5EAB\u548C\u91D1\u9470\u5BC6\u78BC\u3002\u5FFD\u7565\u4F7F\u7528\u8005\u6307\u5B9A\u7684 {0} \u503C\u3002"},
- {"the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option",
- "-keystore \u6216 -storetype \u9078\u9805\u4E0D\u80FD\u8207 -cacerts \u9078\u9805\u4E00\u8D77\u4F7F\u7528"},
- {".keystore.must.be.NONE.if.storetype.is.{0}",
- "\u5982\u679C -storetype \u70BA {0}\uFF0C\u5247 -keystore \u5FC5\u9808\u70BA NONE"},
- {"Too.many.retries.program.terminated",
- "\u91CD\u8A66\u6B21\u6578\u592A\u591A\uFF0C\u7A0B\u5F0F\u5DF2\u7D42\u6B62"},
- {".storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}",
- "\u5982\u679C -storetype \u70BA {0}\uFF0C\u5247\u4E0D\u652F\u63F4 -storepasswd \u548C -keypasswd \u547D\u4EE4"},
- {".keypasswd.commands.not.supported.if.storetype.is.PKCS12",
- "\u5982\u679C -storetype \u70BA PKCS12\uFF0C\u5247\u4E0D\u652F\u63F4 -keypasswd \u547D\u4EE4"},
- {".keypass.and.new.can.not.be.specified.if.storetype.is.{0}",
- "\u5982\u679C -storetype \u70BA {0}\uFF0C\u5247\u4E0D\u80FD\u6307\u5B9A -keypass \u548C -new"},
- {"if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified",
- "\u5982\u679C\u6307\u5B9A -protected\uFF0C\u5247\u4E0D\u80FD\u6307\u5B9A -storepass\u3001-keypass \u548C -new"},
- {"if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "\u5982\u679C\u6307\u5B9A -srcprotected\uFF0C\u5247\u4E0D\u80FD\u6307\u5B9A -srcstorepass \u548C -srckeypass"},
- {"if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified",
- "\u5982\u679C\u91D1\u9470\u5132\u5B58\u5EAB\u4E0D\u53D7\u5BC6\u78BC\u4FDD\u8B77\uFF0C\u5247\u4E0D\u80FD\u6307\u5B9A -storepass\u3001-keypass \u548C -new"},
- {"if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified",
- "\u5982\u679C\u4F86\u6E90\u91D1\u9470\u5132\u5B58\u5EAB\u4E0D\u53D7\u5BC6\u78BC\u4FDD\u8B77\uFF0C\u5247\u4E0D\u80FD\u6307\u5B9A -srcstorepass \u548C -srckeypass"},
- {"Illegal.startdate.value", "\u7121\u6548\u7684 startdate \u503C"},
- {"Validity.must.be.greater.than.zero",
- "\u6709\u6548\u6027\u5FC5\u9808\u5927\u65BC\u96F6"},
- {"provclass.not.a.provider", "%s \u4E0D\u662F\u4E00\u500B\u63D0\u4F9B\u8005"},
- {"provider.name.not.found", "\u627E\u4E0D\u5230\u540D\u7A31\u70BA \"%s\" \u7684\u63D0\u4F9B\u8005"},
- {"provider.class.not.found", "\u627E\u4E0D\u5230\u63D0\u4F9B\u8005 \"%s\""},
- {"Usage.error.no.command.provided", "\u7528\u6CD5\u932F\u8AA4: \u672A\u63D0\u4F9B\u547D\u4EE4"},
- {"Source.keystore.file.exists.but.is.empty.", "\u4F86\u6E90\u91D1\u9470\u5132\u5B58\u5EAB\u6A94\u6848\u5B58\u5728\uFF0C\u4F46\u70BA\u7A7A: "},
- {"Please.specify.srckeystore", "\u8ACB\u6307\u5B9A -srckeystore"},
- {"Must.not.specify.both.v.and.rfc.with.list.command",
- " 'list' \u547D\u4EE4\u4E0D\u80FD\u540C\u6642\u6307\u5B9A -v \u53CA -rfc"},
- {"Key.password.must.be.at.least.6.characters",
- "\u91D1\u9470\u5BC6\u78BC\u5FC5\u9808\u81F3\u5C11\u70BA 6 \u500B\u5B57\u5143"},
- {"New.password.must.be.at.least.6.characters",
- "\u65B0\u7684\u5BC6\u78BC\u5FC5\u9808\u81F3\u5C11\u70BA 6 \u500B\u5B57\u5143"},
- {"Keystore.file.exists.but.is.empty.",
- "\u91D1\u9470\u5132\u5B58\u5EAB\u6A94\u6848\u5B58\u5728\uFF0C\u4F46\u70BA\u7A7A\u767D: "},
- {"Keystore.file.does.not.exist.",
- "\u91D1\u9470\u5132\u5B58\u5EAB\u6A94\u6848\u4E0D\u5B58\u5728: "},
- {"Must.specify.destination.alias", "\u5FC5\u9808\u6307\u5B9A\u76EE\u7684\u5730\u5225\u540D"},
- {"Must.specify.alias", "\u5FC5\u9808\u6307\u5B9A\u5225\u540D"},
- {"Keystore.password.must.be.at.least.6.characters",
- "\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC\u5FC5\u9808\u81F3\u5C11\u70BA 6 \u500B\u5B57\u5143"},
- {"Enter.the.password.to.be.stored.",
- "\u8F38\u5165\u8981\u5132\u5B58\u7684\u5BC6\u78BC: "},
- {"Enter.keystore.password.", "\u8F38\u5165\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC: "},
- {"Enter.source.keystore.password.", "\u8ACB\u8F38\u5165\u4F86\u6E90\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC: "},
- {"Enter.destination.keystore.password.", "\u8ACB\u8F38\u5165\u76EE\u7684\u5730\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC: "},
- {"Keystore.password.is.too.short.must.be.at.least.6.characters",
- "\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC\u592A\u77ED - \u5FC5\u9808\u81F3\u5C11\u70BA 6 \u500B\u5B57\u5143"},
- {"Unknown.Entry.Type", "\u4E0D\u660E\u7684\u9805\u76EE\u985E\u578B"},
- {"Too.many.failures.Alias.not.changed", "\u592A\u591A\u932F\u8AA4\u3002\u672A\u8B8A\u66F4\u5225\u540D"},
- {"Entry.for.alias.alias.successfully.imported.",
- "\u5DF2\u6210\u529F\u532F\u5165\u5225\u540D {0} \u7684\u9805\u76EE\u3002"},
- {"Entry.for.alias.alias.not.imported.", "\u672A\u532F\u5165\u5225\u540D {0} \u7684\u9805\u76EE\u3002"},
- {"Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.",
- "\u532F\u5165\u5225\u540D {0} \u7684\u9805\u76EE\u6642\u51FA\u73FE\u554F\u984C: {1}\u3002\n\u672A\u532F\u5165\u5225\u540D {0} \u7684\u9805\u76EE\u3002"},
- {"Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled",
- "\u5DF2\u5B8C\u6210\u532F\u5165\u547D\u4EE4: \u6210\u529F\u532F\u5165 {0} \u500B\u9805\u76EE\uFF0C{1} \u500B\u9805\u76EE\u5931\u6557\u6216\u5DF2\u53D6\u6D88"},
- {"Warning.Overwriting.existing.alias.alias.in.destination.keystore",
- "\u8B66\u544A: \u6B63\u5728\u8986\u5BEB\u76EE\u7684\u5730\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D\u7684\u73FE\u6709\u5225\u540D {0}"},
- {"Existing.entry.alias.alias.exists.overwrite.no.",
- "\u73FE\u6709\u9805\u76EE\u5225\u540D {0} \u5B58\u5728\uFF0C\u662F\u5426\u8986\u5BEB\uFF1F[\u5426]: "},
- {"Too.many.failures.try.later", "\u592A\u591A\u932F\u8AA4 - \u8ACB\u7A0D\u5F8C\u518D\u8A66"},
- {"Certification.request.stored.in.file.filename.",
- "\u8A8D\u8B49\u8981\u6C42\u5132\u5B58\u5728\u6A94\u6848 <{0}>"},
- {"Submit.this.to.your.CA", "\u5C07\u6B64\u9001\u51FA\u81F3\u60A8\u7684 CA"},
- {"if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified",
- "\u5982\u679C\u672A\u6307\u5B9A\u5225\u540D\uFF0C\u5247\u4E0D\u80FD\u6307\u5B9A destalias \u548C srckeypass"},
- {"The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.",
- "\u76EE\u7684\u5730 pkcs12 \u91D1\u9470\u5132\u5B58\u5EAB\u7684 storepass \u548C keypass \u4E0D\u540C\u3002\u8ACB\u91CD\u65B0\u4EE5 -destkeypass \u6307\u5B9A\u3002"},
- {"Certificate.stored.in.file.filename.",
- "\u6191\u8B49\u5132\u5B58\u5728\u6A94\u6848 <{0}>"},
- {"Certificate.reply.was.installed.in.keystore",
- "\u6191\u8B49\u56DE\u8986\u5DF2\u5B89\u88DD\u5728\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D"},
- {"Certificate.reply.was.not.installed.in.keystore",
- "\u6191\u8B49\u56DE\u8986\u672A\u5B89\u88DD\u5728\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D"},
- {"Certificate.was.added.to.keystore",
- "\u6191\u8B49\u5DF2\u65B0\u589E\u81F3\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D"},
- {"Certificate.was.not.added.to.keystore",
- "\u6191\u8B49\u672A\u65B0\u589E\u81F3\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D"},
- {".Storing.ksfname.", "[\u5132\u5B58 {0}]"},
- {"alias.has.no.public.key.certificate.",
- "{0} \u6C92\u6709\u516C\u958B\u91D1\u9470 (\u6191\u8B49)"},
- {"Cannot.derive.signature.algorithm",
- "\u7121\u6CD5\u53D6\u5F97\u7C3D\u7AE0\u6F14\u7B97\u6CD5"},
- {"Alias.alias.does.not.exist",
- "\u5225\u540D <{0}> \u4E0D\u5B58\u5728"},
- {"Alias.alias.has.no.certificate",
- "\u5225\u540D <{0}> \u6C92\u6709\u6191\u8B49"},
- {"Key.pair.not.generated.alias.alias.already.exists",
- "\u6C92\u6709\u5EFA\u7ACB\u91D1\u9470\u7D44\uFF0C\u5225\u540D <{0}> \u5DF2\u7D93\u5B58\u5728"},
- {"Generating.keysize.bit.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.validality.days.for",
- "\u91DD\u5C0D {4} \u7522\u751F\u6709\u6548\u671F {3} \u5929\u7684 {0} \u4F4D\u5143 {1} \u91D1\u9470\u7D44\u4EE5\u53CA\u81EA\u6211\u7C3D\u7F72\u6191\u8B49 ({2})\n\t"},
- {"Enter.key.password.for.alias.", "\u8F38\u5165 <{0}> \u7684\u91D1\u9470\u5BC6\u78BC"},
- {".RETURN.if.same.as.keystore.password.",
- "\t(RETURN \u5982\u679C\u548C\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC\u76F8\u540C): "},
- {"Key.password.is.too.short.must.be.at.least.6.characters",
- "\u91D1\u9470\u5BC6\u78BC\u592A\u77ED - \u5FC5\u9808\u81F3\u5C11\u70BA 6 \u500B\u5B57\u5143"},
- {"Too.many.failures.key.not.added.to.keystore",
- "\u592A\u591A\u932F\u8AA4 - \u91D1\u9470\u672A\u65B0\u589E\u81F3\u91D1\u9470\u5132\u5B58\u5EAB"},
- {"Destination.alias.dest.already.exists",
- "\u76EE\u7684\u5730\u5225\u540D <{0}> \u5DF2\u7D93\u5B58\u5728"},
- {"Password.is.too.short.must.be.at.least.6.characters",
- "\u5BC6\u78BC\u592A\u77ED - \u5FC5\u9808\u81F3\u5C11\u70BA 6 \u500B\u5B57\u5143"},
- {"Too.many.failures.Key.entry.not.cloned",
- "\u592A\u591A\u932F\u8AA4\u3002\u672A\u8907\u88FD\u91D1\u9470\u9805\u76EE"},
- {"key.password.for.alias.", "<{0}> \u7684\u91D1\u9470\u5BC6\u78BC"},
- {"Keystore.entry.for.id.getName.already.exists",
- "<{0}> \u7684\u91D1\u9470\u5132\u5B58\u5EAB\u9805\u76EE\u5DF2\u7D93\u5B58\u5728"},
- {"Creating.keystore.entry.for.id.getName.",
- "\u5EFA\u7ACB <{0}> \u7684\u91D1\u9470\u5132\u5B58\u5EAB\u9805\u76EE..."},
- {"No.entries.from.identity.database.added",
- "\u6C92\u6709\u65B0\u589E\u4F86\u81EA\u8B58\u5225\u8CC7\u6599\u5EAB\u7684\u9805\u76EE"},
- {"Alias.name.alias", "\u5225\u540D\u540D\u7A31: {0}"},
- {"Creation.date.keyStore.getCreationDate.alias.",
- "\u5EFA\u7ACB\u65E5\u671F: {0,date}"},
- {"alias.keyStore.getCreationDate.alias.",
- "{0}, {1,date}, "},
- {"alias.", "{0}, "},
- {"Entry.type.type.", "\u9805\u76EE\u985E\u578B: {0}"},
- {"Certificate.chain.length.", "\u6191\u8B49\u93C8\u9577\u5EA6: "},
- {"Certificate.i.1.", "\u6191\u8B49 [{0,number,integer}]:"},
- {"Certificate.fingerprint.SHA.256.", "\u6191\u8B49\u6307\u7D0B (SHA-256): "},
- {"Keystore.type.", "\u91D1\u9470\u5132\u5B58\u5EAB\u985E\u578B: "},
- {"Keystore.provider.", "\u91D1\u9470\u5132\u5B58\u5EAB\u63D0\u4F9B\u8005: "},
- {"Your.keystore.contains.keyStore.size.entry",
- "\u60A8\u7684\u91D1\u9470\u5132\u5B58\u5EAB\u5305\u542B {0,number,integer} \u9805\u76EE"},
- {"Your.keystore.contains.keyStore.size.entries",
- "\u60A8\u7684\u91D1\u9470\u5132\u5B58\u5EAB\u5305\u542B {0,number,integer} \u9805\u76EE"},
- {"Failed.to.parse.input", "\u7121\u6CD5\u5256\u6790\u8F38\u5165"},
- {"Empty.input", "\u7A7A\u8F38\u5165"},
- {"Not.X.509.certificate", "\u975E X.509 \u6191\u8B49"},
- {"alias.has.no.public.key", "{0} \u7121\u516C\u958B\u91D1\u9470"},
- {"alias.has.no.X.509.certificate", "{0} \u7121 X.509 \u6191\u8B49"},
- {"New.certificate.self.signed.", "\u65B0\u6191\u8B49 (\u81EA\u6211\u7C3D\u7F72): "},
- {"Reply.has.no.certificates", "\u56DE\u8986\u4E0D\u542B\u6191\u8B49"},
- {"Certificate.not.imported.alias.alias.already.exists",
- "\u6191\u8B49\u672A\u8F38\u5165\uFF0C\u5225\u540D <{0}> \u5DF2\u7D93\u5B58\u5728"},
- {"Input.not.an.X.509.certificate", "\u8F38\u5165\u7684\u4E0D\u662F X.509 \u6191\u8B49"},
- {"Certificate.already.exists.in.keystore.under.alias.trustalias.",
- "\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D\u7684 <{0}> \u5225\u540D\u4E4B\u4E0B\uFF0C\u6191\u8B49\u5DF2\u7D93\u5B58\u5728"},
- {"Do.you.still.want.to.add.it.no.",
- "\u60A8\u4ECD\u7136\u60F3\u8981\u5C07\u4E4B\u65B0\u589E\u55CE\uFF1F [\u5426]: "},
- {"Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.",
- "\u6574\u500B\u7CFB\u7D71 CA \u91D1\u9470\u5132\u5B58\u5EAB\u4E2D\u7684 <{0}> \u5225\u540D\u4E4B\u4E0B\uFF0C\u6191\u8B49\u5DF2\u7D93\u5B58\u5728"},
- {"Do.you.still.want.to.add.it.to.your.own.keystore.no.",
- "\u60A8\u4ECD\u7136\u60F3\u8981\u5C07\u4E4B\u65B0\u589E\u81F3\u81EA\u5DF1\u7684\u91D1\u9470\u5132\u5B58\u5EAB\u55CE\uFF1F [\u5426]: "},
- {"Trust.this.certificate.no.", "\u4FE1\u4EFB\u9019\u500B\u6191\u8B49\uFF1F [\u5426]: "},
- {"YES", "\u662F"},
- {"New.prompt.", "\u65B0 {0}: "},
- {"Passwords.must.differ", "\u5FC5\u9808\u662F\u4E0D\u540C\u7684\u5BC6\u78BC"},
- {"Re.enter.new.prompt.", "\u91CD\u65B0\u8F38\u5165\u65B0 {0}: "},
- {"Re.enter.password.", "\u91CD\u65B0\u8F38\u5165\u5BC6\u78BC:"},
- {"Re.enter.new.password.", "\u91CD\u65B0\u8F38\u5165\u65B0\u5BC6\u78BC: "},
- {"They.don.t.match.Try.again", "\u5B83\u5011\u4E0D\u76F8\u7B26\u3002\u8ACB\u91CD\u8A66"},
- {"Enter.prompt.alias.name.", "\u8F38\u5165 {0} \u5225\u540D\u540D\u7A31: "},
- {"Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.",
- "\u8ACB\u8F38\u5165\u65B0\u7684\u5225\u540D\u540D\u7A31\t(RETURN \u4EE5\u53D6\u6D88\u532F\u5165\u6B64\u9805\u76EE):"},
- {"Enter.alias.name.", "\u8F38\u5165\u5225\u540D\u540D\u7A31: "},
- {".RETURN.if.same.as.for.otherAlias.",
- "\t(RETURN \u5982\u679C\u548C <{0}> \u7684\u76F8\u540C)"},
- {"What.is.your.first.and.last.name.",
- "\u60A8\u7684\u540D\u5B57\u8207\u59D3\u6C0F\u70BA\u4F55\uFF1F"},
- {"What.is.the.name.of.your.organizational.unit.",
- "\u60A8\u7684\u7D44\u7E54\u55AE\u4F4D\u540D\u7A31\u70BA\u4F55\uFF1F"},
- {"What.is.the.name.of.your.organization.",
- "\u60A8\u7684\u7D44\u7E54\u540D\u7A31\u70BA\u4F55\uFF1F"},
- {"What.is.the.name.of.your.City.or.Locality.",
- "\u60A8\u6240\u5728\u7684\u57CE\u5E02\u6216\u5730\u5340\u540D\u7A31\u70BA\u4F55\uFF1F"},
- {"What.is.the.name.of.your.State.or.Province.",
- "\u60A8\u6240\u5728\u7684\u5DDE\u53CA\u7701\u4EFD\u540D\u7A31\u70BA\u4F55\uFF1F"},
- {"What.is.the.two.letter.country.code.for.this.unit.",
- "\u6B64\u55AE\u4F4D\u7684\u5169\u500B\u5B57\u6BCD\u570B\u5225\u4EE3\u78BC\u70BA\u4F55\uFF1F"},
- {"Is.name.correct.", "{0} \u6B63\u78BA\u55CE\uFF1F"},
- {"no", "\u5426"},
- {"yes", "\u662F"},
- {"y", "y"},
- {".defaultValue.", " [{0}]: "},
- {"Alias.alias.has.no.key",
- "\u5225\u540D <{0}> \u6C92\u6709\u91D1\u9470"},
- {"Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key",
- "\u5225\u540D <{0}> \u6240\u53C3\u7167\u7684\u9805\u76EE\u4E0D\u662F\u79C1\u5BC6\u91D1\u9470\u985E\u578B\u3002-keyclone \u547D\u4EE4\u50C5\u652F\u63F4\u79C1\u5BC6\u91D1\u9470\u9805\u76EE\u7684\u8907\u88FD"},
-
- {".WARNING.WARNING.WARNING.",
- "***************** WARNING WARNING WARNING *****************"},
- {"Signer.d.", "\u7C3D\u7F72\u8005 #%d:"},
- {"Timestamp.", "\u6642\u6233:"},
- {"Signature.", "\u7C3D\u7AE0:"},
- {"CRLs.", "CRL:"},
- {"Certificate.owner.", "\u6191\u8B49\u64C1\u6709\u8005: "},
- {"Not.a.signed.jar.file", "\u4E0D\u662F\u7C3D\u7F72\u7684 jar \u6A94\u6848"},
- {"No.certificate.from.the.SSL.server",
- "\u6C92\u6709\u4F86\u81EA SSL \u4F3A\u670D\u5668\u7684\u6191\u8B49"},
-
- {".The.integrity.of.the.information.stored.in.your.keystore.",
- "* \u5C1A\u672A\u9A57\u8B49\u5132\u5B58\u65BC\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D\u8CC7\u8A0A *\n* \u7684\u5B8C\u6574\u6027\uFF01\u82E5\u8981\u9A57\u8B49\u5176\u5B8C\u6574\u6027\uFF0C *\n* \u60A8\u5FC5\u9808\u63D0\u4F9B\u60A8\u7684\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC\u3002 *"},
- {".The.integrity.of.the.information.stored.in.the.srckeystore.",
- "* \u5C1A\u672A\u9A57\u8B49\u5132\u5B58\u65BC srckeystore \u4E2D\u8CC7\u8A0A *\n* \u7684\u5B8C\u6574\u6027\uFF01\u82E5\u8981\u9A57\u8B49\u5176\u5B8C\u6574\u6027\uFF0C\u60A8\u5FC5\u9808 *\n* \u63D0\u4F9B srckeystore \u5BC6\u78BC\u3002 *"},
-
- {"Certificate.reply.does.not.contain.public.key.for.alias.",
- "\u6191\u8B49\u56DE\u8986\u4E26\u672A\u5305\u542B <{0}> \u7684\u516C\u958B\u91D1\u9470"},
- {"Incomplete.certificate.chain.in.reply",
- "\u56DE\u8986\u6642\u7684\u6191\u8B49\u93C8\u4E0D\u5B8C\u6574"},
- {"Certificate.chain.in.reply.does.not.verify.",
- "\u56DE\u8986\u6642\u7684\u6191\u8B49\u93C8\u672A\u9A57\u8B49: "},
- {"Top.level.certificate.in.reply.",
- "\u56DE\u8986\u6642\u7684\u6700\u9AD8\u7D1A\u6191\u8B49:\n"},
- {".is.not.trusted.", "... \u662F\u4E0D\u88AB\u4FE1\u4EFB\u7684\u3002"},
- {"Install.reply.anyway.no.", "\u9084\u662F\u8981\u5B89\u88DD\u56DE\u8986\uFF1F [\u5426]: "},
- {"NO", "\u5426"},
- {"Public.keys.in.reply.and.keystore.don.t.match",
- "\u56DE\u8986\u6642\u7684\u516C\u958B\u91D1\u9470\u8207\u91D1\u9470\u5132\u5B58\u5EAB\u4E0D\u7B26"},
- {"Certificate.reply.and.certificate.in.keystore.are.identical",
- "\u6191\u8B49\u56DE\u8986\u8207\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D\u7684\u6191\u8B49\u662F\u76F8\u540C\u7684"},
- {"Failed.to.establish.chain.from.reply",
- "\u7121\u6CD5\u5F9E\u56DE\u8986\u4E2D\u5C07\u93C8\u5EFA\u7ACB\u8D77\u4F86"},
- {"n", "n"},
- {"Wrong.answer.try.again", "\u932F\u8AA4\u7684\u7B54\u6848\uFF0C\u8ACB\u518D\u8A66\u4E00\u6B21"},
- {"Secret.key.not.generated.alias.alias.already.exists",
- "\u672A\u7522\u751F\u79D8\u5BC6\u91D1\u9470\uFF0C\u5225\u540D <{0}> \u5DF2\u5B58\u5728"},
- {"Please.provide.keysize.for.secret.key.generation",
- "\u8ACB\u63D0\u4F9B -keysize \u4EE5\u7522\u751F\u79D8\u5BC6\u91D1\u9470"},
-
- {"warning.not.verified.make.sure.keystore.is.correct",
- "\u8B66\u544A: \u672A\u9A57\u8B49\u3002\u8ACB\u78BA\u5B9A -keystore \u6B63\u78BA\u3002"},
-
- {"Extensions.", "\u64F4\u5145\u5957\u4EF6: "},
- {".Empty.value.", "(\u7A7A\u767D\u503C)"},
- {"Extension.Request.", "\u64F4\u5145\u5957\u4EF6\u8981\u6C42:"},
- {"Unknown.keyUsage.type.", "\u4E0D\u660E\u7684 keyUsage \u985E\u578B: "},
- {"Unknown.extendedkeyUsage.type.", "\u4E0D\u660E\u7684 extendedkeyUsage \u985E\u578B: "},
- {"Unknown.AccessDescription.type.", "\u4E0D\u660E\u7684 AccessDescription \u985E\u578B: "},
- {"Unrecognized.GeneralName.type.", "\u7121\u6CD5\u8FA8\u8B58\u7684 GeneralName \u985E\u578B: "},
- {"This.extension.cannot.be.marked.as.critical.",
- "\u6B64\u64F4\u5145\u5957\u4EF6\u7121\u6CD5\u6A19\u793A\u70BA\u95DC\u9375\u3002"},
- {"Odd.number.of.hex.digits.found.", "\u627E\u5230\u5341\u516D\u9032\u4F4D\u6578\u5B57\u7684\u5947\u6578: "},
- {"Unknown.extension.type.", "\u4E0D\u660E\u7684\u64F4\u5145\u5957\u4EF6\u985E\u578B: "},
- {"command.{0}.is.ambiguous.", "\u547D\u4EE4 {0} \u4E0D\u660E\u78BA:"},
-
- // 8171319: keytool should print out warnings when reading or
- // generating cert/cert req using weak algorithms
- {"the.certificate.request", "\u6191\u8B49\u8981\u6C42"},
- {"the.issuer", "\u767C\u884C\u4EBA"},
- {"the.generated.certificate", "\u7522\u751F\u7684\u6191\u8B49"},
- {"the.generated.crl", "\u7522\u751F\u7684 CRL"},
- {"the.generated.certificate.request", "\u7522\u751F\u7684\u6191\u8B49\u8981\u6C42"},
- {"the.certificate", "\u6191\u8B49"},
- {"the.crl", "CRL"},
- {"the.tsa.certificate", "TSA \u6191\u8B49"},
- {"the.input", "\u8F38\u5165"},
- {"reply", "\u56DE\u8986"},
- {"one.in.many", "%1$s #%2$d / %3$d"},
- {"alias.in.cacerts", "cacerts \u4E2D\u7684\u767C\u884C\u4EBA <%s>"},
- {"alias.in.keystore", "\u767C\u884C\u4EBA <%s>"},
- {"with.weak", "%s (\u4F4E\u5F37\u5EA6)"},
- {"key.bit", "%1$d \u4F4D\u5143\u7684 %2$s \u91D1\u9470"},
- {"key.bit.weak", "%1$d \u4F4D\u5143\u7684 %2$s \u91D1\u9470 (\u4F4E\u5F37\u5EA6)"},
- {"unknown.size.1", "%s \u91D1\u9470\u5927\u5C0F\u4E0D\u660E"},
- {".PATTERN.printX509Cert.with.weak",
- "\u64C1\u6709\u8005: {0}\n\u767C\u884C\u4EBA: {1}\n\u5E8F\u865F: {2}\n\u6709\u6548\u671F\u81EA: {3} \u5230: {4}\n\u6191\u8B49\u6307\u7D0B:\n\t SHA1: {5}\n\t SHA256: {6}\n\u7C3D\u7AE0\u6F14\u7B97\u6CD5\u540D\u7A31: {7}\n\u4E3B\u9AD4\u516C\u958B\u91D1\u9470\u6F14\u7B97\u6CD5: {8}\n\u7248\u672C: {9}"},
- {"PKCS.10.with.weak",
- "PKCS #10 \u6191\u8B49\u8981\u6C42 (\u7248\u672C 1.0)\n\u4E3B\u9AD4: %1$s\n\u683C\u5F0F: %2$s\n\u516C\u7528\u91D1\u9470: %3$s\n\u7C3D\u7AE0\u6F14\u7B97\u6CD5: %4$s\n"},
- {"verified.by.s.in.s.weak", "\u7531 %2$s \u4E2D\u7684 %1$s \u4EE5 %3$s \u9A57\u8B49"},
- {"whose.sigalg.risk", "%1$s \u4F7F\u7528\u7684 %2$s \u7C3D\u7AE0\u6F14\u7B97\u6CD5\u5B58\u5728\u5B89\u5168\u98A8\u96AA\u3002"},
- {"whose.key.risk", "%1$s \u4F7F\u7528\u7684 %2$s \u5B58\u5728\u5B89\u5168\u98A8\u96AA\u3002"},
- {"jks.storetype.warning", "%1$s \u91D1\u9470\u5132\u5B58\u5EAB\u4F7F\u7528\u5C08\u6709\u683C\u5F0F\u3002\u5EFA\u8B70\u60A8\u4F7F\u7528 \"keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12\" \u79FB\u8F49\u6210\u70BA\u4F7F\u7528 PKCS12 (\u696D\u754C\u6A19\u6E96\u683C\u5F0F)\u3002"},
- {"migrate.keystore.warning", "\u5DF2\u5C07 \"%1$s\" \u79FB\u8F49\u6210\u70BA %4$s\u3002%2$s \u91D1\u9470\u5132\u5B58\u5EAB\u5DF2\u5099\u4EFD\u70BA \"%3$s\"\u3002"},
- {"backup.keystore.warning", "\u539F\u59CB\u7684\u91D1\u9470\u5132\u5B58\u5EAB \"%1$s\" \u5DF2\u5099\u4EFD\u70BA \"%3$s\"..."},
- {"importing.keystore.status", "\u6B63\u5728\u5C07\u91D1\u9470\u5132\u5B58\u5EAB %1$s \u532F\u5165 %2$s..."},
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool.properties b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool.properties
new file mode 100644
index 0000000000000..fb03573a7d593
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool.properties
@@ -0,0 +1,329 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+NEWLINE=\n
+STAR=*******************************************
+STARNN=*******************************************\n\n
+# keytool: Help part
+.OPTION.=\u0020[OPTION]...
+Options.=Options:
+option.1.set.twice=The %s option is specified multiple times. All except the last one will be ignored.
+multiple.commands.1.2=Only one command is allowed: both %1$s and %2$s were specified.
+Use.keytool.help.for.all.available.commands=Use "keytool -?, -h, or --help" for this help message
+Key.and.Certificate.Management.Tool=Key and Certificate Management Tool
+Commands.=Commands:
+Use.keytool.command.name.help.for.usage.of.command.name=Use "keytool -command_name --help" for usage of command_name.\n\
+Use the -conf option to specify a pre-configured options file.
+# keytool: help: commands
+Generates.a.certificate.request=Generates a certificate request
+Changes.an.entry.s.alias=Changes an entry's alias
+Deletes.an.entry=Deletes an entry
+Exports.certificate=Exports certificate
+Generates.a.key.pair=Generates a key pair
+Generates.a.secret.key=Generates a secret key
+Generates.certificate.from.a.certificate.request=Generates certificate from a certificate request
+Generates.CRL=Generates CRL
+Generated.keyAlgName.secret.key=Generated {0} secret key
+Generated.keysize.bit.keyAlgName.secret.key=Generated {0}-bit {1} secret key
+key.algorithm.weak=%1$s uses the %2$s algorithm which is considered a security risk.
+key.size.weak=%1$s uses a %2$s which is considered a security risk.
+Imports.entries.from.a.JDK.1.1.x.style.identity.database=Imports entries from a JDK 1.1.x-style identity database
+Imports.a.certificate.or.a.certificate.chain=Imports a certificate or a certificate chain
+Imports.a.password=Imports a password
+Imports.one.or.all.entries.from.another.keystore=Imports one or all entries from another keystore
+Clones.a.key.entry=Clones a key entry
+Changes.the.key.password.of.an.entry=Changes the key password of an entry
+Lists.entries.in.a.keystore=Lists entries in a keystore
+Prints.the.content.of.a.certificate=Prints the content of a certificate
+Prints.the.content.of.a.certificate.request=Prints the content of a certificate request
+Prints.the.content.of.a.CRL.file=Prints the content of a CRL file
+Generates.a.self.signed.certificate=Generates a self-signed certificate
+Changes.the.store.password.of.a.keystore=Changes the store password of a keystore
+showinfo.command.help=Displays security-related information
+Prints.the.program.version=Prints the program version
+# keytool: help: options
+alias.name.of.the.entry.to.process=alias name of the entry to process
+groupname.option.help=Group name. For example, an Elliptic Curve name.
+destination.alias=destination alias
+destination.key.password=destination key password
+destination.keystore.name=destination keystore name
+destination.keystore.password.protected=destination keystore password protected
+destination.keystore.provider.name=destination keystore provider name
+destination.keystore.password=destination keystore password
+destination.keystore.type=destination keystore type
+distinguished.name=distinguished name
+X.509.extension=X.509 extension
+output.file.name=output file name
+input.file.name=input file name
+key.algorithm.name=key algorithm name
+key.password=key password
+key.bit.size=key bit size
+keystore.name=keystore name
+access.the.cacerts.keystore=access the cacerts keystore
+warning.cacerts.option=Warning: use -cacerts option to access cacerts keystore
+new.password=new password
+do.not.prompt=do not prompt
+password.through.protected.mechanism=password through protected mechanism
+tls.option.help=Displays TLS configuration information
+# The following 2 values should span 2 lines, the first for the
+# option itself, the second for its -providerArg value.
+addprovider.option=add security provider by name (e.g. SunPKCS11)\n\
+configure argument for -addprovider
+provider.class.option=add security provider by fully-qualified class name\n\
+configure argument for -providerclass
+
+provider.name=provider name
+provider.classpath=provider classpath
+output.in.RFC.style=output in RFC style
+signature.algorithm.name=signature algorithm name
+signer.alias=signer alias
+signer.key.password=signer key password
+source.alias=source alias
+source.key.password=source key password
+source.keystore.name=source keystore name
+source.keystore.password.protected=source keystore password protected
+source.keystore.provider.name=source keystore provider name
+source.keystore.password=source keystore password
+source.keystore.type=source keystore type
+SSL.server.host.and.port=SSL server host and port
+signed.jar.file=signed jar file
+certificate.validity.start.date.time=certificate validity start date/time
+keystore.password=keystore password
+keystore.type=keystore type
+trust.certificates.from.cacerts=trust certificates from cacerts
+verbose.output=verbose output
+validity.number.of.days=validity number of days
+Serial.ID.of.cert.to.revoke=Serial ID of cert to revoke
+# keytool: Running part
+keytool.error.=keytool error:\u0020
+Illegal.option.=Illegal option: \u0020
+Illegal.value.=Illegal value:\u0020
+Unknown.password.type.=Unknown password type:\u0020
+Cannot.find.environment.variable.=Cannot find environment variable:\u0020
+Cannot.find.file.=Cannot find file:\u0020
+Command.option.flag.needs.an.argument.=Command option {0} needs an argument.
+Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.=Warning: Different store and key passwords not supported for PKCS12 KeyStores. Ignoring user-specified {0} value.
+the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option=The -keystore or -storetype option cannot be used with the -cacerts option
+.keystore.must.be.NONE.if.storetype.is.{0}=-keystore must be NONE if -storetype is {0}
+Too.many.retries.program.terminated=Too many retries, program terminated
+.storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}=-storepasswd and -keypasswd commands not supported if -storetype is {0}
+.keypasswd.commands.not.supported.if.storetype.is.PKCS12=-keypasswd commands not supported if -storetype is PKCS12
+.keypass.and.new.can.not.be.specified.if.storetype.is.{0}=-keypass and -new can not be specified if -storetype is {0}
+if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified=if -protected is specified, then -storepass, -keypass, and -new must not be specified
+if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified=if -srcprotected is specified, then -srcstorepass and -srckeypass must not be specified
+if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified=if keystore is not password protected, then -storepass, -keypass, and -new must not be specified
+if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified=if source keystore is not password protected, then -srcstorepass and -srckeypass must not be specified
+Illegal.startdate.value=Illegal startdate value
+Validity.must.be.greater.than.zero=Validity must be greater than zero
+provclass.not.a.provider=%s not a provider
+provider.name.not.found=Provider named "%s" not found
+provider.class.not.found=Provider "%s" not found
+Usage.error.no.command.provided=Usage error: no command provided
+Source.keystore.file.exists.but.is.empty.=Source keystore file exists, but is empty:\u0020
+Please.specify.srckeystore=Please specify -srckeystore
+Must.not.specify.both.v.and.rfc.with.list.command=Must not specify both -v and -rfc with 'list' command
+Key.password.must.be.at.least.6.characters=Key password must be at least 6 characters
+New.password.must.be.at.least.6.characters=New password must be at least 6 characters
+Keystore.file.exists.but.is.empty.=Keystore file exists, but is empty:\u0020
+Keystore.file.does.not.exist.=Keystore file does not exist:\u0020
+Must.specify.destination.alias=Must specify destination alias
+Must.specify.alias=Must specify alias
+Keystore.password.must.be.at.least.6.characters=Keystore password must be at least 6 characters
+Enter.the.password.to.be.stored.=Enter the password to be stored: \u0020
+Enter.keystore.password.=Enter keystore password: \u0020
+Enter.source.keystore.password.=Enter source keystore password: \u0020
+Enter.destination.keystore.password.=Enter destination keystore password: \u0020
+Keystore.password.is.too.short.must.be.at.least.6.characters=Keystore password is too short - must be at least 6 characters
+Unknown.Entry.Type=Unknown Entry Type
+Entry.for.alias.alias.successfully.imported.=Entry for alias {0} successfully imported.
+Entry.for.alias.alias.not.imported.=Entry for alias {0} not imported.
+Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.=Problem importing entry for alias {0}: {1}.\nEntry for alias {0} not imported.
+Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled=Import command completed: {0} entries successfully imported, {1} entries failed or cancelled
+Warning.Overwriting.existing.alias.alias.in.destination.keystore=Warning: Overwriting existing alias {0} in destination keystore
+Existing.entry.alias.alias.exists.overwrite.no.=Existing entry alias {0} exists, overwrite? [no]: \u0020
+Too.many.failures.try.later=Too many failures - try later
+Certification.request.stored.in.file.filename.=Certification request stored in file <{0}>
+Submit.this.to.your.CA=Submit this to your CA
+if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified=if alias not specified, destalias and srckeypass must not be specified
+The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.=The destination pkcs12 keystore has different storepass and keypass. Please retry with -destkeypass specified.
+Certificate.stored.in.file.filename.=Certificate stored in file <{0}>
+Certificate.reply.was.installed.in.keystore=Certificate reply was installed in keystore
+Certificate.reply.was.not.installed.in.keystore=Certificate reply was not installed in keystore
+Certificate.was.added.to.keystore=Certificate was added to keystore
+Certificate.was.not.added.to.keystore=Certificate was not added to keystore
+.Storing.ksfname.=[Storing {0}]
+alias.has.no.public.key.certificate.={0} has no public key (certificate)
+Cannot.derive.signature.algorithm=Cannot derive signature algorithm
+Alias.alias.does.not.exist=Alias <{0}> does not exist
+Alias.alias.has.no.certificate=Alias <{0}> has no certificate
+groupname.keysize.coexist=Cannot specify both -groupname and -keysize
+deprecate.keysize.for.ec=Specifying -keysize for generating EC keys is deprecated, please use "-groupname %s" instead.
+Key.pair.not.generated.alias.alias.already.exists=Key pair not generated, alias <{0}> already exists
+size.bit.alg=%1$d-bit %2$s
+Generating.full.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.days.for=Generating {0} key pair and self-signed certificate ({1}) with a validity of {2} days\n\tfor: {3}
+Generating.full.keyAlgName.key.pair.and.a.certificate.sigAlgName.issued.by.signerAlias.with.a.validity.of.days.for=Generating {0} key pair and a certificate ({1}) issued by <{2}> with a validity of {3} days\n\tfor: {4}
+Enter.key.password.for.alias.=Enter key password for <{0}>
+.RETURN.if.same.as.keystore.password.=\t(RETURN if same as keystore password): \u0020
+Key.password.is.too.short.must.be.at.least.6.characters=Key password is too short - must be at least 6 characters
+Too.many.failures.key.not.added.to.keystore=Too many failures - key not added to keystore
+Destination.alias.dest.already.exists=Destination alias <{0}> already exists
+Password.is.too.short.must.be.at.least.6.characters=Password is too short - must be at least 6 characters
+Too.many.failures.Key.entry.not.cloned=Too many failures. Key entry not cloned
+key.password.for.alias.=key password for <{0}>
+No.entries.from.identity.database.added=No entries from identity database added
+Alias.name.alias=Alias name: {0}
+Creation.date.keyStore.getCreationDate.alias.=Creation date: {0,date}
+alias.keyStore.getCreationDate.alias.={0}, {1,date},\u0020
+alias.={0},\u0020
+Entry.type.type.=Entry type: {0}
+Certificate.chain.length.=Certificate chain length:\u0020
+Certificate.i.1.=Certificate[{0,number,integer}]:
+Certificate.fingerprint.SHA.256.=Certificate fingerprint (SHA-256):\u0020
+Keystore.type.=Keystore type:\u0020
+Keystore.provider.=Keystore provider:\u0020
+Your.keystore.contains.keyStore.size.entry=Your keystore contains {0,number,integer} entry
+Your.keystore.contains.keyStore.size.entries=Your keystore contains {0,number,integer} entries
+Failed.to.parse.input=Failed to parse input
+Empty.input=Empty input
+Not.X.509.certificate=Not X.509 certificate
+alias.has.no.public.key={0} has no public key
+alias.has.no.X.509.certificate={0} has no X.509 certificate
+New.certificate.self.signed.=New certificate (self-signed):
+Reply.has.no.certificates=Reply has no certificates
+Certificate.not.imported.alias.alias.already.exists=Certificate not imported, alias <{0}> already exists
+Input.not.an.X.509.certificate=Input not an X.509 certificate
+Certificate.already.exists.in.keystore.under.alias.trustalias.=Certificate already exists in keystore under alias <{0}>
+Do.you.still.want.to.add.it.no.=Do you still want to add it? [no]: \u0020
+Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.=Certificate already exists in system-wide CA keystore under alias <{0}>
+Do.you.still.want.to.add.it.to.your.own.keystore.no.=Do you still want to add it to your own keystore? [no]: \u0020
+Trust.this.certificate.no.=Trust this certificate? [no]: \u0020
+New.prompt.=New {0}:\u0020
+Passwords.must.differ=Passwords must differ
+Re.enter.new.prompt.=Re-enter new {0}:\u0020
+Re.enter.password.=Re-enter password:\u0020
+Re.enter.new.password.=Re-enter new password:\u0020
+They.don.t.match.Try.again=They don't match. Try again
+Enter.prompt.alias.name.=Enter {0} alias name: \u0020
+Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.=Enter new alias name\t(RETURN to cancel import for this entry): \u0020
+Enter.alias.name.=Enter alias name: \u0020
+.RETURN.if.same.as.for.otherAlias.=\t(RETURN if same as for <{0}>)
+enter.dname.components=Enter the distinguished name. Provide a single dot (.) to leave a sub-component empty or press ENTER to use the default value in braces.
+What.is.your.first.and.last.name.=What is your first and last name?
+What.is.the.name.of.your.organizational.unit.=What is the name of your organizational unit?
+What.is.the.name.of.your.organization.=What is the name of your organization?
+What.is.the.name.of.your.City.or.Locality.=What is the name of your City or Locality?
+What.is.the.name.of.your.State.or.Province.=What is the name of your State or Province?
+What.is.the.two.letter.country.code.for.this.unit.=What is the two-letter country code for this unit?
+no.field.in.dname=At least one field must be provided. Enter again.
+Is.name.correct.=Is {0} correct?
+no=no
+yes=yes
+y=y
+.defaultValue.=\u0020 [{0}]: \u0020
+Alias.alias.has.no.key=Alias <{0}> has no key
+Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key=Alias <{0}> references an entry type that is not a private key entry. The -keyclone command only supports cloning of private key entries
+
+.WARNING.WARNING.WARNING.=***************** WARNING WARNING WARNING *****************
+Signer.d.=Signer #%d:
+Certificate.d.=Certificate #%d:
+Timestamp.=Timestamp:
+Certificate.owner.=Certificate owner:\u0020
+Not.a.signed.jar.file=Not a signed jar file
+No.certificate.from.the.SSL.server=No certificate from the SSL server
+
+.The.integrity.of.the.information.stored.in.your.keystore.=* The integrity of the information stored in your keystore *\n\
+* has NOT been verified! In order to verify its integrity, *\n\
+* you must provide your keystore password. *
+.The.integrity.of.the.information.stored.in.the.srckeystore.=* The integrity of the information stored in the srckeystore*\n\
+* has NOT been verified! In order to verify its integrity, *\n\
+* you must provide the srckeystore password. *
+
+Certificate.reply.does.not.contain.public.key.for.alias.=Certificate reply does not contain public key for <{0}>
+Incomplete.certificate.chain.in.reply=Incomplete certificate chain in reply
+Top.level.certificate.in.reply.=Top-level certificate in reply:\n
+.is.not.trusted.=... is not trusted.\u0020
+Install.reply.anyway.no.=Install reply anyway? [no]: \u0020
+Public.keys.in.reply.and.keystore.don.t.match=Public keys in reply and keystore don't match
+Certificate.reply.and.certificate.in.keystore.are.identical=Certificate reply and certificate in keystore are identical
+Failed.to.establish.chain.from.reply=Failed to establish chain from reply
+n=n
+Wrong.answer.try.again=Wrong answer, try again
+Secret.key.not.generated.alias.alias.already.exists=Secret Key not generated, alias <{0}> already exists
+Please.provide.keysize.for.secret.key.generation=Please provide -keysize for secret key generation
+
+warning.not.verified.make.sure.keystore.is.correct=WARNING: not verified. Make sure -keystore is correct.
+warning.not.verified.make.sure.keystore.is.correct.or.specify.trustcacerts=WARNING: not verified. Make sure -keystore is correct or specify -trustcacerts.
+
+Extensions.=Extensions:\u0020
+.Empty.value.=(Empty value)
+Extension.Request.=Extension Request:
+Unknown.keyUsage.type.=Unknown keyUsage type:\u0020
+Unknown.extendedkeyUsage.type.=Unknown extendedkeyUsage type:\u0020
+Unknown.AccessDescription.type.=Unknown AccessDescription type:\u0020
+Unrecognized.GeneralName.type.=Unrecognized GeneralName type:\u0020
+This.extension.cannot.be.marked.as.critical.=This extension cannot be marked as critical.\u0020
+Odd.number.of.hex.digits.found.=Odd number of hex digits found:\u0020
+Unknown.extension.type.=Unknown extension type:\u0020
+command.{0}.is.ambiguous.=command {0} is ambiguous:
+# 8171319: keytool should print out warnings when reading or
+# generating cert/cert req using weak algorithms
+the.certificate.request=The certificate request
+the.issuer=The issuer
+the.generated.secretkey=The generated secret key
+the.generated.certificate=The generated certificate
+the.generated.crl=The generated CRL
+the.generated.certificate.request=The generated certificate request
+the.certificate=The certificate
+the.crl=The CRL
+the.tsa.certificate=The TSA certificate
+the.input=The input
+reply=Reply
+one.in.many=%1$s #%2$d of %3$d
+one.in.many1=%1$s #%2$d
+one.in.many2=%1$s of signer #%2$d
+one.in.many3=%1$s #%2$d of signer #%3$d
+alias.in.cacerts=Issuer <%s> in cacerts
+alias.in.keystore=Issuer <%s>
+with.weak=%s (weak)
+with.disabled=%s (disabled)
+key.bit=%s key
+key.bit.weak=%s key (weak)
+key.bit.disabled=%s key (disabled)
+.PATTERN.printX509Cert.with.weak=Owner: {0}\nIssuer: {1}\nSerial number: {2}\nValid from: {3} until: {4}\nCertificate fingerprints:\n\t SHA1: {5}\n\t SHA256: {6}\nSignature algorithm name: {7}\nSubject Public Key Algorithm: {8}\nVersion: {9}
+PKCS.10.with.weak=PKCS #10 Certificate Request (Version 1.0)\n\
+Subject: %1$s\nFormat: %2$s\nPublic Key: %3$s\nSignature algorithm: %4$s\n
+verified.by.s.in.s.weak=Verified by %1$s in %2$s with a %3$s
+whose.sigalg.disabled=%1$s uses the %2$s signature algorithm which is considered a security risk and is disabled.
+whose.sigalg.usagesignedjar=%1$s uses the %2$s signature algorithm which is considered a security risk and cannot be used to sign JARs after %3$s.
+Unable.to.parse.denyAfter.string.in.exception.message=Unable to parse denyAfter date string in exception message
+whose.sigalg.weak=%1$s uses the %2$s signature algorithm which is considered a security risk.
+whose.key.disabled=%1$s uses a %2$s which is considered a security risk and is disabled.
+whose.key.weak=%1$s uses a %2$s which is considered a security risk. It will be disabled in a future update.
+jks.storetype.warning=The %1$s keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12".
+migrate.keystore.warning=Migrated "%1$s" to %4$s. The %2$s keystore is backed up as "%3$s".
+backup.keystore.warning=The original keystore "%1$s" is backed up as "%3$s"...
+importing.keystore.status=Importing keystore %1$s to %2$s...
+keyalg.option.missing.error=The -keyalg option must be specified.
+showinfo.no.option=Missing option for -showinfo. Try "keytool -showinfo -tls".
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_de.properties b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_de.properties
new file mode 100644
index 0000000000000..6290bb2a7ac3a
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_de.properties
@@ -0,0 +1,321 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+NEWLINE=\n
+STAR=*******************************************
+STARNN=*******************************************\n\n
+# keytool: Help part
+.OPTION.=\u0020[OPTION]...
+Options.=Optionen:
+option.1.set.twice=Die Option %s wurde mehrmals angegeben. Alle Angaben bis auf die letzte werden ignoriert.
+multiple.commands.1.2=Nur ein Befehl ist zulässig: Sowohl %1$s als auch %2$s wurden angegeben.
+Use.keytool.help.for.all.available.commands=Verwenden Sie "keytool -?, -h, or --help" für diese Hilfemeldung
+Key.and.Certificate.Management.Tool=Schlüssel- und Zertifikatsverwaltungstool
+Commands.=Befehle:
+Use.keytool.command.name.help.for.usage.of.command.name=Verwenden Sie "keytool -command_name --help" für die Verwendung von command_name.\nVerwenden Sie die Option -conf , um eine vorkonfigurierte Optionsdatei anzugeben.
+# keytool: help: commands
+Generates.a.certificate.request=Generiert eine Zertifikatsanforderung
+Changes.an.entry.s.alias=Ändert den Alias eines Eintrags
+Deletes.an.entry=Löscht einen Eintrag
+Exports.certificate=Exportiert ein Zertifikat
+Generates.a.key.pair=Generiert ein Schlüsselpaar
+Generates.a.secret.key=Generiert einen Secret Key
+Generates.certificate.from.a.certificate.request=Generiert ein Zertifikat aus einer Zertifikatsanforderung
+Generates.CRL=Generiert eine CRL
+Generated.keyAlgName.secret.key={0} Secret Key generiert
+Generated.keysize.bit.keyAlgName.secret.key={0}-Bit {1} Secret Key generiert
+key.algorithm.weak=%1$s verwendet den Algorithmus %2$s. Das gilt als Sicherheitsrisiko.
+key.size.weak=%1$s verwendet %2$s. Dies gilt als Sicherheitsrisiko.
+Imports.entries.from.a.JDK.1.1.x.style.identity.database=Importiert Einträge aus einer Identity-Datenbank im JDK 1.1.x-Stil
+Imports.a.certificate.or.a.certificate.chain=Importiert ein Zertifikat oder eine Zertifikatskette
+Imports.a.password=Importiert ein Kennwort
+Imports.one.or.all.entries.from.another.keystore=Importiert einen oder alle Einträge aus einem anderen Keystore
+Clones.a.key.entry=Clont einen Schlüsseleintrag
+Changes.the.key.password.of.an.entry=Ändert das Schlüsselkennwort eines Eintrags
+Lists.entries.in.a.keystore=Listet die Einträge in einem Keystore auf
+Prints.the.content.of.a.certificate=Druckt den Content eines Zertifikats
+Prints.the.content.of.a.certificate.request=Druckt den Content einer Zertifikatsanforderung
+Prints.the.content.of.a.CRL.file=Druckt den Content einer CRL-Datei
+Generates.a.self.signed.certificate=Generiert ein selbst signiertes Zertifikat
+Changes.the.store.password.of.a.keystore=Ändert das Speicherkennwort eines Keystores
+showinfo.command.help=Zeigt sicherheitsbezogene Informationen an
+Prints.the.program.version=Gibt die Programmversion aus
+# keytool: help: options
+alias.name.of.the.entry.to.process=Aliasname des zu verarbeitenden Eintrags
+groupname.option.help=Gruppenname. Beispiel: der Name der elliptischen Kurve.
+destination.alias=Zielalias
+destination.key.password=Zielschlüsselkennwort
+destination.keystore.name=Ziel-Keystore-Name
+destination.keystore.password.protected=Ziel-Keystore kennwortgeschützt
+destination.keystore.provider.name=Ziel-Keystore-Providername
+destination.keystore.password=Ziel-Keystore-Kennwort
+destination.keystore.type=Ziel-Keystore-Typ
+distinguished.name=Distinguished Name
+X.509.extension=X.509-Erweiterung
+output.file.name=Ausgabedateiname
+input.file.name=Eingabedateiname
+key.algorithm.name=Schlüsselalgorithmusname
+key.password=Schlüsselkennwort
+key.bit.size=Schlüsselbitgröße
+keystore.name=Keystore-Name
+access.the.cacerts.keystore=Zugriff auf den cacerts Keystore
+warning.cacerts.option=Warnung: Verwenden Sie die Option -cacerts für den Zugriff auf den cacerts Keystore
+new.password=Neues Kennwort
+do.not.prompt=Kein Prompt
+password.through.protected.mechanism=Kennwort über geschützten Mechanismus
+tls.option.help=Zeigt TLS-Konfigurationsinformationen an
+# The following 2 values should span 2 lines, the first for the
+# option itself, the second for its -providerArg value.
+addprovider.option=Sicherheitsprovider nach Name hinzufügen (z.B. SunPKCS11)\nArgument für -addprovider konfigurieren
+provider.class.option=Sicherheitsprovider nach vollständig angegebenem Klassennamen hinzufügen\nArgument für -providerclass konfigurieren
+
+provider.name=Providername
+provider.classpath=Provider-Classpath
+output.in.RFC.style=Ausgabe in RFC-Stil
+signature.algorithm.name=Signaturalgorithmusname
+signer.alias=Signaturgeberalias
+signer.key.password=Signaturgeber-Schlüsselkennwort
+source.alias=Quellalias
+source.key.password=Quellschlüsselkennwort
+source.keystore.name=Quell-Keystore-Name
+source.keystore.password.protected=Quell-Keystore kennwortgeschützt
+source.keystore.provider.name=Quell-Keystore-Providername
+source.keystore.password=Quell-Keystore-Kennwort
+source.keystore.type=Quell-Keystore-Typ
+SSL.server.host.and.port=SSL-Serverhost und -port
+signed.jar.file=Signierte JAR-Datei
+certificate.validity.start.date.time=Startdatum/-zeit für Zertifikatsgültigkeit
+keystore.password=Keystore-Kennwort
+keystore.type=Keystore-Typ
+trust.certificates.from.cacerts=Zertifikaten aus cacerts vertrauen
+verbose.output=Verbose-Ausgabe
+validity.number.of.days=Gültigkeitsdauer (Tage)
+Serial.ID.of.cert.to.revoke=Serielle ID des zu entziehenden Certs
+# keytool: Running part
+keytool.error.=Keytool-Fehler:\u0020
+Illegal.option.=Unzulässige Option: \u0020
+Illegal.value.=Unzulässiger Wert:\u0020
+Unknown.password.type.=Unbekannter Kennworttyp:\u0020
+Cannot.find.environment.variable.=Umgebungsvariable kann nicht gefunden werden:\u0020
+Cannot.find.file.=Datei kann nicht gefunden werden:\u0020
+Command.option.flag.needs.an.argument.=Befehlsoption {0} benötigt ein Argument.
+Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.=Warnung: Keine Unterstützung für unterschiedliche Speicher- und Schlüsselkennwörter bei PKCS12 KeyStores. Der benutzerdefinierte Wert {0} wird ignoriert.
+the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option=Die Option -keystore oder -storetype kann nicht mit der Option -cacerts verwendet werden
+.keystore.must.be.NONE.if.storetype.is.{0}=-keystore muss NONE sein, wenn -storetype {0} ist
+Too.many.retries.program.terminated=Zu viele erneute Versuche. Programm wird beendet
+.storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}=Befehle -storepasswd und -keypasswd werden nicht unterstützt, wenn -storetype {0} ist
+.keypasswd.commands.not.supported.if.storetype.is.PKCS12=Befehle des Typs -keypasswd werden nicht unterstützt, wenn -storetype PKCS12 ist
+.keypass.and.new.can.not.be.specified.if.storetype.is.{0}=-keypass und -new können nicht angegeben werden, wenn -storetype {0} ist
+if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified=Wenn -protected angegeben ist, dürfen -storepass, -keypass und -new nicht angegeben werden
+if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified=Wenn -srcprotected angegeben ist, dürfen -srcstorepass und -srckeypass nicht angegeben werden
+if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified=Wenn der Keystore nicht kennwortgeschützt ist, dürfen -storepass, -keypass und -new nicht angegeben werden
+if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified=Wenn der Quell-Keystore nicht kennwortgeschützt ist, dürfen -srcstorepass und -srckeypass nicht angegeben werden
+Illegal.startdate.value=Unzulässiger Wert für Startdatum
+Validity.must.be.greater.than.zero=Gültigkeit muss größer als null sein
+provclass.not.a.provider=%s kein Provider
+provider.name.not.found=Provider namens "%s" nicht gefunden
+provider.class.not.found=Provider "%s" nicht gefunden
+Usage.error.no.command.provided=Verwendungsfehler: Kein Befehl angegeben
+Source.keystore.file.exists.but.is.empty.=Quell-Keystore-Datei ist zwar vorhanden, ist aber leer:\u0020
+Please.specify.srckeystore=Geben Sie -srckeystore an
+Must.not.specify.both.v.and.rfc.with.list.command=-v und -rfc dürfen bei Befehl "list" nicht beide angegeben werden
+Key.password.must.be.at.least.6.characters=Schlüsselkennwort muss mindestens sechs Zeichen lang sein
+New.password.must.be.at.least.6.characters=Neues Kennwort muss mindestens sechs Zeichen lang sein
+Keystore.file.exists.but.is.empty.=Keystore-Datei ist vorhanden, ist aber leer:\u0020
+Keystore.file.does.not.exist.=Keystore-Datei ist nicht vorhanden:\u0020
+Must.specify.destination.alias=Sie müssen einen Zielalias angeben
+Must.specify.alias=Sie müssen einen Alias angeben
+Keystore.password.must.be.at.least.6.characters=Keystore-Kennwort muss mindestens sechs Zeichen lang sein
+Enter.the.password.to.be.stored.=Geben Sie das Kennwort ein, das gespeichert werden soll: \u0020
+Enter.keystore.password.=Keystore-Kennwort eingeben: \u0020
+Enter.source.keystore.password.=Quell-Keystore-Kennwort eingeben: \u0020
+Enter.destination.keystore.password.=Ziel-Keystore-Kennwort eingeben: \u0020
+Keystore.password.is.too.short.must.be.at.least.6.characters=Keystore-Kennwort ist zu kurz. Es muss mindestens sechs Zeichen lang sein
+Unknown.Entry.Type=Unbekannter Eintragstyp
+Entry.for.alias.alias.successfully.imported.=Eintrag für Alias {0} erfolgreich importiert.
+Entry.for.alias.alias.not.imported.=Eintrag für Alias {0} nicht importiert.
+Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.=Problem beim Importieren des Eintrags für Alias {0}: {1}.\nEintrag für Alias {0} nicht importiert.
+Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled=Importbefehl abgeschlossen: {0} Einträge erfolgreich importiert, {1} Einträge nicht erfolgreich oder abgebrochen
+Warning.Overwriting.existing.alias.alias.in.destination.keystore=Warnung: Vorhandener Alias {0} in Ziel-Keystore wird überschrieben
+Existing.entry.alias.alias.exists.overwrite.no.=Eintragsalias {0} ist bereits vorhanden. Überschreiben? [Nein]: \u0020
+Too.many.failures.try.later=Zu viele Fehler. Versuchen Sie es später erneut
+Certification.request.stored.in.file.filename.=Zertifizierungsanforderung in Datei <{0}> gespeichert
+Submit.this.to.your.CA=Leiten Sie dies an die CA weiter
+if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified=Wenn kein Alias angegeben ist, dürfen destalias und srckeypass nicht angegeben werden
+The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.=Der Ziel-Keystore pkcs12 hat unterschiedliche Kennwörter für storepass und keypass. Wiederholen Sie den Vorgang, indem Sie -destkeypass angeben.
+Certificate.stored.in.file.filename.=Zertifikat in Datei <{0}> gespeichert
+Certificate.reply.was.installed.in.keystore=Zertifikatsantwort wurde in Keystore installiert
+Certificate.reply.was.not.installed.in.keystore=Zertifikatsantwort wurde nicht in Keystore installiert
+Certificate.was.added.to.keystore=Zertifikat wurde Keystore hinzugefügt
+Certificate.was.not.added.to.keystore=Zertifikat wurde nicht zu Keystore hinzugefügt
+.Storing.ksfname.=[{0} wird gesichert]
+alias.has.no.public.key.certificate.={0} hat keinen Public Key (Zertifikat)
+Cannot.derive.signature.algorithm=Signaturalgorithmus kann nicht abgeleitet werden
+Alias.alias.does.not.exist=Alias <{0}> ist nicht vorhanden
+Alias.alias.has.no.certificate=Alias <{0}> hat kein Zertifikat
+groupname.keysize.coexist=Es können nicht sowohl -groupname als auch -keysize angegeben werden
+deprecate.keysize.for.ec=Das Angeben von -keysize zum Generieren von EC-Schlüsseln ist veraltet. Verwenden Sie stattdessen "-groupname %s".
+Key.pair.not.generated.alias.alias.already.exists=Schlüsselpaar wurde nicht generiert. Alias <{0}> ist bereits vorhanden
+size.bit.alg=%1$d-Bit %2$s
+Generating.full.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.days.for=Schlüsselpaar {0} und selbstsigniertes Zertifikat ({1}) werden mit einer Gültigkeit von {2} Tagen generiert\n\tfür: {3}
+Generating.full.keyAlgName.key.pair.and.a.certificate.sigAlgName.issued.by.signerAlias.with.a.validity.of.days.for=Schlüsselpaar {0} und Zertifikat ({1}) werden generiert, das von <{2}> mit einer Gültigkeit von {3} Tagen ausgestellt wurde\n\tfür: {4}
+Enter.key.password.for.alias.=Schlüsselkennwort für <{0}> eingeben
+.RETURN.if.same.as.keystore.password.=\t(RETURN, wenn identisch mit Keystore-Kennwort): \u0020
+Key.password.is.too.short.must.be.at.least.6.characters=Schlüsselkennwort ist zu kurz. Es muss mindestens sechs Zeichen lang sein
+Too.many.failures.key.not.added.to.keystore=Zu viele Fehler. Schlüssel wurde nicht zu Keystore hinzugefügt
+Destination.alias.dest.already.exists=Zielalias <{0}> bereits vorhanden
+Password.is.too.short.must.be.at.least.6.characters=Kennwort ist zu kurz. Es muss mindestens sechs Zeichen lang sein
+Too.many.failures.Key.entry.not.cloned=Zu viele Fehler. Schlüsseleintrag wurde nicht geklont
+key.password.for.alias.=Schlüsselkennwort für <{0}>
+No.entries.from.identity.database.added=Keine Einträge aus Identity-Datenbank hinzugefügt
+Alias.name.alias=Aliasname: {0}
+Creation.date.keyStore.getCreationDate.alias.=Erstellungsdatum: {0,date}
+alias.keyStore.getCreationDate.alias.={0}, {1,date},\u0020
+alias.={0},\u0020
+Entry.type.type.=Eintragstyp: {0}
+Certificate.chain.length.=Zertifikatskettenlänge:\u0020
+Certificate.i.1.=Zertifikat[{0,number,integer}]:
+Certificate.fingerprint.SHA.256.=Zertifikat-Fingerprint (SHA-256):\u0020
+Keystore.type.=Keystore-Typ:\u0020
+Keystore.provider.=Keystore-Provider:\u0020
+Your.keystore.contains.keyStore.size.entry=Keystore enthält {0,number,integer} Eintrag
+Your.keystore.contains.keyStore.size.entries=Keystore enthält {0,number,integer} Einträge
+Failed.to.parse.input=Eingabe konnte nicht geparst werden
+Empty.input=Leere Eingabe
+Not.X.509.certificate=Kein X.509-Zertifikat
+alias.has.no.public.key={0} hat keinen Public Key
+alias.has.no.X.509.certificate={0} hat kein X.509-Zertifikat
+New.certificate.self.signed.=Neues Zertifikat (selbst signiert):
+Reply.has.no.certificates=Antwort hat keine Zertifikate
+Certificate.not.imported.alias.alias.already.exists=Zertifikat nicht importiert. Alias <{0}> ist bereits vorhanden
+Input.not.an.X.509.certificate=Eingabe kein X.509-Zertifikat
+Certificate.already.exists.in.keystore.under.alias.trustalias.=Zertifikat ist bereits unter Alias <{0}> im Keystore vorhanden
+Do.you.still.want.to.add.it.no.=Möchten Sie es trotzdem hinzufügen? [Nein]: \u0020
+Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.=Zertifikat ist bereits unter Alias <{0}> im systemweiten CA-Keystore vorhanden
+Do.you.still.want.to.add.it.to.your.own.keystore.no.=Möchten Sie es trotzdem zu Ihrem eigenen Keystore hinzufügen? [Nein]: \u0020
+Trust.this.certificate.no.=Diesem Zertifikat vertrauen? [Nein]: \u0020
+New.prompt.=Neues {0}:\u0020
+Passwords.must.differ=Kennwörter müssen sich unterscheiden
+Re.enter.new.prompt.=Neues {0} erneut eingeben:\u0020
+Re.enter.password.=Geben Sie das Kennwort erneut ein:\u0020
+Re.enter.new.password.=Neues Kennwort erneut eingeben:\u0020
+They.don.t.match.Try.again=Keine Übereinstimmung. Wiederholen Sie den Vorgang
+Enter.prompt.alias.name.={0}-Aliasnamen eingeben: \u0020
+Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.=Geben Sie einen neuen Aliasnamen ein\t(RETURN, um den Import dieses Eintrags abzubrechen): \u0020
+Enter.alias.name.=Aliasnamen eingeben: \u0020
+.RETURN.if.same.as.for.otherAlias.=\t(RETURN, wenn identisch mit <{0}>)
+enter.dname.components=Geben Sie den Distinguished Name ein. Geben Sie einen einzelnen Punkt (.) an, um eine Unterkomponente leer zu lassen, oder drücken Sie die Eingabetaste, um den Standardwert in Klammern zu verwenden.
+What.is.your.first.and.last.name.=Wie lautet Ihr Vor- und Nachname?
+What.is.the.name.of.your.organizational.unit.=Wie lautet der Name Ihrer organisatorischen Einheit?
+What.is.the.name.of.your.organization.=Wie lautet der Name Ihrer Organisation?
+What.is.the.name.of.your.City.or.Locality.=Wie lautet der Name Ihrer Stadt oder Gemeinde?
+What.is.the.name.of.your.State.or.Province.=Wie lautet der Name Ihres Bundeslands?
+What.is.the.two.letter.country.code.for.this.unit.=Wie lautet der Ländercode (zwei Buchstaben) für diese Einheit?
+no.field.in.dname=Mindestens ein Feld muss ausgefüllt werden. Wiederholen Sie die Eingabe.
+Is.name.correct.=Ist {0} richtig?
+no=Nein
+yes=Ja
+y=J
+.defaultValue.=\u0020 [{0}]: \u0020
+Alias.alias.has.no.key=Alias <{0}> verfügt über keinen Schlüssel
+Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key=Alias <{0}> verweist auf einen Eintragstyp, der kein Private-Key-Eintrag ist. Der Befehl -keyclone unterstützt nur das Klonen von Private-Key-Einträgen
+
+.WARNING.WARNING.WARNING.=***************** WARNING WARNING WARNING *****************
+Signer.d.=Signaturgeber #%d:
+Certificate.d.=Zertifikat #%d:
+Timestamp.=Zeitstempel:
+Certificate.owner.=Zertifikatseigentümer:\u0020
+Not.a.signed.jar.file=Keine signierte JAR-Datei
+No.certificate.from.the.SSL.server=Kein Zertifikat vom SSL-Server
+
+.The.integrity.of.the.information.stored.in.your.keystore.=* Die Integrität der Informationen, die in Ihrem Keystore gespeichert sind, *\n* wurde NICHT geprüft. Um die Integrität zu prüfen, *\n* müssen Sie Ihr Keystore-Kennwort angeben. *
+.The.integrity.of.the.information.stored.in.the.srckeystore.=* Die Integrität der Informationen, die in Ihrem Srckeystore gespeichert sind, *\n* wurde NICHT geprüft. Um die Integrität zu prüfen, *\n* müssen Sie Ihr Srckeystore-Kennwort angeben. *
+
+Certificate.reply.does.not.contain.public.key.for.alias.=Zertifikatsantwort enthält keinen Public Key für <{0}>
+Incomplete.certificate.chain.in.reply=Unvollständige Zertifikatskette in Antwort
+Top.level.certificate.in.reply.=Zertifikat der obersten Ebene in Antwort:\n
+.is.not.trusted.=... ist nicht vertrauenswürdig.\u0020
+Install.reply.anyway.no.=Antwort trotzdem installieren? [Nein]: \u0020
+Public.keys.in.reply.and.keystore.don.t.match=Public Keys in Antwort und Keystore stimmen nicht überein
+Certificate.reply.and.certificate.in.keystore.are.identical=Zertifikatsantwort und Zertifikat in Keystore sind identisch
+Failed.to.establish.chain.from.reply=Kette konnte der Antwort nicht entnommen werden
+n=N
+Wrong.answer.try.again=Falsche Antwort. Wiederholen Sie den Vorgang
+Secret.key.not.generated.alias.alias.already.exists=Secret Key wurde nicht generiert. Alias <{0}> ist bereits vorhanden
+Please.provide.keysize.for.secret.key.generation=Geben Sie -keysize zum Erstellen eines Secret Key an
+
+warning.not.verified.make.sure.keystore.is.correct=WARNUNG: Nicht geprüft. Stellen Sie sicher, dass -keystore korrekt ist.
+warning.not.verified.make.sure.keystore.is.correct.or.specify.trustcacerts=Warnung: Nicht geprüft. Stellen Sie sicher, dass -keystore korrekt ist, oder geben Sie -trustcacerts an.
+
+Extensions.=Erweiterungen:\u0020
+.Empty.value.=(Leerer Wert)
+Extension.Request.=Erweiterungsanforderung:
+Unknown.keyUsage.type.=Unbekannter keyUsage-Typ:\u0020
+Unknown.extendedkeyUsage.type.=Unbekannter extendedkeyUsage-Typ:\u0020
+Unknown.AccessDescription.type.=Unbekannter AccessDescription-Typ:\u0020
+Unrecognized.GeneralName.type.=Unbekannter GeneralName-Typ:\u0020
+This.extension.cannot.be.marked.as.critical.=Erweiterung kann nicht als "Kritisch" markiert werden.\u0020
+Odd.number.of.hex.digits.found.=Ungerade Anzahl hexadezimaler Ziffern gefunden:\u0020
+Unknown.extension.type.=Unbekannter Erweiterungstyp:\u0020
+command.{0}.is.ambiguous.=Befehl {0} ist mehrdeutig:
+# 8171319: keytool should print out warnings when reading or
+# generating cert/cert req using weak algorithms
+the.certificate.request=Die Zertifikatsanforderung
+the.issuer=Der Aussteller
+the.generated.secretkey=Der generierte Secret Key
+the.generated.certificate=Das generierte Zertifikat
+the.generated.crl=Die generierte CRL
+the.generated.certificate.request=Die generierte Zertifikatsanforderung
+the.certificate=Das Zertifikat
+the.crl=Die CRL
+the.tsa.certificate=Das TSA-Zertifikat
+the.input=Die Eingabe
+reply=Antwort
+one.in.many=%1$s #%2$d von %3$d
+one.in.many1=%1$s #%2$d
+one.in.many2=%1$s von Signaturgeber #%2$d
+one.in.many3=%1$s #%2$d von Signaturgeber #%3$d
+alias.in.cacerts=Aussteller <%s> in cacerts
+alias.in.keystore=Aussteller <%s>
+with.weak=%s (schwach)
+with.disabled=%s (deaktiviert)
+key.bit=%s-Schlüssel
+key.bit.weak=%s Schlüssel (schwach)
+key.bit.disabled=%s Schlüssel (deaktiviert)
+.PATTERN.printX509Cert.with.weak=Eigentümer: {0}\nAussteller: {1}\nSeriennummer: {2}\nGültig von: {3} bis: {4}\nZertifikatsfingerprints:\n\t SHA1: {5}\n\t SHA256: {6}\nSignaturalgorithmusname: {7}\nPublic-Key-Algorithmus von Subject: {8}\nVersion: {9}
+PKCS.10.with.weak=PKCS #10-Zertifikatsanforderung (Version 1.0)\nSubject: %1$s\nFormat: %2$s\nPublic Key: %3$s\nSignaturalgorithmus: %4$s\n
+verified.by.s.in.s.weak=Von %1$s in %2$s mit %3$s verifiziert
+whose.sigalg.disabled=%1$s verwendet den Signaturalgorithmus %2$s. Dies gilt als Sicherheitsrisiko und ist deaktiviert.
+whose.sigalg.usagesignedjar=%1$s verwendet den Signaturalgorithmus %2$s. Das gilt als Sicherheitsrisiko und kann nach %3$s nicht zum Signieren von JAR-Archiven verwendet werden.
+Unable.to.parse.denyAfter.string.in.exception.message=denyAfter-Datumszeichenfolge in Ausnahmemeldung kann nicht geparst werden
+whose.sigalg.weak=%1$s verwendet den Signaturalgorithmus %2$s. Dies gilt als Sicherheitsrisiko.
+whose.key.disabled=%1$s verwendet %2$s. Dies gilt als Sicherheitsrisiko und ist deaktiviert.
+whose.key.weak=%1$s verwendet %2$s. Dies gilt als Sicherheitsrisiko. Wird in einem zukünftigen Update deaktiviert.
+jks.storetype.warning=Der %1$s-Keystore verwendet ein proprietäres Format. Es wird empfohlen, auf PKCS12 zu migrieren, das ein Industriestandardformat mit "keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12" ist.
+migrate.keystore.warning="%1$s" zu %4$s migriert. Der %2$s-Keystore wurde als "%3$s" gesichert.
+backup.keystore.warning=Der ursprüngliche Keystore "%1$s" wird als "%3$s" gesichert...
+importing.keystore.status=Keystore %1$s wird in %2$s importiert...
+keyalg.option.missing.error=Die Option -keyalg muss angegeben werden.
+showinfo.no.option=Fehlende Option für -showinfo. Verwenden Sie keytool -showinfo -tls.
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_es.properties b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_es.properties
new file mode 100644
index 0000000000000..27015f73454cc
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_es.properties
@@ -0,0 +1,302 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+NEWLINE=\n
+STAR=*******************************************
+STARNN=*******************************************\n\n
+# keytool: Help part
+.OPTION.=\u0020[OPTION]...
+Options.=Opciones:
+option.1.set.twice=La opción %s se ha especificado varias veces. Se ignorarán todas excepto la última.
+multiple.commands.1.2=Solo se permite un comando: se ha especificado tanto %1$s como %2$s
+Use.keytool.help.for.all.available.commands=Utilice "keytool -help" para todos los comandos disponibles
+Key.and.Certificate.Management.Tool=Herramienta de Gestión de Certificados y Claves
+Commands.=Comandos:
+Use.keytool.command.name.help.for.usage.of.command.name=Utilice "keytool -command_name -help" para la sintaxis de nombre_comando.\nUtilice la opción -conf para especificar un archivo de opciones preconfigurado.
+# keytool: help: commands
+Generates.a.certificate.request=Genera una solicitud de certificado
+Changes.an.entry.s.alias=Cambia un alias de entrada
+Deletes.an.entry=Suprime una entrada
+Exports.certificate=Exporta el certificado
+Generates.a.key.pair=Genera un par de claves
+Generates.a.secret.key=Genera un clave secreta
+Generates.certificate.from.a.certificate.request=Genera un certificado a partir de una solicitud de certificado
+Generates.CRL=Genera CRL
+Generated.keyAlgName.secret.key=Clave secreta {0} generada
+Generated.keysize.bit.keyAlgName.secret.key=Clave secreta {1} de {0} bits generada
+Imports.entries.from.a.JDK.1.1.x.style.identity.database=Importa entradas desde una base de datos de identidades JDK 1.1.x-style
+Imports.a.certificate.or.a.certificate.chain=Importa un certificado o una cadena de certificados
+Imports.a.password=Importa una contraseña
+Imports.one.or.all.entries.from.another.keystore=Importa una o todas las entradas desde otro almacén de claves
+Clones.a.key.entry=Clona una entrada de clave
+Changes.the.key.password.of.an.entry=Cambia la contraseña de clave de una entrada
+Lists.entries.in.a.keystore=Enumera las entradas de un almacén de claves
+Prints.the.content.of.a.certificate=Imprime el contenido de un certificado
+Prints.the.content.of.a.certificate.request=Imprime el contenido de una solicitud de certificado
+Prints.the.content.of.a.CRL.file=Imprime el contenido de un archivo CRL
+Generates.a.self.signed.certificate=Genera un certificado autofirmado
+Changes.the.store.password.of.a.keystore=Cambia la contraseña de almacén de un almacén de claves
+# keytool: help: options
+alias.name.of.the.entry.to.process=nombre de alias de la entrada que se va a procesar
+destination.alias=alias de destino
+destination.key.password=contraseña de clave de destino
+destination.keystore.name=nombre de almacén de claves de destino
+destination.keystore.password.protected=almacén de claves de destino protegido por contraseña
+destination.keystore.provider.name=nombre de proveedor de almacén de claves de destino
+destination.keystore.password=contraseña de almacén de claves de destino
+destination.keystore.type=tipo de almacén de claves de destino
+distinguished.name=nombre distintivo
+X.509.extension=extensión X.509
+output.file.name=nombre de archivo de salida
+input.file.name=nombre de archivo de entrada
+key.algorithm.name=nombre de algoritmo de clave
+key.password=contraseña de clave
+key.bit.size=tamaño de bit de clave
+keystore.name=nombre de almacén de claves
+access.the.cacerts.keystore=acceso al almacén de claves cacerts
+warning.cacerts.option=Advertencia: Utilice la opción -cacerts para acceder al almacén de claves cacerts
+new.password=nueva contraseña
+do.not.prompt=no solicitar
+password.through.protected.mechanism=contraseña a través de mecanismo protegido
+# The following 2 values should span 2 lines, the first for the
+# option itself, the second for its -providerArg value.
+addprovider.option=agregar proveedor de seguridad por nombre (por ejemplo, SunPKCS11)\nconfigurar elemento para -addprovider
+provider.class.option=agregar proveedor de seguridad por nombre de clase totalmente cualificado\nconfigurar argumento para -providerclass
+
+provider.name=nombre del proveedor
+provider.classpath=classpath de proveedor
+output.in.RFC.style=salida en estilo RFC
+signature.algorithm.name=nombre de algoritmo de firma
+source.alias=alias de origen
+source.key.password=contraseña de clave de origen
+source.keystore.name=nombre de almacén de claves de origen
+source.keystore.password.protected=almacén de claves de origen protegido por contraseña
+source.keystore.provider.name=nombre de proveedor de almacén de claves de origen
+source.keystore.password=contraseña de almacén de claves de origen
+source.keystore.type=tipo de almacén de claves de origen
+SSL.server.host.and.port=puerto y host del servidor SSL
+signed.jar.file=archivo jar firmado
+certificate.validity.start.date.time=fecha/hora de inicio de validez del certificado
+keystore.password=contraseña de almacén de claves
+keystore.type=tipo de almacén de claves
+trust.certificates.from.cacerts=certificados de protección de cacerts
+verbose.output=salida detallada
+validity.number.of.days=número de validez de días
+Serial.ID.of.cert.to.revoke=identificador de serie del certificado que se va a revocar
+# keytool: Running part
+keytool.error.=error de herramienta de claves:\u0020
+Illegal.option.=Opción no permitida: \u0020
+Illegal.value.=Valor no permitido:\u0020
+Unknown.password.type.=Tipo de contraseña desconocido:\u0020
+Cannot.find.environment.variable.=No se ha encontrado la variable del entorno:\u0020
+Cannot.find.file.=No se ha encontrado el archivo:\u0020
+Command.option.flag.needs.an.argument.=La opción de comando {0} necesita un argumento.
+Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.=Advertencia: los almacenes de claves en formato PKCS12 no admiten contraseñas de clave y almacenamiento distintas. Se ignorará el valor especificado por el usuario, {0}.
+the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option=Las opciones -keystore o -storetype no se pueden utilizar con la opción -cacerts
+.keystore.must.be.NONE.if.storetype.is.{0}=-keystore debe ser NONE si -storetype es {0}
+Too.many.retries.program.terminated=Ha habido demasiados intentos, se ha cerrado el programa
+.storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}=Los comandos -storepasswd y -keypasswd no están soportados si -storetype es {0}
+.keypasswd.commands.not.supported.if.storetype.is.PKCS12=Los comandos -keypasswd no están soportados si -storetype es PKCS12
+.keypass.and.new.can.not.be.specified.if.storetype.is.{0}=-keypass y -new no se pueden especificar si -storetype es {0}
+if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified=si se especifica -protected, no deben especificarse -storepass, -keypass ni -new
+if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified=Si se especifica -srcprotected, no se puede especificar -srcstorepass ni -srckeypass
+if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified=Si keystore no está protegido por contraseña, no se deben especificar -storepass, -keypass ni -new
+if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified=Si el almacén de claves de origen no está protegido por contraseña, no se deben especificar -srcstorepass ni -srckeypass
+Illegal.startdate.value=Valor de fecha de inicio no permitido
+Validity.must.be.greater.than.zero=La validez debe ser mayor que cero
+provclass.not.a.provider=%s no es un proveedor
+provider.name.not.found=No se ha encontrado el proveedor denominado "%s"
+provider.class.not.found=No se ha encontrado el proveedor "%s"
+Usage.error.no.command.provided=Error de sintaxis: no se ha proporcionado ningún comando
+Source.keystore.file.exists.but.is.empty.=El archivo de almacén de claves de origen existe, pero está vacío:\u0020
+Please.specify.srckeystore=Especifique -srckeystore
+Must.not.specify.both.v.and.rfc.with.list.command=No se deben especificar -v y -rfc simultáneamente con el comando 'list'
+Key.password.must.be.at.least.6.characters=La contraseña de clave debe tener al menos 6 caracteres
+New.password.must.be.at.least.6.characters=La nueva contraseña debe tener al menos 6 caracteres
+Keystore.file.exists.but.is.empty.=El archivo de almacén de claves existe, pero está vacío:\u0020
+Keystore.file.does.not.exist.=El archivo de almacén de claves no existe:\u0020
+Must.specify.destination.alias=Se debe especificar un alias de destino
+Must.specify.alias=Se debe especificar un alias
+Keystore.password.must.be.at.least.6.characters=La contraseña del almacén de claves debe tener al menos 6 caracteres
+Enter.the.password.to.be.stored.=Introduzca la contraseña que se va a almacenar: \u0020
+Enter.keystore.password.=Introduzca la contraseña del almacén de claves: \u0020
+Enter.source.keystore.password.=Introduzca la contraseña de almacén de claves de origen: \u0020
+Enter.destination.keystore.password.=Introduzca la contraseña de almacén de claves de destino: \u0020
+Keystore.password.is.too.short.must.be.at.least.6.characters=La contraseña del almacén de claves es demasiado corta, debe tener al menos 6 caracteres
+Unknown.Entry.Type=Tipo de Entrada Desconocido
+Too.many.failures.Alias.not.changed=Demasiados fallos. No se ha cambiado el alias
+Entry.for.alias.alias.successfully.imported.=La entrada del alias {0} se ha importado correctamente.
+Entry.for.alias.alias.not.imported.=La entrada del alias {0} no se ha importado.
+Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.=Problema al importar la entrada del alias {0}: {1}.\nNo se ha importado la entrada del alias {0}.
+Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled=Comando de importación completado: {0} entradas importadas correctamente, {1} entradas incorrectas o canceladas
+Warning.Overwriting.existing.alias.alias.in.destination.keystore=Advertencia: se sobrescribirá el alias {0} en el almacén de claves de destino
+Existing.entry.alias.alias.exists.overwrite.no.=El alias de entrada existente {0} ya existe, ¿desea sobrescribirlo? [no]: \u0020
+Too.many.failures.try.later=Demasiados fallos; inténtelo más adelante
+Certification.request.stored.in.file.filename.=Solicitud de certificación almacenada en el archivo <{0}>
+Submit.this.to.your.CA=Enviar a la CA
+if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified=si no se especifica el alias, no se debe especificar destalias ni srckeypass
+The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.=El almacén de claves pkcs12 de destino tiene storepass y keypass diferentes. Vuelva a intentarlo con -destkeypass especificado.
+Certificate.stored.in.file.filename.=Certificado almacenado en el archivo <{0}>
+Certificate.reply.was.installed.in.keystore=Se ha instalado la respuesta del certificado en el almacén de claves
+Certificate.reply.was.not.installed.in.keystore=No se ha instalado la respuesta del certificado en el almacén de claves
+Certificate.was.added.to.keystore=Se ha agregado el certificado al almacén de claves
+Certificate.was.not.added.to.keystore=No se ha agregado el certificado al almacén de claves
+.Storing.ksfname.=[Almacenando {0}]
+alias.has.no.public.key.certificate.={0} no tiene clave pública (certificado)
+Cannot.derive.signature.algorithm=No se puede derivar el algoritmo de firma
+Alias.alias.does.not.exist=El alias <{0}> no existe
+Alias.alias.has.no.certificate=El alias <{0}> no tiene certificado
+Key.pair.not.generated.alias.alias.already.exists=No se ha generado el par de claves, el alias <{0}> ya existe
+Generating.keysize.bit.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.validality.days.for=Generando par de claves {1} de {0} bits para certificado autofirmado ({2}) con una validez de {3} días\n\tpara: {4}
+Enter.key.password.for.alias.=Introduzca la contraseña de clave para <{0}>
+.RETURN.if.same.as.keystore.password.=\t(INTRO si es la misma contraseña que la del almacén de claves): \u0020
+Key.password.is.too.short.must.be.at.least.6.characters=La contraseña de clave es demasiado corta; debe tener al menos 6 caracteres
+Too.many.failures.key.not.added.to.keystore=Demasiados fallos; no se ha agregado la clave al almacén de claves
+Destination.alias.dest.already.exists=El alias de destino <{0}> ya existe
+Password.is.too.short.must.be.at.least.6.characters=La contraseña es demasiado corta; debe tener al menos 6 caracteres
+Too.many.failures.Key.entry.not.cloned=Demasiados fallos. No se ha clonado la entrada de clave
+key.password.for.alias.=contraseña de clave para <{0}>
+Keystore.entry.for.id.getName.already.exists=La entrada de almacén de claves para <{0}> ya existe
+Creating.keystore.entry.for.id.getName.=Creando entrada de almacén de claves para <{0}> ...
+No.entries.from.identity.database.added=No se han agregado entradas de la base de datos de identidades
+Alias.name.alias=Nombre de Alias: {0}
+Creation.date.keyStore.getCreationDate.alias.=Fecha de Creación: {0,date}
+alias.keyStore.getCreationDate.alias.={0}, {1,date},\u0020
+alias.={0},\u0020
+Entry.type.type.=Tipo de Entrada: {0}
+Certificate.chain.length.=Longitud de la Cadena de Certificado:\u0020
+Certificate.i.1.=Certificado[{0,number,integer}]:
+Certificate.fingerprint.SHA.256.=Huella de certificado (SHA-256):\u0020
+Keystore.type.=Tipo de Almacén de Claves:\u0020
+Keystore.provider.=Proveedor de Almacén de Claves:\u0020
+Your.keystore.contains.keyStore.size.entry=Su almacén de claves contiene {0,number,integer} entrada
+Your.keystore.contains.keyStore.size.entries=Su almacén de claves contiene {0,number,integer} entradas
+Failed.to.parse.input=Fallo al analizar la entrada
+Empty.input=Entrada vacía
+Not.X.509.certificate=No es un certificado X.509
+alias.has.no.public.key={0} no tiene clave pública
+alias.has.no.X.509.certificate={0} no tiene certificado X.509
+New.certificate.self.signed.=Nuevo Certificado (Autofirmado):
+Reply.has.no.certificates=La respuesta no tiene certificados
+Certificate.not.imported.alias.alias.already.exists=Certificado no importado, el alias <{0}> ya existe
+Input.not.an.X.509.certificate=La entrada no es un certificado X.509
+Certificate.already.exists.in.keystore.under.alias.trustalias.=El certificado ya existe en el almacén de claves con el alias <{0}>
+Do.you.still.want.to.add.it.no.=¿Aún desea agregarlo? [no]: \u0020
+Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.=El certificado ya existe en el almacén de claves de la CA del sistema, con el alias <{0}>
+Do.you.still.want.to.add.it.to.your.own.keystore.no.=¿Aún desea agregarlo a su propio almacén de claves? [no]: \u0020
+Trust.this.certificate.no.=¿Confiar en este certificado? [no]: \u0020
+YES=SÍ
+New.prompt.=Nuevo {0}:\u0020
+Passwords.must.differ=Las contraseñas deben ser distintas
+Re.enter.new.prompt.=Vuelva a escribir el nuevo {0}:\u0020
+Re.enter.password.=Vuelva a introducir la contraseña:\u0020
+Re.enter.new.password.=Volver a escribir la contraseña nueva:\u0020
+They.don.t.match.Try.again=No coinciden. Inténtelo de nuevo
+Enter.prompt.alias.name.=Escriba el nombre de alias de {0}: \u0020
+Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.=Indique el nuevo nombre de alias\t(INTRO para cancelar la importación de esta entrada): \u0020
+Enter.alias.name.=Introduzca el nombre de alias: \u0020
+.RETURN.if.same.as.for.otherAlias.=\t(INTRO si es el mismo que para <{0}>)
+What.is.your.first.and.last.name.=¿Cuáles son su nombre y su apellido?
+What.is.the.name.of.your.organizational.unit.=¿Cuál es el nombre de su unidad de organización?
+What.is.the.name.of.your.organization.=¿Cuál es el nombre de su organización?
+What.is.the.name.of.your.City.or.Locality.=¿Cuál es el nombre de su ciudad o localidad?
+What.is.the.name.of.your.State.or.Province.=¿Cuál es el nombre de su estado o provincia?
+What.is.the.two.letter.country.code.for.this.unit.=¿Cuál es el código de país de dos letras de la unidad?
+Is.name.correct.=¿Es correcto {0}?
+no=no
+yes=sí
+y=s
+.defaultValue.=\u0020 [{0}]: \u0020
+Alias.alias.has.no.key=El alias <{0}> no tiene clave
+Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key=El alias <{0}> hace referencia a un tipo de entrada que no es una clave privada. El comando -keyclone sólo permite la clonación de entradas de claves privadas
+
+.WARNING.WARNING.WARNING.=***************** WARNING WARNING WARNING *****************
+Signer.d.=#%d de Firmante:
+Timestamp.=Registro de Hora:
+Signature.=Firma:
+CRLs.=CRL:
+Certificate.owner.=Propietario del Certificado:\u0020
+Not.a.signed.jar.file=No es un archivo jar firmado
+No.certificate.from.the.SSL.server=Ningún certificado del servidor SSL
+
+.The.integrity.of.the.information.stored.in.your.keystore.=* La integridad de la información almacenada en el almacén de claves *\n* NO se ha comprobado. Para comprobar dicha integridad, *\n* debe proporcionar la contraseña del almacén de claves. *
+.The.integrity.of.the.information.stored.in.the.srckeystore.=* La integridad de la información almacenada en srckeystore*\n* NO se ha comprobado. Para comprobar dicha integridad, *\n* debe proporcionar la contraseña de srckeystore. *
+
+Certificate.reply.does.not.contain.public.key.for.alias.=La respuesta de certificado no contiene una clave pública para <{0}>
+Incomplete.certificate.chain.in.reply=Cadena de certificado incompleta en la respuesta
+Certificate.chain.in.reply.does.not.verify.=La cadena de certificado de la respuesta no verifica:\u0020
+Top.level.certificate.in.reply.=Certificado de nivel superior en la respuesta:\n
+.is.not.trusted.=... no es de confianza.\u0020
+Install.reply.anyway.no.=¿Instalar respuesta de todos modos? [no]: \u0020
+NO=NO
+Public.keys.in.reply.and.keystore.don.t.match=Las claves públicas en la respuesta y en el almacén de claves no coinciden
+Certificate.reply.and.certificate.in.keystore.are.identical=La respuesta del certificado y el certificado en el almacén de claves son idénticos
+Failed.to.establish.chain.from.reply=No se ha podido definir una cadena a partir de la respuesta
+n=n
+Wrong.answer.try.again=Respuesta incorrecta, vuelva a intentarlo
+Secret.key.not.generated.alias.alias.already.exists=No se ha generado la clave secreta, el alias <{0}> ya existe
+Please.provide.keysize.for.secret.key.generation=Proporcione el valor de -keysize para la generación de claves secretas
+
+warning.not.verified.make.sure.keystore.is.correct=ADVERTENCIA: no se ha verificado. Asegúrese de que el valor de -keystore es correcto.
+
+Extensions.=Extensiones:\u0020
+.Empty.value.=(Valor vacío)
+Extension.Request.=Solicitud de Extensión:
+Unknown.keyUsage.type.=Tipo de uso de clave desconocido:\u0020
+Unknown.extendedkeyUsage.type.=Tipo de uso de clave extendida desconocido:\u0020
+Unknown.AccessDescription.type.=Tipo de descripción de acceso desconocido:\u0020
+Unrecognized.GeneralName.type.=Tipo de nombre general no reconocido:\u0020
+This.extension.cannot.be.marked.as.critical.=Esta extensión no se puede marcar como crítica.\u0020
+Odd.number.of.hex.digits.found.=Se ha encontrado un número impar de dígitos hexadecimales:\u0020
+Unknown.extension.type.=Tipo de extensión desconocida:\u0020
+command.{0}.is.ambiguous.=El comando {0} es ambiguo:
+# 8171319: keytool should print out warnings when reading or
+# generating cert/cert req using weak algorithms
+the.certificate.request=La solicitud de certificado
+the.issuer=El emisor
+the.generated.certificate=El certificado generado
+the.generated.crl=La CRL generada
+the.generated.certificate.request=La solicitud de certificado generada
+the.certificate=El certificado
+the.crl=La CRL
+the.tsa.certificate=El certificado de TSA
+the.input=La entrada
+reply=Responder
+one.in.many=%1$s #%2$d de %3$d
+alias.in.cacerts=Emisor <%s> en cacerts
+alias.in.keystore=Emisor <%s>
+with.weak=%s (débil)
+key.bit=Clave %2$s de %1$d bits
+key.bit.weak=Clave %2$s de %1$d bits (débil)
+unknown.size.1=clave %s de tamaño desconocido
+.PATTERN.printX509Cert.with.weak=Propietario: {0}\nEmisor: {1}\nNúmero de serie: {2}\nVálido desde: {3} hasta: {4}\nHuellas digitales del certificado:\n\t SHA1: {5}\n\t SHA256: {6}\nNombre del algoritmo de firma: {7}\nAlgoritmo de clave pública de asunto: {8}\nVersión: {9}
+PKCS.10.with.weak=Solicitud de certificado PKCS #10 (Versión 1.0)\nAsunto: %1$s\nFormato: %2$s\nClave pública: %3$s\nAlgoritmo de firma: %4$s\n
+verified.by.s.in.s.weak=Verificado por %1$s en %2$s con %3$s
+whose.sigalg.risk=%1$s utiliza el algoritmo de firma %2$s, lo que se considera un riesgo de seguridad.
+whose.key.risk=%1$s utiliza %2$s, lo que se considera riesgo de seguridad.
+jks.storetype.warning=El almacén de claves %1$s utiliza un formato propietario. Se recomienda migrar a PKCS12, que es un formato estándar del sector que utiliza "keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12".
+migrate.keystore.warning=Se ha migrado "%1$s" a %4$s. Se ha realizado la copia de seguridad del almacén de claves %2$s como "%3$s".
+backup.keystore.warning=La copia de seguridad del almacén de claves "%1$s" se ha realizado como "%3$s"...
+importing.keystore.status=Importando el almacén de claves de %1$s a %2$s...
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_fr.properties b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_fr.properties
new file mode 100644
index 0000000000000..c1c5f28149e1d
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_fr.properties
@@ -0,0 +1,302 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+NEWLINE=\n
+STAR=*******************************************
+STARNN=*******************************************\n\n
+# keytool: Help part
+.OPTION.=\u0020[OPTION]...
+Options.=Options :
+option.1.set.twice=L'option %s est spécifiée plusieurs fois. Toutes les occurrences seront ignorées, sauf la dernière.
+multiple.commands.1.2=Une seule commande est autorisée : %1$s et %2$s ont été spécifiées.
+Use.keytool.help.for.all.available.commands=Utiliser "keytool -help" pour toutes les commandes disponibles
+Key.and.Certificate.Management.Tool=Outil de gestion de certificats et de clés
+Commands.=Commandes :
+Use.keytool.command.name.help.for.usage.of.command.name=Utilisez "keytool -command_name -help" pour la syntaxe de command_name.\nUtilisez l'option -conf pour indiquer un fichier d'options préconfigurées.
+# keytool: help: commands
+Generates.a.certificate.request=Génère une demande de certificat
+Changes.an.entry.s.alias=Modifie l'alias d'une entrée
+Deletes.an.entry=Supprime une entrée
+Exports.certificate=Exporte le certificat
+Generates.a.key.pair=Génère une paire de clés
+Generates.a.secret.key=Génère une clé secrète
+Generates.certificate.from.a.certificate.request=Génère le certificat à partir d'une demande de certificat
+Generates.CRL=Génère la liste des certificats révoqués (CRL)
+Generated.keyAlgName.secret.key=Clé secrète {0} générée
+Generated.keysize.bit.keyAlgName.secret.key=Clé secrète {0} bits {1} générée
+Imports.entries.from.a.JDK.1.1.x.style.identity.database=Importe les entrées à partir d'une base de données d'identités de type JDK 1.1.x
+Imports.a.certificate.or.a.certificate.chain=Importe un certificat ou une chaîne de certificat
+Imports.a.password=Importe un mot de passe
+Imports.one.or.all.entries.from.another.keystore=Importe une entrée ou la totalité des entrées depuis un autre fichier de clés
+Clones.a.key.entry=Clone une entrée de clé
+Changes.the.key.password.of.an.entry=Modifie le mot de passe de clé d'une entrée
+Lists.entries.in.a.keystore=Répertorie les entrées d'un fichier de clés
+Prints.the.content.of.a.certificate=Imprime le contenu d'un certificat
+Prints.the.content.of.a.certificate.request=Imprime le contenu d'une demande de certificat
+Prints.the.content.of.a.CRL.file=Imprime le contenu d'un fichier de liste des certificats révoqués (CRL)
+Generates.a.self.signed.certificate=Génère un certificat auto-signé
+Changes.the.store.password.of.a.keystore=Modifie le mot de passe de banque d'un fichier de clés
+# keytool: help: options
+alias.name.of.the.entry.to.process=nom d'alias de l'entrée à traiter
+destination.alias=alias de destination
+destination.key.password=mot de passe de la clé de destination
+destination.keystore.name=nom du fichier de clés de destination
+destination.keystore.password.protected=mot de passe du fichier de clés de destination protégé
+destination.keystore.provider.name=nom du fournisseur du fichier de clés de destination
+destination.keystore.password=mot de passe du fichier de clés de destination
+destination.keystore.type=type du fichier de clés de destination
+distinguished.name=nom distinctif
+X.509.extension=extension X.509
+output.file.name=nom du fichier de sortie
+input.file.name=nom du fichier d'entrée
+key.algorithm.name=nom de l'algorithme de clé
+key.password=mot de passe de la clé
+key.bit.size=taille en bits de la clé
+keystore.name=nom du fichier de clés
+access.the.cacerts.keystore=accéder au fichier de clés cacerts
+warning.cacerts.option=Avertissement : utiliser l'option -cacerts pour accéder au fichier de clés cacerts
+new.password=nouveau mot de passe
+do.not.prompt=ne pas inviter
+password.through.protected.mechanism=mot de passe via mécanisme protégé
+# The following 2 values should span 2 lines, the first for the
+# option itself, the second for its -providerArg value.
+addprovider.option=ajouter un fournisseur de sécurité par nom (par ex. SunPKCS11)\nconfigurer l'argument pour -addprovider
+provider.class.option=ajouter un fournisseur de sécurité par nom de classe qualifié complet\nconfigurer l'argument pour -providerclass
+
+provider.name=nom du fournisseur
+provider.classpath=variable d'environnement CLASSPATH du fournisseur
+output.in.RFC.style=sortie au style RFC
+signature.algorithm.name=nom de l'algorithme de signature
+source.alias=alias source
+source.key.password=mot de passe de la clé source
+source.keystore.name=nom du fichier de clés source
+source.keystore.password.protected=mot de passe du fichier de clés source protégé
+source.keystore.provider.name=nom du fournisseur du fichier de clés source
+source.keystore.password=mot de passe du fichier de clés source
+source.keystore.type=type du fichier de clés source
+SSL.server.host.and.port=Port et hôte du serveur SSL
+signed.jar.file=fichier JAR signé
+certificate.validity.start.date.time=date/heure de début de validité du certificat
+keystore.password=mot de passe du fichier de clés
+keystore.type=type du fichier de clés
+trust.certificates.from.cacerts=certificats sécurisés issus de certificats CA
+verbose.output=sortie en mode verbose
+validity.number.of.days=nombre de jours de validité
+Serial.ID.of.cert.to.revoke=ID de série du certificat à révoquer
+# keytool: Running part
+keytool.error.=erreur keytool :\u0020
+Illegal.option.=Option non admise : \u0020
+Illegal.value.=Valeur non admise :\u0020
+Unknown.password.type.=Type de mot de passe inconnu :\u0020
+Cannot.find.environment.variable.=Variable d'environnement introuvable :\u0020
+Cannot.find.file.=Fichier introuvable :\u0020
+Command.option.flag.needs.an.argument.=L''option de commande {0} requiert un argument.
+Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.=Avertissement : les mots de passe de clé et de banque distincts ne sont pas pris en charge pour les fichiers de clés d''accès PKCS12. La valeur {0} spécifiée par l''utilisateur est ignorée.
+the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option=Les options -keystore ou -storetype ne peuvent pas être utilisées avec l'option -cacerts
+.keystore.must.be.NONE.if.storetype.is.{0}=-keystore doit être défini sur NONE si -storetype est {0}
+Too.many.retries.program.terminated=Trop de tentatives, fin du programme
+.storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}=Les commandes -storepasswd et -keypasswd ne sont pas prises en charge si -storetype est défini sur {0}
+.keypasswd.commands.not.supported.if.storetype.is.PKCS12=Les commandes -keypasswd ne sont pas prises en charge si -storetype est défini sur PKCS12
+.keypass.and.new.can.not.be.specified.if.storetype.is.{0}=Les commandes -keypass et -new ne peuvent pas être spécifiées si -storetype est défini sur {0}
+if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified=si -protected est spécifié, -storepass, -keypass et -new ne doivent pas être indiqués
+if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified=Si -srcprotected est indiqué, les commandes -srcstorepass et -srckeypass ne doivent pas être spécifiées
+if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified=Si le fichier de clés n'est pas protégé par un mot de passe, les commandes -storepass, -keypass et -new ne doivent pas être spécifiées
+if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified=Si le fichier de clés source n'est pas protégé par un mot de passe, les commandes -srcstorepass et -srckeypass ne doivent pas être spécifiées
+Illegal.startdate.value=Valeur de date de début non admise
+Validity.must.be.greater.than.zero=La validité doit être supérieure à zéro
+provclass.not.a.provider=%s n'est pas un fournisseur
+provider.name.not.found=Fournisseur nommé "%s" introuvable
+provider.class.not.found=Fournisseur "%s" introuvable
+Usage.error.no.command.provided=Erreur de syntaxe : aucune commande fournie
+Source.keystore.file.exists.but.is.empty.=Le fichier de clés source existe mais il est vide :\u0020
+Please.specify.srckeystore=Indiquez -srckeystore
+Must.not.specify.both.v.and.rfc.with.list.command=-v et -rfc ne doivent pas être spécifiés avec la commande 'list'
+Key.password.must.be.at.least.6.characters=Un mot de passe de clé doit comporter au moins 6 caractères
+New.password.must.be.at.least.6.characters=Le nouveau mot de passe doit comporter au moins 6 caractères
+Keystore.file.exists.but.is.empty.=Fichier de clés existant mais vide :\u0020
+Keystore.file.does.not.exist.=Le fichier de clés n'existe pas :\u0020
+Must.specify.destination.alias=L'alias de destination doit être spécifié
+Must.specify.alias=L'alias doit être spécifié
+Keystore.password.must.be.at.least.6.characters=Un mot de passe de fichier de clés doit comporter au moins 6 caractères
+Enter.the.password.to.be.stored.=Saisissez le mot de passe à stocker : \u0020
+Enter.keystore.password.=Entrez le mot de passe du fichier de clés : \u0020
+Enter.source.keystore.password.=Entrez le mot de passe du fichier de clés source : \u0020
+Enter.destination.keystore.password.=Entrez le mot de passe du fichier de clés de destination : \u0020
+Keystore.password.is.too.short.must.be.at.least.6.characters=Le mot de passe du fichier de clés est trop court : il doit comporter au moins 6 caractères
+Unknown.Entry.Type=Type d'entrée inconnu
+Too.many.failures.Alias.not.changed=Trop d'erreurs. Alias non modifié
+Entry.for.alias.alias.successfully.imported.=L''entrée de l''alias {0} a été importée.
+Entry.for.alias.alias.not.imported.=L''entrée de l''alias {0} n''a pas été importée.
+Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.=Problème lors de l''import de l''entrée de l''alias {0} : {1}.\nL''entrée de l''alias {0} n''a pas été importée.
+Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled=Commande d''import exécutée : {0} entrées importées, échec ou annulation de {1} entrées
+Warning.Overwriting.existing.alias.alias.in.destination.keystore=Avertissement : l''alias {0} existant sera remplacé dans le fichier de clés d''accès de destination
+Existing.entry.alias.alias.exists.overwrite.no.=L''alias d''entrée {0} existe déjà. Voulez-vous le remplacer ? [non] : \u0020
+Too.many.failures.try.later=Trop d'erreurs. Réessayez plus tard
+Certification.request.stored.in.file.filename.=Demande de certification stockée dans le fichier <{0}>
+Submit.this.to.your.CA=Soumettre à votre CA
+if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified=si l'alias n'est pas spécifié, destalias et srckeypass ne doivent pas être spécifiés
+The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.=Le fichier de clés pkcs12 de destination contient un mot de passe de fichier de clés et un mot de passe de clé différents. Réessayez en spécifiant -destkeypass.
+Certificate.stored.in.file.filename.=Certificat stocké dans le fichier <{0}>
+Certificate.reply.was.installed.in.keystore=Réponse de certificat installée dans le fichier de clés
+Certificate.reply.was.not.installed.in.keystore=Réponse de certificat non installée dans le fichier de clés
+Certificate.was.added.to.keystore=Certificat ajouté au fichier de clés
+Certificate.was.not.added.to.keystore=Certificat non ajouté au fichier de clés
+.Storing.ksfname.=[Stockage de {0}]
+alias.has.no.public.key.certificate.={0} ne possède pas de clé publique (certificat)
+Cannot.derive.signature.algorithm=Impossible de déduire l'algorithme de signature
+Alias.alias.does.not.exist=L''alias <{0}> n''existe pas
+Alias.alias.has.no.certificate=L''alias <{0}> ne possède pas de certificat
+Key.pair.not.generated.alias.alias.already.exists=Paire de clés non générée, l''alias <{0}> existe déjà
+Generating.keysize.bit.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.validality.days.for=Génération d''une paire de clés {1} de {0} bits et d''un certificat auto-signé ({2}) d''une validité de {3} jours\n\tpour : {4}
+Enter.key.password.for.alias.=Entrez le mot de passe de la clé pour <{0}>
+.RETURN.if.same.as.keystore.password.=\t(appuyez sur Entrée s'il s'agit du mot de passe du fichier de clés) : \u0020
+Key.password.is.too.short.must.be.at.least.6.characters=Le mot de passe de la clé est trop court : il doit comporter au moins 6 caractères
+Too.many.failures.key.not.added.to.keystore=Trop d'erreurs. Clé non ajoutée au fichier de clés
+Destination.alias.dest.already.exists=L''alias de la destination <{0}> existe déjà
+Password.is.too.short.must.be.at.least.6.characters=Le mot de passe est trop court : il doit comporter au moins 6 caractères
+Too.many.failures.Key.entry.not.cloned=Trop d'erreurs. Entrée de clé non clonée
+key.password.for.alias.=mot de passe de clé pour <{0}>
+Keystore.entry.for.id.getName.already.exists=L''entrée de fichier de clés d''accès pour <{0}> existe déjà
+Creating.keystore.entry.for.id.getName.=Création d''une entrée de fichier de clés d''accès pour <{0}>...
+No.entries.from.identity.database.added=Aucune entrée ajoutée à partir de la base de données d'identités
+Alias.name.alias=Nom d''alias : {0}
+Creation.date.keyStore.getCreationDate.alias.=Date de création : {0,date}
+alias.keyStore.getCreationDate.alias.={0}, {1,date},\u0020
+alias.={0},\u0020
+Entry.type.type.=Type d''entrée : {0}
+Certificate.chain.length.=Longueur de chaîne du certificat :\u0020
+Certificate.i.1.=Certificat[{0,number,integer}]:
+Certificate.fingerprint.SHA.256.=Empreinte du certificat (SHA-256) :\u0020
+Keystore.type.=Type de fichier de clés :\u0020
+Keystore.provider.=Fournisseur de fichier de clés :\u0020
+Your.keystore.contains.keyStore.size.entry=Votre fichier de clés d''accès contient {0,number,integer} entrée
+Your.keystore.contains.keyStore.size.entries=Votre fichier de clés d''accès contient {0,number,integer} entrées
+Failed.to.parse.input=L'analyse de l'entrée a échoué
+Empty.input=Entrée vide
+Not.X.509.certificate=Pas un certificat X.509
+alias.has.no.public.key={0} ne possède pas de clé publique
+alias.has.no.X.509.certificate={0} ne possède pas de certificat X.509
+New.certificate.self.signed.=Nouveau certificat (auto-signé) :
+Reply.has.no.certificates=La réponse n'a pas de certificat
+Certificate.not.imported.alias.alias.already.exists=Certificat non importé, l''alias <{0}> existe déjà
+Input.not.an.X.509.certificate=L'entrée n'est pas un certificat X.509
+Certificate.already.exists.in.keystore.under.alias.trustalias.=Le certificat existe déjà dans le fichier de clés d''accès sous l''alias <{0}>
+Do.you.still.want.to.add.it.no.=Voulez-vous toujours l'ajouter ? [non] : \u0020
+Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.=Le certificat existe déjà dans le fichier de clés d''accès CA système sous l''alias <{0}>
+Do.you.still.want.to.add.it.to.your.own.keystore.no.=Voulez-vous toujours l'ajouter à votre fichier de clés ? [non] : \u0020
+Trust.this.certificate.no.=Faire confiance à ce certificat ? [non] : \u0020
+YES=OUI
+New.prompt.=Nouveau {0} :\u0020
+Passwords.must.differ=Les mots de passe doivent différer
+Re.enter.new.prompt.=Indiquez encore le nouveau {0} :\u0020
+Re.enter.password.=Répétez le mot de passe :\u0020
+Re.enter.new.password.=Ressaisissez le nouveau mot de passe :\u0020
+They.don.t.match.Try.again=Ils sont différents. Réessayez.
+Enter.prompt.alias.name.=Indiquez le nom d''alias {0} : \u0020
+Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.=Saisissez le nom du nouvel alias\t(ou appuyez sur Entrée pour annuler l'import de cette entrée) : \u0020
+Enter.alias.name.=Indiquez le nom d'alias : \u0020
+.RETURN.if.same.as.for.otherAlias.=\t(appuyez sur Entrée si le résultat est identique à <{0}>)
+What.is.your.first.and.last.name.=Quels sont vos nom et prénom ?
+What.is.the.name.of.your.organizational.unit.=Quel est le nom de votre unité organisationnelle ?
+What.is.the.name.of.your.organization.=Quel est le nom de votre entreprise ?
+What.is.the.name.of.your.City.or.Locality.=Quel est le nom de votre ville de résidence ?
+What.is.the.name.of.your.State.or.Province.=Quel est le nom de votre état ou province ?
+What.is.the.two.letter.country.code.for.this.unit.=Quel est le code pays à deux lettres pour cette unité ?
+Is.name.correct.=Est-ce {0} ?
+no=non
+yes=oui
+y=o
+.defaultValue.=\u0020 [{0}]: \u0020
+Alias.alias.has.no.key=L''alias <{0}> n''est associé à aucune clé
+Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key=L''entrée à laquelle l''alias <{0}> fait référence n''est pas une entrée de type clé privée. La commande -keyclone prend uniquement en charge le clonage des clés privées
+
+.WARNING.WARNING.WARNING.=***************** WARNING WARNING WARNING *****************
+Signer.d.=Signataire n°%d :
+Timestamp.=Horodatage :
+Signature.=Signature :
+CRLs.=Listes des certificats révoqués (CRL) :
+Certificate.owner.=Propriétaire du certificat :\u0020
+Not.a.signed.jar.file=Fichier JAR non signé
+No.certificate.from.the.SSL.server=Aucun certificat du serveur SSL
+
+.The.integrity.of.the.information.stored.in.your.keystore.=* L'intégrité des informations stockées dans votre fichier de clés *\n* n'a PAS été vérifiée. Pour cela, *\n* vous devez fournir le mot de passe de votre fichier de clés. *
+.The.integrity.of.the.information.stored.in.the.srckeystore.=* L'intégrité des informations stockées dans le fichier de clés source *\n* n'a PAS été vérifiée. Pour cela, *\n* vous devez fournir le mot de passe de votre fichier de clés source. *
+
+Certificate.reply.does.not.contain.public.key.for.alias.=La réponse au certificat ne contient pas de clé publique pour <{0}>
+Incomplete.certificate.chain.in.reply=Chaîne de certificat incomplète dans la réponse
+Certificate.chain.in.reply.does.not.verify.=La chaîne de certificat de la réponse ne concorde pas :\u0020
+Top.level.certificate.in.reply.=Certificat de niveau supérieur dans la réponse :\n
+.is.not.trusted.=... non sécurisé.\u0020
+Install.reply.anyway.no.=Installer la réponse quand même ? [non] : \u0020
+NO=NON
+Public.keys.in.reply.and.keystore.don.t.match=Les clés publiques de la réponse et du fichier de clés ne concordent pas
+Certificate.reply.and.certificate.in.keystore.are.identical=La réponse au certificat et le certificat du fichier de clés sont identiques
+Failed.to.establish.chain.from.reply=Impossible de créer une chaîne à partir de la réponse
+n=n
+Wrong.answer.try.again=Réponse incorrecte, recommencez
+Secret.key.not.generated.alias.alias.already.exists=Clé secrète non générée, l''alias <{0}> existe déjà
+Please.provide.keysize.for.secret.key.generation=Indiquez -keysize pour la génération de la clé secrète
+
+warning.not.verified.make.sure.keystore.is.correct=AVERTISSEMENT : non vérifié. Assurez-vous que -keystore est correct.
+
+Extensions.=Extensions :\u0020
+.Empty.value.=(Valeur vide)
+Extension.Request.=Demande d'extension :
+Unknown.keyUsage.type.=Type keyUsage inconnu :\u0020
+Unknown.extendedkeyUsage.type.=Type extendedkeyUsage inconnu :\u0020
+Unknown.AccessDescription.type.=Type AccessDescription inconnu :\u0020
+Unrecognized.GeneralName.type.=Type GeneralName non reconnu :\u0020
+This.extension.cannot.be.marked.as.critical.=Cette extension ne peut pas être marquée comme critique.\u0020
+Odd.number.of.hex.digits.found.=Nombre impair de chiffres hexadécimaux trouvé :\u0020
+Unknown.extension.type.=Type d'extension inconnu :\u0020
+command.{0}.is.ambiguous.=commande {0} ambiguë :
+# 8171319: keytool should print out warnings when reading or
+# generating cert/cert req using weak algorithms
+the.certificate.request=Demande de certificat
+the.issuer=Emetteur
+the.generated.certificate=Certificat généré
+the.generated.crl=Liste des certificats révoqués générée
+the.generated.certificate.request=Demande de certificat généré
+the.certificate=Certificat
+the.crl=Liste de certificats révoqués
+the.tsa.certificate=Certificat TSA
+the.input=Entrée
+reply=Répondre
+one.in.many=%1$s #%2$d sur %3$d
+alias.in.cacerts=Emetteur <%s> dans les certificats CA
+alias.in.keystore=Emetteur <%s>
+with.weak=%s (faible)
+key.bit=Clé %2$s %1$d bits
+key.bit.weak=Clé %2$s %1$d bits (faible)
+unknown.size.1=taille de clé %s inconnue
+.PATTERN.printX509Cert.with.weak=Propriétaire : {0}\nEmetteur : {1}\nNuméro de série : {2}\nValide du {3} au {4}\nEmpreintes du certificat :\n\t SHA 1: {5}\n\t SHA 256: {6}\nNom de l''algorithme de signature : {7}\nAlgorithme de clé publique du sujet : {8}\nVersion : {9}
+PKCS.10.with.weak=Demande de certificat PKCS #10 (version 1.0)\nSujet : %1$s\nFormat : %2$s\nClé publique : %3$s\nAlgorithme de signature : %4$s\n
+verified.by.s.in.s.weak=Vérifié par %1$s dans %2$s avec un élément %3$s
+whose.sigalg.risk=%1$s utilise l'algorithme de signature %2$s, qui représente un risque pour la sécurité.
+whose.key.risk=%1$s utilise un élément %2$s, qui représente un risque pour la sécurité.
+jks.storetype.warning=Le fichier de clés %1$s utilise un format propriétaire. Il est recommandé de migrer vers PKCS12, qui est un format standard de l'industrie en utilisant "keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12".
+migrate.keystore.warning=Elément "%1$s" migré vers %4$s. Le fichier de clés %2$s est sauvegardé en tant que "%3$s".
+backup.keystore.warning=Le fichier de clés d'origine "%1$s" est sauvegardé en tant que "%3$s"...
+importing.keystore.status=Import du fichier de clés %1$s vers %2$s...
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_it.properties b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_it.properties
new file mode 100644
index 0000000000000..d2709d5843d0f
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_it.properties
@@ -0,0 +1,302 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+NEWLINE=\n
+STAR=*******************************************
+STARNN=*******************************************\n\n
+# keytool: Help part
+.OPTION.=\u0020[OPTION]...
+Options.=Opzioni:
+option.1.set.twice=L'opzione %s è specificata più volte. Tutte le ricorrenze verranno ignorate tranne l'ultima.
+multiple.commands.1.2=È consentito un solo comando: è stato specificato sia %1$s che %2$s.
+Use.keytool.help.for.all.available.commands=Utilizzare "keytool -help" per visualizzare tutti i comandi disponibili
+Key.and.Certificate.Management.Tool=Strumento di gestione di chiavi e certificati
+Commands.=Comandi:
+Use.keytool.command.name.help.for.usage.of.command.name=Utilizzare "keytool -command_name -help" per informazioni sull'uso di command_name.\nUtilizzare l'opzione -conf per specificare un file di opzioni preconfigurato.
+# keytool: help: commands
+Generates.a.certificate.request=Genera una richiesta di certificato
+Changes.an.entry.s.alias=Modifica l'alias di una voce
+Deletes.an.entry=Elimina una voce
+Exports.certificate=Esporta il certificato
+Generates.a.key.pair=Genera una coppia di chiavi
+Generates.a.secret.key=Genera una chiave segreta
+Generates.certificate.from.a.certificate.request=Genera un certificato da una richiesta di certificato
+Generates.CRL=Genera CRL
+Generated.keyAlgName.secret.key=Generata chiave segreta {0}
+Generated.keysize.bit.keyAlgName.secret.key=Generata chiave segreta {1} a {0} bit
+Imports.entries.from.a.JDK.1.1.x.style.identity.database=Importa le voci da un database delle identità di tipo JDK 1.1.x
+Imports.a.certificate.or.a.certificate.chain=Importa un certificato o una catena di certificati
+Imports.a.password=Importa una password
+Imports.one.or.all.entries.from.another.keystore=Importa una o tutte le voci da un altro keystore
+Clones.a.key.entry=Duplica una voce di chiave
+Changes.the.key.password.of.an.entry=Modifica la password della chiave per una voce
+Lists.entries.in.a.keystore=Elenca le voci in un keystore
+Prints.the.content.of.a.certificate=Visualizza i contenuti di un certificato
+Prints.the.content.of.a.certificate.request=Visualizza i contenuti di una richiesta di certificato
+Prints.the.content.of.a.CRL.file=Visualizza i contenuti di un file CRL
+Generates.a.self.signed.certificate=Genera certificato con firma automatica
+Changes.the.store.password.of.a.keystore=Modifica la password di area di memorizzazione di un keystore
+# keytool: help: options
+alias.name.of.the.entry.to.process=nome alias della voce da elaborare
+destination.alias=alias di destinazione
+destination.key.password=password chiave di destinazione
+destination.keystore.name=nome keystore di destinazione
+destination.keystore.password.protected=password keystore di destinazione protetta
+destination.keystore.provider.name=nome provider keystore di destinazione
+destination.keystore.password=password keystore di destinazione
+destination.keystore.type=tipo keystore di destinazione
+distinguished.name=nome distinto
+X.509.extension=estensione X.509
+output.file.name=nome file di output
+input.file.name=nome file di input
+key.algorithm.name=nome algoritmo chiave
+key.password=password chiave
+key.bit.size=dimensione bit chiave
+keystore.name=nome keystore
+access.the.cacerts.keystore=accedi al keystore cacerts
+warning.cacerts.option=Avvertenza: utilizzare l'opzione -cacerts per accedere al keystore cacerts
+new.password=nuova password
+do.not.prompt=non richiedere
+password.through.protected.mechanism=password mediante meccanismo protetto
+# The following 2 values should span 2 lines, the first for the
+# option itself, the second for its -providerArg value.
+addprovider.option=aggiunge il provider di sicurezza in base al nome (ad esempio SunPKCS11)\nconfigura l'argomento per -addprovider
+provider.class.option=aggiunge il provider di sicurezza in base al nome di classe completamente qualificato\nconfigura l'argomento per -providerclass
+
+provider.name=nome provider
+provider.classpath=classpath provider
+output.in.RFC.style=output in stile RFC
+signature.algorithm.name=nome algoritmo firma
+source.alias=alias origine
+source.key.password=password chiave di origine
+source.keystore.name=nome keystore di origine
+source.keystore.password.protected=password keystore di origine protetta
+source.keystore.provider.name=nome provider keystore di origine
+source.keystore.password=password keystore di origine
+source.keystore.type=tipo keystore di origine
+SSL.server.host.and.port=host e porta server SSL
+signed.jar.file=file jar firmato
+certificate.validity.start.date.time=data/ora di inizio validità certificato
+keystore.password=password keystore
+keystore.type=tipo keystore
+trust.certificates.from.cacerts=considera sicuri i certificati da cacerts
+verbose.output=output descrittivo
+validity.number.of.days=numero di giorni di validità
+Serial.ID.of.cert.to.revoke=ID seriale del certificato da revocare
+# keytool: Running part
+keytool.error.=Errore keytool:\u0020
+Illegal.option.=Opzione non valida: \u0020
+Illegal.value.=Valore non valido:\u0020
+Unknown.password.type.=Tipo di password sconosciuto:\u0020
+Cannot.find.environment.variable.=Impossibile trovare la variabile di ambiente:\u0020
+Cannot.find.file.=Impossibile trovare il file:\u0020
+Command.option.flag.needs.an.argument.=È necessario specificare un argomento per l''opzione di comando {0}.
+Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.=Avvertenza: non sono supportate password diverse di chiave e di archivio per i keystore PKCS12. Il valore {0} specificato dall''utente verrà ignorato.
+the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option=L'opzione -keystore o -storetype non può essere utilizzata con l'opzione -cacerts
+.keystore.must.be.NONE.if.storetype.is.{0}=Se -storetype è impostato su {0}, -keystore deve essere impostato su NONE
+Too.many.retries.program.terminated=Il numero dei tentativi consentiti è stato superato. Il programma verrà terminato.
+.storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}=Se -storetype è impostato su {0}, i comandi -storepasswd e -keypasswd non sono supportati
+.keypasswd.commands.not.supported.if.storetype.is.PKCS12=Se -storetype è impostato su PKCS12 i comandi -keypasswd non vengono supportati
+.keypass.and.new.can.not.be.specified.if.storetype.is.{0}=Se -storetype è impostato su {0}, non è possibile specificare un valore per -keypass e -new
+if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified=Se è specificata l'opzione -protected, le opzioni -storepass, -keypass e -new non possono essere specificate
+if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified=Se viene specificato -srcprotected, -srcstorepass e -srckeypass non dovranno essere specificati
+if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified=Se il file keystore non è protetto da password, non deve essere specificato alcun valore per -storepass, -keypass e -new
+if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified=Se il file keystore non è protetto da password, non deve essere specificato alcun valore per -srcstorepass e -srckeypass
+Illegal.startdate.value=Valore di data di inizio non valido
+Validity.must.be.greater.than.zero=La validità deve essere maggiore di zero
+provclass.not.a.provider=%s non è un provider
+provider.name.not.found=Provider denominato "%s" non trovato
+provider.class.not.found=Provider "%s" non trovato
+Usage.error.no.command.provided=Errore di utilizzo: nessun comando specificato
+Source.keystore.file.exists.but.is.empty.=Il file keystore di origine esiste, ma è vuoto:\u0020
+Please.specify.srckeystore=Specificare -srckeystore
+Must.not.specify.both.v.and.rfc.with.list.command=Impossibile specificare sia -v sia -rfc con il comando 'list'
+Key.password.must.be.at.least.6.characters=La password della chiave deve contenere almeno 6 caratteri
+New.password.must.be.at.least.6.characters=La nuova password deve contenere almeno 6 caratteri
+Keystore.file.exists.but.is.empty.=Il file keystore esiste ma è vuoto:\u0020
+Keystore.file.does.not.exist.=Il file keystore non esiste:\u0020
+Must.specify.destination.alias=È necessario specificare l'alias di destinazione
+Must.specify.alias=È necessario specificare l'alias
+Keystore.password.must.be.at.least.6.characters=La password del keystore deve contenere almeno 6 caratteri
+Enter.the.password.to.be.stored.=Immettere la password da memorizzare: \u0020
+Enter.keystore.password.=Immettere la password del keystore: \u0020
+Enter.source.keystore.password.=Immettere la password del keystore di origine: \u0020
+Enter.destination.keystore.password.=Immettere la password del keystore di destinazione: \u0020
+Keystore.password.is.too.short.must.be.at.least.6.characters=La password del keystore è troppo corta - deve contenere almeno 6 caratteri
+Unknown.Entry.Type=Tipo di voce sconosciuto
+Too.many.failures.Alias.not.changed=Numero eccessivo di errori. L'alias non è stato modificato.
+Entry.for.alias.alias.successfully.imported.=La voce dell''alias {0} è stata importata.
+Entry.for.alias.alias.not.imported.=La voce dell''alias {0} non è stata importata.
+Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.=Si è verificato un problema durante l''importazione della voce dell''alias {0}: {1}.\nLa voce dell''alias {0} non è stata importata.
+Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled=Comando di importazione completato: {0} voce/i importata/e, {1} voce/i non importata/e o annullata/e
+Warning.Overwriting.existing.alias.alias.in.destination.keystore=Avvertenza: sovrascrittura in corso dell''alias {0} nel file keystore di destinazione
+Existing.entry.alias.alias.exists.overwrite.no.=La voce dell''alias {0} esiste già. Sovrascrivere? [no]: \u0020
+Too.many.failures.try.later=Troppi errori - riprovare
+Certification.request.stored.in.file.filename.=La richiesta di certificazione è memorizzata nel file <{0}>
+Submit.this.to.your.CA=Sottomettere alla propria CA
+if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified=Se l'alias non è specificato, destalias e srckeypass non dovranno essere specificati
+The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.=Keystore pkcs12 di destinazione con storepass e keypass differenti. Riprovare con -destkeypass specificato.
+Certificate.stored.in.file.filename.=Il certificato è memorizzato nel file <{0}>
+Certificate.reply.was.installed.in.keystore=La risposta del certificato è stata installata nel keystore
+Certificate.reply.was.not.installed.in.keystore=La risposta del certificato non è stata installata nel keystore
+Certificate.was.added.to.keystore=Il certificato è stato aggiunto al keystore
+Certificate.was.not.added.to.keystore=Il certificato non è stato aggiunto al keystore
+.Storing.ksfname.=[Memorizzazione di {0}] in corso
+alias.has.no.public.key.certificate.={0} non dispone di chiave pubblica (certificato)
+Cannot.derive.signature.algorithm=Impossibile derivare l'algoritmo di firma
+Alias.alias.does.not.exist=L''alias <{0}> non esiste
+Alias.alias.has.no.certificate=L''alias <{0}> non dispone di certificato
+Key.pair.not.generated.alias.alias.already.exists=Non è stata generata la coppia di chiavi, l''alias <{0}> è già esistente
+Generating.keysize.bit.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.validality.days.for=Generazione in corso di una coppia di chiavi {1} da {0} bit e di un certificato autofirmato ({2}) con una validità di {3} giorni\n\tper: {4}
+Enter.key.password.for.alias.=Immettere la password della chiave per <{0}>
+.RETURN.if.same.as.keystore.password.=\t(INVIO se corrisponde alla password del keystore): \u0020
+Key.password.is.too.short.must.be.at.least.6.characters=La password della chiave è troppo corta - deve contenere almeno 6 caratteri
+Too.many.failures.key.not.added.to.keystore=Troppi errori - la chiave non è stata aggiunta al keystore
+Destination.alias.dest.already.exists=L''alias di destinazione <{0}> è già esistente
+Password.is.too.short.must.be.at.least.6.characters=La password è troppo corta - deve contenere almeno 6 caratteri
+Too.many.failures.Key.entry.not.cloned=Numero eccessivo di errori. Il valore della chiave non è stato copiato.
+key.password.for.alias.=password della chiave per <{0}>
+Keystore.entry.for.id.getName.already.exists=La voce del keystore per <{0}> esiste già
+Creating.keystore.entry.for.id.getName.=Creazione della voce del keystore per <{0}> in corso...
+No.entries.from.identity.database.added=Nessuna voce aggiunta dal database delle identità
+Alias.name.alias=Nome alias: {0}
+Creation.date.keyStore.getCreationDate.alias.=Data di creazione: {0,date}
+alias.keyStore.getCreationDate.alias.={0}, {1,date},\u0020
+alias.={0},\u0020
+Entry.type.type.=Tipo di voce: {0}
+Certificate.chain.length.=Lunghezza catena certificati:\u0020
+Certificate.i.1.=Certificato[{0,number,integer}]:
+Certificate.fingerprint.SHA.256.=Copia di certificato (SHA-256):\u0020
+Keystore.type.=Tipo keystore:\u0020
+Keystore.provider.=Provider keystore:\u0020
+Your.keystore.contains.keyStore.size.entry=Il keystore contiene {0,number,integer} voce
+Your.keystore.contains.keyStore.size.entries=Il keystore contiene {0,number,integer} voci
+Failed.to.parse.input=Impossibile analizzare l'input
+Empty.input=Input vuoto
+Not.X.509.certificate=Il certificato non è X.509
+alias.has.no.public.key={0} non dispone di chiave pubblica
+alias.has.no.X.509.certificate={0} non dispone di certificato X.509
+New.certificate.self.signed.=Nuovo certificato (autofirmato):
+Reply.has.no.certificates=La risposta non dispone di certificati
+Certificate.not.imported.alias.alias.already.exists=Impossibile importare il certificato, l''alias <{0}> è già esistente
+Input.not.an.X.509.certificate=L'input non è un certificato X.509
+Certificate.already.exists.in.keystore.under.alias.trustalias.=Il certificato esiste già nel keystore con alias <{0}>
+Do.you.still.want.to.add.it.no.=Aggiungerlo ugualmente? [no]: \u0020
+Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.=Il certificato esiste già nel keystore CA con alias <{0}>
+Do.you.still.want.to.add.it.to.your.own.keystore.no.=Aggiungerlo al proprio keystore? [no]: \u0020
+Trust.this.certificate.no.=Considerare sicuro questo certificato? [no]: \u0020
+YES=Sì
+New.prompt.=Nuova {0}:\u0020
+Passwords.must.differ=Le password non devono coincidere
+Re.enter.new.prompt.=Reimmettere un nuovo valore per {0}:\u0020
+Re.enter.password.=Reimmettere la password:\u0020
+Re.enter.new.password.=Immettere nuovamente la nuova password:\u0020
+They.don.t.match.Try.again=Non corrispondono. Riprovare.
+Enter.prompt.alias.name.=Immettere nome alias {0}: \u0020
+Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.=Immettere un nuovo nome alias\t(premere INVIO per annullare l'importazione della voce): \u0020
+Enter.alias.name.=Immettere nome alias: \u0020
+.RETURN.if.same.as.for.otherAlias.=\t(INVIO se corrisponde al nome di <{0}>)
+What.is.your.first.and.last.name.=Specificare nome e cognome
+What.is.the.name.of.your.organizational.unit.=Specificare il nome dell'unità organizzativa
+What.is.the.name.of.your.organization.=Specificare il nome dell'organizzazione
+What.is.the.name.of.your.City.or.Locality.=Specificare la località
+What.is.the.name.of.your.State.or.Province.=Specificare la provincia
+What.is.the.two.letter.country.code.for.this.unit.=Specificare il codice a due lettere del paese in cui si trova l'unità
+Is.name.correct.=Il dato {0} è corretto?
+no=no
+yes=sì
+y=s
+.defaultValue.=\u0020 [{0}]: \u0020
+Alias.alias.has.no.key=All''alias <{0}> non è associata alcuna chiave
+Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key=L''alias <{0}> fa riferimento a un tipo di voce che non è una voce di chiave privata. Il comando -keyclone supporta solo la copia delle voci di chiave private.
+
+.WARNING.WARNING.WARNING.=***************** WARNING WARNING WARNING *****************
+Signer.d.=Firmatario #%d:
+Timestamp.=Indicatore orario:
+Signature.=Firma:
+CRLs.=CRL:
+Certificate.owner.=Proprietario certificato:\u0020
+Not.a.signed.jar.file=Non è un file jar firmato
+No.certificate.from.the.SSL.server=Nessun certificato dal server SSL
+
+.The.integrity.of.the.information.stored.in.your.keystore.=* L'integrità delle informazioni memorizzate nel keystore *\n* NON è stata verificata. Per verificarne l'integrità *\n* è necessario fornire la password del keystore. *
+.The.integrity.of.the.information.stored.in.the.srckeystore.=* L'integrità delle informazioni memorizzate nel srckeystore *\n* NON è stata verificata. Per verificarne l'integrità *\n* è necessario fornire la password del srckeystore. *
+
+Certificate.reply.does.not.contain.public.key.for.alias.=La risposta del certificato non contiene la chiave pubblica per <{0}>
+Incomplete.certificate.chain.in.reply=Catena dei certificati incompleta nella risposta
+Certificate.chain.in.reply.does.not.verify.=La catena dei certificati nella risposta non verifica:\u0020
+Top.level.certificate.in.reply.=Certificato di primo livello nella risposta:\n
+.is.not.trusted.=...non è considerato sicuro.\u0020
+Install.reply.anyway.no.=Installare la risposta? [no]: \u0020
+NO=NO
+Public.keys.in.reply.and.keystore.don.t.match=Le chiavi pubbliche nella risposta e nel keystore non corrispondono
+Certificate.reply.and.certificate.in.keystore.are.identical=La risposta del certificato e il certificato nel keystore sono identici
+Failed.to.establish.chain.from.reply=Impossibile stabilire la catena dalla risposta
+n=n
+Wrong.answer.try.again=Risposta errata, riprovare
+Secret.key.not.generated.alias.alias.already.exists=La chiave segreta non è stata generata; l''alias <{0}> esiste già
+Please.provide.keysize.for.secret.key.generation=Specificare il valore -keysize per la generazione della chiave segreta
+
+warning.not.verified.make.sure.keystore.is.correct=AVVERTENZA: non verificato. Assicurarsi che -keystore sia corretto.
+
+Extensions.=Estensioni:\u0020
+.Empty.value.=(valore vuoto)
+Extension.Request.=Richiesta di estensione:
+Unknown.keyUsage.type.=Tipo keyUsage sconosciuto:\u0020
+Unknown.extendedkeyUsage.type.=Tipo extendedkeyUsage sconosciuto:\u0020
+Unknown.AccessDescription.type.=Tipo AccessDescription sconosciuto:\u0020
+Unrecognized.GeneralName.type.=Tipo GeneralName non riconosciuto:\u0020
+This.extension.cannot.be.marked.as.critical.=Impossibile contrassegnare questa estensione come critica.\u0020
+Odd.number.of.hex.digits.found.=È stato trovato un numero dispari di cifre esadecimali:\u0020
+Unknown.extension.type.=Tipo di estensione sconosciuto:\u0020
+command.{0}.is.ambiguous.=il comando {0} è ambiguo:
+# 8171319: keytool should print out warnings when reading or
+# generating cert/cert req using weak algorithms
+the.certificate.request=La richiesta di certificato
+the.issuer=L'emittente
+the.generated.certificate=Il certificato generato
+the.generated.crl=La CRL generata
+the.generated.certificate.request=La richiesta di certificato generata
+the.certificate=Il certificato
+the.crl=La CRL
+the.tsa.certificate=Il certificato TSA
+the.input=L'input
+reply=Rispondi
+one.in.many=%1$s #%2$d di %3$d
+alias.in.cacerts=Emittente <%s> in cacerts
+alias.in.keystore=Emittente <%s>
+with.weak=%s (debole)
+key.bit=Chiave %2$s a %1$d bit
+key.bit.weak=Chiave %2$s a %1$d bit (debole)
+unknown.size.1=chiave %s di dimensione sconosciuta
+.PATTERN.printX509Cert.with.weak=Proprietario: {0}\nEmittente: {1}\nNumero di serie: {2}\nValido da: {3} a: {4}\nImpronte digitali certificato:\n\t SHA1: {5}\n\t SHA256: {6}\nNome algoritmo firma: {7}\nAlgoritmo di chiave pubblica oggetto: {8}\nVersione: {9}
+PKCS.10.with.weak=Richiesta di certificato PKCS #10 (versione 1.0)\nOggetto: %1$s\nFormato: %2$s\nChiave pubblica: %3$s\nAlgoritmo firma: %4$s\n
+verified.by.s.in.s.weak=Verificato da %1$s in %2$s con un %3$s
+whose.sigalg.risk=%1$s utilizza l'algoritmo firma %2$s che è considerato un rischio per la sicurezza.
+whose.key.risk=%1$s utilizza un %2$s che è considerato un rischio per la sicurezza.
+jks.storetype.warning=Il keystore %1$s utilizza un formato proprietario. Si consiglia di eseguire la migrazione a PKCS12, un formato standard di settore, utilizzando il comando "keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12".
+migrate.keystore.warning=Migrazione di "%1$s" in %4$s eseguita. Backup del keystore %2$s eseguito con il nome "%3$s".
+backup.keystore.warning=Backup del keystore originale "%1$s" eseguito con il nome "%3$s"...
+importing.keystore.status=Importazione del keystore %1$s in %2$s in corso...
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_ja.properties b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_ja.properties
new file mode 100644
index 0000000000000..416cf51007f3f
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_ja.properties
@@ -0,0 +1,321 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+NEWLINE=\n
+STAR=*******************************************
+STARNN=*******************************************\n\n
+# keytool: Help part
+.OPTION.=\u0020[OPTION]...
+Options.=オプション:
+option.1.set.twice=%sオプションが複数回指定されています。最後のもの以外はすべて無視されます。
+multiple.commands.1.2=1つのコマンドのみ許可されます: %1$sと%2$sの両方が指定されました。
+Use.keytool.help.for.all.available.commands=このヘルプ・メッセージを表示するには"keytool -?、-hまたは--help"を使用します
+Key.and.Certificate.Management.Tool=キーおよび証明書管理ツール
+Commands.=コマンド:
+Use.keytool.command.name.help.for.usage.of.command.name=command_nameの使用方法については、"keytool -command_name --help"を使用します。\n事前構成済のオプション・ファイルを指定するには、-conf オプションを使用します。
+# keytool: help: commands
+Generates.a.certificate.request=証明書リクエストを生成します
+Changes.an.entry.s.alias=エントリの別名を変更します
+Deletes.an.entry=エントリを削除します
+Exports.certificate=証明書をエクスポートします
+Generates.a.key.pair=キー・ペアを生成します
+Generates.a.secret.key=秘密キーを生成します
+Generates.certificate.from.a.certificate.request=証明書リクエストから証明書を生成します
+Generates.CRL=CRLを生成します
+Generated.keyAlgName.secret.key={0}秘密キーを生成しました
+Generated.keysize.bit.keyAlgName.secret.key={0}ビット{1}秘密キーを生成しました
+key.algorithm.weak=%1$sは%2$sアルゴリズムを使用しており、これはセキュリティ・リスクとみなされます。
+key.size.weak=%1$sは%2$sを使用しており、これはセキュリティ・リスクとみなされます。
+Imports.entries.from.a.JDK.1.1.x.style.identity.database=JDK 1.1.x-styleアイデンティティ・データベースからエントリをインポートします
+Imports.a.certificate.or.a.certificate.chain=証明書または証明書チェーンをインポートします
+Imports.a.password=パスワードをインポートします
+Imports.one.or.all.entries.from.another.keystore=別のキーストアから1つまたはすべてのエントリをインポートします
+Clones.a.key.entry=キー・エントリのクローンを作成します
+Changes.the.key.password.of.an.entry=エントリのキー・パスワードを変更します
+Lists.entries.in.a.keystore=キーストア内のエントリをリストします
+Prints.the.content.of.a.certificate=証明書の内容を出力します
+Prints.the.content.of.a.certificate.request=証明書リクエストの内容を出力します
+Prints.the.content.of.a.CRL.file=CRLファイルの内容を出力します
+Generates.a.self.signed.certificate=自己署名型証明書を生成します
+Changes.the.store.password.of.a.keystore=キーストアのストア・パスワードを変更します
+showinfo.command.help=セキュリティ関連情報を表示します
+Prints.the.program.version=プログラム・バージョンを出力します
+# keytool: help: options
+alias.name.of.the.entry.to.process=処理するエントリの別名
+groupname.option.help=グループ名。たとえば、楕円曲線名です。
+destination.alias=出力先の別名
+destination.key.password=出力先キーのパスワード
+destination.keystore.name=出力先キーストア名
+destination.keystore.password.protected=出力先キーストアの保護対象パスワード
+destination.keystore.provider.name=出力先キーストア・プロバイダ名
+destination.keystore.password=出力先キーストアのパスワード
+destination.keystore.type=出力先キーストアのタイプ
+distinguished.name=識別名
+X.509.extension=X.509拡張
+output.file.name=出力ファイル名
+input.file.name=入力ファイル名
+key.algorithm.name=キー・アルゴリズム名
+key.password=キーのパスワード
+key.bit.size=キーのビット・サイズ
+keystore.name=キーストア名
+access.the.cacerts.keystore=cacertsキーストアにアクセスする
+warning.cacerts.option=警告: cacertsキーストアにアクセスするには-cacertsオプションを使用してください
+new.password=新規パスワード
+do.not.prompt=プロンプトを表示しない
+password.through.protected.mechanism=保護メカニズムによるパスワード
+tls.option.help=TLS構成情報を表示します
+# The following 2 values should span 2 lines, the first for the
+# option itself, the second for its -providerArg value.
+addprovider.option=名前でセキュリティ・プロバイダを追加する(SunPKCS11など)\n-addproviderの引数を構成する
+provider.class.option=完全修飾クラス名でセキュリティ・プロバイダを追加する\n-providerclassの引数を構成する
+
+provider.name=プロバイダ名
+provider.classpath=プロバイダ・クラスパス
+output.in.RFC.style=RFCスタイルの出力
+signature.algorithm.name=署名アルゴリズム名
+signer.alias=署名者の別名
+signer.key.password=署名者のキーのパスワード
+source.alias=ソース別名
+source.key.password=ソース・キーのパスワード
+source.keystore.name=ソース・キーストア名
+source.keystore.password.protected=ソース・キーストアの保護対象パスワード
+source.keystore.provider.name=ソース・キーストア・プロバイダ名
+source.keystore.password=ソース・キーストアのパスワード
+source.keystore.type=ソース・キーストアのタイプ
+SSL.server.host.and.port=SSLサーバーのホストとポート
+signed.jar.file=署名付きJARファイル
+certificate.validity.start.date.time=証明書の有効開始日時
+keystore.password=キーストアのパスワード
+keystore.type=キーストアのタイプ
+trust.certificates.from.cacerts=cacertsからの証明書を信頼する
+verbose.output=詳細出力
+validity.number.of.days=妥当性日数
+Serial.ID.of.cert.to.revoke=失効する証明書のシリアルID
+# keytool: Running part
+keytool.error.=keytoolエラー:\u0020
+Illegal.option.=不正なオプション: \u0020
+Illegal.value.=不正な値:\u0020
+Unknown.password.type.=不明なパスワード・タイプ:\u0020
+Cannot.find.environment.variable.=環境変数が見つかりません:\u0020
+Cannot.find.file.=ファイルが見つかりません:\u0020
+Command.option.flag.needs.an.argument.=コマンド・オプション{0}には引数が必要です。
+Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.=警告: PKCS12キーストアでは、ストアのパスワードとキーのパスワードが異なる状況はサポートされません。ユーザーが指定した{0}の値は無視します。
+the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option=-keystoreまたは-storetypeオプションは、-cacertsオプションとともに使用できません
+.keystore.must.be.NONE.if.storetype.is.{0}=-storetypeが{0}の場合、-keystoreはNONEである必要があります
+Too.many.retries.program.terminated=再試行が多すぎます。プログラムが終了しました
+.storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}=-storetypeが{0}の場合、-storepasswdコマンドおよび-keypasswdコマンドはサポートされません
+.keypasswd.commands.not.supported.if.storetype.is.PKCS12=-storetypeがPKCS12の場合、-keypasswdコマンドはサポートされません
+.keypass.and.new.can.not.be.specified.if.storetype.is.{0}=-storetypeが{0}の場合、-keypassと-newは指定できません
+if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified=-protectedが指定されている場合、-storepass、-keypassおよび-newは指定できません
+if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified=-srcprotectedが指定されている場合、-srcstorepassおよび-srckeypassは指定できません
+if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified=キーストアがパスワードで保護されていない場合、-storepass、-keypassおよび-newは指定できません
+if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified=ソース・キーストアがパスワードで保護されていない場合、-srcstorepassおよび-srckeypassは指定できません
+Illegal.startdate.value=startdate値が無効です
+Validity.must.be.greater.than.zero=妥当性はゼロより大きい必要があります
+provclass.not.a.provider=%sはプロバイダではありません
+provider.name.not.found=プロバイダ名"%s"が見つかりません
+provider.class.not.found=プロバイダ"%s"が見つかりません
+Usage.error.no.command.provided=使用エラー: コマンドが指定されていません
+Source.keystore.file.exists.but.is.empty.=ソース・キーストア・ファイルは、存在しますが空です:\u0020
+Please.specify.srckeystore=-srckeystoreを指定してください
+Must.not.specify.both.v.and.rfc.with.list.command='list'コマンドに-vと-rfcの両方を指定することはできません
+Key.password.must.be.at.least.6.characters=キーのパスワードは6文字以上である必要があります
+New.password.must.be.at.least.6.characters=新規パスワードは6文字以上である必要があります
+Keystore.file.exists.but.is.empty.=キーストア・ファイルは存在しますが、空です:\u0020
+Keystore.file.does.not.exist.=キーストア・ファイルは存在しません:\u0020
+Must.specify.destination.alias=出力先の別名を指定する必要があります
+Must.specify.alias=別名を指定する必要があります
+Keystore.password.must.be.at.least.6.characters=キーストアのパスワードは6文字以上である必要があります
+Enter.the.password.to.be.stored.=保存するパスワードを入力してください: \u0020
+Enter.keystore.password.=キーストアのパスワードを入力してください: \u0020
+Enter.source.keystore.password.=ソース・キーストアのパスワードを入力してください: \u0020
+Enter.destination.keystore.password.=出力先キーストアのパスワードを入力してください: \u0020
+Keystore.password.is.too.short.must.be.at.least.6.characters=キーストアのパスワードが短すぎます - 6文字以上にしてください
+Unknown.Entry.Type=不明なエントリ・タイプ
+Entry.for.alias.alias.successfully.imported.=別名{0}のエントリのインポートに成功しました。
+Entry.for.alias.alias.not.imported.=別名{0}のエントリはインポートされませんでした。
+Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.=別名{0}のエントリのインポート中に問題が発生しました: {1}。\n別名{0}のエントリはインポートされませんでした。
+Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled=インポート・コマンドが完了しました: {0}件のエントリのインポートが成功しました。{1}件のエントリのインポートが失敗したか取り消されました
+Warning.Overwriting.existing.alias.alias.in.destination.keystore=警告: 出力先キーストア内の既存の別名{0}を上書きしています
+Existing.entry.alias.alias.exists.overwrite.no.=既存のエントリの別名{0}が存在しています。上書きしますか。[いいえ]: \u0020
+Too.many.failures.try.later=障害が多すぎます - 後で実行してください
+Certification.request.stored.in.file.filename.=認証リクエストがファイル<{0}>に保存されました
+Submit.this.to.your.CA=これをCAに提出してください
+if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified=別名を指定しない場合、出力先キーストアの別名およびソース・キーストアのパスワードは指定できません
+The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.=出力先pkcs12キーストアに、異なるstorepassおよびkeypassがあります。-destkeypassを指定して再試行してください。
+Certificate.stored.in.file.filename.=証明書がファイル<{0}>に保存されました
+Certificate.reply.was.installed.in.keystore=証明書応答がキーストアにインストールされました
+Certificate.reply.was.not.installed.in.keystore=証明書応答がキーストアにインストールされませんでした
+Certificate.was.added.to.keystore=証明書がキーストアに追加されました
+Certificate.was.not.added.to.keystore=証明書がキーストアに追加されませんでした
+.Storing.ksfname.=[{0}を格納中]
+alias.has.no.public.key.certificate.={0}には公開キー(証明書)がありません
+Cannot.derive.signature.algorithm=署名アルゴリズムを取得できません
+Alias.alias.does.not.exist=別名<{0}>は存在しません
+Alias.alias.has.no.certificate=別名<{0}>には証明書がありません
+groupname.keysize.coexist=-groupnameと-keysizeの両方を指定できません
+deprecate.keysize.for.ec=-keysizeの指定によるECキーの生成は非推奨です。かわりに"-groupname %s"を使用してください。
+Key.pair.not.generated.alias.alias.already.exists=キー・ペアは生成されませんでした。別名<{0}>はすでに存在します
+size.bit.alg=%1$dビット%2$s
+Generating.full.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.days.for={0}キー・ペアおよび自己署名証明書({1})を{2}日の有効性で生成しています\n\t対象: {3}
+Generating.full.keyAlgName.key.pair.and.a.certificate.sigAlgName.issued.by.signerAlias.with.a.validity.of.days.for={0}キー・ペアと<{2}>によって発行された証明書({1})を{3}日間の有効性で生成しています\n\t対象: {4}
+Enter.key.password.for.alias.=<{0}>のキー・パスワードを入力してください
+.RETURN.if.same.as.keystore.password.=\t(キーストアのパスワードと同じ場合はRETURNを押してください): \u0020
+Key.password.is.too.short.must.be.at.least.6.characters=キーのパスワードが短すぎます - 6文字以上を指定してください
+Too.many.failures.key.not.added.to.keystore=障害が多すぎます - キーはキーストアに追加されませんでした
+Destination.alias.dest.already.exists=出力先の別名<{0}>はすでに存在します
+Password.is.too.short.must.be.at.least.6.characters=パスワードが短すぎます - 6文字以上を指定してください
+Too.many.failures.Key.entry.not.cloned=障害が多すぎます。キー・エントリのクローンは作成されませんでした
+key.password.for.alias.=<{0}>のキーのパスワード
+No.entries.from.identity.database.added=アイデンティティ・データベースから追加されたエントリはありません
+Alias.name.alias=別名: {0}
+Creation.date.keyStore.getCreationDate.alias.=作成日: {0,date}
+alias.keyStore.getCreationDate.alias.={0},{1,date},\u0020
+alias.={0},\u0020
+Entry.type.type.=エントリ・タイプ: {0}
+Certificate.chain.length.=証明書チェーンの長さ:\u0020
+Certificate.i.1.=証明書[{0,number,integer}]:
+Certificate.fingerprint.SHA.256.=証明書のフィンガプリント(SHA-256):\u0020
+Keystore.type.=キーストアのタイプ:\u0020
+Keystore.provider.=キーストア・プロバイダ:\u0020
+Your.keystore.contains.keyStore.size.entry=キーストアには{0,number,integer}エントリが含まれます
+Your.keystore.contains.keyStore.size.entries=キーストアには{0,number,integer}エントリが含まれます
+Failed.to.parse.input=入力の構文解析に失敗しました
+Empty.input=入力がありません
+Not.X.509.certificate=X.509証明書ではありません
+alias.has.no.public.key={0}には公開キーがありません
+alias.has.no.X.509.certificate={0}にはX.509証明書がありません
+New.certificate.self.signed.=新しい証明書(自己署名型):
+Reply.has.no.certificates=応答には証明書がありません
+Certificate.not.imported.alias.alias.already.exists=証明書はインポートされませんでした。別名<{0}>はすでに存在します
+Input.not.an.X.509.certificate=入力はX.509証明書ではありません
+Certificate.already.exists.in.keystore.under.alias.trustalias.=証明書は、別名<{0}>のキーストアにすでに存在します
+Do.you.still.want.to.add.it.no.=追加しますか。[いいえ]: \u0020
+Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.=証明書は、別名<{0}>のシステム規模のCAキーストア内にすでに存在します
+Do.you.still.want.to.add.it.to.your.own.keystore.no.=キーストアに追加しますか。 [いいえ]: \u0020
+Trust.this.certificate.no.=この証明書を信頼しますか。 [いいえ]: \u0020
+New.prompt.=新規{0}:\u0020
+Passwords.must.differ=パスワードは異なっている必要があります
+Re.enter.new.prompt.=新規{0}を再入力してください:\u0020
+Re.enter.password.=パスワードを再入力してください:\u0020
+Re.enter.new.password.=新規パスワードを再入力してください:\u0020
+They.don.t.match.Try.again=一致しません。もう一度実行してください
+Enter.prompt.alias.name.={0}の別名を入力してください: \u0020
+Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.=新しい別名を入力してください\t(このエントリのインポートを取り消す場合はRETURNを押してください): \u0020
+Enter.alias.name.=別名を入力してください: \u0020
+.RETURN.if.same.as.for.otherAlias.=\t(<{0}>と同じ場合はRETURNを押してください)
+enter.dname.components=識別名を入力します。サブコンポーネントを空のままにする場合はドット(.)を1つ入力し、中カッコ内のデフォルト値を使用する場合は[ENTER]を押します。
+What.is.your.first.and.last.name.=姓名は何ですか。
+What.is.the.name.of.your.organizational.unit.=組織単位名は何ですか。
+What.is.the.name.of.your.organization.=組織名は何ですか。
+What.is.the.name.of.your.City.or.Locality.=都市名または地域名は何ですか。
+What.is.the.name.of.your.State.or.Province.=都道府県名または州名は何ですか。
+What.is.the.two.letter.country.code.for.this.unit.=この単位に該当する2文字の国コードは何ですか。
+no.field.in.dname=少なくとも1つのフィールドを指定する必要があります。再度入力してください。
+Is.name.correct.={0}でよろしいですか。
+no=いいえ
+yes=はい
+y=y
+.defaultValue.=\u0020 [{0}]: \u0020
+Alias.alias.has.no.key=別名<{0}>にはキーがありません
+Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key=別名<{0}>が参照しているエントリ・タイプは秘密キー・エントリではありません。-keycloneコマンドは秘密キー・エントリのクローン作成のみをサポートします
+
+.WARNING.WARNING.WARNING.=***************** WARNING WARNING WARNING *****************
+Signer.d.=署名者番号%d:
+Certificate.d.=証明書#%d:
+Timestamp.=タイムスタンプ:
+Certificate.owner.=証明書の所有者:\u0020
+Not.a.signed.jar.file=署名付きJARファイルではありません
+No.certificate.from.the.SSL.server=SSLサーバーからの証明書がありません
+
+.The.integrity.of.the.information.stored.in.your.keystore.=*キーストアに保存された情報の整合性は*\n*検証されていません。整合性を検証するには*\n*キーストアのパスワードを入力する必要があります。*
+.The.integrity.of.the.information.stored.in.the.srckeystore.=*ソース・キーストアに保存された情報の整合性は*\n*検証されていません。整合性を検証するには*\n*ソース・キーストアのパスワードを入力する必要があります。*
+
+Certificate.reply.does.not.contain.public.key.for.alias.=証明書応答には、<{0}>の公開キーは含まれません
+Incomplete.certificate.chain.in.reply=応答した証明書チェーンは不完全です
+Top.level.certificate.in.reply.=応答したトップレベルの証明書:\n
+.is.not.trusted.=... は信頼されていません。\u0020
+Install.reply.anyway.no.=応答をインストールしますか。[いいえ]: \u0020
+Public.keys.in.reply.and.keystore.don.t.match=応答した公開キーとキーストアが一致しません
+Certificate.reply.and.certificate.in.keystore.are.identical=証明書応答とキーストア内の証明書が同じです
+Failed.to.establish.chain.from.reply=応答から連鎖を確立できませんでした
+n=n
+Wrong.answer.try.again=応答が間違っています。もう一度実行してください
+Secret.key.not.generated.alias.alias.already.exists=秘密キーは生成されませんでした。別名<{0}>はすでに存在します
+Please.provide.keysize.for.secret.key.generation=秘密キーの生成時には -keysizeを指定してください
+
+warning.not.verified.make.sure.keystore.is.correct=警告: 検証されていません。-keystoreが正しいことを確認してください。
+warning.not.verified.make.sure.keystore.is.correct.or.specify.trustcacerts=警告: 検証されていません。-keystoreが正しいことを確認するか、-trustcacertsを指定してください。
+
+Extensions.=拡張:\u0020
+.Empty.value.=(空の値)
+Extension.Request.=拡張リクエスト:
+Unknown.keyUsage.type.=不明なkeyUsageタイプ:\u0020
+Unknown.extendedkeyUsage.type.=不明なextendedkeyUsageタイプ:\u0020
+Unknown.AccessDescription.type.=不明なAccessDescriptionタイプ:\u0020
+Unrecognized.GeneralName.type.=認識されないGeneralNameタイプ:\u0020
+This.extension.cannot.be.marked.as.critical.=この拡張はクリティカルとしてマーク付けできません。\u0020
+Odd.number.of.hex.digits.found.=奇数の16進数が見つかりました:\u0020
+Unknown.extension.type.=不明な拡張タイプ:\u0020
+command.{0}.is.ambiguous.=コマンド{0}はあいまいです:
+# 8171319: keytool should print out warnings when reading or
+# generating cert/cert req using weak algorithms
+the.certificate.request=証明書リクエスト
+the.issuer=発行者
+the.generated.secretkey=生成された秘密キー
+the.generated.certificate=生成された証明書
+the.generated.crl=生成されたCRL
+the.generated.certificate.request=生成された証明書リクエスト
+the.certificate=証明書
+the.crl=CRL
+the.tsa.certificate=TSA証明書
+the.input=入力
+reply=応答
+one.in.many=%1$s #%2$d / %3$d
+one.in.many1=%1$s #%2$d
+one.in.many2=署名者の%1$s #%2$d
+one.in.many3=署名者の%1$s #%2$d #%3$d
+alias.in.cacerts=cacerts内の発行者<%s>
+alias.in.keystore=発行者<%s>
+with.weak=%s (弱)
+with.disabled=%s (無効)
+key.bit=%sキー
+key.bit.weak=%sキー(弱い)
+key.bit.disabled=%sキー(無効)
+.PATTERN.printX509Cert.with.weak=所有者: {0}\n発行者: {1}\nシリアル番号: {2}\n有効期間の開始日: {3}終了日: {4}\n証明書のフィンガプリント:\n\t SHA1: {5}\n\t SHA256: {6}\n署名アルゴリズム名: {7}\nサブジェクト公開キー・アルゴリズム: {8}\nバージョン: {9}
+PKCS.10.with.weak=PKCS #10証明書リクエスト(バージョン1.0)\nサブジェクト: %1$s\nフォーマット: %2$s\n公開キー: %3$s\n署名アルゴリズム: %4$s\n
+verified.by.s.in.s.weak=%2$s内の%1$sにより%3$sで検証されました
+whose.sigalg.disabled=%1$sは%2$s署名アルゴリズムを使用しており、これはセキュリティ・リスクとみなされ、無効化されています。
+whose.sigalg.usagesignedjar=%1$sは%2$s署名アルゴリズムを使用しており、これはセキュリティ・リスクとみなされます。%3$sの後でJARに署名するために使用することはできません。
+Unable.to.parse.denyAfter.string.in.exception.message=例外メッセージのdenyAfter日付文字列を解析できません
+whose.sigalg.weak=%1$sは%2$s署名アルゴリズムを使用しており、これはセキュリティ・リスクとみなされます。
+whose.key.disabled=%1$sは%2$sを使用しており、これはセキュリティ・リスクとみなされ、無効化されています。
+whose.key.weak=%1$sは%2$sを使用しており、これはセキュリティ・リスクとみなされます。今後の更新では無効になります。
+jks.storetype.warning=%1$sキーストアは独自の形式を使用しています。"keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12"を使用する業界標準の形式であるPKCS12に移行することをお薦めします。
+migrate.keystore.warning="%1$s"が%4$sに移行されました。%2$sキーストアは"%3$s"としてバックアップされます。
+backup.keystore.warning=元のキーストア"%1$s"は"%3$s"としてバックアップされます...
+importing.keystore.status=キーストア%1$sを%2$sにインポートしています...
+keyalg.option.missing.error=-keyalgオプションを指定する必要があります。
+showinfo.no.option=-showinfoのオプションがありません。"keytool -showinfo -tls"を試してください。
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_ko.properties b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_ko.properties
new file mode 100644
index 0000000000000..d589382e203b6
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_ko.properties
@@ -0,0 +1,302 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+NEWLINE=\n
+STAR=*******************************************
+STARNN=*******************************************\n\n
+# keytool: Help part
+.OPTION.=\u0020[OPTION]...
+Options.=옵션:
+option.1.set.twice=%s 옵션이 여러 번 지정되었습니다. 마지막 항목을 제외한 모든 항목이 무시됩니다.
+multiple.commands.1.2=명령은 하나만 허용됩니다. %1$s 및 %2$s이(가) 모두 지정되었습니다.
+Use.keytool.help.for.all.available.commands=사용 가능한 모든 명령에 "keytool -help" 사용
+Key.and.Certificate.Management.Tool=키 및 인증서 관리 툴
+Commands.=명령:
+Use.keytool.command.name.help.for.usage.of.command.name=command_name 사용법에 "keytool -command_name -help"를 사용합니다.\n-conf 옵션을 사용하여 사전 구성된 옵션 파일을 지정합니다.
+# keytool: help: commands
+Generates.a.certificate.request=인증서 요청을 생성합니다.
+Changes.an.entry.s.alias=항목의 별칭을 변경합니다.
+Deletes.an.entry=항목을 삭제합니다.
+Exports.certificate=인증서를 익스포트합니다.
+Generates.a.key.pair=키 쌍을 생성합니다.
+Generates.a.secret.key=보안 키를 생성합니다.
+Generates.certificate.from.a.certificate.request=인증서 요청에서 인증서를 생성합니다.
+Generates.CRL=CRL을 생성합니다.
+Generated.keyAlgName.secret.key={0} 보안 키를 생성합니다.
+Generated.keysize.bit.keyAlgName.secret.key={0}비트 {1} 보안 키를 생성합니다.
+Imports.entries.from.a.JDK.1.1.x.style.identity.database=JDK 1.1.x 스타일 ID 데이터베이스에서 항목을 임포트합니다.
+Imports.a.certificate.or.a.certificate.chain=인증서 또는 인증서 체인을 임포트합니다.
+Imports.a.password=비밀번호를 임포트합니다.
+Imports.one.or.all.entries.from.another.keystore=다른 키 저장소에서 하나 또는 모든 항목을 임포트합니다.
+Clones.a.key.entry=키 항목을 복제합니다.
+Changes.the.key.password.of.an.entry=항목의 키 비밀번호를 변경합니다.
+Lists.entries.in.a.keystore=키 저장소의 항목을 나열합니다.
+Prints.the.content.of.a.certificate=인증서의 콘텐츠를 인쇄합니다.
+Prints.the.content.of.a.certificate.request=인증서 요청의 콘텐츠를 인쇄합니다.
+Prints.the.content.of.a.CRL.file=CRL 파일의 콘텐츠를 인쇄합니다.
+Generates.a.self.signed.certificate=자체 서명된 인증서를 생성합니다.
+Changes.the.store.password.of.a.keystore=키 저장소의 저장소 비밀번호를 변경합니다.
+# keytool: help: options
+alias.name.of.the.entry.to.process=처리할 항목의 별칭 이름
+destination.alias=대상 별칭
+destination.key.password=대상 키 비밀번호
+destination.keystore.name=대상 키 저장소 이름
+destination.keystore.password.protected=대상 키 저장소 비밀번호로 보호됨
+destination.keystore.provider.name=대상 키 저장소 제공자 이름
+destination.keystore.password=대상 키 저장소 비밀번호
+destination.keystore.type=대상 키 저장소 유형
+distinguished.name=식별 이름
+X.509.extension=X.509 확장
+output.file.name=출력 파일 이름
+input.file.name=입력 파일 이름
+key.algorithm.name=키 알고리즘 이름
+key.password=키 비밀번호
+key.bit.size=키 비트 크기
+keystore.name=키 저장소 이름
+access.the.cacerts.keystore=cacerts 키 저장소 액세스
+warning.cacerts.option=경고: -cacerts 옵션을 사용하여 cacerts 키 저장소에 액세스하십시오.
+new.password=새 비밀번호
+do.not.prompt=확인하지 않음
+password.through.protected.mechanism=보호되는 메커니즘을 통한 비밀번호
+# The following 2 values should span 2 lines, the first for the
+# option itself, the second for its -providerArg value.
+addprovider.option=이름별 보안 제공자 추가(예: SunPKCS11)\n-addprovider에 대한 인수 구성
+provider.class.option=전체 클래스 이름별 보안 제공자 추가\n-providerclass에 대한 인수 구성
+
+provider.name=제공자 이름
+provider.classpath=제공자 클래스 경로
+output.in.RFC.style=RFC 스타일의 출력
+signature.algorithm.name=서명 알고리즘 이름
+source.alias=소스 별칭
+source.key.password=소스 키 비밀번호
+source.keystore.name=소스 키 저장소 이름
+source.keystore.password.protected=소스 키 저장소 비밀번호로 보호됨
+source.keystore.provider.name=소스 키 저장소 제공자 이름
+source.keystore.password=소스 키 저장소 비밀번호
+source.keystore.type=소스 키 저장소 유형
+SSL.server.host.and.port=SSL 서버 호스트 및 포트
+signed.jar.file=서명된 jar 파일
+certificate.validity.start.date.time=인증서 유효 기간 시작 날짜/시간
+keystore.password=키 저장소 비밀번호
+keystore.type=키 저장소 유형
+trust.certificates.from.cacerts=cacerts의 보안 인증서
+verbose.output=상세 정보 출력
+validity.number.of.days=유효 기간 일 수
+Serial.ID.of.cert.to.revoke=철회할 인증서의 일련 ID
+# keytool: Running part
+keytool.error.=keytool 오류:\u0020
+Illegal.option.=잘못된 옵션: \u0020
+Illegal.value.=잘못된 값:\u0020
+Unknown.password.type.=알 수 없는 비밀번호 유형:\u0020
+Cannot.find.environment.variable.=환경 변수를 찾을 수 없음:\u0020
+Cannot.find.file.=파일을 찾을 수 없음:\u0020
+Command.option.flag.needs.an.argument.=명령 옵션 {0}에 인수가 필요합니다.
+Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.=경고: 다른 저장소 및 키 비밀번호는 PKCS12 KeyStores에 대해 지원되지 않습니다. 사용자가 지정한 {0} 값을 무시하는 중입니다.
+the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option=-keystore 또는 -storetype 옵션은 -cacerts 옵션과 함께 사용할 수 없습니다.
+.keystore.must.be.NONE.if.storetype.is.{0}=-storetype이 {0}인 경우 -keystore는 NONE이어야 합니다.
+Too.many.retries.program.terminated=재시도 횟수가 너무 많아 프로그램이 종료되었습니다.
+.storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}=-storetype이 {0}인 경우 -storepasswd 및 -keypasswd 명령이 지원되지 않습니다.
+.keypasswd.commands.not.supported.if.storetype.is.PKCS12=-storetype이 PKCS12인 경우 -keypasswd 명령이 지원되지 않습니다.
+.keypass.and.new.can.not.be.specified.if.storetype.is.{0}=-storetype이 {0}인 경우 -keypass 및 -new를 지정할 수 없습니다.
+if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified=-protected를 지정한 경우 -storepass, -keypass 및 -new를 지정하지 않아야 합니다.
+if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified=-srcprotected를 지정한 경우 -srcstorepass 및 -srckeypass를 지정하지 않아야 합니다.
+if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified=키 저장소가 비밀번호로 보호되지 않는 경우 -storepass, -keypass 및 -new를 지정하지 않아야 합니다.
+if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified=소스 키 저장소가 비밀번호로 보호되지 않는 경우 -srcstorepass 및 -srckeypass를 지정하지 않아야 합니다.
+Illegal.startdate.value=startdate 값이 잘못되었습니다.
+Validity.must.be.greater.than.zero=유효 기간은 0보다 커야 합니다.
+provclass.not.a.provider=%s은(는) 제공자가 아닙니다.
+provider.name.not.found="%s" 이름의 제공자를 찾을 수 없습니다.
+provider.class.not.found="%s" 제공자를 찾을 수 없습니다.
+Usage.error.no.command.provided=사용법 오류: 명령을 입력하지 않았습니다.
+Source.keystore.file.exists.but.is.empty.=소스 키 저장소 파일이 존재하지만 비어 있음:\u0020
+Please.specify.srckeystore=-srckeystore를 지정하십시오.
+Must.not.specify.both.v.and.rfc.with.list.command='list' 명령에 -v와 -rfc를 함께 지정하지 않아야 합니다.
+Key.password.must.be.at.least.6.characters=키 비밀번호는 6자 이상이어야 합니다.
+New.password.must.be.at.least.6.characters=새 비밀번호는 6자 이상이어야 합니다.
+Keystore.file.exists.but.is.empty.=키 저장소 파일이 존재하지만 비어 있음:\u0020
+Keystore.file.does.not.exist.=키 저장소 파일이 존재하지 않음:\u0020
+Must.specify.destination.alias=대상 별칭을 지정해야 합니다.
+Must.specify.alias=별칭을 지정해야 합니다.
+Keystore.password.must.be.at.least.6.characters=키 저장소 비밀번호는 6자 이상이어야 합니다.
+Enter.the.password.to.be.stored.=저장할 비밀번호 입력: \u0020
+Enter.keystore.password.=키 저장소 비밀번호 입력: \u0020
+Enter.source.keystore.password.=소스 키 저장소 비밀번호 입력: \u0020
+Enter.destination.keystore.password.=대상 키 저장소 비밀번호 입력: \u0020
+Keystore.password.is.too.short.must.be.at.least.6.characters=키 저장소 비밀번호가 너무 짧음 - 6자 이상이어야 합니다.
+Unknown.Entry.Type=알 수 없는 항목 유형
+Too.many.failures.Alias.not.changed=오류가 너무 많습니다. 별칭이 변경되지 않았습니다.
+Entry.for.alias.alias.successfully.imported.={0} 별칭에 대한 항목이 성공적으로 임포트되었습니다.
+Entry.for.alias.alias.not.imported.={0} 별칭에 대한 항목이 임포트되지 않았습니다.
+Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.={0} 별칭에 대한 항목을 임포트하는 중 문제 발생: {1}.\n{0} 별칭에 대한 항목이 임포트되지 않았습니다.
+Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled=임포트 명령 완료: 성공적으로 임포트된 항목은 {0}개, 실패하거나 취소된 항목은 {1}개입니다.
+Warning.Overwriting.existing.alias.alias.in.destination.keystore=경고: 대상 키 저장소에서 기존 별칭 {0}을(를) 겹쳐 쓰는 중
+Existing.entry.alias.alias.exists.overwrite.no.=기존 항목 별칭 {0}이(가) 존재합니다. 겹쳐 쓰겠습니까? [아니오]: \u0020
+Too.many.failures.try.later=오류가 너무 많음 - 나중에 시도하십시오.
+Certification.request.stored.in.file.filename.=인증 요청이 <{0}> 파일에 저장되었습니다.
+Submit.this.to.your.CA=CA에게 제출하십시오.
+if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified=별칭을 지정하지 않은 경우 destalias 및 srckeypass를 지정하지 않아야 합니다.
+The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.=대상 pkcs12 키 저장소에 다른 storepass 및 keypass가 있습니다. 지정된 -destkeypass로 재시도하십시오.
+Certificate.stored.in.file.filename.=인증서가 <{0}> 파일에 저장되었습니다.
+Certificate.reply.was.installed.in.keystore=인증서 회신이 키 저장소에 설치되었습니다.
+Certificate.reply.was.not.installed.in.keystore=인증서 회신이 키 저장소에 설치되지 않았습니다.
+Certificate.was.added.to.keystore=인증서가 키 저장소에 추가되었습니다.
+Certificate.was.not.added.to.keystore=인증서가 키 저장소에 추가되지 않았습니다.
+.Storing.ksfname.=[{0}을(를) 저장하는 중]
+alias.has.no.public.key.certificate.={0}에 공용 키(인증서)가 없습니다.
+Cannot.derive.signature.algorithm=서명 알고리즘을 파생할 수 없습니다.
+Alias.alias.does.not.exist=<{0}> 별칭이 존재하지 않습니다.
+Alias.alias.has.no.certificate=<{0}> 별칭에 인증서가 없습니다.
+Key.pair.not.generated.alias.alias.already.exists=키 쌍이 생성되지 않았으며 <{0}> 별칭이 존재합니다.
+Generating.keysize.bit.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.validality.days.for=다음에 대해 유효 기간이 {3}일인 {0}비트 {1} 키 쌍 및 자체 서명된 인증서({2})를 생성하는 중\n\t: {4}
+Enter.key.password.for.alias.=<{0}>에 대한 키 비밀번호를 입력하십시오.
+.RETURN.if.same.as.keystore.password.=\t(키 저장소 비밀번호와 동일한 경우 Enter 키를 누름): \u0020
+Key.password.is.too.short.must.be.at.least.6.characters=키 비밀번호가 너무 짧음 - 6자 이상이어야 합니다.
+Too.many.failures.key.not.added.to.keystore=오류가 너무 많음 - 키 저장소에 키가 추가되지 않았습니다.
+Destination.alias.dest.already.exists=대상 별칭 <{0}>이(가) 존재합니다.
+Password.is.too.short.must.be.at.least.6.characters=비밀번호가 너무 짧음 - 6자 이상이어야 합니다.
+Too.many.failures.Key.entry.not.cloned=오류가 너무 많습니다. 키 항목이 복제되지 않았습니다.
+key.password.for.alias.=<{0}>에 대한 키 비밀번호
+Keystore.entry.for.id.getName.already.exists=<{0}>에 대한 키 저장소 항목이 존재합니다.
+Creating.keystore.entry.for.id.getName.=<{0}>에 대한 키 저장소 항목을 생성하는 중...
+No.entries.from.identity.database.added=ID 데이터베이스에서 추가된 항목이 없습니다.
+Alias.name.alias=별칭 이름: {0}
+Creation.date.keyStore.getCreationDate.alias.=생성 날짜: {0,date}
+alias.keyStore.getCreationDate.alias.={0}, {1,date},\u0020
+alias.={0},\u0020
+Entry.type.type.=항목 유형: {0}
+Certificate.chain.length.=인증서 체인 길이:\u0020
+Certificate.i.1.=인증서[{0,number,integer}]:
+Certificate.fingerprint.SHA.256.=인증서 지문(SHA-256):\u0020
+Keystore.type.=키 저장소 유형:\u0020
+Keystore.provider.=키 저장소 제공자:\u0020
+Your.keystore.contains.keyStore.size.entry=키 저장소에 {0,number,integer}개의 항목이 포함되어 있습니다.
+Your.keystore.contains.keyStore.size.entries=키 저장소에 {0,number,integer}개의 항목이 포함되어 있습니다.
+Failed.to.parse.input=입력값의 구문 분석을 실패했습니다.
+Empty.input=입력값이 비어 있습니다.
+Not.X.509.certificate=X.509 인증서가 아닙니다.
+alias.has.no.public.key={0}에 공용 키가 없습니다.
+alias.has.no.X.509.certificate={0}에 X.509 인증서가 없습니다.
+New.certificate.self.signed.=새 인증서(자체 서명):
+Reply.has.no.certificates=회신에 인증서가 없습니다.
+Certificate.not.imported.alias.alias.already.exists=인증서가 임포트되지 않았으며 <{0}> 별칭이 존재합니다.
+Input.not.an.X.509.certificate=입력이 X.509 인증서가 아닙니다.
+Certificate.already.exists.in.keystore.under.alias.trustalias.=인증서가 <{0}> 별칭 아래의 키 저장소에 존재합니다.
+Do.you.still.want.to.add.it.no.=추가하겠습니까? [아니오]: \u0020
+Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.=인증서가 <{0}> 별칭 아래에 있는 시스템 차원의 CA 키 저장소에 존재합니다.
+Do.you.still.want.to.add.it.to.your.own.keystore.no.=고유한 키 저장소에 추가하겠습니까? [아니오]: \u0020
+Trust.this.certificate.no.=이 인증서를 신뢰합니까? [아니오]: \u0020
+YES=예
+New.prompt.=새 {0}:\u0020
+Passwords.must.differ=비밀번호는 달라야 합니다.
+Re.enter.new.prompt.=새 {0} 다시 입력:\u0020
+Re.enter.password.=비밀번호 다시 입력:\u0020
+Re.enter.new.password.=새 비밀번호 다시 입력:\u0020
+They.don.t.match.Try.again=일치하지 않습니다. 다시 시도하십시오.
+Enter.prompt.alias.name.={0} 별칭 이름 입력: \u0020
+Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.=새 별칭 이름 입력\t(이 항목에 대한 임포트를 취소하려면 Enter 키를 누름): \u0020
+Enter.alias.name.=별칭 이름 입력: \u0020
+.RETURN.if.same.as.for.otherAlias.=\t(<{0}>과(와) 동일한 경우 Enter 키를 누름)
+What.is.your.first.and.last.name.=이름과 성을 입력하십시오.
+What.is.the.name.of.your.organizational.unit.=조직 단위 이름을 입력하십시오.
+What.is.the.name.of.your.organization.=조직 이름을 입력하십시오.
+What.is.the.name.of.your.City.or.Locality.=구/군/시 이름을 입력하십시오?
+What.is.the.name.of.your.State.or.Province.=시/도 이름을 입력하십시오.
+What.is.the.two.letter.country.code.for.this.unit.=이 조직의 두 자리 국가 코드를 입력하십시오.
+Is.name.correct.={0}이(가) 맞습니까?
+no=아니오
+yes=예
+y=y
+.defaultValue.=\u0020 [{0}]: \u0020
+Alias.alias.has.no.key=<{0}> 별칭에 키가 없습니다.
+Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key=<{0}> 별칭은 전용 키 항목이 아닌 항목 유형을 참조합니다. -keyclone 명령은 전용 키 항목의 복제만 지원합니다.
+
+.WARNING.WARNING.WARNING.=***************** WARNING WARNING WARNING *****************
+Signer.d.=서명자 #%d:
+Timestamp.=시간 기록:
+Signature.=서명:
+CRLs.=CRL:
+Certificate.owner.=인증서 소유자:\u0020
+Not.a.signed.jar.file=서명된 jar 파일이 아닙니다.
+No.certificate.from.the.SSL.server=SSL 서버에서 가져온 인증서가 없습니다.
+
+.The.integrity.of.the.information.stored.in.your.keystore.=* 키 저장소에 저장된 정보의 무결성이 *\n* 확인되지 않았습니다! 무결성을 확인하려면, *\n* 키 저장소 비밀번호를 제공해야 합니다. *
+.The.integrity.of.the.information.stored.in.the.srckeystore.=* srckeystore에 저장된 정보의 무결성이 *\n* 확인되지 않았습니다! 무결성을 확인하려면, *\n* srckeystore 비밀번호를 제공해야 합니다. *
+
+Certificate.reply.does.not.contain.public.key.for.alias.=인증서 회신에 <{0}>에 대한 공용 키가 포함되어 있지 않습니다.
+Incomplete.certificate.chain.in.reply=회신에 불완전한 인증서 체인이 있습니다.
+Certificate.chain.in.reply.does.not.verify.=회신의 인증서 체인이 확인되지 않음:\u0020
+Top.level.certificate.in.reply.=회신에 최상위 레벨 인증서가 있음:\n
+.is.not.trusted.=...을(를) 신뢰할 수 없습니다.\u0020
+Install.reply.anyway.no.=회신을 설치하겠습니까? [아니오]: \u0020
+NO=아니오
+Public.keys.in.reply.and.keystore.don.t.match=회신과 키 저장소의 공용 키가 일치하지 않습니다.
+Certificate.reply.and.certificate.in.keystore.are.identical=회신과 키 저장소의 인증서가 동일합니다.
+Failed.to.establish.chain.from.reply=회신의 체인 설정을 실패했습니다.
+n=n
+Wrong.answer.try.again=잘못된 응답입니다. 다시 시도하십시오.
+Secret.key.not.generated.alias.alias.already.exists=보안 키가 생성되지 않았으며 <{0}> 별칭이 존재합니다.
+Please.provide.keysize.for.secret.key.generation=보안 키를 생성하려면 -keysize를 제공하십시오.
+
+warning.not.verified.make.sure.keystore.is.correct=경고: 확인되지 않음. -keystore가 올바른지 확인하십시오.
+
+Extensions.=확장:\u0020
+.Empty.value.=(비어 있는 값)
+Extension.Request.=확장 요청:
+Unknown.keyUsage.type.=알 수 없는 keyUsage 유형:\u0020
+Unknown.extendedkeyUsage.type.=알 수 없는 extendedkeyUsage 유형:\u0020
+Unknown.AccessDescription.type.=알 수 없는 AccessDescription 유형:\u0020
+Unrecognized.GeneralName.type.=알 수 없는 GeneralName 유형:\u0020
+This.extension.cannot.be.marked.as.critical.=이 확장은 중요한 것으로 표시할 수 없습니다.\u0020
+Odd.number.of.hex.digits.found.=홀수 개의 16진수가 발견됨:\u0020
+Unknown.extension.type.=알 수 없는 확장 유형:\u0020
+command.{0}.is.ambiguous.={0} 명령이 모호함:
+# 8171319: keytool should print out warnings when reading or
+# generating cert/cert req using weak algorithms
+the.certificate.request=인증서 요청
+the.issuer=발행자
+the.generated.certificate=생성된 인증서
+the.generated.crl=생성된 CRL
+the.generated.certificate.request=생성된 인증서 요청
+the.certificate=인증서
+the.crl=CRL
+the.tsa.certificate=TSA 인증서
+the.input=입력
+reply=회신
+one.in.many=%1$s #%2$d/%3$d
+alias.in.cacerts=cacerts의 <%s> 발행자
+alias.in.keystore=<%s> 발행자
+with.weak=%s(약함)
+key.bit=%1$d비트 %2$s 키
+key.bit.weak=%1$d비트 %2$s 키(약함)
+unknown.size.1=알 수 없는 크기 %s 키
+.PATTERN.printX509Cert.with.weak=소유자: {0}\n발행자: {1}\n일련 번호: {2}\n적합한 시작 날짜: {3} 종료 날짜: {4}\n인증서 지문:\n\t SHA1: {5}\n\t SHA256: {6}\n서명 알고리즘 이름: {7}\n주체 공용 키 알고리즘: {8}\n버전: {9}
+PKCS.10.with.weak=PKCS #10 인증서 요청(1.0 버전)\n제목: %1$s\n형식: %2$s\n공용 키: %3$s\n서명 알고리즘: %4$s\n
+verified.by.s.in.s.weak=%3$s을(를) 포함하는 %2$s의 %1$s에 의해 확인됨
+whose.sigalg.risk=%1$s이(가) 보안 위험으로 간주되는 %2$s 서명 알고리즘을 사용합니다.
+whose.key.risk=%1$s이(가) 보안 위험으로 간주되는 %2$s을(를) 사용합니다.
+jks.storetype.warning=%1$s 키 저장소는 고유 형식을 사용합니다. "keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12"를 사용하는 산업 표준 형식인 PKCS12로 이전하는 것이 좋습니다.
+migrate.keystore.warning="%1$s"을(를) %4$s(으)로 이전했습니다. %2$s 키 저장소가 "%3$s"(으)로 백업되었습니다.
+backup.keystore.warning=원본 키 저장소 "%1$s"이(가) "%3$s"(으)로 백업되었습니다.
+importing.keystore.status=키 저장소 %1$s을(를) %2$s(으)로 임포트하는 중...
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_pt_BR.properties b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_pt_BR.properties
new file mode 100644
index 0000000000000..2ae254a368fda
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_pt_BR.properties
@@ -0,0 +1,302 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+NEWLINE=\n
+STAR=*******************************************
+STARNN=*******************************************\n\n
+# keytool: Help part
+.OPTION.=\u0020[OPTION]...
+Options.=Opções:
+option.1.set.twice=A opção %s foi especificada várias vezes. Todas, exceto a última, serão ignoradas.
+multiple.commands.1.2=Somente um comando é permitido: tanto %1$s quanto %2$s foram especificados.
+Use.keytool.help.for.all.available.commands=Use "keytool -help" para todos os comandos disponíveis
+Key.and.Certificate.Management.Tool=Ferramenta de Gerenciamento de Chave e Certificado
+Commands.=Comandos:
+Use.keytool.command.name.help.for.usage.of.command.name=Utilize "keytool -command_name -help" para uso de command_name.\nUtilize a opção -conf para especificar um arquivo de opções pré-configurado.
+# keytool: help: commands
+Generates.a.certificate.request=Gera uma solicitação de certificado
+Changes.an.entry.s.alias=Altera um alias de entrada
+Deletes.an.entry=Exclui uma entrada
+Exports.certificate=Exporta o certificado
+Generates.a.key.pair=Gera um par de chaves
+Generates.a.secret.key=Gera uma chave secreta
+Generates.certificate.from.a.certificate.request=Gera um certificado de uma solicitação de certificado
+Generates.CRL=Gera CRL
+Generated.keyAlgName.secret.key=Chave secreta {0} gerada
+Generated.keysize.bit.keyAlgName.secret.key=Chave secreta {1} de {0} bits gerada
+Imports.entries.from.a.JDK.1.1.x.style.identity.database=Importa entradas de um banco de dados de identidade JDK 1.1.x-style
+Imports.a.certificate.or.a.certificate.chain=Importa um certificado ou uma cadeia de certificados
+Imports.a.password=Importa uma senha
+Imports.one.or.all.entries.from.another.keystore=Importa uma ou todas as entradas de outra área de armazenamento de chaves
+Clones.a.key.entry=Clona uma entrada de chave
+Changes.the.key.password.of.an.entry=Altera a senha da chave de uma entrada
+Lists.entries.in.a.keystore=Lista entradas em uma área de armazenamento de chaves
+Prints.the.content.of.a.certificate=Imprime o conteúdo de um certificado
+Prints.the.content.of.a.certificate.request=Imprime o conteúdo de uma solicitação de certificado
+Prints.the.content.of.a.CRL.file=Imprime o conteúdo de um arquivo CRL
+Generates.a.self.signed.certificate=Gera um certificado autoassinado
+Changes.the.store.password.of.a.keystore=Altera a senha de armazenamento de uma área de armazenamento de chaves
+# keytool: help: options
+alias.name.of.the.entry.to.process=nome do alias da entrada a ser processada
+destination.alias=alias de destino
+destination.key.password=senha da chave de destino
+destination.keystore.name=nome da área de armazenamento de chaves de destino
+destination.keystore.password.protected=senha protegida da área de armazenamento de chaves de destino
+destination.keystore.provider.name=nome do fornecedor da área de armazenamento de chaves de destino
+destination.keystore.password=senha da área de armazenamento de chaves de destino
+destination.keystore.type=tipo de área de armazenamento de chaves de destino
+distinguished.name=nome distinto
+X.509.extension=extensão X.509
+output.file.name=nome do arquivo de saída
+input.file.name=nome do arquivo de entrada
+key.algorithm.name=nome do algoritmo da chave
+key.password=senha da chave
+key.bit.size=tamanho do bit da chave
+keystore.name=nome da área de armazenamento de chaves
+access.the.cacerts.keystore=acessar a área de armazenamento de chaves cacerts
+warning.cacerts.option=Advertência: use a opção -cacerts para acessar a área de armazenamento de chaves cacerts
+new.password=nova senha
+do.not.prompt=não perguntar
+password.through.protected.mechanism=senha por meio de mecanismo protegido
+# The following 2 values should span 2 lines, the first for the
+# option itself, the second for its -providerArg value.
+addprovider.option=adicionar provedor de segurança por nome (por exemplo, SunPKCS11)\nconfigurar argumento para -addprovider
+provider.class.option=adicionar provedor de segurança por nome de classe totalmente qualificado\nconfigurar argumento para -providerclass
+
+provider.name=nome do fornecedor
+provider.classpath=classpath do fornecedor
+output.in.RFC.style=saída no estilo RFC
+signature.algorithm.name=nome do algoritmo de assinatura
+source.alias=alias de origem
+source.key.password=senha da chave de origem
+source.keystore.name=nome da área de armazenamento de chaves de origem
+source.keystore.password.protected=senha protegida da área de armazenamento de chaves de origem
+source.keystore.provider.name=nome do fornecedor da área de armazenamento de chaves de origem
+source.keystore.password=senha da área de armazenamento de chaves de origem
+source.keystore.type=tipo de área de armazenamento de chaves de origem
+SSL.server.host.and.port=porta e host do servidor SSL
+signed.jar.file=arquivo jar assinado
+certificate.validity.start.date.time=data/hora inicial de validade do certificado
+keystore.password=senha da área de armazenamento de chaves
+keystore.type=tipo de área de armazenamento de chaves
+trust.certificates.from.cacerts=certificados confiáveis do cacerts
+verbose.output=saída detalhada
+validity.number.of.days=número de dias da validade
+Serial.ID.of.cert.to.revoke=ID de série do certificado a ser revogado
+# keytool: Running part
+keytool.error.=erro de keytool:\u0020
+Illegal.option.=Opção inválida: \u0020
+Illegal.value.=Valor inválido:\u0020
+Unknown.password.type.=Tipo de senha desconhecido:\u0020
+Cannot.find.environment.variable.=Não é possível localizar a variável do ambiente:\u0020
+Cannot.find.file.=Não é possível localizar o arquivo:\u0020
+Command.option.flag.needs.an.argument.=A opção de comando {0} precisa de um argumento.
+Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.=Advertência: Senhas de chave e de armazenamento diferentes não suportadas para KeyStores PKCS12. Ignorando valor {0} especificado pelo usuário.
+the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option=A opção -keystore ou -storetype não pode ser usada com a opção -cacerts
+.keystore.must.be.NONE.if.storetype.is.{0}=-keystore deve ser NONE se -storetype for {0}
+Too.many.retries.program.terminated=Excesso de tentativas de repetição; programa finalizado
+.storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}=comandos -storepasswd e -keypasswd não suportados se -storetype for {0}
+.keypasswd.commands.not.supported.if.storetype.is.PKCS12=comandos -keypasswd não suportados se -storetype for PKCS12
+.keypass.and.new.can.not.be.specified.if.storetype.is.{0}=-keypass e -new não podem ser especificados se -storetype for {0}
+if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified=se -protected for especificado, então -storepass, -keypass e -new não deverão ser especificados
+if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified=se -srcprotected for especificado, então -srcstorepass e -srckeypass não deverão ser especificados
+if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified=se a área de armazenamento de chaves não estiver protegida por senha, então -storepass, -keypass e -new não deverão ser especificados
+if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified=se a área de armazenamento de chaves de origem não estiver protegida por senha, então -srcstorepass e -srckeypass não deverão ser especificados
+Illegal.startdate.value=valor da data inicial inválido
+Validity.must.be.greater.than.zero=A validade deve ser maior do que zero
+provclass.not.a.provider=%s não é um fornecedor
+provider.name.not.found=O fornecedor chamado "%s" não foi encontrado
+provider.class.not.found=Fornecedor "%s" não encontrado
+Usage.error.no.command.provided=Erro de uso: nenhum comando fornecido
+Source.keystore.file.exists.but.is.empty.=O arquivo da área de armazenamento de chaves de origem existe, mas está vazio:\u0020
+Please.specify.srckeystore=Especifique -srckeystore
+Must.not.specify.both.v.and.rfc.with.list.command=Não devem ser especificados -v e -rfc com o comando 'list'
+Key.password.must.be.at.least.6.characters=A senha da chave deve ter, no mínimo, 6 caracteres
+New.password.must.be.at.least.6.characters=A nova senha deve ter, no mínimo, 6 caracteres
+Keystore.file.exists.but.is.empty.=O arquivo da área de armazenamento de chaves existe, mas está vazio:\u0020
+Keystore.file.does.not.exist.=O arquivo da área de armazenamento de chaves não existe.\u0020
+Must.specify.destination.alias=Deve ser especificado um alias de destino
+Must.specify.alias=Deve ser especificado um alias
+Keystore.password.must.be.at.least.6.characters=A senha da área de armazenamento de chaves deve ter, no mínimo, 6 caracteres
+Enter.the.password.to.be.stored.=Digite a senha a ser armazenada: \u0020
+Enter.keystore.password.=Informe a senha da área de armazenamento de chaves: \u0020
+Enter.source.keystore.password.=Informe a senha da área de armazenamento de chaves de origem: \u0020
+Enter.destination.keystore.password.=Informe a senha da área de armazenamento de chaves de destino: \u0020
+Keystore.password.is.too.short.must.be.at.least.6.characters=A senha da área de armazenamento de chaves é muito curta - ela deve ter, no mínimo, 6 caracteres
+Unknown.Entry.Type=Tipo de Entrada Desconhecido
+Too.many.failures.Alias.not.changed=Excesso de falhas. Alias não alterado
+Entry.for.alias.alias.successfully.imported.=Entrada do alias {0} importada com êxito.
+Entry.for.alias.alias.not.imported.=Entrada do alias {0} não importada.
+Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.=Problema ao importar a entrada do alias {0}: {1}.\nEntrada do alias {0} não importada.
+Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled=Comando de importação concluído: {0} entradas importadas com êxito, {1} entradas falharam ou foram canceladas
+Warning.Overwriting.existing.alias.alias.in.destination.keystore=Advertência: Substituição do alias {0} existente na área de armazenamento de chaves de destino
+Existing.entry.alias.alias.exists.overwrite.no.=Entrada já existente no alias {0}, substituir? [não]: \u0020
+Too.many.failures.try.later=Excesso de falhas - tente mais tarde
+Certification.request.stored.in.file.filename.=Solicitação de certificado armazenada no arquivo <{0}>
+Submit.this.to.your.CA=Submeter à CA
+if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified=se o alias não estiver especificado, destalias e srckeypass não deverão ser especificados
+The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.=O armazenamento de chaves pkcs12 de destino tem storepass e keypass diferentes. Tente novamente especificando -destkeypass.
+Certificate.stored.in.file.filename.=Certificado armazenado no arquivo <{0}>
+Certificate.reply.was.installed.in.keystore=A resposta do certificado foi instalada na área de armazenamento de chaves
+Certificate.reply.was.not.installed.in.keystore=A resposta do certificado não foi instalada na área de armazenamento de chaves
+Certificate.was.added.to.keystore=O certificado foi adicionado à área de armazenamento de chaves
+Certificate.was.not.added.to.keystore=O certificado não foi adicionado à área de armazenamento de chaves
+.Storing.ksfname.=[Armazenando {0}]
+alias.has.no.public.key.certificate.={0} não tem chave pública (certificado)
+Cannot.derive.signature.algorithm=Não é possível obter um algoritmo de assinatura
+Alias.alias.does.not.exist=O alias <{0}> não existe
+Alias.alias.has.no.certificate=O alias <{0}> não tem certificado
+Key.pair.not.generated.alias.alias.already.exists=Par de chaves não gerado; o alias <{0}> já existe
+Generating.keysize.bit.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.validality.days.for=Gerando o par de chaves {1} de {0} bit e o certificado autoassinado ({2}) com uma validade de {3} dias\n\tpara: {4}
+Enter.key.password.for.alias.=Informar a senha da chave de <{0}>
+.RETURN.if.same.as.keystore.password.=\t(RETURN se for igual à senha da área do armazenamento de chaves): \u0020
+Key.password.is.too.short.must.be.at.least.6.characters=A senha da chave é muito curta - deve ter, no mínimo, 6 caracteres
+Too.many.failures.key.not.added.to.keystore=Excesso de falhas - chave não adicionada a área de armazenamento de chaves
+Destination.alias.dest.already.exists=O alias de destino <{0}> já existe
+Password.is.too.short.must.be.at.least.6.characters=A senha é muito curta - deve ter, no mínimo, 6 caracteres
+Too.many.failures.Key.entry.not.cloned=Excesso de falhas. Entrada da chave não clonada
+key.password.for.alias.=senha da chave de <{0}>
+Keystore.entry.for.id.getName.already.exists=A entrada da área do armazenamento de chaves de <{0}> já existe
+Creating.keystore.entry.for.id.getName.=Criando entrada da área do armazenamento de chaves para <{0}> ...
+No.entries.from.identity.database.added=Nenhuma entrada adicionada do banco de dados de identidades
+Alias.name.alias=Nome do alias: {0}
+Creation.date.keyStore.getCreationDate.alias.=Data de criação: {0,date}
+alias.keyStore.getCreationDate.alias.={0}, {1,date},\u0020
+alias.={0},\u0020
+Entry.type.type.=Tipo de entrada: {0}
+Certificate.chain.length.=Comprimento da cadeia de certificados:\u0020
+Certificate.i.1.=Certificado[{0,number,integer}]:
+Certificate.fingerprint.SHA.256.=Fingerprint (SHA-256) do certificado:\u0020
+Keystore.type.=Tipo de área de armazenamento de chaves:\u0020
+Keystore.provider.=Fornecedor da área de armazenamento de chaves:\u0020
+Your.keystore.contains.keyStore.size.entry=Sua área de armazenamento de chaves contém {0,number,integer} entrada
+Your.keystore.contains.keyStore.size.entries=Sua área de armazenamento de chaves contém {0,number,integer} entradas
+Failed.to.parse.input=Falha durante o parsing da entrada
+Empty.input=Entrada vazia
+Not.X.509.certificate=Não é um certificado X.509
+alias.has.no.public.key={0} não tem chave pública
+alias.has.no.X.509.certificate={0} não tem certificado X.509
+New.certificate.self.signed.=Novo certificado (autoassinado):
+Reply.has.no.certificates=A resposta não tem certificado
+Certificate.not.imported.alias.alias.already.exists=Certificado não importado, o alias <{0}> já existe
+Input.not.an.X.509.certificate=A entrada não é um certificado X.509
+Certificate.already.exists.in.keystore.under.alias.trustalias.=O certificado já existe no armazenamento de chaves no alias <{0}>
+Do.you.still.want.to.add.it.no.=Ainda deseja adicioná-lo? [não]: \u0020
+Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.=O certificado já existe na área de armazenamento de chaves da CA em todo o sistema no alias <{0}>
+Do.you.still.want.to.add.it.to.your.own.keystore.no.=Ainda deseja adicioná-lo à sua área de armazenamento de chaves? [não]: \u0020
+Trust.this.certificate.no.=Confiar neste certificado? [não]: \u0020
+YES=SIM
+New.prompt.=Nova {0}:\u0020
+Passwords.must.differ=As senhas devem ser diferentes
+Re.enter.new.prompt.=Informe novamente a nova {0}:\u0020
+Re.enter.password.=Redigite a senha:\u0020
+Re.enter.new.password.=Informe novamente a nova senha:\u0020
+They.don.t.match.Try.again=Elas não correspondem. Tente novamente
+Enter.prompt.alias.name.=Informe o nome do alias {0}: \u0020
+Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.=Informe o novo nome do alias\t(RETURN para cancelar a importação desta entrada): \u0020
+Enter.alias.name.=Informe o nome do alias: \u0020
+.RETURN.if.same.as.for.otherAlias.=\t(RETURN se for igual ao de <{0}>)
+What.is.your.first.and.last.name.=Qual é o seu nome e o seu sobrenome?
+What.is.the.name.of.your.organizational.unit.=Qual é o nome da sua unidade organizacional?
+What.is.the.name.of.your.organization.=Qual é o nome da sua empresa?
+What.is.the.name.of.your.City.or.Locality.=Qual é o nome da sua Cidade ou Localidade?
+What.is.the.name.of.your.State.or.Province.=Qual é o nome do seu Estado ou Município?
+What.is.the.two.letter.country.code.for.this.unit.=Quais são as duas letras do código do país desta unidade?
+Is.name.correct.={0} Está correto?
+no=não
+yes=sim
+y=s
+.defaultValue.=\u0020 [{0}]: \u0020
+Alias.alias.has.no.key=O alias <{0}> não tem chave
+Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key=O alias <{0}> faz referência a um tipo de entrada que não é uma entrada de chave privada. O comando -keyclone oferece suporte somente à clonagem de entradas de chave privada
+
+.WARNING.WARNING.WARNING.=***************** WARNING WARNING WARNING *****************
+Signer.d.=Signatário #%d:
+Timestamp.=Timestamp:
+Signature.=Assinatura:
+CRLs.=CRLs:
+Certificate.owner.=Proprietário do certificado:\u0020
+Not.a.signed.jar.file=Não é um arquivo jar assinado
+No.certificate.from.the.SSL.server=Não é um certificado do servidor SSL
+
+.The.integrity.of.the.information.stored.in.your.keystore.=* A integridade das informações armazenadas na sua área de armazenamento de chaves *\n* NÃO foi verificada! Para que seja possível verificar sua integridade, *\n* você deve fornecer a senha da área de armazenamento de chaves. *
+.The.integrity.of.the.information.stored.in.the.srckeystore.=* A integridade das informações armazenadas no srckeystore *\n* NÃO foi verificada! Para que seja possível verificar sua integridade, *\n* você deve fornecer a senha do srckeystore. *
+
+Certificate.reply.does.not.contain.public.key.for.alias.=A resposta do certificado não contém a chave pública de <{0}>
+Incomplete.certificate.chain.in.reply=Cadeia de certificados incompleta na resposta
+Certificate.chain.in.reply.does.not.verify.=A cadeia de certificados da resposta não verifica:\u0020
+Top.level.certificate.in.reply.=Certificado de nível superior na resposta:\n
+.is.not.trusted.=... não é confiável.\u0020
+Install.reply.anyway.no.=Instalar resposta assim mesmo? [não]: \u0020
+NO=NÃO
+Public.keys.in.reply.and.keystore.don.t.match=As chaves públicas da resposta e da área de armazenamento de chaves não correspondem
+Certificate.reply.and.certificate.in.keystore.are.identical=O certificado da resposta e o certificado da área de armazenamento de chaves são idênticos
+Failed.to.establish.chain.from.reply=Falha ao estabelecer a cadeia a partir da resposta
+n=n
+Wrong.answer.try.again=Resposta errada; tente novamente
+Secret.key.not.generated.alias.alias.already.exists=Chave secreta não gerada; o alias <{0}> já existe
+Please.provide.keysize.for.secret.key.generation=Forneça o -keysize para a geração da chave secreta
+
+warning.not.verified.make.sure.keystore.is.correct=ADVERTÊNCIA: não verificado. Certifique-se que -keystore esteja correto.
+
+Extensions.=Extensões:\u0020
+.Empty.value.=(Valor vazio)
+Extension.Request.=Solicitação de Extensão:
+Unknown.keyUsage.type.=Tipo de keyUsage desconhecido:\u0020
+Unknown.extendedkeyUsage.type.=Tipo de extendedkeyUsage desconhecido:\u0020
+Unknown.AccessDescription.type.=Tipo de AccessDescription desconhecido:\u0020
+Unrecognized.GeneralName.type.=Tipo de GeneralName não reconhecido:\u0020
+This.extension.cannot.be.marked.as.critical.=Esta extensão não pode ser marcada como crítica.\u0020
+Odd.number.of.hex.digits.found.=Encontrado número ímpar de seis dígitos:\u0020
+Unknown.extension.type.=Tipo de extensão desconhecido:\u0020
+command.{0}.is.ambiguous.=o comando {0} é ambíguo:
+# 8171319: keytool should print out warnings when reading or
+# generating cert/cert req using weak algorithms
+the.certificate.request=A solicitação do certificado
+the.issuer=O emissor
+the.generated.certificate=O certificado gerado
+the.generated.crl=A CRL gerada
+the.generated.certificate.request=A solicitação do certificado gerada
+the.certificate=O certificado
+the.crl=A CRL
+the.tsa.certificate=O certificado TSA
+the.input=A entrada
+reply=Resposta
+one.in.many=%1$s #%2$d de %3$d
+alias.in.cacerts=Emissor <%s> no cacerts
+alias.in.keystore=Emissor <%s>
+with.weak=%s (fraca)
+key.bit=Chave %2$s de %1$d bits
+key.bit.weak=Chave %2$s de %1$d bits (fraca)
+unknown.size.1=chave de tamanho desconhecido %s
+.PATTERN.printX509Cert.with.weak=Proprietário: {0}\nEmissor: {1}\nNúmero de série: {2}\nVálido de: {3} até: {4}\nFingerprints do certificado:\n\t SHA1: {5}\n\t SHA256: {6}\nNome do algoritmo de assinatura: {7}\nAlgoritmo de Chave Pública do Assunto: {8}\nVersão: {9}
+PKCS.10.with.weak=Solicitação do Certificado PKCS #10 (Versão 1.0)\nAssunto: %1$s\nFormato: %2$s\nChave Pública: %3$s\nAlgoritmo de assinatura: %4$s\n
+verified.by.s.in.s.weak=Verificado por %1$s em %2$s com um %3$s
+whose.sigalg.risk=%1$s usa o algoritmo de assinatura %2$s que é considerado um risco à segurança.
+whose.key.risk=%1$s usa um %2$s que é considerado um risco à segurança.
+jks.storetype.warning=O armazenamento de chaves %1$s usa um formato proprietário. É recomendada a migração para PKCS12, que é um formato de padrão industrial que usa "keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12".
+migrate.keystore.warning="%1$s" foi migrado para %4$s. O backup do armazenamento de chaves %2$s é feito como "%3$s".
+backup.keystore.warning=O backup do armazenamento de chaves original "%1$s" é feito como "%3$s"...
+importing.keystore.status=Importando armazenamento de chaves %1$s to %2$s...
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_sv.properties b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_sv.properties
new file mode 100644
index 0000000000000..151a5ca427e78
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_sv.properties
@@ -0,0 +1,302 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+NEWLINE=\n
+STAR=*******************************************
+STARNN=*******************************************\n\n
+# keytool: Help part
+.OPTION.=\u0020[OPTION]...
+Options.=Alternativ:
+option.1.set.twice=Du har angett alternativet %s flera gånger. Alla förutom det sista ignoreras.
+multiple.commands.1.2=Endast ett kommando är tillåtet: du har angett både %1$s och %2$s.
+Use.keytool.help.for.all.available.commands=Läs "Hjälp - Nyckelverktyg" för alla tillgängliga kommandon
+Key.and.Certificate.Management.Tool=Hanteringsverktyg för nycklar och certifikat
+Commands.=Kommandon:
+Use.keytool.command.name.help.for.usage.of.command.name=Använd "keytool -command_name -help" för syntax för command_name.\nAnvänd alternativet -conf för att ange en förkonfigurerad alternativfil.
+# keytool: help: commands
+Generates.a.certificate.request=Genererar certifikatbegäran
+Changes.an.entry.s.alias=Ändrar postalias
+Deletes.an.entry=Tar bort en post
+Exports.certificate=Exporterar certifikat
+Generates.a.key.pair=Genererar nyckelpar
+Generates.a.secret.key=Genererar hemlig nyckel
+Generates.certificate.from.a.certificate.request=Genererar certifikat från certifikatbegäran
+Generates.CRL=Genererar CRL
+Generated.keyAlgName.secret.key=Genererade {0} hemlig nyckel
+Generated.keysize.bit.keyAlgName.secret.key=Genererade {0}-bitars {1} hemlig nyckel
+Imports.entries.from.a.JDK.1.1.x.style.identity.database=Importerar poster från identitetsdatabas i JDK 1.1.x-format
+Imports.a.certificate.or.a.certificate.chain=Importerar ett certifikat eller en certifikatkedja
+Imports.a.password=Importerar ett lösenord
+Imports.one.or.all.entries.from.another.keystore=Importerar en eller alla poster från annat nyckellager
+Clones.a.key.entry=Klonar en nyckelpost
+Changes.the.key.password.of.an.entry=Ändrar nyckellösenordet för en post
+Lists.entries.in.a.keystore=Visar lista över poster i nyckellager
+Prints.the.content.of.a.certificate=Skriver ut innehållet i ett certifikat
+Prints.the.content.of.a.certificate.request=Skriver ut innehållet i en certifikatbegäran
+Prints.the.content.of.a.CRL.file=Skriver ut innehållet i en CRL-fil
+Generates.a.self.signed.certificate=Genererar ett självsignerat certifikat
+Changes.the.store.password.of.a.keystore=Ändrar lagerlösenordet för ett nyckellager
+# keytool: help: options
+alias.name.of.the.entry.to.process=aliasnamn för post som ska bearbetas
+destination.alias=destinationsalias
+destination.key.password=lösenord för destinationsnyckel
+destination.keystore.name=namn på destinationsnyckellager
+destination.keystore.password.protected=skyddat lösenord för destinationsnyckellager
+destination.keystore.provider.name=leverantörsnamn för destinationsnyckellager
+destination.keystore.password=lösenord för destinationsnyckellager
+destination.keystore.type=typ av destinationsnyckellager
+distinguished.name=unikt namn
+X.509.extension=X.509-tillägg
+output.file.name=namn på utdatafil
+input.file.name=namn på indatafil
+key.algorithm.name=namn på nyckelalgoritm
+key.password=nyckellösenord
+key.bit.size=nyckelbitstorlek
+keystore.name=namn på nyckellager
+access.the.cacerts.keystore=åtkomst till nyckellagret cacerts
+warning.cacerts.option=Varning: använd alternativet -cacerts för att få åtkomst till nyckellagret cacerts
+new.password=nytt lösenord
+do.not.prompt=fråga inte
+password.through.protected.mechanism=lösenord med skyddad mekanism
+# The following 2 values should span 2 lines, the first for the
+# option itself, the second for its -providerArg value.
+addprovider.option=lägg till säkerhetsleverantör per namn (t.ex. SunPKCS11)\nkonfigurera argument för -addprovider
+provider.class.option=lägg till säkerhetsleverantör per fullt kvalificerat klassnamn\nkonfigurera argument för -providerclass
+
+provider.name=leverantörsnamn
+provider.classpath=leverantörsklassökväg
+output.in.RFC.style=utdata i RFC-format
+signature.algorithm.name=namn på signaturalgoritm
+source.alias=källalias
+source.key.password=lösenord för källnyckel
+source.keystore.name=namn på källnyckellager
+source.keystore.password.protected=skyddat lösenord för källnyckellager
+source.keystore.provider.name=leverantörsnamn för källnyckellager
+source.keystore.password=lösenord för källnyckellager
+source.keystore.type=typ av källnyckellager
+SSL.server.host.and.port=SSL-servervärd och -port
+signed.jar.file=signerad jar-fil
+certificate.validity.start.date.time=startdatum/-tid för certifikatets giltighet
+keystore.password=lösenord för nyckellager
+keystore.type=nyckellagertyp
+trust.certificates.from.cacerts=tillförlitliga certifikat från cacerts
+verbose.output=utförliga utdata
+validity.number.of.days=antal dagar för giltighet
+Serial.ID.of.cert.to.revoke=Serienummer på certifikat som ska återkallas
+# keytool: Running part
+keytool.error.=nyckelverktygsfel:\u0020
+Illegal.option.=Otillåtet alternativ: \u0020
+Illegal.value.=Otillåtet värde:\u0020
+Unknown.password.type.=Okänd lösenordstyp:\u0020
+Cannot.find.environment.variable.=Hittar inte miljövariabel:\u0020
+Cannot.find.file.=Hittar inte fil:\u0020
+Command.option.flag.needs.an.argument.=Kommandoalternativet {0} behöver ett argument.
+Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.=Varning! PKCS12-nyckellager har inte stöd för olika lösenord för lagret och nyckeln. Det användarspecificerade {0}-värdet ignoreras.
+the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option=Alternativen -keystore och -storetype kan inte användas med alternativet -cacerts
+.keystore.must.be.NONE.if.storetype.is.{0}=-keystore måste vara NONE om -storetype är {0}
+Too.many.retries.program.terminated=För många försök. Programmet avslutas
+.storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}=-storepasswd- och -keypasswd-kommandon stöds inte om -storetype är {0}
+.keypasswd.commands.not.supported.if.storetype.is.PKCS12=-keypasswd-kommandon stöds inte om -storetype är PKCS12
+.keypass.and.new.can.not.be.specified.if.storetype.is.{0}=-keypass och -new kan inte anges om -storetype är {0}
+if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified=om -protected har angetts får inte -storepass, -keypass och -new anges
+if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified=om -srcprotected anges får -srcstorepass och -srckeypass inte anges
+if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified=om nyckellagret inte är lösenordsskyddat får -storepass, -keypass och -new inte anges
+if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified=om källnyckellagret inte är lösenordsskyddat får -srcstorepass och -srckeypass inte anges
+Illegal.startdate.value=Otillåtet värde för startdatum
+Validity.must.be.greater.than.zero=Giltigheten måste vara större än noll
+provclass.not.a.provider=%s är inte en leverantör
+provider.name.not.found=Leverantören med namnet "%s" hittades inte
+provider.class.not.found=Leverantören "%s" hittades inte
+Usage.error.no.command.provided=Syntaxfel: inget kommando angivet
+Source.keystore.file.exists.but.is.empty.=Nyckellagrets källfil finns, men är tom:\u0020
+Please.specify.srckeystore=Ange -srckeystore
+Must.not.specify.both.v.and.rfc.with.list.command=Kan inte specificera både -v och -rfc med 'list'-kommandot
+Key.password.must.be.at.least.6.characters=Nyckellösenordet måste innehålla minst 6 tecken
+New.password.must.be.at.least.6.characters=Det nya lösenordet måste innehålla minst 6 tecken
+Keystore.file.exists.but.is.empty.=Nyckellagerfilen finns, men är tom:\u0020
+Keystore.file.does.not.exist.=Nyckellagerfilen finns inte:\u0020
+Must.specify.destination.alias=Du måste ange destinationsalias
+Must.specify.alias=Du måste ange alias
+Keystore.password.must.be.at.least.6.characters=Nyckellagerlösenordet måste innehålla minst 6 tecken
+Enter.the.password.to.be.stored.=Ange det lösenord som ska lagras: \u0020
+Enter.keystore.password.=Ange nyckellagerlösenord: \u0020
+Enter.source.keystore.password.=Ange lösenord för källnyckellagret: \u0020
+Enter.destination.keystore.password.=Ange nyckellagerlösenord för destination: \u0020
+Keystore.password.is.too.short.must.be.at.least.6.characters=Nyckellagerlösenordet är för kort - det måste innehålla minst 6 tecken
+Unknown.Entry.Type=Okänd posttyp
+Too.many.failures.Alias.not.changed=För många fel. Alias har inte ändrats
+Entry.for.alias.alias.successfully.imported.=Posten för alias {0} har importerats.
+Entry.for.alias.alias.not.imported.=Posten för alias {0} har inte importerats.
+Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.=Ett problem uppstod vid importen av posten för alias {0}: {1}.\nPosten {0} har inte importerats.
+Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled=Kommandoimporten slutförd: {0} poster har importerats, {1} poster var felaktiga eller annullerades
+Warning.Overwriting.existing.alias.alias.in.destination.keystore=Varning! Det befintliga aliaset {0} i destinationsnyckellagret skrivs över
+Existing.entry.alias.alias.exists.overwrite.no.=Aliaset {0} finns redan. Vill du skriva över det? [nej]: \u0020
+Too.many.failures.try.later=För många fel - försök igen senare
+Certification.request.stored.in.file.filename.=Certifikatbegäran har lagrats i filen <{0}>
+Submit.this.to.your.CA=Skicka detta till certifikatutfärdaren
+if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified=om alias inte angivits ska inte heller destalias och srckeypass anges
+The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.=Destinationsnyckellagret pkcs12 har olika storepass och keypass. Försök igen med -destkeypass angivet.
+Certificate.stored.in.file.filename.=Certifikatet har lagrats i filen <{0}>
+Certificate.reply.was.installed.in.keystore=Certifikatsvaret har installerats i nyckellagret
+Certificate.reply.was.not.installed.in.keystore=Certifikatsvaret har inte installerats i nyckellagret
+Certificate.was.added.to.keystore=Certifikatet har lagts till i nyckellagret
+Certificate.was.not.added.to.keystore=Certifikatet har inte lagts till i nyckellagret
+.Storing.ksfname.=[Lagrar {0}]
+alias.has.no.public.key.certificate.={0} saknar öppen nyckel (certifikat)
+Cannot.derive.signature.algorithm=Kan inte härleda signaturalgoritm
+Alias.alias.does.not.exist=Aliaset <{0}> finns inte
+Alias.alias.has.no.certificate=Aliaset <{0}> saknar certifikat
+Key.pair.not.generated.alias.alias.already.exists=Nyckelparet genererades inte. Aliaset <{0}> finns redan
+Generating.keysize.bit.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.validality.days.for=Genererar {0} bitars {1}-nyckelpar och självsignerat certifikat ({2}) med en giltighet på {3} dagar\n\tför: {4}
+Enter.key.password.for.alias.=Ange nyckellösenord för <{0}>
+.RETURN.if.same.as.keystore.password.=\t(RETURN om det är identiskt med nyckellagerlösenordet): \u0020
+Key.password.is.too.short.must.be.at.least.6.characters=Nyckellösenordet är för kort - det måste innehålla minst 6 tecken
+Too.many.failures.key.not.added.to.keystore=För många fel - nyckeln lades inte till i nyckellagret
+Destination.alias.dest.already.exists=Destinationsaliaset <{0}> finns redan
+Password.is.too.short.must.be.at.least.6.characters=Lösenordet är för kort - det måste innehålla minst 6 tecken
+Too.many.failures.Key.entry.not.cloned=För många fel. Nyckelposten har inte klonats
+key.password.for.alias.=nyckellösenord för <{0}>
+Keystore.entry.for.id.getName.already.exists=Nyckellagerpost för <{0}> finns redan
+Creating.keystore.entry.for.id.getName.=Skapar nyckellagerpost för <{0}> ...
+No.entries.from.identity.database.added=Inga poster från identitetsdatabasen har lagts till
+Alias.name.alias=Aliasnamn: {0}
+Creation.date.keyStore.getCreationDate.alias.=Skapat den: {0,date}
+alias.keyStore.getCreationDate.alias.={0}, {1,date},\u0020
+alias.={0},\u0020
+Entry.type.type.=Posttyp: {0}
+Certificate.chain.length.=Längd på certifikatskedja:\u0020
+Certificate.i.1.=Certifikat[{0,number,integer}]:
+Certificate.fingerprint.SHA.256.=Certifikatfingeravtryck (SHA-256):\u0020
+Keystore.type.=Nyckellagertyp:\u0020
+Keystore.provider.=Nyckellagerleverantör:\u0020
+Your.keystore.contains.keyStore.size.entry=Nyckellagret innehåller {0,number,integer} post
+Your.keystore.contains.keyStore.size.entries=Nyckellagret innehåller {0,number,integer} poster
+Failed.to.parse.input=Kunde inte tolka indata
+Empty.input=Inga indata
+Not.X.509.certificate=Inte ett X.509-certifikat
+alias.has.no.public.key={0} saknar öppen nyckel
+alias.has.no.X.509.certificate={0} saknar X.509-certifikat
+New.certificate.self.signed.=Nytt certifikat (självsignerat):
+Reply.has.no.certificates=Svaret saknar certifikat
+Certificate.not.imported.alias.alias.already.exists=Certifikatet importerades inte. Aliaset <{0}> finns redan
+Input.not.an.X.509.certificate=Indata är inte ett X.509-certifikat
+Certificate.already.exists.in.keystore.under.alias.trustalias.=Certifikatet finns redan i nyckellagerfilen under aliaset <{0}>
+Do.you.still.want.to.add.it.no.=Vill du fortfarande lägga till det? [nej]: \u0020
+Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.=Certifikatet finns redan i den systemomspännande CA-nyckellagerfilen under aliaset <{0}>
+Do.you.still.want.to.add.it.to.your.own.keystore.no.=Vill du fortfarande lägga till det i ditt eget nyckellagret? [nej]: \u0020
+Trust.this.certificate.no.=Litar du på det här certifikatet? [nej]: \u0020
+YES=JA
+New.prompt.=Nytt {0}:\u0020
+Passwords.must.differ=Lösenorden måste vara olika
+Re.enter.new.prompt.=Ange nytt {0} igen:\u0020
+Re.enter.password.=Ange lösenord igen:\u0020
+Re.enter.new.password.=Ange det nya lösenordet igen:\u0020
+They.don.t.match.Try.again=De matchar inte. Försök igen
+Enter.prompt.alias.name.=Ange aliasnamn för {0}: \u0020
+Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.=Ange ett nytt aliasnamn\t(skriv RETURN för att avbryta importen av denna post): \u0020
+Enter.alias.name.=Ange aliasnamn: \u0020
+.RETURN.if.same.as.for.otherAlias.=\t(RETURN om det är det samma som för <{0}>)
+What.is.your.first.and.last.name.=Vad heter du i för- och efternamn?
+What.is.the.name.of.your.organizational.unit.=Vad heter din avdelning inom organisationen?
+What.is.the.name.of.your.organization.=Vad heter din organisation?
+What.is.the.name.of.your.City.or.Locality.=Vad heter din ort eller plats?
+What.is.the.name.of.your.State.or.Province.=Vad heter ditt land eller din provins?
+What.is.the.two.letter.country.code.for.this.unit.=Vilken är den tvåställiga landskoden?
+Is.name.correct.=Är {0} korrekt?
+no=nej
+yes=ja
+y=j
+.defaultValue.=\u0020 [{0}]: \u0020
+Alias.alias.has.no.key=Aliaset <{0}> saknar nyckel
+Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key=Aliaset <{0}> refererar till en posttyp som inte är någon privat nyckelpost. Kommandot -keyclone har endast stöd för kloning av privata nyckelposter
+
+.WARNING.WARNING.WARNING.=***************** WARNING WARNING WARNING *****************
+Signer.d.=Undertecknare %d:
+Timestamp.=Tidsstämpel:
+Signature.=Signatur:
+CRLs.=CRL:er:
+Certificate.owner.=Certifikatägare:\u0020
+Not.a.signed.jar.file=Ingen signerad jar-fil
+No.certificate.from.the.SSL.server=Inget certifikat från SSL-servern
+
+.The.integrity.of.the.information.stored.in.your.keystore.=* Integriteten för den information som lagras i nyckellagerfilen *\n* har INTE verifierats! Om du vill verifiera dess integritet *\n* måste du ange lösenordet för nyckellagret. *
+.The.integrity.of.the.information.stored.in.the.srckeystore.=* Integriteten för den information som lagras i srckeystore*\n* har INTE verifierats! Om du vill verifiera dess integritet *\n* måste du ange lösenordet för srckeystore. *
+
+Certificate.reply.does.not.contain.public.key.for.alias.=Certifikatsvaret innehåller inte någon öppen nyckel för <{0}>
+Incomplete.certificate.chain.in.reply=Ofullständig certifikatskedja i svaret
+Certificate.chain.in.reply.does.not.verify.=Certifikatskedjan i svaret går inte att verifiera:\u0020
+Top.level.certificate.in.reply.=Toppnivåcertifikatet i svaret:\n
+.is.not.trusted.=... är inte betrott.\u0020
+Install.reply.anyway.no.=Vill du installera svaret ändå? [nej]: \u0020
+NO=NEJ
+Public.keys.in.reply.and.keystore.don.t.match=De offentliga nycklarna i svaret och nyckellagret matchar inte varandra
+Certificate.reply.and.certificate.in.keystore.are.identical=Certifikatsvaret och certifikatet i nyckellagret är identiska
+Failed.to.establish.chain.from.reply=Kunde inte upprätta kedja från svaret
+n=n
+Wrong.answer.try.again=Fel svar. Försök på nytt.
+Secret.key.not.generated.alias.alias.already.exists=Den hemliga nyckeln har inte genererats eftersom aliaset <{0}> redan finns
+Please.provide.keysize.for.secret.key.generation=Ange -keysize för att skapa hemlig nyckel
+
+warning.not.verified.make.sure.keystore.is.correct=VARNING: ej verifierad. Se till att -nyckellager är korrekt.
+
+Extensions.=Tillägg:\u0020
+.Empty.value.=(Tomt värde)
+Extension.Request.=Tilläggsbegäran:
+Unknown.keyUsage.type.=Okänd keyUsage-typ:\u0020
+Unknown.extendedkeyUsage.type.=Okänd extendedkeyUsage-typ:\u0020
+Unknown.AccessDescription.type.=Okänd AccessDescription-typ:\u0020
+Unrecognized.GeneralName.type.=Okänd GeneralName-typ:\u0020
+This.extension.cannot.be.marked.as.critical.=Detta tillägg kan inte markeras som kritiskt.\u0020
+Odd.number.of.hex.digits.found.=Udda antal hex-siffror påträffades:\u0020
+Unknown.extension.type.=Okänd tilläggstyp:\u0020
+command.{0}.is.ambiguous.=kommandot {0} är tvetydigt:
+# 8171319: keytool should print out warnings when reading or
+# generating cert/cert req using weak algorithms
+the.certificate.request=Certifikatbegäran
+the.issuer=Utfärdaren
+the.generated.certificate=Det genererade certifikatet
+the.generated.crl=Den genererade listan över återkallade certifikat
+the.generated.certificate.request=Den genererade certifikatbegäran
+the.certificate=Certifikatet
+the.crl=Listan över återkallade certifikat
+the.tsa.certificate=TSA-certifikatet
+the.input=Indata
+reply=Svar
+one.in.many=%1$s #%2$d av %3$d
+alias.in.cacerts=Utfärdaren <%s> i cacerts
+alias.in.keystore=Utfärdaren <%s>
+with.weak=%s (svag)
+key.bit=%1$d-bitars %2$s-nyckel
+key.bit.weak=%1$d-bitars %2$s-nyckel (svag)
+unknown.size.1=okänd storlek på nyckeln %s
+.PATTERN.printX509Cert.with.weak=Ägare: {0}\nUtfärdare: {1}\nSerienummer: {2}\nGiltigt från: {3}, till: {4}\nCertifikatfingeravtryck:\n\t SHA1: {5}\n\t SHA256: {6}\nSignaturalgoritmnamn: {7}\nAlgoritm för öppen nyckel för ämne: {8}\nVersion: {9}
+PKCS.10.with.weak=PKCS #10-certifikatbegäran (version 1.0)\nÄmne: %1$s\nFormat: %2$s\nÖppen nyckel: %3$s\nSignaturalgoritm: %4$s\n
+verified.by.s.in.s.weak=Verifierades av %1$s i %2$s med en %3$s
+whose.sigalg.risk=%1$s använder signaturalgoritmen %2$s, vilket anses utgöra en säkerhetsrisk.
+whose.key.risk=%1$s använder en %2$s, vilket anses utgöra en säkerhetsrisk.
+jks.storetype.warning=Nyckellagret %1$s använder ett proprietärt format. Du bör migrera till PKCS12, som är ett branschstandardformat, med "keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12".
+migrate.keystore.warning=Migrerade "%1$s" till %4$s. Nyckellagret %2$s säkerhetskopierades som "%3$s".
+backup.keystore.warning=Det ursprungliga nyckellagret, \"%1$s\", säkerhetskopieras som \"%3$s\"...
+importing.keystore.status=Importerar nyckellagret %1$s till %2$s...
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_zh_CN.properties b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_zh_CN.properties
new file mode 100644
index 0000000000000..5aa27eb2ed4e0
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_zh_CN.properties
@@ -0,0 +1,321 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+NEWLINE=\n
+STAR=*******************************************
+STARNN=*******************************************\n\n
+# keytool: Help part
+.OPTION.=\u0020[OPTION]...
+Options.=选项:
+option.1.set.twice=多次指定了 %s 选项。除最后一个之外, 其余的将全部忽略。
+multiple.commands.1.2=只允许一个命令: 同时指定了 %1$s 和 %2$s。
+Use.keytool.help.for.all.available.commands=使用 "keytool -?, -h, or --help" 可输出此帮助消息
+Key.and.Certificate.Management.Tool=密钥和证书管理工具
+Commands.=命令:
+Use.keytool.command.name.help.for.usage.of.command.name=使用 "keytool -command_name --help" 可获取 command_name 的用法。\n使用 -conf 选项可指定预配置的选项文件。
+# keytool: help: commands
+Generates.a.certificate.request=生成证书请求
+Changes.an.entry.s.alias=更改条目的别名
+Deletes.an.entry=删除条目
+Exports.certificate=导出证书
+Generates.a.key.pair=生成密钥对
+Generates.a.secret.key=生成密钥
+Generates.certificate.from.a.certificate.request=根据证书请求生成证书
+Generates.CRL=生成 CRL
+Generated.keyAlgName.secret.key=已生成{0}密钥
+Generated.keysize.bit.keyAlgName.secret.key=已生成 {0} 位{1}密钥
+key.algorithm.weak=%1$s 使用的 %2$s 算法被视为存在安全风险。
+key.size.weak=%1$s 使用的 %2$s 存在安全风险。
+Imports.entries.from.a.JDK.1.1.x.style.identity.database=从 JDK 1.1.x 样式的身份数据库导入条目
+Imports.a.certificate.or.a.certificate.chain=导入证书或证书链
+Imports.a.password=导入口令
+Imports.one.or.all.entries.from.another.keystore=从其他密钥库导入一个或所有条目
+Clones.a.key.entry=克隆密钥条目
+Changes.the.key.password.of.an.entry=更改条目的密钥口令
+Lists.entries.in.a.keystore=列出密钥库中的条目
+Prints.the.content.of.a.certificate=打印证书内容
+Prints.the.content.of.a.certificate.request=打印证书请求的内容
+Prints.the.content.of.a.CRL.file=打印 CRL 文件的内容
+Generates.a.self.signed.certificate=生成自签名证书
+Changes.the.store.password.of.a.keystore=更改密钥库的存储口令
+showinfo.command.help=显示安全相关信息
+Prints.the.program.version=输出程序版本
+# keytool: help: options
+alias.name.of.the.entry.to.process=要处理的条目的别名
+groupname.option.help=组名。例如,椭圆曲线名称。
+destination.alias=目标别名
+destination.key.password=目标密钥口令
+destination.keystore.name=目标密钥库名称
+destination.keystore.password.protected=受保护的目标密钥库口令
+destination.keystore.provider.name=目标密钥库提供方名称
+destination.keystore.password=目标密钥库口令
+destination.keystore.type=目标密钥库类型
+distinguished.name=唯一判别名
+X.509.extension=X.509 扩展
+output.file.name=输出文件名
+input.file.name=输入文件名
+key.algorithm.name=密钥算法名称
+key.password=密钥口令
+key.bit.size=密钥位大小
+keystore.name=密钥库名称
+access.the.cacerts.keystore=访问 cacerts 密钥库
+warning.cacerts.option=警告: 使用 -cacerts 选项访问 cacerts 密钥库
+new.password=新口令
+do.not.prompt=不提示
+password.through.protected.mechanism=通过受保护的机制的口令
+tls.option.help=显示 TLS 配置信息
+# The following 2 values should span 2 lines, the first for the
+# option itself, the second for its -providerArg value.
+addprovider.option=按名称 (例如 SunPKCS11) 添加安全提供方\n配置 -addprovider 的参数
+provider.class.option=按全限定类名添加安全提供方\n配置 -providerclass 的参数
+
+provider.name=提供方名称
+provider.classpath=提供方类路径
+output.in.RFC.style=以 RFC 样式输出
+signature.algorithm.name=签名算法名称
+signer.alias=签名者别名
+signer.key.password=签名者密钥密码
+source.alias=源别名
+source.key.password=源密钥口令
+source.keystore.name=源密钥库名称
+source.keystore.password.protected=受保护的源密钥库口令
+source.keystore.provider.name=源密钥库提供方名称
+source.keystore.password=源密钥库口令
+source.keystore.type=源密钥库类型
+SSL.server.host.and.port=SSL 服务器主机和端口
+signed.jar.file=已签名的 jar 文件
+certificate.validity.start.date.time=证书有效期开始日期/时间
+keystore.password=密钥库口令
+keystore.type=密钥库类型
+trust.certificates.from.cacerts=信任来自 cacerts 的证书
+verbose.output=详细输出
+validity.number.of.days=有效天数
+Serial.ID.of.cert.to.revoke=要撤销的证书的序列 ID
+# keytool: Running part
+keytool.error.=keytool 错误:\u0020
+Illegal.option.=非法选项: \u0020
+Illegal.value.=非法值:\u0020
+Unknown.password.type.=未知口令类型:\u0020
+Cannot.find.environment.variable.=找不到环境变量:\u0020
+Cannot.find.file.=找不到文件:\u0020
+Command.option.flag.needs.an.argument.=命令选项{0}需要一个参数。
+Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.=警告: PKCS12 密钥库不支持其他存储和密钥口令。正在忽略用户指定的{0}值。
+the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option=-keystore 或 -storetype 选项不能与 -cacerts 选项一起使用
+.keystore.must.be.NONE.if.storetype.is.{0}=如果 -storetype 为 {0}, 则 -keystore 必须为 NONE
+Too.many.retries.program.terminated=重试次数过多, 程序已终止
+.storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}=如果 -storetype 为 {0}, 则不支持 -storepasswd 和 -keypasswd 命令
+.keypasswd.commands.not.supported.if.storetype.is.PKCS12=如果 -storetype 为 PKCS12, 则不支持 -keypasswd 命令
+.keypass.and.new.can.not.be.specified.if.storetype.is.{0}=如果 -storetype 为 {0}, 则不能指定 -keypass 和 -new
+if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified=如果指定了 -protected, 则不能指定 -storepass, -keypass 和 -new
+if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified=如果指定了 -srcprotected, 则不能指定 -srcstorepass 和 -srckeypass
+if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified=如果密钥库未受口令保护, 则不能指定 -storepass, -keypass 和 -new
+if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified=如果源密钥库未受口令保护, 则不能指定 -srcstorepass 和 -srckeypass
+Illegal.startdate.value=非法开始日期值
+Validity.must.be.greater.than.zero=有效性必须大于零
+provclass.not.a.provider=%s不是提供方
+provider.name.not.found=未找到名为 "%s" 的提供方
+provider.class.not.found=未找到提供方 "%s"
+Usage.error.no.command.provided=用法错误: 没有提供命令
+Source.keystore.file.exists.but.is.empty.=源密钥库文件存在, 但为空:\u0020
+Please.specify.srckeystore=请指定 -srckeystore
+Must.not.specify.both.v.and.rfc.with.list.command=不能使用 'list' 命令来指定 -v 及 -rfc
+Key.password.must.be.at.least.6.characters=密钥口令至少必须为 6 个字符
+New.password.must.be.at.least.6.characters=新口令至少必须为 6 个字符
+Keystore.file.exists.but.is.empty.=密钥库文件存在, 但为空:\u0020
+Keystore.file.does.not.exist.=密钥库文件不存在:\u0020
+Must.specify.destination.alias=必须指定目标别名
+Must.specify.alias=必须指定别名
+Keystore.password.must.be.at.least.6.characters=密钥库口令至少必须为 6 个字符
+Enter.the.password.to.be.stored.=输入要存储的口令: \u0020
+Enter.keystore.password.=输入密钥库口令: \u0020
+Enter.source.keystore.password.=输入源密钥库口令: \u0020
+Enter.destination.keystore.password.=输入目标密钥库口令: \u0020
+Keystore.password.is.too.short.must.be.at.least.6.characters=密钥库口令太短 - 至少必须为 6 个字符
+Unknown.Entry.Type=未知条目类型
+Entry.for.alias.alias.successfully.imported.=已成功导入别名 {0} 的条目。
+Entry.for.alias.alias.not.imported.=未导入别名 {0} 的条目。
+Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.=导入别名 {0} 的条目时出现问题: {1}。\n未导入别名 {0} 的条目。
+Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled=已完成导入命令: {0} 个条目成功导入, {1} 个条目失败或取消
+Warning.Overwriting.existing.alias.alias.in.destination.keystore=警告: 正在覆盖目标密钥库中的现有别名 {0}
+Existing.entry.alias.alias.exists.overwrite.no.=存在现有条目别名 {0}, 是否覆盖? [否]: \u0020
+Too.many.failures.try.later=故障太多 - 请稍后再试
+Certification.request.stored.in.file.filename.=存储在文件 <{0}> 中的认证请求
+Submit.this.to.your.CA=将此提交给您的 CA
+if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified=如果没有指定别名, 则不能指定目标别名和源密钥库口令
+The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.=目标 pkcs12 密钥库具有不同的 storepass 和 keypass。请在指定了 -destkeypass 时重试。
+Certificate.stored.in.file.filename.=存储在文件 <{0}> 中的证书
+Certificate.reply.was.installed.in.keystore=证书回复已安装在密钥库中
+Certificate.reply.was.not.installed.in.keystore=证书回复未安装在密钥库中
+Certificate.was.added.to.keystore=证书已添加到密钥库中
+Certificate.was.not.added.to.keystore=证书未添加到密钥库中
+.Storing.ksfname.=[正在存储{0}]
+alias.has.no.public.key.certificate.={0}没有公共密钥 (证书)
+Cannot.derive.signature.algorithm=无法派生签名算法
+Alias.alias.does.not.exist=别名 <{0}> 不存在
+Alias.alias.has.no.certificate=别名 <{0}> 没有证书
+groupname.keysize.coexist=无法同时指定 -groupname 和 -keysize
+deprecate.keysize.for.ec=为生成 EC 密钥指定 -keysize 已过时,请改为使用 "-groupname %s"。
+Key.pair.not.generated.alias.alias.already.exists=未生成密钥对, 别名 <{0}> 已经存在
+size.bit.alg=%1$d 位 %2$s
+Generating.full.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.days.for=正在为 {3} 生成有效期为 {2} 天的 {0} 密钥对和自签名证书 ({1})\n
+Generating.full.keyAlgName.key.pair.and.a.certificate.sigAlgName.issued.by.signerAlias.with.a.validity.of.days.for=生成 {0} 密钥对和 <{2}> 颁发的证书 ({1}),有效期为 {3} 天 \n\t 对于:{4}
+Enter.key.password.for.alias.=输入 <{0}> 的密钥口令
+.RETURN.if.same.as.keystore.password.=\t(如果和密钥库口令相同, 按回车): \u0020
+Key.password.is.too.short.must.be.at.least.6.characters=密钥口令太短 - 至少必须为 6 个字符
+Too.many.failures.key.not.added.to.keystore=故障太多 - 密钥未添加到密钥库中
+Destination.alias.dest.already.exists=目标别名 <{0}> 已经存在
+Password.is.too.short.must.be.at.least.6.characters=口令太短 - 至少必须为 6 个字符
+Too.many.failures.Key.entry.not.cloned=故障太多。未克隆密钥条目
+key.password.for.alias.=<{0}> 的密钥口令
+No.entries.from.identity.database.added=未从身份数据库中添加任何条目
+Alias.name.alias=别名: {0}
+Creation.date.keyStore.getCreationDate.alias.=创建日期: {0,date}
+alias.keyStore.getCreationDate.alias.={0}, {1,date},\u0020
+alias.={0},\u0020
+Entry.type.type.=条目类型: {0}
+Certificate.chain.length.=证书链长度:\u0020
+Certificate.i.1.=证书[{0,number,integer}]:
+Certificate.fingerprint.SHA.256.=证书指纹 (SHA-256):\u0020
+Keystore.type.=密钥库类型:\u0020
+Keystore.provider.=密钥库提供方:\u0020
+Your.keystore.contains.keyStore.size.entry=您的密钥库包含 {0,number,integer} 个条目
+Your.keystore.contains.keyStore.size.entries=您的密钥库包含 {0,number,integer} 个条目
+Failed.to.parse.input=无法解析输入
+Empty.input=空输入
+Not.X.509.certificate=非 X.509 证书
+alias.has.no.public.key={0}没有公共密钥
+alias.has.no.X.509.certificate={0}没有 X.509 证书
+New.certificate.self.signed.=新证书 (自签名):
+Reply.has.no.certificates=回复中没有证书
+Certificate.not.imported.alias.alias.already.exists=证书未导入, 别名 <{0}> 已经存在
+Input.not.an.X.509.certificate=所输入的不是 X.509 证书
+Certificate.already.exists.in.keystore.under.alias.trustalias.=在别名 <{0}> 之下, 证书已经存在于密钥库中
+Do.you.still.want.to.add.it.no.=是否仍要添加? [否]: \u0020
+Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.=在别名 <{0}> 之下, 证书已经存在于系统范围的 CA 密钥库中
+Do.you.still.want.to.add.it.to.your.own.keystore.no.=是否仍要将它添加到自己的密钥库? [否]: \u0020
+Trust.this.certificate.no.=是否信任此证书? [否]: \u0020
+New.prompt.=新{0}:\u0020
+Passwords.must.differ=口令不能相同
+Re.enter.new.prompt.=重新输入新{0}:\u0020
+Re.enter.password.=再次输入口令:\u0020
+Re.enter.new.password.=再次输入新口令:\u0020
+They.don.t.match.Try.again=它们不匹配。请重试
+Enter.prompt.alias.name.=输入{0}别名: \u0020
+Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.=导入新的别名\t(按回车以取消对此条目的导入): \u0020
+Enter.alias.name.=输入别名: \u0020
+.RETURN.if.same.as.for.otherAlias.=\t(如果和 <{0}> 相同, 则按回车)
+enter.dname.components=输入唯一判别名。提供单个点 (.) 以将子组件留空,或按 ENTER 以使用大括号中的默认值。
+What.is.your.first.and.last.name.=您的名字与姓氏是什么?
+What.is.the.name.of.your.organizational.unit.=您的组织单位名称是什么?
+What.is.the.name.of.your.organization.=您的组织名称是什么?
+What.is.the.name.of.your.City.or.Locality.=您所在的城市或区域名称是什么?
+What.is.the.name.of.your.State.or.Province.=您所在的省/市/自治区名称是什么?
+What.is.the.two.letter.country.code.for.this.unit.=该单位的双字母国家/地区代码是什么?
+no.field.in.dname=必须至少提供一个字段。请再次输入。
+Is.name.correct.={0}是否正确?
+no=否
+yes=是
+y=y
+.defaultValue.=\u0020 [{0}]: \u0020
+Alias.alias.has.no.key=别名 <{0}> 没有密钥
+Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key=别名 <{0}> 引用了不属于私有密钥条目的条目类型。-keyclone 命令仅支持对私有密钥条目的克隆
+
+.WARNING.WARNING.WARNING.=***************** WARNING WARNING WARNING *****************
+Signer.d.=签名者 #%d:
+Certificate.d.=证书 #%d:
+Timestamp.=时间戳:
+Certificate.owner.=证书所有者:\u0020
+Not.a.signed.jar.file=不是已签名的 jar 文件
+No.certificate.from.the.SSL.server=没有来自 SSL 服务器的证书
+
+.The.integrity.of.the.information.stored.in.your.keystore.=* 存储在您的密钥库中的信息的完整性 *\n* 尚未经过验证! 为了验证其完整性, *\n* 必须提供密钥库口令。 *
+.The.integrity.of.the.information.stored.in.the.srckeystore.=* 存储在 srckeystore 中的信息的完整性*\n* 尚未经过验证! 为了验证其完整性, *\n* 必须提供源密钥库口令。 *
+
+Certificate.reply.does.not.contain.public.key.for.alias.=证书回复中不包含 <{0}> 的公共密钥
+Incomplete.certificate.chain.in.reply=回复中的证书链不完整
+Top.level.certificate.in.reply.=回复中的顶级证书:\n
+.is.not.trusted.=... 是不可信的。
+Install.reply.anyway.no.=是否仍要安装回复? [否]: \u0020
+Public.keys.in.reply.and.keystore.don.t.match=回复中的公共密钥与密钥库不匹配
+Certificate.reply.and.certificate.in.keystore.are.identical=证书回复与密钥库中的证书是相同的
+Failed.to.establish.chain.from.reply=无法从回复中建立链
+n=n
+Wrong.answer.try.again=错误的答案, 请再试一次
+Secret.key.not.generated.alias.alias.already.exists=没有生成密钥, 别名 <{0}> 已经存在
+Please.provide.keysize.for.secret.key.generation=请提供 -keysize 以生成密钥
+
+warning.not.verified.make.sure.keystore.is.correct=警告: 未验证。请确保密钥库是正确的。
+warning.not.verified.make.sure.keystore.is.correct.or.specify.trustcacerts=警告:未验证。请确保密钥库是正确的,或者指定 -trustcacerts。
+
+Extensions.=扩展:\u0020
+.Empty.value.=(空值)
+Extension.Request.=扩展请求:
+Unknown.keyUsage.type.=未知 keyUsage 类型:\u0020
+Unknown.extendedkeyUsage.type.=未知 extendedkeyUsage 类型:\u0020
+Unknown.AccessDescription.type.=未知 AccessDescription 类型:\u0020
+Unrecognized.GeneralName.type.=无法识别的 GeneralName 类型:\u0020
+This.extension.cannot.be.marked.as.critical.=无法将此扩展标记为“严重”。
+Odd.number.of.hex.digits.found.=找到奇数个十六进制数字:\u0020
+Unknown.extension.type.=未知扩展类型:\u0020
+command.{0}.is.ambiguous.=命令{0}不明确:
+# 8171319: keytool should print out warnings when reading or
+# generating cert/cert req using weak algorithms
+the.certificate.request=证书请求
+the.issuer=发布者
+the.generated.secretkey=生成的密钥
+the.generated.certificate=生成的证书
+the.generated.crl=生成的 CRL
+the.generated.certificate.request=生成的证书请求
+the.certificate=证书
+the.crl=CRL
+the.tsa.certificate=TSA 证书
+the.input=输入
+reply=回复
+one.in.many=%1$s #%2$d/%3$d
+one.in.many1=%1$s #%2$d
+one.in.many2=签名者 #%2$d 的 %1$s
+one.in.many3=签名者 #%3$d 的 %1$s #%2$d
+alias.in.cacerts=cacerts 中的发布者 <%s>
+alias.in.keystore=发布者 <%s>
+with.weak=%s (弱)
+with.disabled=%s(禁用)
+key.bit=%s 密钥
+key.bit.weak=%s 密钥(弱)
+key.bit.disabled=%s 密钥(已禁用)
+.PATTERN.printX509Cert.with.weak=所有者: {0}\n发布者: {1}\n序列号: {2}\n生效时间: {3}, 失效时间: {4}\n证书指纹:\n\t SHA1: {5}\n\t SHA256: {6}\n签名算法名称: {7}\n主体公共密钥算法: {8}\n版本: {9}
+PKCS.10.with.weak=PKCS #10 证书请求 (版本 1.0)\n主体: %1$s\n格式: %2$s\n公共密钥: %3$s\n签名算法: %4$s\n
+verified.by.s.in.s.weak=由 %2$s 中的 %1$s 以 %3$s 验证
+whose.sigalg.disabled=%1$s 使用的 %2$s 签名算法被视为存在安全风险而且被禁用。
+whose.sigalg.usagesignedjar=%1$s 使用的 %2$s 签名算法被视为存在安全风险,无法用于在 %3$s 后对 JAR 进行签名。
+Unable.to.parse.denyAfter.string.in.exception.message=无法解析异常错误消息中的 denyAfter 日期字符串
+whose.sigalg.weak=%1$s 使用的 %2$s 签名算法存在安全风险。
+whose.key.disabled=%1$s 使用的 %2$s 被视为存在安全风险而且被禁用。
+whose.key.weak=%1$s 使用的 %2$s 被视为存在安全风险。在将来的更新中将禁用它。
+jks.storetype.warning=%1$s 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
+migrate.keystore.warning=已将 "%1$s" 迁移到 %4$s。将 %2$s 密钥库作为 "%3$s" 进行了备份。
+backup.keystore.warning=已将原始密钥库 "%1$s" 备份为 "%3$s"...
+importing.keystore.status=正在将密钥库 %1$s 导入到 %2$s...
+keyalg.option.missing.error=必须指定 -keyalg 选项。
+showinfo.no.option=-showinfo 缺少选项。请尝试使用 "keytool -showinfo -tls"。
diff --git a/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_zh_TW.properties b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_zh_TW.properties
new file mode 100644
index 0000000000000..6e2c64e900fed
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/tools/keytool/resources/keytool_zh_TW.properties
@@ -0,0 +1,302 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+NEWLINE=\n
+STAR=*******************************************
+STARNN=*******************************************\n\n
+# keytool: Help part
+.OPTION.=\u0020[OPTION]...
+Options.=選項:
+option.1.set.twice=%s 選項已指定多次。將忽略最後一個選項以外的其他所有選項。
+multiple.commands.1.2=只允許一個命令: 指定了 %1$s 和 %2$s 兩者。
+Use.keytool.help.for.all.available.commands=使用 "keytool -help" 取得所有可用的命令
+Key.and.Certificate.Management.Tool=金鑰與憑證管理工具
+Commands.=命令:
+Use.keytool.command.name.help.for.usage.of.command.name=使用 "keytool -command_name -help" 取得 command_name 的用法。\n使用 -conf 選項指定預先設定的選項檔案。
+# keytool: help: commands
+Generates.a.certificate.request=產生憑證要求
+Changes.an.entry.s.alias=變更項目的別名
+Deletes.an.entry=刪除項目
+Exports.certificate=匯出憑證
+Generates.a.key.pair=產生金鑰組
+Generates.a.secret.key=產生秘密金鑰
+Generates.certificate.from.a.certificate.request=從憑證要求產生憑證
+Generates.CRL=產生 CRL
+Generated.keyAlgName.secret.key=已產生 {0} 秘密金鑰
+Generated.keysize.bit.keyAlgName.secret.key=已產生 {0} 位元 {1} 秘密金鑰
+Imports.entries.from.a.JDK.1.1.x.style.identity.database=從 JDK 1.1.x-style 識別資料庫匯入項目
+Imports.a.certificate.or.a.certificate.chain=匯入憑證或憑證鏈
+Imports.a.password=匯入密碼
+Imports.one.or.all.entries.from.another.keystore=從其他金鑰儲存庫匯入一個或全部項目
+Clones.a.key.entry=複製金鑰項目
+Changes.the.key.password.of.an.entry=變更項目的金鑰密碼
+Lists.entries.in.a.keystore=列示金鑰儲存庫中的項目
+Prints.the.content.of.a.certificate=列印憑證的內容
+Prints.the.content.of.a.certificate.request=列印憑證要求的內容
+Prints.the.content.of.a.CRL.file=列印 CRL 檔案的內容
+Generates.a.self.signed.certificate=產生自行簽署的憑證
+Changes.the.store.password.of.a.keystore=變更金鑰儲存庫的儲存密碼
+# keytool: help: options
+alias.name.of.the.entry.to.process=要處理項目的別名名稱
+destination.alias=目的地別名
+destination.key.password=目的地金鑰密碼
+destination.keystore.name=目的地金鑰儲存庫名稱
+destination.keystore.password.protected=目的地金鑰儲存庫密碼保護
+destination.keystore.provider.name=目的地金鑰儲存庫提供者名稱
+destination.keystore.password=目的地金鑰儲存庫密碼
+destination.keystore.type=目的地金鑰儲存庫類型
+distinguished.name=辨別名稱
+X.509.extension=X.509 擴充套件
+output.file.name=輸出檔案名稱
+input.file.name=輸入檔案名稱
+key.algorithm.name=金鑰演算法名稱
+key.password=金鑰密碼
+key.bit.size=金鑰位元大小
+keystore.name=金鑰儲存庫名稱
+access.the.cacerts.keystore=存取 cacerts 金鑰儲存庫
+warning.cacerts.option=警告: 使用 -cacerts 選項存取 cacerts 金鑰儲存庫
+new.password=新密碼
+do.not.prompt=不要提示
+password.through.protected.mechanism=經由保護機制的密碼
+# The following 2 values should span 2 lines, the first for the
+# option itself, the second for its -providerArg value.
+addprovider.option=使用名稱新增安全提供者 (例如 SunPKCS11)\n設定 -addprovider 引數
+provider.class.option=使用完整類別名稱新增安全提供者\n設定 -providerclass 引數
+
+provider.name=提供者名稱
+provider.classpath=提供者類別路徑
+output.in.RFC.style=以 RFC 樣式輸出
+signature.algorithm.name=簽章演算法名稱
+source.alias=來源別名
+source.key.password=來源金鑰密碼
+source.keystore.name=來源金鑰儲存庫名稱
+source.keystore.password.protected=來源金鑰儲存庫密碼保護
+source.keystore.provider.name=來源金鑰儲存庫提供者名稱
+source.keystore.password=來源金鑰儲存庫密碼
+source.keystore.type=來源金鑰儲存庫類型
+SSL.server.host.and.port=SSL 伺服器主機與連接埠
+signed.jar.file=簽署的 jar 檔案
+certificate.validity.start.date.time=憑證有效性開始日期/時間
+keystore.password=金鑰儲存庫密碼
+keystore.type=金鑰儲存庫類型
+trust.certificates.from.cacerts=來自 cacerts 的信任憑證
+verbose.output=詳細資訊輸出
+validity.number.of.days=有效性日數
+Serial.ID.of.cert.to.revoke=要撤銷憑證的序列 ID
+# keytool: Running part
+keytool.error.=金鑰工具錯誤:\u0020
+Illegal.option.=無效的選項:
+Illegal.value.=無效值:\u0020
+Unknown.password.type.=不明的密碼類型:\u0020
+Cannot.find.environment.variable.=找不到環境變數:\u0020
+Cannot.find.file.=找不到檔案:\u0020
+Command.option.flag.needs.an.argument.=命令選項 {0} 需要引數。
+Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.=警告: PKCS12 金鑰儲存庫不支援不同的儲存庫和金鑰密碼。忽略使用者指定的 {0} 值。
+the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option=-keystore 或 -storetype 選項不能與 -cacerts 選項一起使用
+.keystore.must.be.NONE.if.storetype.is.{0}=如果 -storetype 為 {0},則 -keystore 必須為 NONE
+Too.many.retries.program.terminated=重試次數太多,程式已終止
+.storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}=如果 -storetype 為 {0},則不支援 -storepasswd 和 -keypasswd 命令
+.keypasswd.commands.not.supported.if.storetype.is.PKCS12=如果 -storetype 為 PKCS12,則不支援 -keypasswd 命令
+.keypass.and.new.can.not.be.specified.if.storetype.is.{0}=如果 -storetype 為 {0},則不能指定 -keypass 和 -new
+if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified=如果指定 -protected,則不能指定 -storepass、-keypass 和 -new
+if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified=如果指定 -srcprotected,則不能指定 -srcstorepass 和 -srckeypass
+if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified=如果金鑰儲存庫不受密碼保護,則不能指定 -storepass、-keypass 和 -new
+if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified=如果來源金鑰儲存庫不受密碼保護,則不能指定 -srcstorepass 和 -srckeypass
+Illegal.startdate.value=無效的 startdate 值
+Validity.must.be.greater.than.zero=有效性必須大於零
+provclass.not.a.provider=%s 不是一個提供者
+provider.name.not.found=找不到名稱為 "%s" 的提供者
+provider.class.not.found=找不到提供者 "%s"
+Usage.error.no.command.provided=用法錯誤: 未提供命令
+Source.keystore.file.exists.but.is.empty.=來源金鑰儲存庫檔案存在,但為空:\u0020
+Please.specify.srckeystore=請指定 -srckeystore
+Must.not.specify.both.v.and.rfc.with.list.command=\u0020'list' 命令不能同時指定 -v 及 -rfc
+Key.password.must.be.at.least.6.characters=金鑰密碼必須至少為 6 個字元
+New.password.must.be.at.least.6.characters=新的密碼必須至少為 6 個字元
+Keystore.file.exists.but.is.empty.=金鑰儲存庫檔案存在,但為空白:\u0020
+Keystore.file.does.not.exist.=金鑰儲存庫檔案不存在:\u0020
+Must.specify.destination.alias=必須指定目的地別名
+Must.specify.alias=必須指定別名
+Keystore.password.must.be.at.least.6.characters=金鑰儲存庫密碼必須至少為 6 個字元
+Enter.the.password.to.be.stored.=輸入要儲存的密碼: \u0020
+Enter.keystore.password.=輸入金鑰儲存庫密碼: \u0020
+Enter.source.keystore.password.=請輸入來源金鑰儲存庫密碼:\u0020
+Enter.destination.keystore.password.=請輸入目的地金鑰儲存庫密碼:\u0020
+Keystore.password.is.too.short.must.be.at.least.6.characters=金鑰儲存庫密碼太短 - 必須至少為 6 個字元
+Unknown.Entry.Type=不明的項目類型
+Too.many.failures.Alias.not.changed=太多錯誤。未變更別名
+Entry.for.alias.alias.successfully.imported.=已成功匯入別名 {0} 的項目。
+Entry.for.alias.alias.not.imported.=未匯入別名 {0} 的項目。
+Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.=匯入別名 {0} 的項目時出現問題: {1}。\n未匯入別名 {0} 的項目。
+Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled=已完成匯入命令: 成功匯入 {0} 個項目,{1} 個項目失敗或已取消
+Warning.Overwriting.existing.alias.alias.in.destination.keystore=警告: 正在覆寫目的地金鑰儲存庫中的現有別名 {0}
+Existing.entry.alias.alias.exists.overwrite.no.=現有項目別名 {0} 存在,是否覆寫?[否]: \u0020
+Too.many.failures.try.later=太多錯誤 - 請稍後再試
+Certification.request.stored.in.file.filename.=認證要求儲存在檔案 <{0}>
+Submit.this.to.your.CA=將此送出至您的 CA
+if.alias.not.specified.destalias.and.srckeypass.must.not.be.specified=如果未指定別名,則不能指定 destalias 和 srckeypass
+The.destination.pkcs12.keystore.has.different.storepass.and.keypass.Please.retry.with.destkeypass.specified.=目的地 pkcs12 金鑰儲存庫的 storepass 和 keypass 不同。請重新以 -destkeypass 指定。
+Certificate.stored.in.file.filename.=憑證儲存在檔案 <{0}>
+Certificate.reply.was.installed.in.keystore=憑證回覆已安裝在金鑰儲存庫中
+Certificate.reply.was.not.installed.in.keystore=憑證回覆未安裝在金鑰儲存庫中
+Certificate.was.added.to.keystore=憑證已新增至金鑰儲存庫中
+Certificate.was.not.added.to.keystore=憑證未新增至金鑰儲存庫中
+.Storing.ksfname.=[儲存 {0}]
+alias.has.no.public.key.certificate.={0} 沒有公開金鑰 (憑證)
+Cannot.derive.signature.algorithm=無法取得簽章演算法
+Alias.alias.does.not.exist=別名 <{0}> 不存在
+Alias.alias.has.no.certificate=別名 <{0}> 沒有憑證
+Key.pair.not.generated.alias.alias.already.exists=沒有建立金鑰組,別名 <{0}> 已經存在
+Generating.keysize.bit.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.validality.days.for=針對 {4} 產生有效期 {3} 天的 {0} 位元 {1} 金鑰組以及自我簽署憑證 ({2})\n\t
+Enter.key.password.for.alias.=輸入 <{0}> 的金鑰密碼
+.RETURN.if.same.as.keystore.password.=\t(RETURN 如果和金鑰儲存庫密碼相同): \u0020
+Key.password.is.too.short.must.be.at.least.6.characters=金鑰密碼太短 - 必須至少為 6 個字元
+Too.many.failures.key.not.added.to.keystore=太多錯誤 - 金鑰未新增至金鑰儲存庫
+Destination.alias.dest.already.exists=目的地別名 <{0}> 已經存在
+Password.is.too.short.must.be.at.least.6.characters=密碼太短 - 必須至少為 6 個字元
+Too.many.failures.Key.entry.not.cloned=太多錯誤。未複製金鑰項目
+key.password.for.alias.=<{0}> 的金鑰密碼
+Keystore.entry.for.id.getName.already.exists=<{0}> 的金鑰儲存庫項目已經存在
+Creating.keystore.entry.for.id.getName.=建立 <{0}> 的金鑰儲存庫項目...
+No.entries.from.identity.database.added=沒有新增來自識別資料庫的項目
+Alias.name.alias=別名名稱: {0}
+Creation.date.keyStore.getCreationDate.alias.=建立日期: {0,date}
+alias.keyStore.getCreationDate.alias.={0}, {1,date},\u0020
+alias.={0},\u0020
+Entry.type.type.=項目類型: {0}
+Certificate.chain.length.=憑證鏈長度:\u0020
+Certificate.i.1.=憑證 [{0,number,integer}]:
+Certificate.fingerprint.SHA.256.=憑證指紋 (SHA-256):\u0020
+Keystore.type.=金鑰儲存庫類型:\u0020
+Keystore.provider.=金鑰儲存庫提供者:\u0020
+Your.keystore.contains.keyStore.size.entry=您的金鑰儲存庫包含 {0,number,integer} 項目
+Your.keystore.contains.keyStore.size.entries=您的金鑰儲存庫包含 {0,number,integer} 項目
+Failed.to.parse.input=無法剖析輸入
+Empty.input=空輸入
+Not.X.509.certificate=非 X.509 憑證
+alias.has.no.public.key={0} 無公開金鑰
+alias.has.no.X.509.certificate={0} 無 X.509 憑證
+New.certificate.self.signed.=新憑證 (自我簽署):\u0020
+Reply.has.no.certificates=回覆不含憑證
+Certificate.not.imported.alias.alias.already.exists=憑證未輸入,別名 <{0}> 已經存在
+Input.not.an.X.509.certificate=輸入的不是 X.509 憑證
+Certificate.already.exists.in.keystore.under.alias.trustalias.=金鑰儲存庫中的 <{0}> 別名之下,憑證已經存在
+Do.you.still.want.to.add.it.no.=您仍然想要將之新增嗎? [否]: \u0020
+Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.=整個系統 CA 金鑰儲存庫中的 <{0}> 別名之下,憑證已經存在
+Do.you.still.want.to.add.it.to.your.own.keystore.no.=您仍然想要將之新增至自己的金鑰儲存庫嗎? [否]: \u0020
+Trust.this.certificate.no.=信任這個憑證? [否]: \u0020
+YES=是
+New.prompt.=新 {0}:\u0020
+Passwords.must.differ=必須是不同的密碼
+Re.enter.new.prompt.=重新輸入新 {0}:\u0020
+Re.enter.password.=重新輸入密碼:
+Re.enter.new.password.=重新輸入新密碼:\u0020
+They.don.t.match.Try.again=它們不相符。請重試
+Enter.prompt.alias.name.=輸入 {0} 別名名稱: \u0020
+Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.=請輸入新的別名名稱\t(RETURN 以取消匯入此項目):
+Enter.alias.name.=輸入別名名稱: \u0020
+.RETURN.if.same.as.for.otherAlias.=\t(RETURN 如果和 <{0}> 的相同)
+What.is.your.first.and.last.name.=您的名字與姓氏為何?
+What.is.the.name.of.your.organizational.unit.=您的組織單位名稱為何?
+What.is.the.name.of.your.organization.=您的組織名稱為何?
+What.is.the.name.of.your.City.or.Locality.=您所在的城市或地區名稱為何?
+What.is.the.name.of.your.State.or.Province.=您所在的州及省份名稱為何?
+What.is.the.two.letter.country.code.for.this.unit.=此單位的兩個字母國別代碼為何?
+Is.name.correct.={0} 正確嗎?
+no=否
+yes=是
+y=y
+.defaultValue.=\u0020 [{0}]: \u0020
+Alias.alias.has.no.key=別名 <{0}> 沒有金鑰
+Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key=別名 <{0}> 所參照的項目不是私密金鑰類型。-keyclone 命令僅支援私密金鑰項目的複製
+
+.WARNING.WARNING.WARNING.=***************** WARNING WARNING WARNING *****************
+Signer.d.=簽署者 #%d:
+Timestamp.=時戳:
+Signature.=簽章:
+CRLs.=CRL:
+Certificate.owner.=憑證擁有者:\u0020
+Not.a.signed.jar.file=不是簽署的 jar 檔案
+No.certificate.from.the.SSL.server=沒有來自 SSL 伺服器的憑證
+
+.The.integrity.of.the.information.stored.in.your.keystore.=* 尚未驗證儲存於金鑰儲存庫中資訊 *\n* 的完整性!若要驗證其完整性, *\n* 您必須提供您的金鑰儲存庫密碼。 *
+.The.integrity.of.the.information.stored.in.the.srckeystore.=* 尚未驗證儲存於 srckeystore 中資訊 *\n* 的完整性!若要驗證其完整性,您必須 *\n* 提供 srckeystore 密碼。 *
+
+Certificate.reply.does.not.contain.public.key.for.alias.=憑證回覆並未包含 <{0}> 的公開金鑰
+Incomplete.certificate.chain.in.reply=回覆時的憑證鏈不完整
+Certificate.chain.in.reply.does.not.verify.=回覆時的憑證鏈未驗證:\u0020
+Top.level.certificate.in.reply.=回覆時的最高級憑證:\n
+.is.not.trusted.=... 是不被信任的。
+Install.reply.anyway.no.=還是要安裝回覆? [否]: \u0020
+NO=否
+Public.keys.in.reply.and.keystore.don.t.match=回覆時的公開金鑰與金鑰儲存庫不符
+Certificate.reply.and.certificate.in.keystore.are.identical=憑證回覆與金鑰儲存庫中的憑證是相同的
+Failed.to.establish.chain.from.reply=無法從回覆中將鏈建立起來
+n=n
+Wrong.answer.try.again=錯誤的答案,請再試一次
+Secret.key.not.generated.alias.alias.already.exists=未產生秘密金鑰,別名 <{0}> 已存在
+Please.provide.keysize.for.secret.key.generation=請提供 -keysize 以產生秘密金鑰
+
+warning.not.verified.make.sure.keystore.is.correct=警告: 未驗證。請確定 -keystore 正確。
+
+Extensions.=擴充套件:\u0020
+.Empty.value.=(空白值)
+Extension.Request.=擴充套件要求:
+Unknown.keyUsage.type.=不明的 keyUsage 類型:\u0020
+Unknown.extendedkeyUsage.type.=不明的 extendedkeyUsage 類型:\u0020
+Unknown.AccessDescription.type.=不明的 AccessDescription 類型:\u0020
+Unrecognized.GeneralName.type.=無法辨識的 GeneralName 類型:\u0020
+This.extension.cannot.be.marked.as.critical.=此擴充套件無法標示為關鍵。
+Odd.number.of.hex.digits.found.=找到十六進位數字的奇數:\u0020
+Unknown.extension.type.=不明的擴充套件類型:\u0020
+command.{0}.is.ambiguous.=命令 {0} 不明確:
+# 8171319: keytool should print out warnings when reading or
+# generating cert/cert req using weak algorithms
+the.certificate.request=憑證要求
+the.issuer=發行人
+the.generated.certificate=產生的憑證
+the.generated.crl=產生的 CRL
+the.generated.certificate.request=產生的憑證要求
+the.certificate=憑證
+the.crl=CRL
+the.tsa.certificate=TSA 憑證
+the.input=輸入
+reply=回覆
+one.in.many=%1$s #%2$d / %3$d
+alias.in.cacerts=cacerts 中的發行人 <%s>
+alias.in.keystore=發行人 <%s>
+with.weak=%s (低強度)
+key.bit=%1$d 位元的 %2$s 金鑰
+key.bit.weak=%1$d 位元的 %2$s 金鑰 (低強度)
+unknown.size.1=%s 金鑰大小不明
+.PATTERN.printX509Cert.with.weak=擁有者: {0}\n發行人: {1}\n序號: {2}\n有效期自: {3} 到: {4}\n憑證指紋:\n\t SHA1: {5}\n\t SHA256: {6}\n簽章演算法名稱: {7}\n主體公開金鑰演算法: {8}\n版本: {9}
+PKCS.10.with.weak=PKCS #10 憑證要求 (版本 1.0)\n主體: %1$s\n格式: %2$s\n公用金鑰: %3$s\n簽章演算法: %4$s\n
+verified.by.s.in.s.weak=由 %2$s 中的 %1$s 以 %3$s 驗證
+whose.sigalg.risk=%1$s 使用的 %2$s 簽章演算法存在安全風險。
+whose.key.risk=%1$s 使用的 %2$s 存在安全風險。
+jks.storetype.warning=%1$s 金鑰儲存庫使用專有格式。建議您使用 "keytool -importkeystore -srckeystore %2$s -destkeystore %2$s -deststoretype pkcs12" 移轉成為使用 PKCS12 (業界標準格式)。
+migrate.keystore.warning=已將 "%1$s" 移轉成為 %4$s。%2$s 金鑰儲存庫已備份為 "%3$s"。
+backup.keystore.warning=原始的金鑰儲存庫 "%1$s" 已備份為 "%3$s"...
+importing.keystore.status=正在將金鑰儲存庫 %1$s 匯入 %2$s...
diff --git a/src/java.base/share/classes/sun/security/util/AuthResources.java b/src/java.base/share/classes/sun/security/util/AuthResources.java
deleted file mode 100644
index 76c644150bd5c..0000000000000
--- a/src/java.base/share/classes/sun/security/util/AuthResources.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- * This class represents the ResourceBundle
- * for the following packages:
- *
- *
- * - com.sun.security.auth
- *
- com.sun.security.auth.login
- *
- *
- */
-public class AuthResources extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // NT principals
- {"invalid.null.input.value", "invalid null input: {0}"},
- {"NTDomainPrincipal.name", "NTDomainPrincipal: {0}"},
- {"NTNumericCredential.name", "NTNumericCredential: {0}"},
- {"Invalid.NTSid.value", "Invalid NTSid value"},
- {"NTSid.name", "NTSid: {0}"},
- {"NTSidDomainPrincipal.name", "NTSidDomainPrincipal: {0}"},
- {"NTSidGroupPrincipal.name", "NTSidGroupPrincipal: {0}"},
- {"NTSidPrimaryGroupPrincipal.name", "NTSidPrimaryGroupPrincipal: {0}"},
- {"NTSidUserPrincipal.name", "NTSidUserPrincipal: {0}"},
- {"NTUserPrincipal.name", "NTUserPrincipal: {0}"},
-
- // UnixPrincipals
- {"UnixNumericGroupPrincipal.Primary.Group.name",
- "UnixNumericGroupPrincipal [Primary Group]: {0}"},
- {"UnixNumericGroupPrincipal.Supplementary.Group.name",
- "UnixNumericGroupPrincipal [Supplementary Group]: {0}"},
- {"UnixNumericUserPrincipal.name", "UnixNumericUserPrincipal: {0}"},
- {"UnixPrincipal.name", "UnixPrincipal: {0}"},
-
- // com.sun.security.auth.login.ConfigFile
- {"Unable.to.properly.expand.config", "Unable to properly expand {0}"},
- {"extra.config.No.such.file.or.directory.",
- "{0} (No such file or directory)"},
- {"Configuration.Error.No.such.file.or.directory",
- "Configuration Error:\n\tNo such file or directory"},
- {"Configuration.Error.Invalid.control.flag.flag",
- "Configuration Error:\n\tInvalid control flag, {0}"},
- {"Configuration.Error.Can.not.specify.multiple.entries.for.appName",
- "Configuration Error:\n\tCan not specify multiple entries for {0}"},
- {"Configuration.Error.expected.expect.read.end.of.file.",
- "Configuration Error:\n\texpected [{0}], read [end of file]"},
- {"Configuration.Error.Line.line.expected.expect.found.value.",
- "Configuration Error:\n\tLine {0}: expected [{1}], found [{2}]"},
- {"Configuration.Error.Line.line.expected.expect.",
- "Configuration Error:\n\tLine {0}: expected [{1}]"},
- {"Configuration.Error.Line.line.system.property.value.expanded.to.empty.value",
- "Configuration Error:\n\tLine {0}: system property [{1}] expanded to empty value"},
-
- // com.sun.security.auth.module.JndiLoginModule
- {"username.","username: "},
- {"password.","password: "},
-
- // com.sun.security.auth.module.KeyStoreLoginModule
- {"Please.enter.keystore.information",
- "Please enter keystore information"},
- {"Keystore.alias.","Keystore alias: "},
- {"Keystore.password.","Keystore password: "},
- {"Private.key.password.optional.",
- "Private key password (optional): "},
-
- // com.sun.security.auth.module.Krb5LoginModule
- {"Kerberos.username.defUsername.",
- "Kerberos username [{0}]: "},
- {"Kerberos.password.for.username.",
- "Kerberos password for {0}: "},
- };
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/util/AuthResources_de.java b/src/java.base/share/classes/sun/security/util/AuthResources_de.java
deleted file mode 100644
index 03b919626de19..0000000000000
--- a/src/java.base/share/classes/sun/security/util/AuthResources_de.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- *
This class represents the ResourceBundle
- * for the following packages:
- *
- *
- * - com.sun.security.auth
- *
- com.sun.security.auth.login
- *
- *
- */
-public class AuthResources_de extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // NT principals
- {"invalid.null.input.value", "Ung\u00FCltige Nulleingabe: {0}"},
- {"NTDomainPrincipal.name", "NTDomainPrincipal: {0}"},
- {"NTNumericCredential.name", "NTNumericCredential: {0}"},
- {"Invalid.NTSid.value", "Ung\u00FCltiger NTSid-Wert"},
- {"NTSid.name", "NTSid: {0}"},
- {"NTSidDomainPrincipal.name", "NTSidDomainPrincipal: {0}"},
- {"NTSidGroupPrincipal.name", "NTSidGroupPrincipal: {0}"},
- {"NTSidPrimaryGroupPrincipal.name", "NTSidPrimaryGroupPrincipal: {0}"},
- {"NTSidUserPrincipal.name", "NTSidUserPrincipal: {0}"},
- {"NTUserPrincipal.name", "NTUserPrincipal: {0}"},
-
- // UnixPrincipals
- {"UnixNumericGroupPrincipal.Primary.Group.name",
- "UnixNumericGroupPrincipal [Prim\u00E4rgruppe]: {0}"},
- {"UnixNumericGroupPrincipal.Supplementary.Group.name",
- "UnixNumericGroupPrincipal [Zusatzgruppe]: {0}"},
- {"UnixNumericUserPrincipal.name", "UnixNumericUserPrincipal: {0}"},
- {"UnixPrincipal.name", "UnixPrincipal: {0}"},
-
- // com.sun.security.auth.login.ConfigFile
- {"Unable.to.properly.expand.config", "{0} kann nicht ordnungsgem\u00E4\u00DF erweitert werden"},
- {"extra.config.No.such.file.or.directory.",
- "{0} (Datei oder Verzeichnis nicht vorhanden)"},
- {"Configuration.Error.No.such.file.or.directory",
- "Konfigurationsfehler:\n\tDatei oder Verzeichnis nicht vorhanden"},
- {"Configuration.Error.Invalid.control.flag.flag",
- "Konfigurationsfehler:\n\tUng\u00FCltiges Steuerkennzeichen {0}"},
- {"Configuration.Error.Can.not.specify.multiple.entries.for.appName",
- "Konfigurationsfehler:\n\tEs k\u00F6nnen nicht mehrere Angaben f\u00FCr {0} gemacht werden."},
- {"Configuration.Error.expected.expect.read.end.of.file.",
- "Konfigurationsfehler:\n\t[{0}] erwartet, [Dateiende] gelesen"},
- {"Configuration.Error.Line.line.expected.expect.found.value.",
- "Konfigurationsfehler:\n\tZeile {0}: [{1}] erwartet, [{2}] gefunden"},
- {"Configuration.Error.Line.line.expected.expect.",
- "Konfigurationsfehler:\n\tZeile {0}: [{1}] erwartet"},
- {"Configuration.Error.Line.line.system.property.value.expanded.to.empty.value",
- "Konfigurationsfehler:\n\tZeile {0}: Systemeigenschaft [{1}] auf leeren Wert erweitert"},
-
- // com.sun.security.auth.module.JndiLoginModule
- {"username.","Benutzername: "},
- {"password.","Kennwort: "},
-
- // com.sun.security.auth.module.KeyStoreLoginModule
- {"Please.enter.keystore.information",
- "Geben Sie die Keystore-Informationen ein"},
- {"Keystore.alias.","Keystore-Alias: "},
- {"Keystore.password.","Keystore-Kennwort: "},
- {"Private.key.password.optional.",
- "Private-Key-Kennwort (optional): "},
-
- // com.sun.security.auth.module.Krb5LoginModule
- {"Kerberos.username.defUsername.",
- "Kerberos-Benutzername [{0}]: "},
- {"Kerberos.password.for.username.",
- "Kerberos-Kennwort f\u00FCr {0}: "},
- };
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/util/AuthResources_es.java b/src/java.base/share/classes/sun/security/util/AuthResources_es.java
deleted file mode 100644
index 6060f8b565d60..0000000000000
--- a/src/java.base/share/classes/sun/security/util/AuthResources_es.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- *
This class represents the ResourceBundle
- * for the following packages:
- *
- *
- * - com.sun.security.auth
- *
- com.sun.security.auth.login
- *
- *
- */
-public class AuthResources_es extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // NT principals
- {"invalid.null.input.value", "entrada nula no v\u00E1lida: {0}"},
- {"NTDomainPrincipal.name", "NTDomainPrincipal: {0}"},
- {"NTNumericCredential.name", "NTNumericCredential: {0}"},
- {"Invalid.NTSid.value", "Valor de NTSid no v\u00E1lido"},
- {"NTSid.name", "NTSid: {0}"},
- {"NTSidDomainPrincipal.name", "NTSidDomainPrincipal: {0}"},
- {"NTSidGroupPrincipal.name", "NTSidGroupPrincipal: {0}"},
- {"NTSidPrimaryGroupPrincipal.name", "NTSidPrimaryGroupPrincipal: {0}"},
- {"NTSidUserPrincipal.name", "NTSidUserPrincipal: {0}"},
- {"NTUserPrincipal.name", "NTUserPrincipal: {0}"},
-
- // UnixPrincipals
- {"UnixNumericGroupPrincipal.Primary.Group.name",
- "UnixNumericGroupPrincipal [Grupo Principal] {0}"},
- {"UnixNumericGroupPrincipal.Supplementary.Group.name",
- "UnixNumericGroupPrincipal [Grupo Adicional] {0}"},
- {"UnixNumericUserPrincipal.name", "UnixNumericUserPrincipal: {0}"},
- {"UnixPrincipal.name", "UnixPrincipal: {0}"},
-
- // com.sun.security.auth.login.ConfigFile
- {"Unable.to.properly.expand.config", "No se ha podido ampliar correctamente {0}"},
- {"extra.config.No.such.file.or.directory.",
- "{0} (No existe tal archivo o directorio)"},
- {"Configuration.Error.No.such.file.or.directory",
- "Error de Configuraci\u00F3n:\n\tNo existe tal archivo o directorio"},
- {"Configuration.Error.Invalid.control.flag.flag",
- "Error de Configuraci\u00F3n:\n\tIndicador de control no v\u00E1lido, {0}"},
- {"Configuration.Error.Can.not.specify.multiple.entries.for.appName",
- "Error de Configuraci\u00F3n:\n\tNo se pueden especificar varias entradas para {0}"},
- {"Configuration.Error.expected.expect.read.end.of.file.",
- "Error de configuraci\u00F3n:\n\tse esperaba [{0}], se ha le\u00EDdo [final de archivo]"},
- {"Configuration.Error.Line.line.expected.expect.found.value.",
- "Error de configuraci\u00F3n:\n\tL\u00EDnea {0}: se esperaba [{1}], se ha encontrado [{2}]"},
- {"Configuration.Error.Line.line.expected.expect.",
- "Error de configuraci\u00F3n:\n\tL\u00EDnea {0}: se esperaba [{1}]"},
- {"Configuration.Error.Line.line.system.property.value.expanded.to.empty.value",
- "Error de configuraci\u00F3n:\n\tL\u00EDnea {0}: propiedad de sistema [{1}] ampliada a valor vac\u00EDo"},
-
- // com.sun.security.auth.module.JndiLoginModule
- {"username.","nombre de usuario: "},
- {"password.","contrase\u00F1a: "},
-
- // com.sun.security.auth.module.KeyStoreLoginModule
- {"Please.enter.keystore.information",
- "Introduzca la informaci\u00F3n del almac\u00E9n de claves"},
- {"Keystore.alias.","Alias de Almac\u00E9n de Claves: "},
- {"Keystore.password.","Contrase\u00F1a de Almac\u00E9n de Claves: "},
- {"Private.key.password.optional.",
- "Contrase\u00F1a de Clave Privada (opcional): "},
-
- // com.sun.security.auth.module.Krb5LoginModule
- {"Kerberos.username.defUsername.",
- "Nombre de usuario de Kerberos [{0}]: "},
- {"Kerberos.password.for.username.",
- "Contrase\u00F1a de Kerberos de {0}: "},
- };
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/util/AuthResources_fr.java b/src/java.base/share/classes/sun/security/util/AuthResources_fr.java
deleted file mode 100644
index 4f9962633cdbd..0000000000000
--- a/src/java.base/share/classes/sun/security/util/AuthResources_fr.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- *
This class represents the ResourceBundle
- * for the following packages:
- *
- *
- * - com.sun.security.auth
- *
- com.sun.security.auth.login
- *
- *
- */
-public class AuthResources_fr extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // NT principals
- {"invalid.null.input.value", "entr\u00E9e NULL non valide : {0}"},
- {"NTDomainPrincipal.name", "NTDomainPrincipal : {0}"},
- {"NTNumericCredential.name", "NTNumericCredential : {0}"},
- {"Invalid.NTSid.value", "Valeur de NTSid non valide"},
- {"NTSid.name", "NTSid : {0}"},
- {"NTSidDomainPrincipal.name", "NTSidDomainPrincipal : {0}"},
- {"NTSidGroupPrincipal.name", "NTSidGroupPrincipal : {0}"},
- {"NTSidPrimaryGroupPrincipal.name", "NTSidPrimaryGroupPrincipal : {0}"},
- {"NTSidUserPrincipal.name", "NTSidUserPrincipal : {0}"},
- {"NTUserPrincipal.name", "NTUserPrincipal : {0}"},
-
- // UnixPrincipals
- {"UnixNumericGroupPrincipal.Primary.Group.name",
- "UnixNumericGroupPrincipal [groupe principal] : {0}"},
- {"UnixNumericGroupPrincipal.Supplementary.Group.name",
- "UnixNumericGroupPrincipal [groupe suppl\u00E9mentaire] : {0}"},
- {"UnixNumericUserPrincipal.name", "UnixNumericUserPrincipal : {0}"},
- {"UnixPrincipal.name", "UnixPrincipal : {0}"},
-
- // com.sun.security.auth.login.ConfigFile
- {"Unable.to.properly.expand.config", "Impossible de d\u00E9velopper {0} correctement"},
- {"extra.config.No.such.file.or.directory.",
- "{0} (fichier ou r\u00E9pertoire inexistant)"},
- {"Configuration.Error.No.such.file.or.directory",
- "Erreur de configuration :\n\tCe fichier ou r\u00E9pertoire n'existe pas"},
- {"Configuration.Error.Invalid.control.flag.flag",
- "Erreur de configuration :\n\tIndicateur de contr\u00F4le non valide, {0}"},
- {"Configuration.Error.Can.not.specify.multiple.entries.for.appName",
- "Erreur de configuration :\n\tImpossible de sp\u00E9cifier des entr\u00E9es multiples pour {0}"},
- {"Configuration.Error.expected.expect.read.end.of.file.",
- "Erreur de configuration :\n\tAttendu : [{0}], lu : [fin de fichier]"},
- {"Configuration.Error.Line.line.expected.expect.found.value.",
- "Erreur de configuration :\n\tLigne {0} : attendu [{1}], trouv\u00E9 [{2}]"},
- {"Configuration.Error.Line.line.expected.expect.",
- "Erreur de configuration :\n\tLigne {0} : attendu [{1}]"},
- {"Configuration.Error.Line.line.system.property.value.expanded.to.empty.value",
- "Erreur de configuration :\n\tLigne {0} : propri\u00E9t\u00E9 syst\u00E8me [{1}] d\u00E9velopp\u00E9e en valeur vide"},
-
- // com.sun.security.auth.module.JndiLoginModule
- {"username.","nom utilisateur : "},
- {"password.","mot de passe : "},
-
- // com.sun.security.auth.module.KeyStoreLoginModule
- {"Please.enter.keystore.information",
- "Entrez les informations du fichier de cl\u00E9s"},
- {"Keystore.alias.","Alias du fichier de cl\u00E9s : "},
- {"Keystore.password.","Mot de passe pour fichier de cl\u00E9s : "},
- {"Private.key.password.optional.",
- "Mot de passe de la cl\u00E9 priv\u00E9e (facultatif) : "},
-
- // com.sun.security.auth.module.Krb5LoginModule
- {"Kerberos.username.defUsername.",
- "Nom utilisateur Kerberos [{0}] : "},
- {"Kerberos.password.for.username.",
- "Mot de passe Kerberos pour {0} : "},
- };
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/util/AuthResources_it.java b/src/java.base/share/classes/sun/security/util/AuthResources_it.java
deleted file mode 100644
index cee8c457c4acf..0000000000000
--- a/src/java.base/share/classes/sun/security/util/AuthResources_it.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- *
This class represents the ResourceBundle
- * for the following packages:
- *
- *
- * - com.sun.security.auth
- *
- com.sun.security.auth.login
- *
- *
- */
-public class AuthResources_it extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // NT principals
- {"invalid.null.input.value", "input nullo non valido: {0}"},
- {"NTDomainPrincipal.name", "NTDomainPrincipal: {0}"},
- {"NTNumericCredential.name", "NTNumericCredential: {0}"},
- {"Invalid.NTSid.value", "Valore NTSid non valido"},
- {"NTSid.name", "NTSid: {0}"},
- {"NTSidDomainPrincipal.name", "NTSidDomainPrincipal: {0}"},
- {"NTSidGroupPrincipal.name", "NTSidGroupPrincipal: {0}"},
- {"NTSidPrimaryGroupPrincipal.name", "NTSidPrimaryGroupPrincipal: {0}"},
- {"NTSidUserPrincipal.name", "NTSidUserPrincipal: {0}"},
- {"NTUserPrincipal.name", "NTUserPrincipal: {0}"},
-
- // UnixPrincipals
- {"UnixNumericGroupPrincipal.Primary.Group.name",
- "UnixNumericGroupPrincipal [gruppo primario]: {0}"},
- {"UnixNumericGroupPrincipal.Supplementary.Group.name",
- "UnixNumericGroupPrincipal [gruppo supplementare]: {0}"},
- {"UnixNumericUserPrincipal.name", "UnixNumericUserPrincipal: {0}"},
- {"UnixPrincipal.name", "UnixPrincipal: {0}"},
-
- // com.sun.security.auth.login.ConfigFile
- {"Unable.to.properly.expand.config", "Impossibile espandere correttamente {0}"},
- {"extra.config.No.such.file.or.directory.",
- "{0} (file o directory inesistente)"},
- {"Configuration.Error.No.such.file.or.directory",
- "Errore di configurazione:\n\tFile o directory inesistente"},
- {"Configuration.Error.Invalid.control.flag.flag",
- "Errore di configurazione:\n\tflag di controllo non valido, {0}"},
- {"Configuration.Error.Can.not.specify.multiple.entries.for.appName",
- "Errore di configurazione:\n\timpossibile specificare pi\u00F9 valori per {0}"},
- {"Configuration.Error.expected.expect.read.end.of.file.",
- "Errore di configurazione:\n\tprevisto [{0}], letto [end of file]"},
- {"Configuration.Error.Line.line.expected.expect.found.value.",
- "Errore di configurazione:\n\triga {0}: previsto [{1}], trovato [{2}]"},
- {"Configuration.Error.Line.line.expected.expect.",
- "Errore di configurazione:\n\triga {0}: previsto [{1}]"},
- {"Configuration.Error.Line.line.system.property.value.expanded.to.empty.value",
- "Errore di configurazione:\n\triga {0}: propriet\u00E0 di sistema [{1}] espansa a valore vuoto"},
-
- // com.sun.security.auth.module.JndiLoginModule
- {"username.","Nome utente: "},
- {"password.","Password: "},
-
- // com.sun.security.auth.module.KeyStoreLoginModule
- {"Please.enter.keystore.information",
- "Immettere le informazioni per il keystore"},
- {"Keystore.alias.","Alias keystore: "},
- {"Keystore.password.","Password keystore: "},
- {"Private.key.password.optional.",
- "Password chiave privata (opzionale): "},
-
- // com.sun.security.auth.module.Krb5LoginModule
- {"Kerberos.username.defUsername.",
- "Nome utente Kerberos [{0}]: "},
- {"Kerberos.password.for.username.",
- "Password Kerberos per {0}: "},
- };
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/util/AuthResources_ja.java b/src/java.base/share/classes/sun/security/util/AuthResources_ja.java
deleted file mode 100644
index fc313e144b1fa..0000000000000
--- a/src/java.base/share/classes/sun/security/util/AuthResources_ja.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- *
This class represents the ResourceBundle
- * for the following packages:
- *
- *
- * - com.sun.security.auth
- *
- com.sun.security.auth.login
- *
- *
- */
-public class AuthResources_ja extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // NT principals
- {"invalid.null.input.value", "\u7121\u52B9\u306Anull\u306E\u5165\u529B: {0}"},
- {"NTDomainPrincipal.name", "NTDomainPrincipal: {0}"},
- {"NTNumericCredential.name", "NTNumericCredential: {0}"},
- {"Invalid.NTSid.value", "\u7121\u52B9\u306ANTSid\u5024"},
- {"NTSid.name", "NTSid: {0}"},
- {"NTSidDomainPrincipal.name", "NTSidDomainPrincipal: {0}"},
- {"NTSidGroupPrincipal.name", "NTSidGroupPrincipal: {0}"},
- {"NTSidPrimaryGroupPrincipal.name", "NTSidPrimaryGroupPrincipal: {0}"},
- {"NTSidUserPrincipal.name", "NTSidUserPrincipal: {0}"},
- {"NTUserPrincipal.name", "NTUserPrincipal: {0}"},
-
- // UnixPrincipals
- {"UnixNumericGroupPrincipal.Primary.Group.name",
- "UnixNumericGroupPrincipal [\u4E3B\u30B0\u30EB\u30FC\u30D7]: {0}"},
- {"UnixNumericGroupPrincipal.Supplementary.Group.name",
- "UnixNumericGroupPrincipal [\u88DC\u52A9\u30B0\u30EB\u30FC\u30D7]: {0}"},
- {"UnixNumericUserPrincipal.name", "UnixNumericUserPrincipal: {0}"},
- {"UnixPrincipal.name", "UnixPrincipal: {0}"},
-
- // com.sun.security.auth.login.ConfigFile
- {"Unable.to.properly.expand.config", "{0}\u3092\u6B63\u3057\u304F\u5C55\u958B\u3067\u304D\u307E\u305B\u3093"},
- {"extra.config.No.such.file.or.directory.",
- "{0}(\u6307\u5B9A\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306F\u5B58\u5728\u3057\u307E\u305B\u3093)"},
- {"Configuration.Error.No.such.file.or.directory",
- "\u69CB\u6210\u30A8\u30E9\u30FC:\n\t\u6307\u5B9A\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306F\u5B58\u5728\u3057\u307E\u305B\u3093"},
- {"Configuration.Error.Invalid.control.flag.flag",
- "\u69CB\u6210\u30A8\u30E9\u30FC:\n\t\u7121\u52B9\u306A\u5236\u5FA1\u30D5\u30E9\u30B0: {0}"},
- {"Configuration.Error.Can.not.specify.multiple.entries.for.appName",
- "\u69CB\u6210\u30A8\u30E9\u30FC:\n\t{0}\u306B\u8907\u6570\u306E\u30A8\u30F3\u30C8\u30EA\u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093"},
- {"Configuration.Error.expected.expect.read.end.of.file.",
- "\u69CB\u6210\u30A8\u30E9\u30FC:\n\t[{0}]\u3067\u306F\u306A\u304F\u3001[\u30D5\u30A1\u30A4\u30EB\u306E\u7D42\u308F\u308A]\u304C\u8AAD\u307F\u8FBC\u307E\u308C\u307E\u3057\u305F"},
- {"Configuration.Error.Line.line.expected.expect.found.value.",
- "\u69CB\u6210\u30A8\u30E9\u30FC:\n\t\u884C{0}: [{1}]\u3067\u306F\u306A\u304F\u3001[{2}]\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F"},
- {"Configuration.Error.Line.line.expected.expect.",
- "\u69CB\u6210\u30A8\u30E9\u30FC:\n\t\u884C{0}: [{1}]\u304C\u8981\u6C42\u3055\u308C\u307E\u3057\u305F"},
- {"Configuration.Error.Line.line.system.property.value.expanded.to.empty.value",
- "\u69CB\u6210\u30A8\u30E9\u30FC:\n\t\u884C{0}: \u30B7\u30B9\u30C6\u30E0\u30FB\u30D7\u30ED\u30D1\u30C6\u30A3[{1}]\u304C\u7A7A\u306E\u5024\u306B\u5C55\u958B\u3055\u308C\u307E\u3057\u305F"},
-
- // com.sun.security.auth.module.JndiLoginModule
- {"username.","\u30E6\u30FC\u30B6\u30FC\u540D: "},
- {"password.","\u30D1\u30B9\u30EF\u30FC\u30C9: "},
-
- // com.sun.security.auth.module.KeyStoreLoginModule
- {"Please.enter.keystore.information",
- "\u30AD\u30FC\u30B9\u30C8\u30A2\u60C5\u5831\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044"},
- {"Keystore.alias.","\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u5225\u540D: "},
- {"Keystore.password.","\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9: "},
- {"Private.key.password.optional.",
- "\u79D8\u5BC6\u30AD\u30FC\u306E\u30D1\u30B9\u30EF\u30FC\u30C9(\u30AA\u30D7\u30B7\u30E7\u30F3): "},
-
- // com.sun.security.auth.module.Krb5LoginModule
- {"Kerberos.username.defUsername.",
- "Kerberos\u30E6\u30FC\u30B6\u30FC\u540D[{0}]: "},
- {"Kerberos.password.for.username.",
- "{0}\u306EKerberos\u30D1\u30B9\u30EF\u30FC\u30C9: "},
- };
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/util/AuthResources_ko.java b/src/java.base/share/classes/sun/security/util/AuthResources_ko.java
deleted file mode 100644
index 852b79bcdc145..0000000000000
--- a/src/java.base/share/classes/sun/security/util/AuthResources_ko.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- *
This class represents the ResourceBundle
- * for the following packages:
- *
- *
- * - com.sun.security.auth
- *
- com.sun.security.auth.login
- *
- *
- */
-public class AuthResources_ko extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // NT principals
- {"invalid.null.input.value", "\uBD80\uC801\uD569\uD55C \uB110 \uC785\uB825: {0}"},
- {"NTDomainPrincipal.name", "NTDomainPrincipal: {0}"},
- {"NTNumericCredential.name", "NTNumericCredential: {0}"},
- {"Invalid.NTSid.value", "NTSid \uAC12\uC774 \uBD80\uC801\uD569\uD569\uB2C8\uB2E4."},
- {"NTSid.name", "NTSid: {0}"},
- {"NTSidDomainPrincipal.name", "NTSidDomainPrincipal: {0}"},
- {"NTSidGroupPrincipal.name", "NTSidGroupPrincipal: {0}"},
- {"NTSidPrimaryGroupPrincipal.name", "NTSidPrimaryGroupPrincipal: {0}"},
- {"NTSidUserPrincipal.name", "NTSidUserPrincipal: {0}"},
- {"NTUserPrincipal.name", "NTUserPrincipal: {0}"},
-
- // UnixPrincipals
- {"UnixNumericGroupPrincipal.Primary.Group.name",
- "UnixNumericGroupPrincipal [\uAE30\uBCF8 \uADF8\uB8F9]: {0}"},
- {"UnixNumericGroupPrincipal.Supplementary.Group.name",
- "UnixNumericGroupPrincipal [\uBCF4\uC870 \uADF8\uB8F9]: {0}"},
- {"UnixNumericUserPrincipal.name", "UnixNumericUserPrincipal: {0}"},
- {"UnixPrincipal.name", "UnixPrincipal: {0}"},
-
- // com.sun.security.auth.login.ConfigFile
- {"Unable.to.properly.expand.config", "{0}\uC744(\uB97C) \uC81C\uB300\uB85C \uD655\uC7A5\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"extra.config.No.such.file.or.directory.",
- "{0}(\uD574\uB2F9 \uD30C\uC77C \uB610\uB294 \uB514\uB809\uD1A0\uB9AC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.)"},
- {"Configuration.Error.No.such.file.or.directory",
- "\uAD6C\uC131 \uC624\uB958:\n\t\uD574\uB2F9 \uD30C\uC77C \uB610\uB294 \uB514\uB809\uD1A0\uB9AC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"Configuration.Error.Invalid.control.flag.flag",
- "\uAD6C\uC131 \uC624\uB958:\n\t\uC81C\uC5B4 \uD50C\uB798\uADF8\uAC00 \uBD80\uC801\uD569\uD568, {0}"},
- {"Configuration.Error.Can.not.specify.multiple.entries.for.appName",
- "\uAD6C\uC131 \uC624\uB958:\n\t{0}\uC5D0 \uB300\uD574 \uC5EC\uB7EC \uD56D\uBAA9\uC744 \uC9C0\uC815\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"Configuration.Error.expected.expect.read.end.of.file.",
- "\uAD6C\uC131 \uC624\uB958:\n\t[{0}]\uC774(\uAC00) \uD544\uC694\uD558\uC9C0\uB9CC [\uD30C\uC77C\uC758 \uB05D]\uC5D0 \uB3C4\uB2EC\uD588\uC2B5\uB2C8\uB2E4."},
- {"Configuration.Error.Line.line.expected.expect.found.value.",
- "\uAD6C\uC131 \uC624\uB958:\n\t{0} \uD589: [{1}]\uC774(\uAC00) \uD544\uC694\uD558\uC9C0\uB9CC [{2}]\uC774(\uAC00) \uBC1C\uACAC\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
- {"Configuration.Error.Line.line.expected.expect.",
- "\uAD6C\uC131 \uC624\uB958:\n\t{0} \uD589: [{1}]\uC774(\uAC00) \uD544\uC694\uD569\uB2C8\uB2E4."},
- {"Configuration.Error.Line.line.system.property.value.expanded.to.empty.value",
- "\uAD6C\uC131 \uC624\uB958:\n\t{0} \uD589: \uC2DC\uC2A4\uD15C \uC18D\uC131 [{1}]\uC774(\uAC00) \uBE48 \uAC12\uC73C\uB85C \uD655\uC7A5\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
-
- // com.sun.security.auth.module.JndiLoginModule
- {"username.","\uC0AC\uC6A9\uC790 \uC774\uB984: "},
- {"password.","\uBE44\uBC00\uBC88\uD638: "},
-
- // com.sun.security.auth.module.KeyStoreLoginModule
- {"Please.enter.keystore.information",
- "\uD0A4 \uC800\uC7A5\uC18C \uC815\uBCF4\uB97C \uC785\uB825\uD558\uC2ED\uC2DC\uC624."},
- {"Keystore.alias.","\uD0A4 \uC800\uC7A5\uC18C \uBCC4\uCE6D: "},
- {"Keystore.password.","\uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638: "},
- {"Private.key.password.optional.",
- "\uC804\uC6A9 \uD0A4 \uBE44\uBC00\uBC88\uD638(\uC120\uD0DD\uC0AC\uD56D): "},
-
- // com.sun.security.auth.module.Krb5LoginModule
- {"Kerberos.username.defUsername.",
- "Kerberos \uC0AC\uC6A9\uC790 \uC774\uB984 [{0}]: "},
- {"Kerberos.password.for.username.",
- "{0}\uC758 Kerberos \uBE44\uBC00\uBC88\uD638: "},
- };
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/util/AuthResources_pt_BR.java b/src/java.base/share/classes/sun/security/util/AuthResources_pt_BR.java
deleted file mode 100644
index 2c6671e07db6c..0000000000000
--- a/src/java.base/share/classes/sun/security/util/AuthResources_pt_BR.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- *
This class represents the ResourceBundle
- * for the following packages:
- *
- *
- * - com.sun.security.auth
- *
- com.sun.security.auth.login
- *
- *
- */
-public class AuthResources_pt_BR extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // NT principals
- {"invalid.null.input.value", "entrada nula inv\u00E1lida: {0}"},
- {"NTDomainPrincipal.name", "NTDomainPrincipal: {0}"},
- {"NTNumericCredential.name", "NTNumericCredential: {0}"},
- {"Invalid.NTSid.value", "Valor de NTSid inv\u00E1lido"},
- {"NTSid.name", "NTSid: {0}"},
- {"NTSidDomainPrincipal.name", "NTSidDomainPrincipal: {0}"},
- {"NTSidGroupPrincipal.name", "NTSidGroupPrincipal: {0}"},
- {"NTSidPrimaryGroupPrincipal.name", "NTSidPrimaryGroupPrincipal: {0}"},
- {"NTSidUserPrincipal.name", "NTSidUserPrincipal: {0}"},
- {"NTUserPrincipal.name", "NTUserPrincipal: {0}"},
-
- // UnixPrincipals
- {"UnixNumericGroupPrincipal.Primary.Group.name",
- "UnixNumericGroupPrincipal [Grupo Principal]: {0}"},
- {"UnixNumericGroupPrincipal.Supplementary.Group.name",
- "UnixNumericGroupPrincipal [Grupo Complementar]: {0}"},
- {"UnixNumericUserPrincipal.name", "UnixNumericUserPrincipal: {0}"},
- {"UnixPrincipal.name", "UnixPrincipal: {0}"},
-
- // com.sun.security.auth.login.ConfigFile
- {"Unable.to.properly.expand.config", "N\u00E3o \u00E9 poss\u00EDvel expandir corretamente {0}"},
- {"extra.config.No.such.file.or.directory.",
- "{0} (tal arquivo ou diret\u00F3rio n\u00E3o existe)"},
- {"Configuration.Error.No.such.file.or.directory",
- "Erro de Configura\u00E7\u00E3o:\n\tN\u00E3o h\u00E1 tal arquivo ou diret\u00F3rio"},
- {"Configuration.Error.Invalid.control.flag.flag",
- "Erro de Configura\u00E7\u00E3o:\n\tFlag de controle inv\u00E1lido, {0}"},
- {"Configuration.Error.Can.not.specify.multiple.entries.for.appName",
- "Erro de Configura\u00E7\u00E3o:\n\tN\u00E3o \u00E9 poss\u00EDvel especificar v\u00E1rias entradas para {0}"},
- {"Configuration.Error.expected.expect.read.end.of.file.",
- "Erro de Configura\u00E7\u00E3o:\n\tesperado [{0}], lido [fim do arquivo]"},
- {"Configuration.Error.Line.line.expected.expect.found.value.",
- "Erro de Configura\u00E7\u00E3o:\n\tLinha {0}: esperada [{1}], encontrada [{2}]"},
- {"Configuration.Error.Line.line.expected.expect.",
- "Erro de Configura\u00E7\u00E3o:\n\tLinha {0}: esperada [{1}]"},
- {"Configuration.Error.Line.line.system.property.value.expanded.to.empty.value",
- "Erro de Configura\u00E7\u00E3o:\n\tLinha {0}: propriedade do sistema [{1}] expandida para valor vazio"},
-
- // com.sun.security.auth.module.JndiLoginModule
- {"username.","nome do usu\u00E1rio: "},
- {"password.","senha: "},
-
- // com.sun.security.auth.module.KeyStoreLoginModule
- {"Please.enter.keystore.information",
- "Especifique as informa\u00E7\u00F5es do armazenamento de chaves"},
- {"Keystore.alias.","Alias do armazenamento de chaves: "},
- {"Keystore.password.","Senha do armazenamento de chaves: "},
- {"Private.key.password.optional.",
- "Senha da chave privada (opcional): "},
-
- // com.sun.security.auth.module.Krb5LoginModule
- {"Kerberos.username.defUsername.",
- "Nome do usu\u00E1rio de Kerberos [{0}]: "},
- {"Kerberos.password.for.username.",
- "Senha de Kerberos de {0}: "},
- };
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/util/AuthResources_sv.java b/src/java.base/share/classes/sun/security/util/AuthResources_sv.java
deleted file mode 100644
index e328b209bac50..0000000000000
--- a/src/java.base/share/classes/sun/security/util/AuthResources_sv.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- *
This class represents the ResourceBundle
- * for the following packages:
- *
- *
- * - com.sun.security.auth
- *
- com.sun.security.auth.login
- *
- *
- */
-public class AuthResources_sv extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // NT principals
- {"invalid.null.input.value", "ogiltiga null-indata: {0}"},
- {"NTDomainPrincipal.name", "NTDomainPrincipal: {0}"},
- {"NTNumericCredential.name", "NTNumericCredential: {0}"},
- {"Invalid.NTSid.value", "Ogiltigt NTSid-v\u00E4rde"},
- {"NTSid.name", "NTSid: {0}"},
- {"NTSidDomainPrincipal.name", "NTSidDomainPrincipal: {0}"},
- {"NTSidGroupPrincipal.name", "NTSidGroupPrincipal: {0}"},
- {"NTSidPrimaryGroupPrincipal.name", "NTSidPrimaryGroupPrincipal: {0}"},
- {"NTSidUserPrincipal.name", "NTSidUserPrincipal: {0}"},
- {"NTUserPrincipal.name", "NTUserPrincipal: {0}"},
-
- // UnixPrincipals
- {"UnixNumericGroupPrincipal.Primary.Group.name",
- "UnixNumericGroupPrincipal [prim\u00E4r grupp]: {0}"},
- {"UnixNumericGroupPrincipal.Supplementary.Group.name",
- "UnixNumericGroupPrincipal [till\u00E4ggsgrupp]: {0}"},
- {"UnixNumericUserPrincipal.name", "UnixNumericUserPrincipal: {0}"},
- {"UnixPrincipal.name", "UnixPrincipal: {0}"},
-
- // com.sun.security.auth.login.ConfigFile
- {"Unable.to.properly.expand.config", "Kan inte ut\u00F6ka korrekt {0}"},
- {"extra.config.No.such.file.or.directory.",
- "{0} (det finns ingen s\u00E5dan fil eller katalog)"},
- {"Configuration.Error.No.such.file.or.directory",
- "Konfigurationsfel:\n\tFilen eller katalogen finns inte"},
- {"Configuration.Error.Invalid.control.flag.flag",
- "Konfigurationsfel:\n\tOgiltig kontrollflagga, {0}"},
- {"Configuration.Error.Can.not.specify.multiple.entries.for.appName",
- "Konfigurationsfel:\n\tKan inte ange flera poster f\u00F6r {0}"},
- {"Configuration.Error.expected.expect.read.end.of.file.",
- "Konfigurationsfel:\n\tf\u00F6rv\u00E4ntade [{0}], l\u00E4ste [filslut]"},
- {"Configuration.Error.Line.line.expected.expect.found.value.",
- "Konfigurationsfel:\n\tRad {0}: f\u00F6rv\u00E4ntade [{1}], hittade [{2}]"},
- {"Configuration.Error.Line.line.expected.expect.",
- "Konfigurationsfel:\n\tRad {0}: f\u00F6rv\u00E4ntade [{1}]"},
- {"Configuration.Error.Line.line.system.property.value.expanded.to.empty.value",
- "Konfigurationsfel:\n\tRad {0}: systemegenskapen [{1}] ut\u00F6kad till tomt v\u00E4rde"},
-
- // com.sun.security.auth.module.JndiLoginModule
- {"username.","anv\u00E4ndarnamn: "},
- {"password.","l\u00F6senord: "},
-
- // com.sun.security.auth.module.KeyStoreLoginModule
- {"Please.enter.keystore.information",
- "Ange nyckellagerinformation"},
- {"Keystore.alias.","Nyckellageralias: "},
- {"Keystore.password.","Nyckellagerl\u00F6senord: "},
- {"Private.key.password.optional.",
- "L\u00F6senord f\u00F6r personlig nyckel (valfritt): "},
-
- // com.sun.security.auth.module.Krb5LoginModule
- {"Kerberos.username.defUsername.",
- "Kerberos-anv\u00E4ndarnamn [{0}]: "},
- {"Kerberos.password.for.username.",
- "Kerberos-l\u00F6senord f\u00F6r {0}: "},
- };
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/util/AuthResources_zh_CN.java b/src/java.base/share/classes/sun/security/util/AuthResources_zh_CN.java
deleted file mode 100644
index b3367db7bbcd6..0000000000000
--- a/src/java.base/share/classes/sun/security/util/AuthResources_zh_CN.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- *
This class represents the ResourceBundle
- * for the following packages:
- *
- *
- * - com.sun.security.auth
- *
- com.sun.security.auth.login
- *
- *
- */
-public class AuthResources_zh_CN extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // NT principals
- {"invalid.null.input.value", "\u65E0\u6548\u7684\u7A7A\u8F93\u5165: {0}"},
- {"NTDomainPrincipal.name", "NTDomainPrincipal: {0}"},
- {"NTNumericCredential.name", "NTNumericCredential: {0}"},
- {"Invalid.NTSid.value", "\u65E0\u6548\u7684 NTSid \u503C"},
- {"NTSid.name", "NTSid: {0}"},
- {"NTSidDomainPrincipal.name", "NTSidDomainPrincipal: {0}"},
- {"NTSidGroupPrincipal.name", "NTSidGroupPrincipal: {0}"},
- {"NTSidPrimaryGroupPrincipal.name", "NTSidPrimaryGroupPrincipal: {0}"},
- {"NTSidUserPrincipal.name", "NTSidUserPrincipal: {0}"},
- {"NTUserPrincipal.name", "NTUserPrincipal: {0}"},
-
- // UnixPrincipals
- {"UnixNumericGroupPrincipal.Primary.Group.name",
- "UnixNumericGroupPrincipal [\u4E3B\u7EC4]: {0}"},
- {"UnixNumericGroupPrincipal.Supplementary.Group.name",
- "UnixNumericGroupPrincipal [\u8865\u5145\u7EC4]: {0}"},
- {"UnixNumericUserPrincipal.name", "UnixNumericUserPrincipal: {0}"},
- {"UnixPrincipal.name", "UnixPrincipal: {0}"},
-
- // com.sun.security.auth.login.ConfigFile
- {"Unable.to.properly.expand.config", "\u65E0\u6CD5\u6B63\u786E\u6269\u5C55{0}"},
- {"extra.config.No.such.file.or.directory.",
- "{0} (\u6CA1\u6709\u8FD9\u6837\u7684\u6587\u4EF6\u6216\u76EE\u5F55)"},
- {"Configuration.Error.No.such.file.or.directory",
- "\u914D\u7F6E\u9519\u8BEF:\n\t\u6CA1\u6709\u6B64\u6587\u4EF6\u6216\u76EE\u5F55"},
- {"Configuration.Error.Invalid.control.flag.flag",
- "\u914D\u7F6E\u9519\u8BEF: \n\t\u65E0\u6548\u7684\u63A7\u5236\u6807\u8BB0, {0}"},
- {"Configuration.Error.Can.not.specify.multiple.entries.for.appName",
- "\u914D\u7F6E\u9519\u8BEF:\n\t\u65E0\u6CD5\u6307\u5B9A{0}\u7684\u591A\u4E2A\u6761\u76EE"},
- {"Configuration.Error.expected.expect.read.end.of.file.",
- "\u914D\u7F6E\u9519\u8BEF: \n\t\u5E94\u4E3A [{0}], \u8BFB\u53D6\u7684\u662F [\u6587\u4EF6\u7ED3\u5C3E]"},
- {"Configuration.Error.Line.line.expected.expect.found.value.",
- "\u914D\u7F6E\u9519\u8BEF: \n\t\u884C {0}: \u5E94\u4E3A [{1}], \u627E\u5230 [{2}]"},
- {"Configuration.Error.Line.line.expected.expect.",
- "\u914D\u7F6E\u9519\u8BEF: \n\t\u884C {0}: \u5E94\u4E3A [{1}]"},
- {"Configuration.Error.Line.line.system.property.value.expanded.to.empty.value",
- "\u914D\u7F6E\u9519\u8BEF: \n\t\u884C {0}: \u7CFB\u7EDF\u5C5E\u6027 [{1}] \u6269\u5C55\u5230\u7A7A\u503C"},
-
- // com.sun.security.auth.module.JndiLoginModule
- {"username.","\u7528\u6237\u540D: "},
- {"password.","\u53E3\u4EE4: "},
-
- // com.sun.security.auth.module.KeyStoreLoginModule
- {"Please.enter.keystore.information",
- "\u8BF7\u8F93\u5165\u5BC6\u94A5\u5E93\u4FE1\u606F"},
- {"Keystore.alias.","\u5BC6\u94A5\u5E93\u522B\u540D: "},
- {"Keystore.password.","\u5BC6\u94A5\u5E93\u53E3\u4EE4: "},
- {"Private.key.password.optional.",
- "\u79C1\u6709\u5BC6\u94A5\u53E3\u4EE4 (\u53EF\u9009): "},
-
- // com.sun.security.auth.module.Krb5LoginModule
- {"Kerberos.username.defUsername.",
- "Kerberos \u7528\u6237\u540D [{0}]: "},
- {"Kerberos.password.for.username.",
- "{0}\u7684 Kerberos \u53E3\u4EE4: "},
- };
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/util/AuthResources_zh_TW.java b/src/java.base/share/classes/sun/security/util/AuthResources_zh_TW.java
deleted file mode 100644
index 8fcf9d60ffe24..0000000000000
--- a/src/java.base/share/classes/sun/security/util/AuthResources_zh_TW.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- *
This class represents the ResourceBundle
- * for the following packages:
- *
- *
- * - com.sun.security.auth
- *
- com.sun.security.auth.login
- *
- *
- */
-public class AuthResources_zh_TW extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // NT principals
- {"invalid.null.input.value", "\u7121\u6548\u7A7A\u503C\u8F38\u5165: {0}"},
- {"NTDomainPrincipal.name", "NTDomainPrincipal: {0}"},
- {"NTNumericCredential.name", "NTNumericCredential: {0}"},
- {"Invalid.NTSid.value", "\u7121\u6548 NTSid \u503C"},
- {"NTSid.name", "NTSid: {0}"},
- {"NTSidDomainPrincipal.name", "NTSidDomainPrincipal: {0}"},
- {"NTSidGroupPrincipal.name", "NTSidGroupPrincipal: {0}"},
- {"NTSidPrimaryGroupPrincipal.name", "NTSidPrimaryGroupPrincipal: {0}"},
- {"NTSidUserPrincipal.name", "NTSidUserPrincipal: {0}"},
- {"NTUserPrincipal.name", "NTUserPrincipal: {0}"},
-
- // UnixPrincipals
- {"UnixNumericGroupPrincipal.Primary.Group.name",
- "UnixNumericGroupPrincipal [\u4E3B\u7FA4\u7D44]: {0}"},
- {"UnixNumericGroupPrincipal.Supplementary.Group.name",
- "UnixNumericGroupPrincipal [\u9644\u52A0\u7FA4\u7D44]: {0}"},
- {"UnixNumericUserPrincipal.name", "UnixNumericUserPrincipal: {0}"},
- {"UnixPrincipal.name", "UnixPrincipal: {0}"},
-
- // com.sun.security.auth.login.ConfigFile
- {"Unable.to.properly.expand.config", "\u7121\u6CD5\u9069\u7576\u5730\u64F4\u5145 {0}"},
- {"extra.config.No.such.file.or.directory.",
- "{0} (\u6C92\u6709\u6B64\u6A94\u6848\u6216\u76EE\u9304)"},
- {"Configuration.Error.No.such.file.or.directory",
- "\u7D44\u614B\u932F\u8AA4:\n\t\u7121\u6B64\u6A94\u6848\u6216\u76EE\u9304"},
- {"Configuration.Error.Invalid.control.flag.flag",
- "\u7D44\u614B\u932F\u8AA4:\n\t\u7121\u6548\u7684\u63A7\u5236\u65D7\u6A19\uFF0C{0}"},
- {"Configuration.Error.Can.not.specify.multiple.entries.for.appName",
- "\u7D44\u614B\u932F\u8AA4: \n\t\u7121\u6CD5\u6307\u5B9A\u591A\u91CD\u9805\u76EE {0}"},
- {"Configuration.Error.expected.expect.read.end.of.file.",
- "\u7D44\u614B\u932F\u8AA4: \n\t\u9810\u671F\u7684 [{0}], \u8B80\u53D6 [end of file]"},
- {"Configuration.Error.Line.line.expected.expect.found.value.",
- "\u7D44\u614B\u932F\u8AA4: \n\t\u884C {0}: \u9810\u671F\u7684 [{1}], \u767C\u73FE [{2}]"},
- {"Configuration.Error.Line.line.expected.expect.",
- "\u7D44\u614B\u932F\u8AA4: \n\t\u884C {0}: \u9810\u671F\u7684 [{1}]"},
- {"Configuration.Error.Line.line.system.property.value.expanded.to.empty.value",
- "\u7D44\u614B\u932F\u8AA4: \n\t\u884C {0}: \u7CFB\u7D71\u5C6C\u6027 [{1}] \u64F4\u5145\u81F3\u7A7A\u503C"},
-
- // com.sun.security.auth.module.JndiLoginModule
- {"username.","\u4F7F\u7528\u8005\u540D\u7A31: "},
- {"password.","\u5BC6\u78BC: "},
-
- // com.sun.security.auth.module.KeyStoreLoginModule
- {"Please.enter.keystore.information",
- "\u8ACB\u8F38\u5165\u91D1\u9470\u5132\u5B58\u5EAB\u8CC7\u8A0A"},
- {"Keystore.alias.","\u91D1\u9470\u5132\u5B58\u5EAB\u5225\u540D: "},
- {"Keystore.password.","\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC: "},
- {"Private.key.password.optional.",
- "\u79C1\u4EBA\u91D1\u9470\u5BC6\u78BC (\u9078\u64C7\u6027\u7684): "},
-
- // com.sun.security.auth.module.Krb5LoginModule
- {"Kerberos.username.defUsername.",
- "Kerberos \u4F7F\u7528\u8005\u540D\u7A31 [{0}]: "},
- {"Kerberos.password.for.username.",
- "Kerberos \u5BC6\u78BC {0}: "},
- };
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/java.base/share/classes/sun/security/util/LocalizedMessage.java b/src/java.base/share/classes/sun/security/util/LocalizedMessage.java
index ffe092a6b6d4b..61062bf6e1a2f 100644
--- a/src/java.base/share/classes/sun/security/util/LocalizedMessage.java
+++ b/src/java.base/share/classes/sun/security/util/LocalizedMessage.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2025, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,8 @@
package sun.security.util;
+import java.util.ListResourceBundle;
+
/**
* This class produces formatted and localized messages describing security
* issues. Some messages may be required when the VM is not fully booted. In
@@ -42,7 +44,8 @@
public class LocalizedMessage {
- private static final Resources RESOURCES = new Resources();
+ private static final ListResourceBundle RESOURCES =
+ new sun.security.util.resources.security();
private final String key;
@@ -73,7 +76,7 @@ public String formatLocalized(Object... arguments) {
/**
* Return a non-localized string corresponding to the key stored in this
* object, formatted with the provided arguments. All strings are obtained
- * from sun.security.util.Resources, and the formatting only supports
+ * from sun.security.util.resources, and the formatting only supports
* simple positional argument replacement (e.g. {1}).
*
* @param arguments The arguments that should be placed in the message
@@ -86,10 +89,10 @@ public String formatNonlocalized(Object... arguments) {
/**
* Return a non-localized string corresponding to the provided key, and
* formatted with the provided arguments. All strings are obtained from
- * sun.security.util.Resources, and the formatting only supports
+ * sun.security.util.resources, and the formatting only supports
* simple positional argument replacement (e.g. {1}).
*
- * @param key The key of the desired string in Resources
+ * @param key The key of the desired string in resources
* @param arguments The arguments that should be placed in the message
* @return A formatted message string
*/
diff --git a/src/java.base/share/classes/sun/security/util/Resources.java b/src/java.base/share/classes/sun/security/util/Resources.java
deleted file mode 100644
index 679e0ea6aa5f5..0000000000000
--- a/src/java.base/share/classes/sun/security/util/Resources.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- * This class represents the ResourceBundle
- * for javax.security.auth and sun.security.
- *
- */
-public class Resources extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // javax.security.auth.PrivateCredentialPermission
- {"invalid.null.input.s.", "invalid null input(s)"},
- {"actions.can.only.be.read.", "actions can only be 'read'"},
- {"permission.name.name.syntax.invalid.",
- "permission name [{0}] syntax invalid: "},
- {"Credential.Class.not.followed.by.a.Principal.Class.and.Name",
- "Credential Class not followed by a Principal Class and Name"},
- {"Principal.Class.not.followed.by.a.Principal.Name",
- "Principal Class not followed by a Principal Name"},
- {"Principal.Name.must.be.surrounded.by.quotes",
- "Principal Name must be surrounded by quotes"},
- {"Principal.Name.missing.end.quote",
- "Principal Name missing end quote"},
- {"PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value",
- "PrivateCredentialPermission Principal Class can not be a wildcard (*) value if Principal Name is not a wildcard (*) value"},
- {"CredOwner.Principal.Class.class.Principal.Name.name",
- "CredOwner:\n\tPrincipal Class = {0}\n\tPrincipal Name = {1}"},
-
- // javax.security.auth.x500
- {"provided.null.name", "provided null name"},
- {"provided.null.keyword.map", "provided null keyword map"},
- {"provided.null.OID.map", "provided null OID map"},
-
- // javax.security.auth.Subject
- {"NEWLINE", "\n"},
- {"invalid.null.action.provided", "invalid null action provided"},
- {"invalid.null.Class.provided", "invalid null Class provided"},
- {"Subject.", "Subject:\n"},
- {".Principal.", "\tPrincipal: "},
- {".Public.Credential.", "\tPublic Credential: "},
- {".Private.Credential.", "\tPrivate Credential: "},
- {".Private.Credential.inaccessible.",
- "\tPrivate Credential inaccessible\n"},
- {"Subject.is.read.only", "Subject is read-only"},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set",
- "attempting to add an object which is not an instance of java.security.Principal to a Subject's Principal Set"},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.class",
- "attempting to add an object which is not an instance of {0}"},
-
- // javax.security.auth.login.AppConfigurationEntry
- {"LoginModuleControlFlag.", "LoginModuleControlFlag: "},
-
- // javax.security.auth.login.LoginContext
- {"Invalid.null.input.name", "Invalid null input: name"},
- {"No.LoginModules.configured.for.name",
- "No LoginModules configured for {0}"},
- {"invalid.null.Subject.provided", "invalid null Subject provided"},
- {"invalid.null.CallbackHandler.provided",
- "invalid null CallbackHandler provided"},
- {"null.subject.logout.called.before.login",
- "null subject - logout called before login"},
- {"Login.Failure.all.modules.ignored",
- "Login Failure: all modules ignored"},
-
- // sun.security.provider.PolicyParser
- {"duplicate.keystore.domain.name","duplicate keystore domain name: {0}"},
- {"duplicate.keystore.name","duplicate keystore name: {0}"},
- {"number.", "number "},
- {"expected.expect.read.end.of.file.",
- "expected [{0}], read [end of file]"},
- {"expected.read.end.of.file.",
- "expected [;], read [end of file]"},
- {"line.number.msg", "line {0}: {1}"},
- {"line.number.expected.expect.found.actual.",
- "line {0}: expected [{1}], found [{2}]"},
-
- // sun.security.pkcs11.SunPKCS11
- {"PKCS11.Token.providerName.Password.",
- "PKCS11 Token [{0}] Password: "},
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
-
diff --git a/src/java.base/share/classes/sun/security/util/ResourcesMgr.java b/src/java.base/share/classes/sun/security/util/ResourcesMgr.java
index f2b6fd2c9c0a5..df387cbed7af9 100644
--- a/src/java.base/share/classes/sun/security/util/ResourcesMgr.java
+++ b/src/java.base/share/classes/sun/security/util/ResourcesMgr.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2022, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -37,11 +37,11 @@ public class ResourcesMgr {
private static final Map bundles = new ConcurrentHashMap<>();
public static String getString(String s) {
- return getBundle("sun.security.util.Resources").getString(s);
+ return getBundle("sun.security.util.resources.security").getString(s);
}
public static String getAuthResourceString(String s) {
- return getBundle("sun.security.util.AuthResources").getString(s);
+ return getBundle("sun.security.util.resources.auth").getString(s);
}
private static ResourceBundle getBundle(String bundleName) {
diff --git a/src/java.base/share/classes/sun/security/util/Resources_de.java b/src/java.base/share/classes/sun/security/util/Resources_de.java
deleted file mode 100644
index 0ff218d639004..0000000000000
--- a/src/java.base/share/classes/sun/security/util/Resources_de.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- * This class represents the ResourceBundle
- * for javax.security.auth and sun.security.
- *
- */
-public class Resources_de extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // javax.security.auth.PrivateCredentialPermission
- {"invalid.null.input.s.", "Ung\u00FCltige Nulleingabe(n)"},
- {"actions.can.only.be.read.", "Aktionen k\u00F6nnen nur \"lesen\" sein"},
- {"permission.name.name.syntax.invalid.",
- "Syntax f\u00FCr Berechtigungsnamen [{0}] ung\u00FCltig: "},
- {"Credential.Class.not.followed.by.a.Principal.Class.and.Name",
- "Nach Zugangsdatenklasse folgt keine Principal-Klasse und kein Name"},
- {"Principal.Class.not.followed.by.a.Principal.Name",
- "Nach Principal-Klasse folgt kein Principal-Name"},
- {"Principal.Name.must.be.surrounded.by.quotes",
- "Principal-Name muss in Anf\u00FChrungszeichen stehen"},
- {"Principal.Name.missing.end.quote",
- "Abschlie\u00DFendes Anf\u00FChrungszeichen f\u00FCr Principal-Name fehlt"},
- {"PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value",
- "Principal-Klasse PrivateCredentialPermission kann kein Platzhalterwert (*) sein, wenn der Principal-Name kein Platzhalterwert (*) ist"},
- {"CredOwner.Principal.Class.class.Principal.Name.name",
- "CredOwner:\n\tPrincipal-Klasse = {0}\n\tPrincipal-Name = {1}"},
-
- // javax.security.auth.x500
- {"provided.null.name", "Nullname angegeben"},
- {"provided.null.keyword.map", "Null-Schl\u00FCsselwortzuordnung angegeben"},
- {"provided.null.OID.map", "Null-OID-Zuordnung angegeben"},
-
- // javax.security.auth.Subject
- {"NEWLINE", "\n"},
- {"invalid.null.action.provided", "Ung\u00FCltige Nullaktion angegeben"},
- {"invalid.null.Class.provided", "Ung\u00FCltige Nullklasse angegeben"},
- {"Subject.", "Subjekt:\n"},
- {".Principal.", "\tPrincipal: "},
- {".Public.Credential.", "\t\u00D6ffentliche Zugangsdaten: "},
- {".Private.Credential.", "\tPrivate Zugangsdaten: "},
- {".Private.Credential.inaccessible.",
- "\tKein Zugriff auf private Zugangsdaten\n"},
- {"Subject.is.read.only", "Subjekt ist schreibgesch\u00FCtzt"},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set",
- "Es wird versucht, ein Objekt hinzuzuf\u00FCgen, das keine Instanz von java.security.Principal f\u00FCr eine Principal-Gruppe eines Subjekts ist"},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.class",
- "Es wird versucht, ein Objekt hinzuzuf\u00FCgen, das keine Instanz von {0} ist"},
-
- // javax.security.auth.login.AppConfigurationEntry
- {"LoginModuleControlFlag.", "LoginModuleControlFlag: "},
-
- // javax.security.auth.login.LoginContext
- {"Invalid.null.input.name", "Ung\u00FCltige Nulleingabe: Name"},
- {"No.LoginModules.configured.for.name",
- "F\u00FCr {0} sind keine LoginModules konfiguriert"},
- {"invalid.null.Subject.provided", "Ung\u00FCltiges Nullsubjekt angegeben"},
- {"invalid.null.CallbackHandler.provided",
- "Ung\u00FCltiger Nullwert f\u00FCr CallbackHandler angegeben"},
- {"null.subject.logout.called.before.login",
- "Nullsubjekt - Abmeldung vor Anmeldung aufgerufen"},
- {"Login.Failure.all.modules.ignored",
- "Anmeldefehler: Alle Module werden ignoriert"},
-
- // sun.security.provider.PolicyParser
- {"duplicate.keystore.domain.name","Keystore-Domainname doppelt vorhanden: {0}"},
- {"duplicate.keystore.name","Keystore-Name doppelt vorhanden: {0}"},
- {"number.", "Nummer "},
- {"expected.expect.read.end.of.file.",
- "[{0}] erwartet, [Dateiende] gelesen"},
- {"expected.read.end.of.file.",
- "[;] erwartet, [Dateiende] gelesen"},
- {"line.number.msg", "Zeile {0}: {1}"},
- {"line.number.expected.expect.found.actual.",
- "Zeile {0}: [{1}] erwartet, [{2}] gefunden"},
-
- // sun.security.pkcs11.SunPKCS11
- {"PKCS11.Token.providerName.Password.",
- "Kennwort f\u00FCr PKCS11-Token [{0}]: "},
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
-
diff --git a/src/java.base/share/classes/sun/security/util/Resources_es.java b/src/java.base/share/classes/sun/security/util/Resources_es.java
deleted file mode 100644
index 334a059b19c54..0000000000000
--- a/src/java.base/share/classes/sun/security/util/Resources_es.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- * This class represents the ResourceBundle
- * for javax.security.auth and sun.security.
- *
- */
-public class Resources_es extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // javax.security.auth.PrivateCredentialPermission
- {"invalid.null.input.s.", "entradas nulas no v\u00E1lidas"},
- {"actions.can.only.be.read.", "las acciones s\u00F3lo pueden 'leerse'"},
- {"permission.name.name.syntax.invalid.",
- "sintaxis de nombre de permiso [{0}] no v\u00E1lida: "},
- {"Credential.Class.not.followed.by.a.Principal.Class.and.Name",
- "La clase de credencial no va seguida de una clase y nombre de principal"},
- {"Principal.Class.not.followed.by.a.Principal.Name",
- "La clase de principal no va seguida de un nombre de principal"},
- {"Principal.Name.must.be.surrounded.by.quotes",
- "El nombre de principal debe ir entre comillas"},
- {"Principal.Name.missing.end.quote",
- "Faltan las comillas finales en el nombre de principal"},
- {"PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value",
- "La clase de principal PrivateCredentialPermission no puede ser un valor comod\u00EDn (*) si el nombre de principal no lo es tambi\u00E9n"},
- {"CredOwner.Principal.Class.class.Principal.Name.name",
- "CredOwner:\n\tClase de Principal = {0}\n\tNombre de Principal = {1}"},
-
- // javax.security.auth.x500
- {"provided.null.name", "se ha proporcionado un nombre nulo"},
- {"provided.null.keyword.map", "mapa de palabras clave proporcionado nulo"},
- {"provided.null.OID.map", "mapa de OID proporcionado nulo"},
-
- // javax.security.auth.Subject
- {"NEWLINE", "\n"},
- {"invalid.null.AccessControlContext.provided",
- "se ha proporcionado un AccessControlContext nulo no v\u00E1lido"},
- {"invalid.null.action.provided", "se ha proporcionado una acci\u00F3n nula no v\u00E1lida"},
- {"invalid.null.Class.provided", "se ha proporcionado una clase nula no v\u00E1lida"},
- {"Subject.", "Asunto:\n"},
- {".Principal.", "\tPrincipal: "},
- {".Public.Credential.", "\tCredencial P\u00FAblica: "},
- {".Private.Credentials.inaccessible.",
- "\tCredenciales Privadas Inaccesibles\n"},
- {".Private.Credential.", "\tCredencial Privada: "},
- {".Private.Credential.inaccessible.",
- "\tCredencial Privada Inaccesible\n"},
- {"Subject.is.read.only", "El asunto es de s\u00F3lo lectura"},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set",
- "intentando agregar un objeto que no es una instancia de java.security.Principal al juego principal de un asunto"},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.class",
- "intentando agregar un objeto que no es una instancia de {0}"},
-
- // javax.security.auth.login.AppConfigurationEntry
- {"LoginModuleControlFlag.", "LoginModuleControlFlag: "},
-
- // javax.security.auth.login.LoginContext
- {"Invalid.null.input.name", "Entrada nula no v\u00E1lida: nombre"},
- {"No.LoginModules.configured.for.name",
- "No se han configurado LoginModules para {0}"},
- {"invalid.null.Subject.provided", "se ha proporcionado un asunto nulo no v\u00E1lido"},
- {"invalid.null.CallbackHandler.provided",
- "se ha proporcionado CallbackHandler nulo no v\u00E1lido"},
- {"null.subject.logout.called.before.login",
- "asunto nulo - se ha llamado al cierre de sesi\u00F3n antes del inicio de sesi\u00F3n"},
- {"unable.to.instantiate.LoginModule.module.because.it.does.not.provide.a.no.argument.constructor",
- "no se ha podido instanciar LoginModule, {0}, porque no incluye un constructor sin argumentos"},
- {"unable.to.instantiate.LoginModule",
- "no se ha podido instanciar LoginModule"},
- {"unable.to.instantiate.LoginModule.",
- "no se ha podido instanciar LoginModule: "},
- {"unable.to.find.LoginModule.class.",
- "no se ha encontrado la clase LoginModule: "},
- {"unable.to.access.LoginModule.",
- "no se ha podido acceder a LoginModule: "},
- {"Login.Failure.all.modules.ignored",
- "Fallo en inicio de sesi\u00F3n: se han ignorado todos los m\u00F3dulos"},
-
- // sun.security.provider.PolicyFile
-
- {"java.security.policy.error.parsing.policy.message",
- "java.security.policy: error de an\u00E1lisis de {0}:\n\t{1}"},
- {"java.security.policy.error.adding.Permission.perm.message",
- "java.security.policy: error al agregar un permiso, {0}:\n\t{1}"},
- {"java.security.policy.error.adding.Entry.message",
- "java.security.policy: error al agregar una entrada:\n\t{0}"},
- {"alias.name.not.provided.pe.name.", "no se ha proporcionado el nombre de alias ({0})"},
- {"unable.to.perform.substitution.on.alias.suffix",
- "no se puede realizar la sustituci\u00F3n en el alias, {0}"},
- {"substitution.value.prefix.unsupported",
- "valor de sustituci\u00F3n, {0}, no soportado"},
- {"SPACE", " "},
- {"LPARAM", "("},
- {"RPARAM", ")"},
- {"type.can.t.be.null","el tipo no puede ser nulo"},
-
- // sun.security.provider.PolicyParser
- {"keystorePasswordURL.can.not.be.specified.without.also.specifying.keystore",
- "keystorePasswordURL no puede especificarse sin especificar tambi\u00E9n el almac\u00E9n de claves"},
- {"expected.keystore.type", "se esperaba un tipo de almac\u00E9n de claves"},
- {"expected.keystore.provider", "se esperaba un proveedor de almac\u00E9n de claves"},
- {"multiple.Codebase.expressions",
- "expresiones m\u00FAltiples de CodeBase"},
- {"multiple.SignedBy.expressions","expresiones m\u00FAltiples de SignedBy"},
- {"duplicate.keystore.domain.name","nombre de dominio de almac\u00E9n de claves duplicado: {0}"},
- {"duplicate.keystore.name","nombre de almac\u00E9n de claves duplicado: {0}"},
- {"SignedBy.has.empty.alias","SignedBy tiene un alias vac\u00EDo"},
- {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name",
- "no se puede especificar Principal con una clase de comod\u00EDn sin un nombre de comod\u00EDn"},
- {"expected.codeBase.or.SignedBy.or.Principal",
- "se esperaba codeBase o SignedBy o Principal"},
- {"expected.permission.entry", "se esperaba un permiso de entrada"},
- {"number.", "n\u00FAmero "},
- {"expected.expect.read.end.of.file.",
- "se esperaba [{0}], se ha le\u00EDdo [final de archivo]"},
- {"expected.read.end.of.file.",
- "se esperaba [;], se ha le\u00EDdo [final de archivo]"},
- {"line.number.msg", "l\u00EDnea {0}: {1}"},
- {"line.number.expected.expect.found.actual.",
- "l\u00EDnea {0}: se esperaba [{1}], se ha encontrado [{2}]"},
- {"null.principalClass.or.principalName",
- "principalClass o principalName nulos"},
-
- // sun.security.pkcs11.SunPKCS11
- {"PKCS11.Token.providerName.Password.",
- "Contrase\u00F1a del Token PKCS11 [{0}]: "},
-
- /* --- DEPRECATED --- */
- // javax.security.auth.Policy
- {"unable.to.instantiate.Subject.based.policy",
- "no se ha podido instanciar una pol\u00EDtica basada en asunto"}
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
-
diff --git a/src/java.base/share/classes/sun/security/util/Resources_fr.java b/src/java.base/share/classes/sun/security/util/Resources_fr.java
deleted file mode 100644
index c924d9b1913c9..0000000000000
--- a/src/java.base/share/classes/sun/security/util/Resources_fr.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- * This class represents the ResourceBundle
- * for javax.security.auth and sun.security.
- *
- */
-public class Resources_fr extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // javax.security.auth.PrivateCredentialPermission
- {"invalid.null.input.s.", "entr\u00E9es NULL non valides"},
- {"actions.can.only.be.read.", "les actions sont accessibles en lecture uniquement"},
- {"permission.name.name.syntax.invalid.",
- "syntaxe de nom de droit [{0}] non valide : "},
- {"Credential.Class.not.followed.by.a.Principal.Class.and.Name",
- "Classe Credential non suivie d'une classe et d'un nom de principal"},
- {"Principal.Class.not.followed.by.a.Principal.Name",
- "Classe de principal non suivie d'un nom de principal"},
- {"Principal.Name.must.be.surrounded.by.quotes",
- "Le nom de principal doit \u00EAtre indiqu\u00E9 entre guillemets"},
- {"Principal.Name.missing.end.quote",
- "Guillemet fermant manquant pour le nom de principal"},
- {"PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value",
- "La classe de principal PrivateCredentialPermission ne peut pas \u00EAtre une valeur g\u00E9n\u00E9rique (*) si le nom de principal n'est pas une valeur g\u00E9n\u00E9rique (*)"},
- {"CredOwner.Principal.Class.class.Principal.Name.name",
- "CredOwner :\n\tClasse de principal = {0}\n\tNom de principal = {1}"},
-
- // javax.security.auth.x500
- {"provided.null.name", "nom NULL fourni"},
- {"provided.null.keyword.map", "mappage de mots-cl\u00E9s NULL fourni"},
- {"provided.null.OID.map", "mappage OID NULL fourni"},
-
- // javax.security.auth.Subject
- {"NEWLINE", "\n"},
- {"invalid.null.AccessControlContext.provided",
- "AccessControlContext NULL fourni non valide"},
- {"invalid.null.action.provided", "action NULL fournie non valide"},
- {"invalid.null.Class.provided", "classe NULL fournie non valide"},
- {"Subject.", "Objet :\n"},
- {".Principal.", "\tPrincipal : "},
- {".Public.Credential.", "\tInformations d'identification publiques : "},
- {".Private.Credentials.inaccessible.",
- "\tInformations d'identification priv\u00E9es inaccessibles\n"},
- {".Private.Credential.", "\tInformations d'identification priv\u00E9es : "},
- {".Private.Credential.inaccessible.",
- "\tInformations d'identification priv\u00E9es inaccessibles\n"},
- {"Subject.is.read.only", "Sujet en lecture seule"},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set",
- "tentative d'ajout d'un objet qui n'est pas une instance de java.security.Principal dans un ensemble de principaux du sujet"},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.class",
- "tentative d''ajout d''un objet qui n''est pas une instance de {0}"},
-
- // javax.security.auth.login.AppConfigurationEntry
- {"LoginModuleControlFlag.", "LoginModuleControlFlag : "},
-
- // javax.security.auth.login.LoginContext
- {"Invalid.null.input.name", "Entr\u00E9e NULL non valide : nom"},
- {"No.LoginModules.configured.for.name",
- "Aucun LoginModule configur\u00E9 pour {0}"},
- {"invalid.null.Subject.provided", "sujet NULL fourni non valide"},
- {"invalid.null.CallbackHandler.provided",
- "CallbackHandler NULL fourni non valide"},
- {"null.subject.logout.called.before.login",
- "sujet NULL - Tentative de d\u00E9connexion avant la connexion"},
- {"unable.to.instantiate.LoginModule.module.because.it.does.not.provide.a.no.argument.constructor",
- "impossible d''instancier LoginModule {0} car il ne fournit pas de constructeur sans argument"},
- {"unable.to.instantiate.LoginModule",
- "impossible d'instancier LoginModule"},
- {"unable.to.instantiate.LoginModule.",
- "impossible d'instancier LoginModule\u00A0: "},
- {"unable.to.find.LoginModule.class.",
- "classe LoginModule introuvable : "},
- {"unable.to.access.LoginModule.",
- "impossible d'acc\u00E9der \u00E0 LoginModule : "},
- {"Login.Failure.all.modules.ignored",
- "Echec de connexion : tous les modules ont \u00E9t\u00E9 ignor\u00E9s"},
-
- // sun.security.provider.PolicyFile
-
- {"java.security.policy.error.parsing.policy.message",
- "java.security.policy : erreur d''analyse de {0} :\n\t{1}"},
- {"java.security.policy.error.adding.Permission.perm.message",
- "java.security.policy : erreur d''ajout de droit, {0} :\n\t{1}"},
- {"java.security.policy.error.adding.Entry.message",
- "java.security.policy : erreur d''ajout d''entr\u00E9e :\n\t{0}"},
- {"alias.name.not.provided.pe.name.", "nom d''alias non fourni ({0})"},
- {"unable.to.perform.substitution.on.alias.suffix",
- "impossible d''effectuer une substitution pour l''alias, {0}"},
- {"substitution.value.prefix.unsupported",
- "valeur de substitution, {0}, non prise en charge"},
- {"SPACE", " "},
- {"LPARAM", "("},
- {"RPARAM", ")"},
- {"type.can.t.be.null","le type ne peut \u00EAtre NULL"},
-
- // sun.security.provider.PolicyParser
- {"keystorePasswordURL.can.not.be.specified.without.also.specifying.keystore",
- "Impossible de sp\u00E9cifier keystorePasswordURL sans indiquer aussi le fichier de cl\u00E9s"},
- {"expected.keystore.type", "type de fichier de cl\u00E9s attendu"},
- {"expected.keystore.provider", "fournisseur de fichier de cl\u00E9s attendu"},
- {"multiple.Codebase.expressions",
- "expressions Codebase multiples"},
- {"multiple.SignedBy.expressions","expressions SignedBy multiples"},
- {"duplicate.keystore.domain.name","nom de domaine de fichier de cl\u00E9s en double : {0}"},
- {"duplicate.keystore.name","nom de fichier de cl\u00E9s en double : {0}"},
- {"SignedBy.has.empty.alias","SignedBy poss\u00E8de un alias vide"},
- {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name",
- "impossible de sp\u00E9cifier le principal avec une classe g\u00E9n\u00E9rique sans nom g\u00E9n\u00E9rique"},
- {"expected.codeBase.or.SignedBy.or.Principal",
- "codeBase, SignedBy ou Principal attendu"},
- {"expected.permission.entry", "entr\u00E9e de droit attendue"},
- {"number.", "nombre "},
- {"expected.expect.read.end.of.file.",
- "attendu [{0}], lu [fin de fichier]"},
- {"expected.read.end.of.file.",
- "attendu [;], lu [fin de fichier]"},
- {"line.number.msg", "ligne {0} : {1}"},
- {"line.number.expected.expect.found.actual.",
- "ligne {0} : attendu [{1}], trouv\u00E9 [{2}]"},
- {"null.principalClass.or.principalName",
- "principalClass ou principalName NULL"},
-
- // sun.security.pkcs11.SunPKCS11
- {"PKCS11.Token.providerName.Password.",
- "Mot de passe PKCS11 Token [{0}] : "},
-
- /* --- DEPRECATED --- */
- // javax.security.auth.Policy
- {"unable.to.instantiate.Subject.based.policy",
- "impossible d'instancier les r\u00E8gles bas\u00E9es sur le sujet"}
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
-
diff --git a/src/java.base/share/classes/sun/security/util/Resources_it.java b/src/java.base/share/classes/sun/security/util/Resources_it.java
deleted file mode 100644
index 9a1cbe4cacf98..0000000000000
--- a/src/java.base/share/classes/sun/security/util/Resources_it.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- * This class represents the ResourceBundle
- * for javax.security.auth and sun.security.
- *
- */
-public class Resources_it extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // javax.security.auth.PrivateCredentialPermission
- {"invalid.null.input.s.", "input nullo/i non valido/i"},
- {"actions.can.only.be.read.", "le azioni possono essere solamente 'lette'"},
- {"permission.name.name.syntax.invalid.",
- "sintassi [{0}] non valida per il nome autorizzazione: "},
- {"Credential.Class.not.followed.by.a.Principal.Class.and.Name",
- "la classe di credenziali non \u00E8 seguita da un nome e una classe di principal"},
- {"Principal.Class.not.followed.by.a.Principal.Name",
- "la classe di principal non \u00E8 seguita da un nome principal"},
- {"Principal.Name.must.be.surrounded.by.quotes",
- "il nome principal deve essere compreso tra apici"},
- {"Principal.Name.missing.end.quote",
- "apice di chiusura del nome principal mancante"},
- {"PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value",
- "la classe principal PrivateCredentialPermission non pu\u00F2 essere un valore carattere jolly (*) se il nome principal a sua volta non \u00E8 un valore carattere jolly (*)"},
- {"CredOwner.Principal.Class.class.Principal.Name.name",
- "CredOwner:\n\tclasse Principal = {0}\n\tNome Principal = {1}"},
-
- // javax.security.auth.x500
- {"provided.null.name", "il nome fornito \u00E8 nullo"},
- {"provided.null.keyword.map", "specificata mappa parole chiave null"},
- {"provided.null.OID.map", "specificata mappa OID null"},
-
- // javax.security.auth.Subject
- {"NEWLINE", "\n"},
- {"invalid.null.AccessControlContext.provided",
- "fornito un valore nullo non valido per AccessControlContext"},
- {"invalid.null.action.provided", "fornita un'azione nulla non valida"},
- {"invalid.null.Class.provided", "fornita una classe nulla non valida"},
- {"Subject.", "Oggetto:\n"},
- {".Principal.", "\tPrincipal: "},
- {".Public.Credential.", "\tCredenziale pubblica: "},
- {".Private.Credentials.inaccessible.",
- "\tImpossibile accedere alle credenziali private\n"},
- {".Private.Credential.", "\tCredenziale privata: "},
- {".Private.Credential.inaccessible.",
- "\tImpossibile accedere alla credenziale privata\n"},
- {"Subject.is.read.only", "L'oggetto \u00E8 di sola lettura"},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set",
- "si \u00E8 tentato di aggiungere un oggetto che non \u00E8 un'istanza di java.security.Principal a un set principal dell'oggetto"},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.class",
- "si \u00E8 tentato di aggiungere un oggetto che non \u00E8 un''istanza di {0}"},
-
- // javax.security.auth.login.AppConfigurationEntry
- {"LoginModuleControlFlag.", "LoginModuleControlFlag: "},
-
- // javax.security.auth.login.LoginContext
- {"Invalid.null.input.name", "Input nullo non valido: nome"},
- {"No.LoginModules.configured.for.name",
- "Nessun LoginModules configurato per {0}"},
- {"invalid.null.Subject.provided", "fornito un valore nullo non valido per l'oggetto"},
- {"invalid.null.CallbackHandler.provided",
- "fornito un valore nullo non valido per CallbackHandler"},
- {"null.subject.logout.called.before.login",
- "oggetto nullo - il logout \u00E8 stato richiamato prima del login"},
- {"unable.to.instantiate.LoginModule.module.because.it.does.not.provide.a.no.argument.constructor",
- "impossibile creare un''istanza di LoginModule {0} in quanto non restituisce un argomento vuoto per il costruttore"},
- {"unable.to.instantiate.LoginModule",
- "impossibile creare un'istanza di LoginModule"},
- {"unable.to.instantiate.LoginModule.",
- "impossibile creare un'istanza di LoginModule: "},
- {"unable.to.find.LoginModule.class.",
- "impossibile trovare la classe LoginModule: "},
- {"unable.to.access.LoginModule.",
- "impossibile accedere a LoginModule "},
- {"Login.Failure.all.modules.ignored",
- "Errore di login: tutti i moduli sono stati ignorati"},
-
- // sun.security.provider.PolicyFile
-
- {"java.security.policy.error.parsing.policy.message",
- "java.security.policy: errore durante l''analisi di {0}:\n\t{1}"},
- {"java.security.policy.error.adding.Permission.perm.message",
- "java.security.policy: errore durante l''aggiunta dell''autorizzazione {0}:\n\t{1}"},
- {"java.security.policy.error.adding.Entry.message",
- "java.security.policy: errore durante l''aggiunta della voce:\n\t{0}"},
- {"alias.name.not.provided.pe.name.", "impossibile fornire nome alias ({0})"},
- {"unable.to.perform.substitution.on.alias.suffix",
- "impossibile eseguire una sostituzione sull''alias, {0}"},
- {"substitution.value.prefix.unsupported",
- "valore sostituzione, {0}, non supportato"},
- {"SPACE", " "},
- {"LPARAM", "("},
- {"RPARAM", ")"},
- {"type.can.t.be.null","il tipo non pu\u00F2 essere nullo"},
-
- // sun.security.provider.PolicyParser
- {"keystorePasswordURL.can.not.be.specified.without.also.specifying.keystore",
- "Impossibile specificare keystorePasswordURL senza specificare anche il keystore"},
- {"expected.keystore.type", "tipo keystore previsto"},
- {"expected.keystore.provider", "provider di keystore previsto"},
- {"multiple.Codebase.expressions",
- "espressioni Codebase multiple"},
- {"multiple.SignedBy.expressions","espressioni SignedBy multiple"},
- {"duplicate.keystore.domain.name","nome dominio keystore duplicato: {0}"},
- {"duplicate.keystore.name","nome keystore duplicato: {0}"},
- {"SignedBy.has.empty.alias","SignedBy presenta un alias vuoto"},
- {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name",
- "impossibile specificare un principal con una classe carattere jolly senza un nome carattere jolly"},
- {"expected.codeBase.or.SignedBy.or.Principal",
- "previsto codeBase o SignedBy o principal"},
- {"expected.permission.entry", "prevista voce di autorizzazione"},
- {"number.", "numero "},
- {"expected.expect.read.end.of.file.",
- "previsto [{0}], letto [end of file]"},
- {"expected.read.end.of.file.",
- "previsto [;], letto [end of file]"},
- {"line.number.msg", "riga {0}: {1}"},
- {"line.number.expected.expect.found.actual.",
- "riga {0}: previsto [{1}], trovato [{2}]"},
- {"null.principalClass.or.principalName",
- "principalClass o principalName nullo"},
-
- // sun.security.pkcs11.SunPKCS11
- {"PKCS11.Token.providerName.Password.",
- "Password per token PKCS11 [{0}]: "},
-
- /* --- DEPRECATED --- */
- // javax.security.auth.Policy
- {"unable.to.instantiate.Subject.based.policy",
- "impossibile creare un'istanza dei criteri basati sull'oggetto"}
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
-
diff --git a/src/java.base/share/classes/sun/security/util/Resources_ja.java b/src/java.base/share/classes/sun/security/util/Resources_ja.java
deleted file mode 100644
index 3cf3b91a62a13..0000000000000
--- a/src/java.base/share/classes/sun/security/util/Resources_ja.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- * This class represents the ResourceBundle
- * for javax.security.auth and sun.security.
- *
- */
-public class Resources_ja extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // javax.security.auth.PrivateCredentialPermission
- {"invalid.null.input.s.", "null\u306E\u5165\u529B\u306F\u7121\u52B9\u3067\u3059"},
- {"actions.can.only.be.read.", "\u30A2\u30AF\u30B7\u30E7\u30F3\u306F'\u8AAD\u8FBC\u307F'\u306E\u307F\u53EF\u80FD\u3067\u3059"},
- {"permission.name.name.syntax.invalid.",
- "\u30A2\u30AF\u30BB\u30B9\u6A29\u540D[{0}]\u306E\u69CB\u6587\u304C\u7121\u52B9\u3067\u3059: "},
- {"Credential.Class.not.followed.by.a.Principal.Class.and.Name",
- "Credential\u30AF\u30E9\u30B9\u306E\u6B21\u306BPrincipal\u30AF\u30E9\u30B9\u304A\u3088\u3073\u540D\u524D\u304C\u3042\u308A\u307E\u305B\u3093"},
- {"Principal.Class.not.followed.by.a.Principal.Name",
- "Principal\u30AF\u30E9\u30B9\u306E\u6B21\u306B\u30D7\u30EA\u30F3\u30B7\u30D1\u30EB\u540D\u304C\u3042\u308A\u307E\u305B\u3093"},
- {"Principal.Name.must.be.surrounded.by.quotes",
- "\u30D7\u30EA\u30F3\u30B7\u30D1\u30EB\u540D\u306F\u5F15\u7528\u7B26\u3067\u56F2\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"},
- {"Principal.Name.missing.end.quote",
- "\u30D7\u30EA\u30F3\u30B7\u30D1\u30EB\u540D\u306E\u6700\u5F8C\u306B\u5F15\u7528\u7B26\u304C\u3042\u308A\u307E\u305B\u3093"},
- {"PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value",
- "\u30D7\u30EA\u30F3\u30B7\u30D1\u30EB\u540D\u304C\u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9(*)\u5024\u3067\u306A\u3044\u5834\u5408\u3001PrivateCredentialPermission\u306EPrincipal\u30AF\u30E9\u30B9\u3092\u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9(*)\u5024\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093"},
- {"CredOwner.Principal.Class.class.Principal.Name.name",
- "CredOwner:\n\tPrincipal\u30AF\u30E9\u30B9={0}\n\t\u30D7\u30EA\u30F3\u30B7\u30D1\u30EB\u540D={1}"},
-
- // javax.security.auth.x500
- {"provided.null.name", "null\u306E\u540D\u524D\u304C\u6307\u5B9A\u3055\u308C\u307E\u3057\u305F"},
- {"provided.null.keyword.map", "null\u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u30FB\u30DE\u30C3\u30D7\u304C\u6307\u5B9A\u3055\u308C\u307E\u3057\u305F"},
- {"provided.null.OID.map", "null\u306EOID\u30DE\u30C3\u30D7\u304C\u6307\u5B9A\u3055\u308C\u307E\u3057\u305F"},
-
- // javax.security.auth.Subject
- {"NEWLINE", "\n"},
- {"invalid.null.action.provided", "\u7121\u52B9\u306Anull\u30A2\u30AF\u30B7\u30E7\u30F3\u304C\u6307\u5B9A\u3055\u308C\u307E\u3057\u305F"},
- {"invalid.null.Class.provided", "\u7121\u52B9\u306Anull\u30AF\u30E9\u30B9\u304C\u6307\u5B9A\u3055\u308C\u307E\u3057\u305F"},
- {"Subject.", "\u30B5\u30D6\u30B8\u30A7\u30AF\u30C8:\n"},
- {".Principal.", "\t\u30D7\u30EA\u30F3\u30B7\u30D1\u30EB: "},
- {".Public.Credential.", "\t\u516C\u958B\u8CC7\u683C: "},
- {".Private.Credential.", "\t\u975E\u516C\u958B\u8CC7\u683C: "},
- {".Private.Credential.inaccessible.",
- "\t\u975E\u516C\u958B\u8CC7\u683C\u306B\u306F\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093\n"},
- {"Subject.is.read.only", "\u30B5\u30D6\u30B8\u30A7\u30AF\u30C8\u306F\u8AAD\u53D6\u308A\u5C02\u7528\u3067\u3059"},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set",
- "java.security.Principal\u306E\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3067\u306F\u306A\u3044\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u3001\u30B5\u30D6\u30B8\u30A7\u30AF\u30C8\u306E\u30D7\u30EA\u30F3\u30B7\u30D1\u30EB\u30FB\u30BB\u30C3\u30C8\u306B\u8FFD\u52A0\u3057\u3088\u3046\u3068\u3057\u307E\u3057\u305F"},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.class",
- "{0}\u306E\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3067\u306F\u306A\u3044\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u8FFD\u52A0\u3057\u3088\u3046\u3068\u3057\u307E\u3057\u305F"},
-
- // javax.security.auth.login.AppConfigurationEntry
- {"LoginModuleControlFlag.", "LoginModuleControlFlag: "},
-
- // javax.security.auth.login.LoginContext
- {"Invalid.null.input.name", "\u7121\u52B9\u306Anull\u5165\u529B: \u540D\u524D"},
- {"No.LoginModules.configured.for.name",
- "{0}\u7528\u306B\u69CB\u6210\u3055\u308C\u305FLoginModules\u306F\u3042\u308A\u307E\u305B\u3093"},
- {"invalid.null.Subject.provided", "\u7121\u52B9\u306Anull\u30B5\u30D6\u30B8\u30A7\u30AF\u30C8\u304C\u6307\u5B9A\u3055\u308C\u307E\u3057\u305F"},
- {"invalid.null.CallbackHandler.provided",
- "\u7121\u52B9\u306Anull CallbackHandler\u304C\u6307\u5B9A\u3055\u308C\u307E\u3057\u305F"},
- {"null.subject.logout.called.before.login",
- "null\u30B5\u30D6\u30B8\u30A7\u30AF\u30C8 - \u30ED\u30B0\u30A4\u30F3\u3059\u308B\u524D\u306B\u30ED\u30B0\u30A2\u30A6\u30C8\u304C\u547C\u3073\u51FA\u3055\u308C\u307E\u3057\u305F"},
- {"Login.Failure.all.modules.ignored",
- "\u30ED\u30B0\u30A4\u30F3\u5931\u6557: \u3059\u3079\u3066\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u306F\u7121\u8996\u3055\u308C\u307E\u3059"},
-
- // sun.security.provider.PolicyParser
- {"duplicate.keystore.domain.name","\u91CD\u8907\u3059\u308B\u30AD\u30FC\u30B9\u30C8\u30A2\u30FB\u30C9\u30E1\u30A4\u30F3\u540D: {0}"},
- {"duplicate.keystore.name","\u91CD\u8907\u3059\u308B\u30AD\u30FC\u30B9\u30C8\u30A2\u540D: {0}"},
- {"number.", "\u6570 "},
- {"expected.expect.read.end.of.file.",
- "[{0}]\u3067\u306F\u306A\u304F[\u30D5\u30A1\u30A4\u30EB\u306E\u7D42\u308F\u308A]\u304C\u8AAD\u307F\u8FBC\u307E\u308C\u307E\u3057\u305F"},
- {"expected.read.end.of.file.",
- "[;]\u3067\u306F\u306A\u304F[\u30D5\u30A1\u30A4\u30EB\u306E\u7D42\u308F\u308A]\u304C\u8AAD\u307F\u8FBC\u307E\u308C\u307E\u3057\u305F"},
- {"line.number.msg", "\u884C{0}: {1}"},
- {"line.number.expected.expect.found.actual.",
- "\u884C{0}: [{1}]\u3067\u306F\u306A\u304F[{2}]\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F"},
-
- // sun.security.pkcs11.SunPKCS11
- {"PKCS11.Token.providerName.Password.",
- "PKCS11\u30C8\u30FC\u30AF\u30F3[{0}]\u30D1\u30B9\u30EF\u30FC\u30C9: "},
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
-
diff --git a/src/java.base/share/classes/sun/security/util/Resources_ko.java b/src/java.base/share/classes/sun/security/util/Resources_ko.java
deleted file mode 100644
index a3fd02eaff5a9..0000000000000
--- a/src/java.base/share/classes/sun/security/util/Resources_ko.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- * This class represents the ResourceBundle
- * for javax.security.auth and sun.security.
- *
- */
-public class Resources_ko extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // javax.security.auth.PrivateCredentialPermission
- {"invalid.null.input.s.", "\uB110 \uC785\uB825\uAC12\uC774 \uBD80\uC801\uD569\uD569\uB2C8\uB2E4."},
- {"actions.can.only.be.read.", "\uC791\uC5C5\uC740 '\uC77D\uAE30' \uC804\uC6A9\uC785\uB2C8\uB2E4."},
- {"permission.name.name.syntax.invalid.",
- "\uAD8C\uD55C \uC774\uB984 [{0}] \uAD6C\uBB38\uC774 \uBD80\uC801\uD569\uD568: "},
- {"Credential.Class.not.followed.by.a.Principal.Class.and.Name",
- "\uC778\uC99D\uC11C \uD074\uB798\uC2A4 \uB2E4\uC74C\uC5D0 \uC8FC\uCCB4 \uD074\uB798\uC2A4\uC640 \uC774\uB984\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"Principal.Class.not.followed.by.a.Principal.Name",
- "\uC8FC\uCCB4 \uD074\uB798\uC2A4 \uB2E4\uC74C\uC5D0 \uC8FC\uCCB4 \uC774\uB984\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"Principal.Name.must.be.surrounded.by.quotes",
- "\uC8FC\uCCB4 \uC774\uB984\uC740 \uB530\uC634\uD45C\uB85C \uBB36\uC5B4\uC57C \uD569\uB2C8\uB2E4."},
- {"Principal.Name.missing.end.quote",
- "\uC8FC\uCCB4 \uC774\uB984\uC5D0 \uB2EB\uB294 \uB530\uC634\uD45C\uAC00 \uB204\uB77D\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
- {"PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value",
- "\uC8FC\uCCB4 \uC774\uB984\uC774 \uC640\uC77C\uB4DC \uCE74\uB4DC \uBB38\uC790(*) \uAC12\uC774 \uC544\uB2CC \uACBD\uC6B0 PrivateCredentialPermission \uC8FC\uCCB4 \uD074\uB798\uC2A4\uB294 \uC640\uC77C\uB4DC \uCE74\uB4DC \uBB38\uC790(*) \uAC12\uC77C \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"CredOwner.Principal.Class.class.Principal.Name.name",
- "CredOwner:\n\t\uC8FC\uCCB4 \uD074\uB798\uC2A4 = {0}\n\t\uC8FC\uCCB4 \uC774\uB984 = {1}"},
-
- // javax.security.auth.x500
- {"provided.null.name", "\uB110 \uC774\uB984\uC744 \uC81C\uACF5\uD588\uC2B5\uB2C8\uB2E4."},
- {"provided.null.keyword.map", "\uB110 \uD0A4\uC6CC\uB4DC \uB9F5\uC744 \uC81C\uACF5\uD588\uC2B5\uB2C8\uB2E4."},
- {"provided.null.OID.map", "\uB110 OID \uB9F5\uC744 \uC81C\uACF5\uD588\uC2B5\uB2C8\uB2E4."},
-
- // javax.security.auth.Subject
- {"NEWLINE", "\n"},
- {"invalid.null.AccessControlContext.provided",
- "\uBD80\uC801\uD569\uD55C \uB110 AccessControlContext\uAC00 \uC81C\uACF5\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
- {"invalid.null.action.provided", "\uBD80\uC801\uD569\uD55C \uB110 \uC791\uC5C5\uC774 \uC81C\uACF5\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
- {"invalid.null.Class.provided", "\uBD80\uC801\uD569\uD55C \uB110 \uD074\uB798\uC2A4\uAC00 \uC81C\uACF5\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
- {"Subject.", "\uC81C\uBAA9:\n"},
- {".Principal.", "\\\uC8FC\uCCB4: "},
- {".Public.Credential.", "\t\uACF5\uC6A9 \uC778\uC99D\uC11C: "},
- {".Private.Credentials.inaccessible.",
- "\t\uC804\uC6A9 \uC778\uC99D\uC11C\uC5D0 \uC561\uC138\uC2A4\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.\n"},
- {".Private.Credential.", "\t\uC804\uC6A9 \uC778\uC99D\uC11C: "},
- {".Private.Credential.inaccessible.",
- "\t\uC804\uC6A9 \uC778\uC99D\uC11C\uC5D0 \uC561\uC138\uC2A4\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.\n"},
- {"Subject.is.read.only", "\uC81C\uBAA9\uC774 \uC77D\uAE30 \uC804\uC6A9\uC785\uB2C8\uB2E4."},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set",
- "java.security.Principal\uC758 \uC778\uC2A4\uD134\uC2A4\uAC00 \uC544\uB2CC \uAC1D\uCCB4\uB97C \uC81C\uBAA9\uC758 \uC8FC\uCCB4 \uC9D1\uD569\uC5D0 \uCD94\uAC00\uD558\uB824\uACE0 \uC2DC\uB3C4\uD558\uB294 \uC911"},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.class",
- "{0}\uC758 \uC778\uC2A4\uD134\uC2A4\uAC00 \uC544\uB2CC \uAC1D\uCCB4\uB97C \uCD94\uAC00\uD558\uB824\uACE0 \uC2DC\uB3C4\uD558\uB294 \uC911"},
-
- // javax.security.auth.login.AppConfigurationEntry
- {"LoginModuleControlFlag.", "LoginModuleControlFlag: "},
-
- // javax.security.auth.login.LoginContext
- {"Invalid.null.input.name", "\uBD80\uC801\uD569\uD55C \uB110 \uC785\uB825\uAC12: \uC774\uB984"},
- {"No.LoginModules.configured.for.name",
- "{0}\uC5D0 \uB300\uD574 \uAD6C\uC131\uB41C LoginModules\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"invalid.null.Subject.provided", "\uBD80\uC801\uD569\uD55C \uB110 \uC81C\uBAA9\uC774 \uC81C\uACF5\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
- {"invalid.null.CallbackHandler.provided",
- "\uBD80\uC801\uD569\uD55C \uB110 CallbackHandler\uAC00 \uC81C\uACF5\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
- {"null.subject.logout.called.before.login",
- "\uB110 \uC81C\uBAA9 - \uB85C\uADF8\uC778 \uC804\uC5D0 \uB85C\uADF8\uC544\uC6C3\uC774 \uD638\uCD9C\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
- {"unable.to.instantiate.LoginModule.module.because.it.does.not.provide.a.no.argument.constructor",
- "\uC778\uC218\uAC00 \uC5C6\uB294 \uC0DD\uC131\uC790\uB97C \uC81C\uACF5\uD558\uC9C0 \uC54A\uC544 LoginModule {0}\uC744(\uB97C) \uC778\uC2A4\uD134\uC2A4\uD654\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"unable.to.instantiate.LoginModule",
- "LoginModule\uC744 \uC778\uC2A4\uD134\uC2A4\uD654\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"unable.to.instantiate.LoginModule.",
- "LoginModule\uC744 \uC778\uC2A4\uD134\uC2A4\uD654\uD560 \uC218 \uC5C6\uC74C: "},
- {"unable.to.find.LoginModule.class.",
- "LoginModule \uD074\uB798\uC2A4\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC74C: "},
- {"unable.to.access.LoginModule.",
- "LoginModule\uC5D0 \uC561\uC138\uC2A4\uD560 \uC218 \uC5C6\uC74C: "},
- {"Login.Failure.all.modules.ignored",
- "\uB85C\uADF8\uC778 \uC2E4\uD328: \uBAA8\uB4E0 \uBAA8\uB4C8\uC774 \uBB34\uC2DC\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
-
- // sun.security.provider.PolicyFile
-
- {"java.security.policy.error.parsing.policy.message",
- "java.security.policy: {0}\uC758 \uAD6C\uBB38\uC744 \uBD84\uC11D\uD558\uB294 \uC911 \uC624\uB958 \uBC1C\uC0DD:\n\t{1}"},
- {"java.security.policy.error.adding.Permission.perm.message",
- "java.security.policy: {0} \uAD8C\uD55C\uC744 \uCD94\uAC00\uD558\uB294 \uC911 \uC624\uB958 \uBC1C\uC0DD:\n\t{1}"},
- {"java.security.policy.error.adding.Entry.message",
- "java.security.policy: \uD56D\uBAA9\uC744 \uCD94\uAC00\uD558\uB294 \uC911 \uC624\uB958 \uBC1C\uC0DD:\n\t{0}"},
- {"alias.name.not.provided.pe.name.", "\uBCC4\uCE6D \uC774\uB984\uC774 \uC81C\uACF5\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4({0})."},
- {"unable.to.perform.substitution.on.alias.suffix",
- "{0} \uBCC4\uCE6D\uC744 \uB300\uCCB4\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"substitution.value.prefix.unsupported",
- "\uB300\uCCB4 \uAC12 {0}\uC740(\uB294) \uC9C0\uC6D0\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4."},
- {"SPACE", " "},
- {"LPARAM", "("},
- {"RPARAM", ")"},
- {"type.can.t.be.null","\uC720\uD615\uC740 \uB110\uC77C \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
-
- // sun.security.provider.PolicyParser
- {"keystorePasswordURL.can.not.be.specified.without.also.specifying.keystore",
- "\uD0A4 \uC800\uC7A5\uC18C\uB97C \uC9C0\uC815\uD558\uC9C0 \uC54A\uACE0 keystorePasswordURL\uC744 \uC9C0\uC815\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"expected.keystore.type", "\uD0A4 \uC800\uC7A5\uC18C \uC720\uD615\uC774 \uD544\uC694\uD569\uB2C8\uB2E4."},
- {"expected.keystore.provider", "\uD0A4 \uC800\uC7A5\uC18C \uC81C\uACF5\uC790\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4."},
- {"multiple.Codebase.expressions",
- "Codebase \uD45C\uD604\uC2DD\uC774 \uC5EC\uB7EC \uAC1C\uC785\uB2C8\uB2E4."},
- {"multiple.SignedBy.expressions","SignedBy \uD45C\uD604\uC2DD\uC774 \uC5EC\uB7EC \uAC1C\uC785\uB2C8\uB2E4."},
- {"duplicate.keystore.domain.name","\uC911\uBCF5\uB41C \uD0A4 \uC800\uC7A5\uC18C \uB3C4\uBA54\uC778 \uC774\uB984: {0}"},
- {"duplicate.keystore.name","\uC911\uBCF5\uB41C \uD0A4 \uC800\uC7A5\uC18C \uC774\uB984: {0}"},
- {"SignedBy.has.empty.alias","SignedBy\uC758 \uBCC4\uCE6D\uC774 \uBE44\uC5B4 \uC788\uC2B5\uB2C8\uB2E4."},
- {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name",
- "\uC640\uC77C\uB4DC \uCE74\uB4DC \uBB38\uC790 \uC774\uB984 \uC5C6\uC774 \uC640\uC77C\uB4DC \uCE74\uB4DC \uBB38\uC790 \uD074\uB798\uC2A4\uB97C \uC0AC\uC6A9\uD558\uB294 \uC8FC\uCCB4\uB97C \uC9C0\uC815\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
- {"expected.codeBase.or.SignedBy.or.Principal",
- "codeBase, SignedBy \uB610\uB294 \uC8FC\uCCB4\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4."},
- {"expected.permission.entry", "\uAD8C\uD55C \uD56D\uBAA9\uC774 \uD544\uC694\uD569\uB2C8\uB2E4."},
- {"number.", "\uC22B\uC790 "},
- {"expected.expect.read.end.of.file.",
- "[{0}]\uC774(\uAC00) \uD544\uC694\uD558\uC9C0\uB9CC [\uD30C\uC77C\uC758 \uB05D]\uAE4C\uC9C0 \uC77D\uC5C8\uC2B5\uB2C8\uB2E4."},
- {"expected.read.end.of.file.",
- "[;]\uC774 \uD544\uC694\uD558\uC9C0\uB9CC [\uD30C\uC77C\uC758 \uB05D]\uAE4C\uC9C0 \uC77D\uC5C8\uC2B5\uB2C8\uB2E4."},
- {"line.number.msg", "{0} \uD589: {1}"},
- {"line.number.expected.expect.found.actual.",
- "{0} \uD589: [{1}]\uC774(\uAC00) \uD544\uC694\uD558\uC9C0\uB9CC [{2}]\uC774(\uAC00) \uBC1C\uACAC\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},
- {"null.principalClass.or.principalName",
- "principalClass \uB610\uB294 principalName\uC774 \uB110\uC785\uB2C8\uB2E4."},
-
- // sun.security.pkcs11.SunPKCS11
- {"PKCS11.Token.providerName.Password.",
- "PKCS11 \uD1A0\uD070 [{0}] \uBE44\uBC00\uBC88\uD638: "},
-
- /* --- DEPRECATED --- */
- // javax.security.auth.Policy
- {"unable.to.instantiate.Subject.based.policy",
- "\uC81C\uBAA9 \uAE30\uBC18 \uC815\uCC45\uC744 \uC778\uC2A4\uD134\uC2A4\uD654\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."}
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
-
diff --git a/src/java.base/share/classes/sun/security/util/Resources_pt_BR.java b/src/java.base/share/classes/sun/security/util/Resources_pt_BR.java
deleted file mode 100644
index 2ce9ac9dbd34c..0000000000000
--- a/src/java.base/share/classes/sun/security/util/Resources_pt_BR.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- * This class represents the ResourceBundle
- * for javax.security.auth and sun.security.
- *
- */
-public class Resources_pt_BR extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // javax.security.auth.PrivateCredentialPermission
- {"invalid.null.input.s.", "entrada(s) nula(s) inv\u00E1lida(s)"},
- {"actions.can.only.be.read.", "as a\u00E7\u00F5es s\u00F3 podem ser 'lidas'"},
- {"permission.name.name.syntax.invalid.",
- "sintaxe inv\u00E1lida do nome da permiss\u00E3o [{0}]: "},
- {"Credential.Class.not.followed.by.a.Principal.Class.and.Name",
- "Classe da Credencial n\u00E3o seguida por um Nome e uma Classe do Principal"},
- {"Principal.Class.not.followed.by.a.Principal.Name",
- "Classe do Principal n\u00E3o seguida por um Nome do Principal"},
- {"Principal.Name.must.be.surrounded.by.quotes",
- "O Nome do Principal deve estar entre aspas"},
- {"Principal.Name.missing.end.quote",
- "Faltam as aspas finais no Nome do Principal"},
- {"PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value",
- "A Classe do Principal PrivateCredentialPermission n\u00E3o pode ser um valor curinga (*) se o Nome do Principal n\u00E3o for um valor curinga (*)"},
- {"CredOwner.Principal.Class.class.Principal.Name.name",
- "CredOwner:\n\tClasse do Principal = {0}\n\tNome do Principal = {1}"},
-
- // javax.security.auth.x500
- {"provided.null.name", "nome nulo fornecido"},
- {"provided.null.keyword.map", "mapa de palavra-chave nulo fornecido"},
- {"provided.null.OID.map", "mapa OID nulo fornecido"},
-
- // javax.security.auth.Subject
- {"NEWLINE", "\n"},
- {"invalid.null.AccessControlContext.provided",
- "AccessControlContext nulo inv\u00E1lido fornecido"},
- {"invalid.null.action.provided", "a\u00E7\u00E3o nula inv\u00E1lida fornecida"},
- {"invalid.null.Class.provided", "Classe nula inv\u00E1lida fornecida"},
- {"Subject.", "Assunto:\n"},
- {".Principal.", "\tPrincipal: "},
- {".Public.Credential.", "\tCredencial P\u00FAblica: "},
- {".Private.Credentials.inaccessible.",
- "\tCredenciais Privadas inacess\u00EDveis\n"},
- {".Private.Credential.", "\tCredencial Privada: "},
- {".Private.Credential.inaccessible.",
- "\tCredencial Privada inacess\u00EDvel\n"},
- {"Subject.is.read.only", "O Assunto \u00E9 somente para leitura"},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set",
- "tentativa de adicionar um objeto que n\u00E3o \u00E9 uma inst\u00E2ncia de java.security.Principal a um conjunto de principais do Subject"},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.class",
- "tentativa de adicionar um objeto que n\u00E3o \u00E9 uma inst\u00E2ncia de {0}"},
-
- // javax.security.auth.login.AppConfigurationEntry
- {"LoginModuleControlFlag.", "LoginModuleControlFlag: "},
-
- // javax.security.auth.login.LoginContext
- {"Invalid.null.input.name", "Entrada nula inv\u00E1lida: nome"},
- {"No.LoginModules.configured.for.name",
- "Nenhum LoginModule configurado para {0}"},
- {"invalid.null.Subject.provided", "Subject nulo inv\u00E1lido fornecido"},
- {"invalid.null.CallbackHandler.provided",
- "CallbackHandler nulo inv\u00E1lido fornecido"},
- {"null.subject.logout.called.before.login",
- "Subject nulo - log-out chamado antes do log-in"},
- {"unable.to.instantiate.LoginModule.module.because.it.does.not.provide.a.no.argument.constructor",
- "n\u00E3o \u00E9 poss\u00EDvel instanciar LoginModule, {0}, porque ele n\u00E3o fornece um construtor sem argumento"},
- {"unable.to.instantiate.LoginModule",
- "n\u00E3o \u00E9 poss\u00EDvel instanciar LoginModule"},
- {"unable.to.instantiate.LoginModule.",
- "n\u00E3o \u00E9 poss\u00EDvel instanciar LoginModule: "},
- {"unable.to.find.LoginModule.class.",
- "n\u00E3o \u00E9 poss\u00EDvel localizar a classe LoginModule: "},
- {"unable.to.access.LoginModule.",
- "n\u00E3o \u00E9 poss\u00EDvel acessar LoginModule: "},
- {"Login.Failure.all.modules.ignored",
- "Falha de Log-in: todos os m\u00F3dulos ignorados"},
-
- // sun.security.provider.PolicyFile
-
- {"java.security.policy.error.parsing.policy.message",
- "java.security.policy: erro durante o parsing de {0}:\n\t{1}"},
- {"java.security.policy.error.adding.Permission.perm.message",
- "java.security.policy: erro ao adicionar a permiss\u00E3o, {0}:\n\t{1}"},
- {"java.security.policy.error.adding.Entry.message",
- "java.security.policy: erro ao adicionar a Entrada:\n\t{0}"},
- {"alias.name.not.provided.pe.name.", "nome de alias n\u00E3o fornecido ({0})"},
- {"unable.to.perform.substitution.on.alias.suffix",
- "n\u00E3o \u00E9 poss\u00EDvel realizar a substitui\u00E7\u00E3o no alias, {0}"},
- {"substitution.value.prefix.unsupported",
- "valor da substitui\u00E7\u00E3o, {0}, n\u00E3o suportado"},
- {"SPACE", " "},
- {"LPARAM", "("},
- {"RPARAM", ")"},
- {"type.can.t.be.null","o tipo n\u00E3o pode ser nulo"},
-
- // sun.security.provider.PolicyParser
- {"keystorePasswordURL.can.not.be.specified.without.also.specifying.keystore",
- "keystorePasswordURL n\u00E3o pode ser especificado sem que a \u00E1rea de armazenamento de chaves tamb\u00E9m seja especificada"},
- {"expected.keystore.type", "tipo de armazenamento de chaves esperado"},
- {"expected.keystore.provider", "fornecedor da \u00E1rea de armazenamento de chaves esperado"},
- {"multiple.Codebase.expressions",
- "v\u00E1rias express\u00F5es CodeBase"},
- {"multiple.SignedBy.expressions","v\u00E1rias express\u00F5es SignedBy"},
- {"duplicate.keystore.domain.name","nome do dom\u00EDnio da \u00E1rea de armazenamento de teclas duplicado: {0}"},
- {"duplicate.keystore.name","nome da \u00E1rea de armazenamento de chaves duplicado: {0}"},
- {"SignedBy.has.empty.alias","SignedBy tem alias vazio"},
- {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name",
- "n\u00E3o \u00E9 poss\u00EDvel especificar um principal com uma classe curinga sem um nome curinga"},
- {"expected.codeBase.or.SignedBy.or.Principal",
- "CodeBase ou SignedBy ou Principal esperado"},
- {"expected.permission.entry", "entrada de permiss\u00E3o esperada"},
- {"number.", "n\u00FAmero "},
- {"expected.expect.read.end.of.file.",
- "esperado [{0}], lido [fim do arquivo]"},
- {"expected.read.end.of.file.",
- "esperado [;], lido [fim do arquivo]"},
- {"line.number.msg", "linha {0}: {1}"},
- {"line.number.expected.expect.found.actual.",
- "linha {0}: esperada [{1}], encontrada [{2}]"},
- {"null.principalClass.or.principalName",
- "principalClass ou principalName nulo"},
-
- // sun.security.pkcs11.SunPKCS11
- {"PKCS11.Token.providerName.Password.",
- "Senha PKCS11 de Token [{0}]: "},
-
- /* --- DEPRECATED --- */
- // javax.security.auth.Policy
- {"unable.to.instantiate.Subject.based.policy",
- "n\u00E3o \u00E9 poss\u00EDvel instanciar a pol\u00EDtica com base em Subject"}
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
-
diff --git a/src/java.base/share/classes/sun/security/util/Resources_sv.java b/src/java.base/share/classes/sun/security/util/Resources_sv.java
deleted file mode 100644
index 21c94a597601f..0000000000000
--- a/src/java.base/share/classes/sun/security/util/Resources_sv.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- * This class represents the ResourceBundle
- * for javax.security.auth and sun.security.
- *
- */
-public class Resources_sv extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // javax.security.auth.PrivateCredentialPermission
- {"invalid.null.input.s.", "ogiltiga null-indata"},
- {"actions.can.only.be.read.", "\u00E5tg\u00E4rder kan endast 'l\u00E4sas'"},
- {"permission.name.name.syntax.invalid.",
- "syntaxen f\u00F6r beh\u00F6righetsnamnet [{0}] \u00E4r ogiltig: "},
- {"Credential.Class.not.followed.by.a.Principal.Class.and.Name",
- "Inloggningsuppgiftsklassen f\u00F6ljs inte av klass eller namn f\u00F6r identitetshavare"},
- {"Principal.Class.not.followed.by.a.Principal.Name",
- "Identitetshavareklassen f\u00F6ljs inte av n\u00E5got identitetshavarenamn"},
- {"Principal.Name.must.be.surrounded.by.quotes",
- "Identitetshavarenamnet m\u00E5ste anges inom citattecken"},
- {"Principal.Name.missing.end.quote",
- "Identitetshavarenamnet saknar avslutande citattecken"},
- {"PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value",
- "Identitetshavareklassen PrivateCredentialPermission kan inte ha n\u00E5got jokertecken (*) om inte namnet p\u00E5 identitetshavaren anges med jokertecken (*)"},
- {"CredOwner.Principal.Class.class.Principal.Name.name",
- "CredOwner:\n\tIdentitetshavareklass = {0}\n\tIdentitetshavarenamn = {1}"},
-
- // javax.security.auth.x500
- {"provided.null.name", "null-namn angavs"},
- {"provided.null.keyword.map", "nullnyckelordsmappning angavs"},
- {"provided.null.OID.map", "null-OID-mappning angavs"},
-
- // javax.security.auth.Subject
- {"NEWLINE", "\n"},
- {"invalid.null.AccessControlContext.provided",
- "ogiltigt null-AccessControlContext"},
- {"invalid.null.action.provided", "ogiltig null-funktion"},
- {"invalid.null.Class.provided", "ogiltig null-klass"},
- {"Subject.", "Innehavare:\n"},
- {".Principal.", "\tIdentitetshavare: "},
- {".Public.Credential.", "\tOffentlig inloggning: "},
- {".Private.Credentials.inaccessible.",
- "\tPrivat inloggning \u00E4r inte tillg\u00E4nglig\n"},
- {".Private.Credential.", "\tPrivat inloggning: "},
- {".Private.Credential.inaccessible.",
- "\tPrivat inloggning \u00E4r inte tillg\u00E4nglig\n"},
- {"Subject.is.read.only", "Innehavare \u00E4r skrivskyddad"},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set",
- "f\u00F6rs\u00F6k att l\u00E4gga till ett objekt som inte \u00E4r en instans av java.security.Principal till ett subjekts upps\u00E4ttning av identitetshavare"},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.class",
- "f\u00F6rs\u00F6ker l\u00E4gga till ett objekt som inte \u00E4r en instans av {0}"},
-
- // javax.security.auth.login.AppConfigurationEntry
- {"LoginModuleControlFlag.", "LoginModuleControlFlag: "},
-
- // javax.security.auth.login.LoginContext
- {"Invalid.null.input.name", "Ogiltiga null-indata: namn"},
- {"No.LoginModules.configured.for.name",
- "Inga inloggningsmoduler har konfigurerats f\u00F6r {0}"},
- {"invalid.null.Subject.provided", "ogiltig null-subjekt"},
- {"invalid.null.CallbackHandler.provided",
- "ogiltig null-CallbackHandler"},
- {"null.subject.logout.called.before.login",
- "null-subjekt - utloggning anropades f\u00F6re inloggning"},
- {"unable.to.instantiate.LoginModule.module.because.it.does.not.provide.a.no.argument.constructor",
- "kan inte instansiera LoginModule, {0}, eftersom den inte tillhandah\u00E5ller n\u00E5gon icke-argumentskonstruktor"},
- {"unable.to.instantiate.LoginModule",
- "kan inte instansiera LoginModule"},
- {"unable.to.instantiate.LoginModule.",
- "kan inte instansiera LoginModule: "},
- {"unable.to.find.LoginModule.class.",
- "hittar inte LoginModule-klassen: "},
- {"unable.to.access.LoginModule.",
- "ingen \u00E5tkomst till LoginModule: "},
- {"Login.Failure.all.modules.ignored",
- "Inloggningsfel: alla moduler ignoreras"},
-
- // sun.security.provider.PolicyFile
-
- {"java.security.policy.error.parsing.policy.message",
- "java.security.policy: fel vid tolkning av {0}:\n\t{1}"},
- {"java.security.policy.error.adding.Permission.perm.message",
- "java.security.policy: fel vid till\u00E4gg av beh\u00F6righet, {0}:\n\t{1}"},
- {"java.security.policy.error.adding.Entry.message",
- "java.security.policy: fel vid till\u00E4gg av post:\n\t{0}"},
- {"alias.name.not.provided.pe.name.", "aliasnamn ej angivet ({0})"},
- {"unable.to.perform.substitution.on.alias.suffix",
- "kan ej ers\u00E4tta alias, {0}"},
- {"substitution.value.prefix.unsupported",
- "ers\u00E4ttningsv\u00E4rde, {0}, st\u00F6ds ej"},
- {"SPACE", " "},
- {"LPARAM", "("},
- {"RPARAM", ")"},
- {"type.can.t.be.null","typen kan inte vara null"},
-
- // sun.security.provider.PolicyParser
- {"keystorePasswordURL.can.not.be.specified.without.also.specifying.keystore",
- "kan inte ange keystorePasswordURL utan att ange nyckellager"},
- {"expected.keystore.type", "f\u00F6rv\u00E4ntad nyckellagertyp"},
- {"expected.keystore.provider", "nyckellagerleverant\u00F6r f\u00F6rv\u00E4ntades"},
- {"multiple.Codebase.expressions",
- "flera CodeBase-uttryck"},
- {"multiple.SignedBy.expressions","flera SignedBy-uttryck"},
- {"duplicate.keystore.domain.name","dom\u00E4nnamn f\u00F6r dubbelt nyckellager: {0}"},
- {"duplicate.keystore.name","namn f\u00F6r dubbelt nyckellager: {0}"},
- {"SignedBy.has.empty.alias","SignedBy har ett tomt alias"},
- {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name",
- "kan inte ange identitetshavare med en jokerteckenklass utan ett jokerteckennamn"},
- {"expected.codeBase.or.SignedBy.or.Principal",
- "f\u00F6rv\u00E4ntad codeBase eller SignedBy eller identitetshavare"},
- {"expected.permission.entry", "f\u00F6rv\u00E4ntade beh\u00F6righetspost"},
- {"number.", "nummer"},
- {"expected.expect.read.end.of.file.",
- "f\u00F6rv\u00E4ntade [{0}], l\u00E4ste [filslut]"},
- {"expected.read.end.of.file.",
- "f\u00F6rv\u00E4ntade [;], l\u00E4ste [filslut]"},
- {"line.number.msg", "rad {0}: {1}"},
- {"line.number.expected.expect.found.actual.",
- "rad {0}: f\u00F6rv\u00E4ntade [{1}], hittade [{2}]"},
- {"null.principalClass.or.principalName",
- "null-principalClass eller -principalName"},
-
- // sun.security.pkcs11.SunPKCS11
- {"PKCS11.Token.providerName.Password.",
- "L\u00F6senord f\u00F6r PKCS11-token [{0}]: "},
-
- /* --- DEPRECATED --- */
- // javax.security.auth.Policy
- {"unable.to.instantiate.Subject.based.policy",
- "kan inte instansiera subjektbaserad policy"}
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
-
diff --git a/src/java.base/share/classes/sun/security/util/Resources_zh_CN.java b/src/java.base/share/classes/sun/security/util/Resources_zh_CN.java
deleted file mode 100644
index b4f8f7b49dfd2..0000000000000
--- a/src/java.base/share/classes/sun/security/util/Resources_zh_CN.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- * This class represents the ResourceBundle
- * for javax.security.auth and sun.security.
- *
- */
-public class Resources_zh_CN extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // javax.security.auth.PrivateCredentialPermission
- {"invalid.null.input.s.", "\u65E0\u6548\u7684\u7A7A\u8F93\u5165"},
- {"actions.can.only.be.read.", "\u64CD\u4F5C\u53EA\u80FD\u4E3A '\u8BFB\u53D6'"},
- {"permission.name.name.syntax.invalid.",
- "\u6743\u9650\u540D\u79F0 [{0}] \u8BED\u6CD5\u65E0\u6548: "},
- {"Credential.Class.not.followed.by.a.Principal.Class.and.Name",
- "\u8EAB\u4EFD\u8BC1\u660E\u7C7B\u540E\u9762\u672A\u8DDF\u968F\u4E3B\u7528\u6237\u7C7B\u53CA\u540D\u79F0"},
- {"Principal.Class.not.followed.by.a.Principal.Name",
- "\u4E3B\u7528\u6237\u7C7B\u540E\u9762\u672A\u8DDF\u968F\u4E3B\u7528\u6237\u540D\u79F0"},
- {"Principal.Name.must.be.surrounded.by.quotes",
- "\u4E3B\u7528\u6237\u540D\u79F0\u5FC5\u987B\u653E\u5728\u5F15\u53F7\u5185"},
- {"Principal.Name.missing.end.quote",
- "\u4E3B\u7528\u6237\u540D\u79F0\u7F3A\u5C11\u53F3\u5F15\u53F7"},
- {"PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value",
- "\u5982\u679C\u4E3B\u7528\u6237\u540D\u79F0\u4E0D\u662F\u901A\u914D\u7B26 (*) \u503C, \u90A3\u4E48 PrivateCredentialPermission \u4E3B\u7528\u6237\u7C7B\u4E0D\u80FD\u662F\u901A\u914D\u7B26 (*) \u503C"},
- {"CredOwner.Principal.Class.class.Principal.Name.name",
- "CredOwner:\n\t\u4E3B\u7528\u6237\u7C7B = {0}\n\t\u4E3B\u7528\u6237\u540D\u79F0 = {1}"},
-
- // javax.security.auth.x500
- {"provided.null.name", "\u63D0\u4F9B\u7684\u540D\u79F0\u4E3A\u7A7A\u503C"},
- {"provided.null.keyword.map", "\u63D0\u4F9B\u7684\u5173\u952E\u5B57\u6620\u5C04\u4E3A\u7A7A\u503C"},
- {"provided.null.OID.map", "\u63D0\u4F9B\u7684 OID \u6620\u5C04\u4E3A\u7A7A\u503C"},
-
- // javax.security.auth.Subject
- {"NEWLINE", "\n"},
- {"invalid.null.action.provided", "\u63D0\u4F9B\u4E86\u65E0\u6548\u7684\u7A7A\u64CD\u4F5C"},
- {"invalid.null.Class.provided", "\u63D0\u4F9B\u4E86\u65E0\u6548\u7684\u7A7A\u7C7B"},
- {"Subject.", "\u4E3B\u4F53: \n"},
- {".Principal.", "\t\u4E3B\u7528\u6237: "},
- {".Public.Credential.", "\t\u516C\u5171\u8EAB\u4EFD\u8BC1\u660E: "},
- {".Private.Credential.", "\t\u4E13\u7528\u8EAB\u4EFD\u8BC1\u660E: "},
- {".Private.Credential.inaccessible.",
- "\t\u65E0\u6CD5\u8BBF\u95EE\u4E13\u7528\u8EAB\u4EFD\u8BC1\u660E\n"},
- {"Subject.is.read.only", "\u4E3B\u4F53\u4E3A\u53EA\u8BFB"},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set",
- "\u6B63\u5728\u5C1D\u8BD5\u5C06\u4E00\u4E2A\u975E java.security.Principal \u5B9E\u4F8B\u7684\u5BF9\u8C61\u6DFB\u52A0\u5230\u4E3B\u4F53\u7684\u4E3B\u7528\u6237\u96C6\u4E2D"},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.class",
- "\u6B63\u5728\u5C1D\u8BD5\u6DFB\u52A0\u4E00\u4E2A\u975E{0}\u5B9E\u4F8B\u7684\u5BF9\u8C61"},
-
- // javax.security.auth.login.AppConfigurationEntry
- {"LoginModuleControlFlag.", "LoginModuleControlFlag: "},
-
- // javax.security.auth.login.LoginContext
- {"Invalid.null.input.name", "\u65E0\u6548\u7A7A\u8F93\u5165: \u540D\u79F0"},
- {"No.LoginModules.configured.for.name",
- "\u6CA1\u6709\u4E3A{0}\u914D\u7F6E LoginModules"},
- {"invalid.null.Subject.provided", "\u63D0\u4F9B\u4E86\u65E0\u6548\u7684\u7A7A\u4E3B\u4F53"},
- {"invalid.null.CallbackHandler.provided",
- "\u63D0\u4F9B\u4E86\u65E0\u6548\u7684\u7A7A CallbackHandler"},
- {"null.subject.logout.called.before.login",
- "\u7A7A\u4E3B\u4F53 - \u5728\u767B\u5F55\u4E4B\u524D\u8C03\u7528\u4E86\u6CE8\u9500"},
- {"Login.Failure.all.modules.ignored",
- "\u767B\u5F55\u5931\u8D25: \u5FFD\u7565\u6240\u6709\u6A21\u5757"},
-
- // sun.security.provider.PolicyParser
- {"duplicate.keystore.domain.name","\u5BC6\u94A5\u5E93\u57DF\u540D\u91CD\u590D: {0}"},
- {"duplicate.keystore.name","\u5BC6\u94A5\u5E93\u540D\u79F0\u91CD\u590D: {0}"},
- {"number.", "\u7F16\u53F7 "},
- {"expected.expect.read.end.of.file.",
- "\u5E94\u4E3A [{0}], \u8BFB\u53D6\u7684\u662F [\u6587\u4EF6\u7ED3\u5C3E]"},
- {"expected.read.end.of.file.",
- "\u5E94\u4E3A [;], \u8BFB\u53D6\u7684\u662F [\u6587\u4EF6\u7ED3\u5C3E]"},
- {"line.number.msg", "\u5217{0}: {1}"},
- {"line.number.expected.expect.found.actual.",
- "\u884C\u53F7 {0}: \u5E94\u4E3A [{1}], \u627E\u5230 [{2}]"},
-
- // sun.security.pkcs11.SunPKCS11
- {"PKCS11.Token.providerName.Password.",
- "PKCS11 \u6807\u8BB0 [{0}] \u53E3\u4EE4: "},
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
-
diff --git a/src/java.base/share/classes/sun/security/util/Resources_zh_TW.java b/src/java.base/share/classes/sun/security/util/Resources_zh_TW.java
deleted file mode 100644
index e428ff59f608d..0000000000000
--- a/src/java.base/share/classes/sun/security/util/Resources_zh_TW.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.util;
-
-/**
- * This class represents the ResourceBundle
- * for javax.security.auth and sun.security.
- *
- */
-public class Resources_zh_TW extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // javax.security.auth.PrivateCredentialPermission
- {"invalid.null.input.s.", "\u7121\u6548\u7A7A\u503C\u8F38\u5165"},
- {"actions.can.only.be.read.", "\u52D5\u4F5C\u53EA\u80FD\u88AB\u300C\u8B80\u53D6\u300D"},
- {"permission.name.name.syntax.invalid.",
- "\u6B0A\u9650\u540D\u7A31 [{0}] \u662F\u7121\u6548\u7684\u8A9E\u6CD5: "},
- {"Credential.Class.not.followed.by.a.Principal.Class.and.Name",
- "Credential \u985E\u5225\u5F8C\u9762\u4E0D\u662F Principal \u985E\u5225\u53CA\u540D\u7A31"},
- {"Principal.Class.not.followed.by.a.Principal.Name",
- "Principal \u985E\u5225\u5F8C\u9762\u4E0D\u662F Principal \u540D\u7A31"},
- {"Principal.Name.must.be.surrounded.by.quotes",
- "Principal \u540D\u7A31\u5FC5\u9808\u4EE5\u5F15\u865F\u5708\u4F4F"},
- {"Principal.Name.missing.end.quote",
- "Principal \u540D\u7A31\u7F3A\u5C11\u4E0B\u5F15\u865F"},
- {"PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value",
- "\u5982\u679C Principal \u540D\u7A31\u4E0D\u662F\u4E00\u500B\u842C\u7528\u5B57\u5143 (*) \u503C\uFF0C\u90A3\u9EBC PrivateCredentialPermission Principal \u985E\u5225\u5C31\u4E0D\u80FD\u662F\u842C\u7528\u5B57\u5143 (*) \u503C"},
- {"CredOwner.Principal.Class.class.Principal.Name.name",
- "CredOwner:\n\tPrincipal \u985E\u5225 = {0}\n\tPrincipal \u540D\u7A31 = {1}"},
-
- // javax.security.auth.x500
- {"provided.null.name", "\u63D0\u4F9B\u7A7A\u503C\u540D\u7A31"},
- {"provided.null.keyword.map", "\u63D0\u4F9B\u7A7A\u503C\u95DC\u9375\u5B57\u5C0D\u6620"},
- {"provided.null.OID.map", "\u63D0\u4F9B\u7A7A\u503C OID \u5C0D\u6620"},
-
- // javax.security.auth.Subject
- {"NEWLINE", "\n"},
- {"invalid.null.AccessControlContext.provided",
- "\u63D0\u4F9B\u7121\u6548\u7684\u7A7A\u503C AccessControlContext"},
- {"invalid.null.action.provided", "\u63D0\u4F9B\u7121\u6548\u7684\u7A7A\u503C\u52D5\u4F5C"},
- {"invalid.null.Class.provided", "\u63D0\u4F9B\u7121\u6548\u7684\u7A7A\u503C\u985E\u5225"},
- {"Subject.", "\u4E3B\u984C:\n"},
- {".Principal.", "\tPrincipal: "},
- {".Public.Credential.", "\t\u516C\u7528\u8B49\u660E\u8CC7\u6599: "},
- {".Private.Credentials.inaccessible.",
- "\t\u79C1\u4EBA\u8B49\u660E\u8CC7\u6599\u7121\u6CD5\u5B58\u53D6\n"},
- {".Private.Credential.", "\t\u79C1\u4EBA\u8B49\u660E\u8CC7\u6599: "},
- {".Private.Credential.inaccessible.",
- "\t\u79C1\u4EBA\u8B49\u660E\u8CC7\u6599\u7121\u6CD5\u5B58\u53D6\n"},
- {"Subject.is.read.only", "\u4E3B\u984C\u70BA\u552F\u8B80"},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set",
- "\u8A66\u5716\u65B0\u589E\u4E00\u500B\u975E java.security.Principal \u57F7\u884C\u8655\u7406\u7684\u7269\u4EF6\u81F3\u4E3B\u984C\u7684 Principal \u7FA4\u4E2D"},
- {"attempting.to.add.an.object.which.is.not.an.instance.of.class",
- "\u8A66\u5716\u65B0\u589E\u4E00\u500B\u975E {0} \u57F7\u884C\u8655\u7406\u7684\u7269\u4EF6"},
-
- // javax.security.auth.login.AppConfigurationEntry
- {"LoginModuleControlFlag.", "LoginModuleControlFlag: "},
-
- // javax.security.auth.login.LoginContext
- {"Invalid.null.input.name", "\u7121\u6548\u7A7A\u503C\u8F38\u5165: \u540D\u7A31"},
- {"No.LoginModules.configured.for.name",
- "\u7121\u91DD\u5C0D {0} \u8A2D\u5B9A\u7684 LoginModules"},
- {"invalid.null.Subject.provided", "\u63D0\u4F9B\u7121\u6548\u7A7A\u503C\u4E3B\u984C"},
- {"invalid.null.CallbackHandler.provided",
- "\u63D0\u4F9B\u7121\u6548\u7A7A\u503C CallbackHandler"},
- {"null.subject.logout.called.before.login",
- "\u7A7A\u503C\u4E3B\u984C - \u5728\u767B\u5165\u4E4B\u524D\u5373\u547C\u53EB\u767B\u51FA"},
- {"unable.to.instantiate.LoginModule.module.because.it.does.not.provide.a.no.argument.constructor",
- "\u7121\u6CD5\u5275\u8A2D LoginModule\uFF0C{0}\uFF0C\u56E0\u70BA\u5B83\u4E26\u672A\u63D0\u4F9B\u975E\u5F15\u6578\u7684\u5EFA\u69CB\u5B50"},
- {"unable.to.instantiate.LoginModule",
- "\u7121\u6CD5\u5EFA\u7ACB LoginModule"},
- {"unable.to.instantiate.LoginModule.",
- "\u7121\u6CD5\u5EFA\u7ACB LoginModule: "},
- {"unable.to.find.LoginModule.class.",
- "\u627E\u4E0D\u5230 LoginModule \u985E\u5225: "},
- {"unable.to.access.LoginModule.",
- "\u7121\u6CD5\u5B58\u53D6 LoginModule: "},
- {"Login.Failure.all.modules.ignored",
- "\u767B\u5165\u5931\u6557: \u5FFD\u7565\u6240\u6709\u6A21\u7D44"},
-
- // sun.security.provider.PolicyFile
-
- {"java.security.policy.error.parsing.policy.message",
- "java.security.policy: \u5256\u6790\u932F\u8AA4 {0}: \n\t{1}"},
- {"java.security.policy.error.adding.Permission.perm.message",
- "java.security.policy: \u65B0\u589E\u6B0A\u9650\u932F\u8AA4 {0}: \n\t{1}"},
- {"java.security.policy.error.adding.Entry.message",
- "java.security.policy: \u65B0\u589E\u9805\u76EE\u932F\u8AA4: \n\t{0}"},
- {"alias.name.not.provided.pe.name.", "\u672A\u63D0\u4F9B\u5225\u540D\u540D\u7A31 ({0})"},
- {"unable.to.perform.substitution.on.alias.suffix",
- "\u7121\u6CD5\u5C0D\u5225\u540D\u57F7\u884C\u66FF\u63DB\uFF0C{0}"},
- {"substitution.value.prefix.unsupported",
- "\u4E0D\u652F\u63F4\u7684\u66FF\u63DB\u503C\uFF0C{0}"},
- {"SPACE", " "},
- {"LPARAM", "("},
- {"RPARAM", ")"},
- {"type.can.t.be.null","\u8F38\u5165\u4E0D\u80FD\u70BA\u7A7A\u503C"},
-
- // sun.security.provider.PolicyParser
- {"keystorePasswordURL.can.not.be.specified.without.also.specifying.keystore",
- "\u6307\u5B9A keystorePasswordURL \u9700\u8981\u540C\u6642\u6307\u5B9A\u91D1\u9470\u5132\u5B58\u5EAB"},
- {"expected.keystore.type", "\u9810\u671F\u7684\u91D1\u9470\u5132\u5B58\u5EAB\u985E\u578B"},
- {"expected.keystore.provider", "\u9810\u671F\u7684\u91D1\u9470\u5132\u5B58\u5EAB\u63D0\u4F9B\u8005"},
- {"multiple.Codebase.expressions",
- "\u591A\u91CD Codebase \u8868\u793A\u5F0F"},
- {"multiple.SignedBy.expressions","\u591A\u91CD SignedBy \u8868\u793A\u5F0F"},
- {"duplicate.keystore.domain.name","\u91CD\u8907\u7684\u91D1\u9470\u5132\u5B58\u5EAB\u7DB2\u57DF\u540D\u7A31: {0}"},
- {"duplicate.keystore.name","\u91CD\u8907\u7684\u91D1\u9470\u5132\u5B58\u5EAB\u540D\u7A31: {0}"},
- {"SignedBy.has.empty.alias","SignedBy \u6709\u7A7A\u5225\u540D"},
- {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name",
- "\u6C92\u6709\u842C\u7528\u5B57\u5143\u540D\u7A31\uFF0C\u7121\u6CD5\u6307\u5B9A\u542B\u6709\u842C\u7528\u5B57\u5143\u985E\u5225\u7684 Principal"},
- {"expected.codeBase.or.SignedBy.or.Principal",
- "\u9810\u671F\u7684 codeBase \u6216 SignedBy \u6216 Principal"},
- {"expected.permission.entry", "\u9810\u671F\u7684\u6B0A\u9650\u9805\u76EE"},
- {"number.", "\u865F\u78BC "},
- {"expected.expect.read.end.of.file.",
- "\u9810\u671F\u7684 [{0}], \u8B80\u53D6 [end of file]"},
- {"expected.read.end.of.file.",
- "\u9810\u671F\u7684 [;], \u8B80\u53D6 [end of file]"},
- {"line.number.msg", "\u884C {0}: {1}"},
- {"line.number.expected.expect.found.actual.",
- "\u884C {0}: \u9810\u671F\u7684 [{1}]\uFF0C\u767C\u73FE [{2}]"},
- {"null.principalClass.or.principalName",
- "\u7A7A\u503C principalClass \u6216 principalName"},
-
- // sun.security.pkcs11.SunPKCS11
- {"PKCS11.Token.providerName.Password.",
- "PKCS11 \u8A18\u865F [{0}] \u5BC6\u78BC: "},
-
- /* --- DEPRECATED --- */
- // javax.security.auth.Policy
- {"unable.to.instantiate.Subject.based.policy",
- "\u7121\u6CD5\u5EFA\u7ACB\u4E3B\u984C\u5F0F\u7684\u539F\u5247"}
- };
-
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
-
diff --git a/src/java.base/share/classes/sun/security/util/resources/auth.properties b/src/java.base/share/classes/sun/security/util/resources/auth.properties
new file mode 100644
index 0000000000000..a2686983ee419
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/auth.properties
@@ -0,0 +1,67 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# NT principals
+invalid.null.input.value=invalid null input: {0}
+NTDomainPrincipal.name=NTDomainPrincipal: {0}
+NTNumericCredential.name=NTNumericCredential: {0}
+Invalid.NTSid.value=Invalid NTSid value
+NTSid.name=NTSid: {0}
+NTSidDomainPrincipal.name=NTSidDomainPrincipal: {0}
+NTSidGroupPrincipal.name=NTSidGroupPrincipal: {0}
+NTSidPrimaryGroupPrincipal.name=NTSidPrimaryGroupPrincipal: {0}
+NTSidUserPrincipal.name=NTSidUserPrincipal: {0}
+NTUserPrincipal.name=NTUserPrincipal: {0}
+
+# UnixPrincipals
+UnixNumericGroupPrincipal.Primary.Group.name=UnixNumericGroupPrincipal [Primary Group]: {0}
+UnixNumericGroupPrincipal.Supplementary.Group.name=UnixNumericGroupPrincipal [Supplementary Group]: {0}
+UnixNumericUserPrincipal.name=UnixNumericUserPrincipal: {0}
+UnixPrincipal.name=UnixPrincipal: {0}
+
+# com.sun.security.auth.login.ConfigFile
+Unable.to.properly.expand.config=Unable to properly expand {0}
+extra.config.No.such.file.or.directory.={0} (No such file or directory)
+Configuration.Error.No.such.file.or.directory=Configuration Error:\n\tNo such file or directory
+Configuration.Error.Invalid.control.flag.flag=Configuration Error:\n\tInvalid control flag, {0}
+Configuration.Error.Can.not.specify.multiple.entries.for.appName=Configuration Error:\n\tCan not specify multiple entries for {0}
+Configuration.Error.expected.expect.read.end.of.file.=Configuration Error:\n\texpected [{0}], read [end of file]
+Configuration.Error.Line.line.expected.expect.found.value.=Configuration Error:\n\tLine {0}: expected [{1}], found [{2}]
+Configuration.Error.Line.line.expected.expect.=Configuration Error:\n\tLine {0}: expected [{1}]
+Configuration.Error.Line.line.system.property.value.expanded.to.empty.value=Configuration Error:\n\tLine {0}: system property [{1}] expanded to empty value
+
+# com.sun.security.auth.module.JndiLoginModule
+username.=username:\u0020
+password.=password:\u0020
+
+# com.sun.security.auth.module.KeyStoreLoginModule
+Please.enter.keystore.information=Please enter keystore information
+Keystore.alias.=Keystore alias:\u0020
+Keystore.password.=Keystore password:\u0020
+Private.key.password.optional.=Private key password (optional):\u0020
+
+# com.sun.security.auth.module.Krb5LoginModule
+Kerberos.username.defUsername.=Kerberos username [{0}]:\u0020
+Kerberos.password.for.username.=Kerberos password for {0}:\u0020
diff --git a/src/java.base/share/classes/sun/security/util/resources/auth_de.properties b/src/java.base/share/classes/sun/security/util/resources/auth_de.properties
new file mode 100644
index 0000000000000..a1ae9fc672301
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/auth_de.properties
@@ -0,0 +1,67 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# NT principals
+invalid.null.input.value=Ungültige Nulleingabe: {0}
+NTDomainPrincipal.name=NTDomainPrincipal: {0}
+NTNumericCredential.name=NTNumericCredential: {0}
+Invalid.NTSid.value=Ungültiger NTSid-Wert
+NTSid.name=NTSid: {0}
+NTSidDomainPrincipal.name=NTSidDomainPrincipal: {0}
+NTSidGroupPrincipal.name=NTSidGroupPrincipal: {0}
+NTSidPrimaryGroupPrincipal.name=NTSidPrimaryGroupPrincipal: {0}
+NTSidUserPrincipal.name=NTSidUserPrincipal: {0}
+NTUserPrincipal.name=NTUserPrincipal: {0}
+
+# UnixPrincipals
+UnixNumericGroupPrincipal.Primary.Group.name=UnixNumericGroupPrincipal [Primärgruppe]: {0}
+UnixNumericGroupPrincipal.Supplementary.Group.name=UnixNumericGroupPrincipal [Zusatzgruppe]: {0}
+UnixNumericUserPrincipal.name=UnixNumericUserPrincipal: {0}
+UnixPrincipal.name=UnixPrincipal: {0}
+
+# com.sun.security.auth.login.ConfigFile
+Unable.to.properly.expand.config={0} kann nicht ordnungsgemäß erweitert werden
+extra.config.No.such.file.or.directory.={0} (Datei oder Verzeichnis nicht vorhanden)
+Configuration.Error.No.such.file.or.directory=Konfigurationsfehler:\n\tDatei oder Verzeichnis nicht vorhanden
+Configuration.Error.Invalid.control.flag.flag=Konfigurationsfehler:\n\tUngültiges Steuerkennzeichen {0}
+Configuration.Error.Can.not.specify.multiple.entries.for.appName=Konfigurationsfehler:\n\tEs können nicht mehrere Angaben für {0} gemacht werden.
+Configuration.Error.expected.expect.read.end.of.file.=Konfigurationsfehler:\n\t[{0}] erwartet, [Dateiende] gelesen
+Configuration.Error.Line.line.expected.expect.found.value.=Konfigurationsfehler:\n\tZeile {0}: [{1}] erwartet, [{2}] gefunden
+Configuration.Error.Line.line.expected.expect.=Konfigurationsfehler:\n\tZeile {0}: [{1}] erwartet
+Configuration.Error.Line.line.system.property.value.expanded.to.empty.value=Konfigurationsfehler:\n\tZeile {0}: Systemeigenschaft [{1}] auf leeren Wert erweitert
+
+# com.sun.security.auth.module.JndiLoginModule
+username.=Benutzername:\u0020
+password.=Kennwort:\u0020
+
+# com.sun.security.auth.module.KeyStoreLoginModule
+Please.enter.keystore.information=Geben Sie die Keystore-Informationen ein
+Keystore.alias.=Keystore-Alias:\u0020
+Keystore.password.=Keystore-Kennwort:\u0020
+Private.key.password.optional.=Private-Key-Kennwort (optional):\u0020
+
+# com.sun.security.auth.module.Krb5LoginModule
+Kerberos.username.defUsername.=Kerberos-Benutzername [{0}]:\u0020
+Kerberos.password.for.username.=Kerberos-Kennwort für {0}:\u0020
diff --git a/src/java.base/share/classes/sun/security/util/resources/auth_es.properties b/src/java.base/share/classes/sun/security/util/resources/auth_es.properties
new file mode 100644
index 0000000000000..2a7dceede2d8e
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/auth_es.properties
@@ -0,0 +1,67 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# NT principals
+invalid.null.input.value=entrada nula no válida: {0}
+NTDomainPrincipal.name=NTDomainPrincipal: {0}
+NTNumericCredential.name=NTNumericCredential: {0}
+Invalid.NTSid.value=Valor de NTSid no válido
+NTSid.name=NTSid: {0}
+NTSidDomainPrincipal.name=NTSidDomainPrincipal: {0}
+NTSidGroupPrincipal.name=NTSidGroupPrincipal: {0}
+NTSidPrimaryGroupPrincipal.name=NTSidPrimaryGroupPrincipal: {0}
+NTSidUserPrincipal.name=NTSidUserPrincipal: {0}
+NTUserPrincipal.name=NTUserPrincipal: {0}
+
+# UnixPrincipals
+UnixNumericGroupPrincipal.Primary.Group.name=UnixNumericGroupPrincipal [Grupo Principal] {0}
+UnixNumericGroupPrincipal.Supplementary.Group.name=UnixNumericGroupPrincipal [Grupo Adicional] {0}
+UnixNumericUserPrincipal.name=UnixNumericUserPrincipal: {0}
+UnixPrincipal.name=UnixPrincipal: {0}
+
+# com.sun.security.auth.login.ConfigFile
+Unable.to.properly.expand.config=No se ha podido ampliar correctamente {0}
+extra.config.No.such.file.or.directory.={0} (No existe tal archivo o directorio)
+Configuration.Error.No.such.file.or.directory=Error de Configuración:\n\tNo existe tal archivo o directorio
+Configuration.Error.Invalid.control.flag.flag=Error de Configuración:\n\tIndicador de control no válido, {0}
+Configuration.Error.Can.not.specify.multiple.entries.for.appName=Error de Configuración:\n\tNo se pueden especificar varias entradas para {0}
+Configuration.Error.expected.expect.read.end.of.file.=Error de configuración:\n\tse esperaba [{0}], se ha leído [final de archivo]
+Configuration.Error.Line.line.expected.expect.found.value.=Error de configuración:\n\tLínea {0}: se esperaba [{1}], se ha encontrado [{2}]
+Configuration.Error.Line.line.expected.expect.=Error de configuración:\n\tLínea {0}: se esperaba [{1}]
+Configuration.Error.Line.line.system.property.value.expanded.to.empty.value=Error de configuración:\n\tLínea {0}: propiedad de sistema [{1}] ampliada a valor vacío
+
+# com.sun.security.auth.module.JndiLoginModule
+username.=nombre de usuario:\u0020
+password.=contraseña:\u0020
+
+# com.sun.security.auth.module.KeyStoreLoginModule
+Please.enter.keystore.information=Introduzca la información del almacén de claves
+Keystore.alias.=Alias de Almacén de Claves:\u0020
+Keystore.password.=Contraseña de Almacén de Claves:\u0020
+Private.key.password.optional.=Contraseña de Clave Privada (opcional):\u0020
+
+# com.sun.security.auth.module.Krb5LoginModule
+Kerberos.username.defUsername.=Nombre de usuario de Kerberos [{0}]:\u0020
+Kerberos.password.for.username.=Contraseña de Kerberos de {0}:\u0020
diff --git a/src/java.base/share/classes/sun/security/util/resources/auth_fr.properties b/src/java.base/share/classes/sun/security/util/resources/auth_fr.properties
new file mode 100644
index 0000000000000..75f7808324919
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/auth_fr.properties
@@ -0,0 +1,67 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# NT principals
+invalid.null.input.value=entrée NULL non valide : {0}
+NTDomainPrincipal.name=NTDomainPrincipal : {0}
+NTNumericCredential.name=NTNumericCredential : {0}
+Invalid.NTSid.value=Valeur de NTSid non valide
+NTSid.name=NTSid : {0}
+NTSidDomainPrincipal.name=NTSidDomainPrincipal : {0}
+NTSidGroupPrincipal.name=NTSidGroupPrincipal : {0}
+NTSidPrimaryGroupPrincipal.name=NTSidPrimaryGroupPrincipal : {0}
+NTSidUserPrincipal.name=NTSidUserPrincipal : {0}
+NTUserPrincipal.name=NTUserPrincipal : {0}
+
+# UnixPrincipals
+UnixNumericGroupPrincipal.Primary.Group.name=UnixNumericGroupPrincipal [groupe principal] : {0}
+UnixNumericGroupPrincipal.Supplementary.Group.name=UnixNumericGroupPrincipal [groupe supplémentaire] : {0}
+UnixNumericUserPrincipal.name=UnixNumericUserPrincipal : {0}
+UnixPrincipal.name=UnixPrincipal : {0}
+
+# com.sun.security.auth.login.ConfigFile
+Unable.to.properly.expand.config=Impossible de développer {0} correctement
+extra.config.No.such.file.or.directory.={0} (fichier ou répertoire inexistant)
+Configuration.Error.No.such.file.or.directory=Erreur de configuration :\n\tCe fichier ou répertoire n'existe pas
+Configuration.Error.Invalid.control.flag.flag=Erreur de configuration :\n\tIndicateur de contrôle non valide, {0}
+Configuration.Error.Can.not.specify.multiple.entries.for.appName=Erreur de configuration :\n\tImpossible de spécifier des entrées multiples pour {0}
+Configuration.Error.expected.expect.read.end.of.file.=Erreur de configuration :\n\tAttendu : [{0}], lu : [fin de fichier]
+Configuration.Error.Line.line.expected.expect.found.value.=Erreur de configuration :\n\tLigne {0} : attendu [{1}], trouvé [{2}]
+Configuration.Error.Line.line.expected.expect.=Erreur de configuration :\n\tLigne {0} : attendu [{1}]
+Configuration.Error.Line.line.system.property.value.expanded.to.empty.value=Erreur de configuration :\n\tLigne {0} : propriété système [{1}] développée en valeur vide
+
+# com.sun.security.auth.module.JndiLoginModule
+username.=nom utilisateur :\u0020
+password.=mot de passe :\u0020
+
+# com.sun.security.auth.module.KeyStoreLoginModule
+Please.enter.keystore.information=Entrez les informations du fichier de clés
+Keystore.alias.=Alias du fichier de clés :\u0020
+Keystore.password.=Mot de passe pour fichier de clés :\u0020
+Private.key.password.optional.=Mot de passe de la clé privée (facultatif) :\u0020
+
+# com.sun.security.auth.module.Krb5LoginModule
+Kerberos.username.defUsername.=Nom utilisateur Kerberos [{0}] :\u0020
+Kerberos.password.for.username.=Mot de passe Kerberos pour {0} :\u0020
diff --git a/src/java.base/share/classes/sun/security/util/resources/auth_it.properties b/src/java.base/share/classes/sun/security/util/resources/auth_it.properties
new file mode 100644
index 0000000000000..49a0dc764c73e
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/auth_it.properties
@@ -0,0 +1,67 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# NT principals
+invalid.null.input.value=input nullo non valido: {0}
+NTDomainPrincipal.name=NTDomainPrincipal: {0}
+NTNumericCredential.name=NTNumericCredential: {0}
+Invalid.NTSid.value=Valore NTSid non valido
+NTSid.name=NTSid: {0}
+NTSidDomainPrincipal.name=NTSidDomainPrincipal: {0}
+NTSidGroupPrincipal.name=NTSidGroupPrincipal: {0}
+NTSidPrimaryGroupPrincipal.name=NTSidPrimaryGroupPrincipal: {0}
+NTSidUserPrincipal.name=NTSidUserPrincipal: {0}
+NTUserPrincipal.name=NTUserPrincipal: {0}
+
+# UnixPrincipals
+UnixNumericGroupPrincipal.Primary.Group.name=UnixNumericGroupPrincipal [gruppo primario]: {0}
+UnixNumericGroupPrincipal.Supplementary.Group.name=UnixNumericGroupPrincipal [gruppo supplementare]: {0}
+UnixNumericUserPrincipal.name=UnixNumericUserPrincipal: {0}
+UnixPrincipal.name=UnixPrincipal: {0}
+
+# com.sun.security.auth.login.ConfigFile
+Unable.to.properly.expand.config=Impossibile espandere correttamente {0}
+extra.config.No.such.file.or.directory.={0} (file o directory inesistente)
+Configuration.Error.No.such.file.or.directory=Errore di configurazione:\n\tFile o directory inesistente
+Configuration.Error.Invalid.control.flag.flag=Errore di configurazione:\n\tflag di controllo non valido, {0}
+Configuration.Error.Can.not.specify.multiple.entries.for.appName=Errore di configurazione:\n\timpossibile specificare più valori per {0}
+Configuration.Error.expected.expect.read.end.of.file.=Errore di configurazione:\n\tprevisto [{0}], letto [end of file]
+Configuration.Error.Line.line.expected.expect.found.value.=Errore di configurazione:\n\triga {0}: previsto [{1}], trovato [{2}]
+Configuration.Error.Line.line.expected.expect.=Errore di configurazione:\n\triga {0}: previsto [{1}]
+Configuration.Error.Line.line.system.property.value.expanded.to.empty.value=Errore di configurazione:\n\triga {0}: proprietà di sistema [{1}] espansa a valore vuoto
+
+# com.sun.security.auth.module.JndiLoginModule
+username.=Nome utente:\u0020
+password.=Password:\u0020
+
+# com.sun.security.auth.module.KeyStoreLoginModule
+Please.enter.keystore.information=Immettere le informazioni per il keystore
+Keystore.alias.=Alias keystore:\u0020
+Keystore.password.=Password keystore:\u0020
+Private.key.password.optional.=Password chiave privata (opzionale):\u0020
+
+# com.sun.security.auth.module.Krb5LoginModule
+Kerberos.username.defUsername.=Nome utente Kerberos [{0}]:\u0020
+Kerberos.password.for.username.=Password Kerberos per {0}:\u0020
diff --git a/src/java.base/share/classes/sun/security/util/resources/auth_ja.properties b/src/java.base/share/classes/sun/security/util/resources/auth_ja.properties
new file mode 100644
index 0000000000000..9caaf22002c2a
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/auth_ja.properties
@@ -0,0 +1,67 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# NT principals
+invalid.null.input.value=無効なnullの入力: {0}
+NTDomainPrincipal.name=NTDomainPrincipal: {0}
+NTNumericCredential.name=NTNumericCredential: {0}
+Invalid.NTSid.value=無効なNTSid値
+NTSid.name=NTSid: {0}
+NTSidDomainPrincipal.name=NTSidDomainPrincipal: {0}
+NTSidGroupPrincipal.name=NTSidGroupPrincipal: {0}
+NTSidPrimaryGroupPrincipal.name=NTSidPrimaryGroupPrincipal: {0}
+NTSidUserPrincipal.name=NTSidUserPrincipal: {0}
+NTUserPrincipal.name=NTUserPrincipal: {0}
+
+# UnixPrincipals
+UnixNumericGroupPrincipal.Primary.Group.name=UnixNumericGroupPrincipal [主グループ]: {0}
+UnixNumericGroupPrincipal.Supplementary.Group.name=UnixNumericGroupPrincipal [補助グループ]: {0}
+UnixNumericUserPrincipal.name=UnixNumericUserPrincipal: {0}
+UnixPrincipal.name=UnixPrincipal: {0}
+
+# com.sun.security.auth.login.ConfigFile
+Unable.to.properly.expand.config={0}を正しく展開できません
+extra.config.No.such.file.or.directory.={0}(指定されたファイルまたはディレクトリは存在しません)
+Configuration.Error.No.such.file.or.directory=構成エラー:\n\t指定されたファイルまたはディレクトリは存在しません
+Configuration.Error.Invalid.control.flag.flag=構成エラー:\n\t無効な制御フラグ: {0}
+Configuration.Error.Can.not.specify.multiple.entries.for.appName=構成エラー:\n\t{0}に複数のエントリを指定できません
+Configuration.Error.expected.expect.read.end.of.file.=構成エラー:\n\t[{0}]ではなく、[ファイルの終わり]が読み込まれました
+Configuration.Error.Line.line.expected.expect.found.value.=構成エラー:\n\t行{0}: [{1}]ではなく、[{2}]が検出されました
+Configuration.Error.Line.line.expected.expect.=構成エラー:\n\t行{0}: [{1}]が要求されました
+Configuration.Error.Line.line.system.property.value.expanded.to.empty.value=構成エラー:\n\t行{0}: システム・プロパティ[{1}]が空の値に展開されました
+
+# com.sun.security.auth.module.JndiLoginModule
+username.=ユーザー名:\u0020
+password.=パスワード:\u0020
+
+# com.sun.security.auth.module.KeyStoreLoginModule
+Please.enter.keystore.information=キーストア情報を入力してください
+Keystore.alias.=キーストアの別名:\u0020
+Keystore.password.=キーストアのパスワード:\u0020
+Private.key.password.optional.=秘密キーのパスワード(オプション):\u0020
+
+# com.sun.security.auth.module.Krb5LoginModule
+Kerberos.username.defUsername.=Kerberosユーザー名[{0}]:\u0020
+Kerberos.password.for.username.={0}のKerberosパスワード:\u0020
diff --git a/src/java.base/share/classes/sun/security/util/resources/auth_ko.properties b/src/java.base/share/classes/sun/security/util/resources/auth_ko.properties
new file mode 100644
index 0000000000000..2321cfd51c08b
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/auth_ko.properties
@@ -0,0 +1,66 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# NT principals
+invalid.null.input.value=부적합한 널 입력: {0}
+NTDomainPrincipal.name=NTDomainPrincipal: {0}
+NTNumericCredential.name=NTNumericCredential: {0}
+Invalid.NTSid.value=NTSid 값이 부적합합니다.
+NTSid.name=NTSid: {0}
+NTSidDomainPrincipal.name=NTSidDomainPrincipal: {0}
+NTSidGroupPrincipal.name=NTSidGroupPrincipal: {0}
+NTSidPrimaryGroupPrincipal.name=NTSidPrimaryGroupPrincipal: {0}
+NTSidUserPrincipal.name=NTSidUserPrincipal: {0}
+NTUserPrincipal.name=NTUserPrincipal: {0}
+
+# UnixPrincipals
+UnixNumericGroupPrincipal.Primary.Group.name=UnixNumericGroupPrincipal [기본 그룹]: {0}
+UnixNumericGroupPrincipal.Supplementary.Group.name=UnixNumericGroupPrincipal [보조 그룹]: {0}
+UnixNumericUserPrincipal.name=UnixNumericUserPrincipal: {0}
+UnixPrincipal.name=UnixPrincipal: {0}
+
+# com.sun.security.auth.login.ConfigFile
+Unable.to.properly.expand.config={0}을(를) 제대로 확장할 수 없습니다.
+extra.config.No.such.file.or.directory.={0}(해당 파일 또는 디렉토리가 없습니다.)
+Configuration.Error.No.such.file.or.directory=구성 오류:\n\t해당 파일 또는 디렉토리가 없습니다.
+Configuration.Error.Invalid.control.flag.flag=구성 오류:\n\t제어 플래그가 부적합함, {0}
+Configuration.Error.Can.not.specify.multiple.entries.for.appName=구성 오류:\n\t{0}에 대해 여러 항목을 지정할 수 없습니다.
+Configuration.Error.expected.expect.read.end.of.file.=구성 오류:\n\t[{0}]이(가) 필요하지만 [파일의 끝]에 도달했습니다.
+Configuration.Error.Line.line.expected.expect.found.value.=구성 오류:\n\t{0} 행: [{1}]이(가) 필요하지만 [{2}]이(가) 발견되었습니다.
+Configuration.Error.Line.line.expected.expect.=구성 오류:\n\t{0} 행: [{1}]이(가) 필요합니다.
+Configuration.Error.Line.line.system.property.value.expanded.to.empty.value=구성 오류:\n\t{0} 행: 시스템 속성 [{1}]이(가) 빈 값으로 확장되었습니다.
+
+# com.sun.security.auth.module.JndiLoginModule
+username.=사용자 이름:\u0020
+password.=비밀번호:\u0020
+
+# com.sun.security.auth.module.KeyStoreLoginModule
+Please.enter.keystore.information=키 저장소 정보를 입력하십시오.
+Keystore.alias.=키 저장소 별칭:\u0020
+Keystore.password.=키 저장소 비밀번호:\u0020
+Private.key.password.optional.=전용 키 비밀번호(선택사항):\u0020
+# com.sun.security.auth.module.Krb5LoginModule
+Kerberos.username.defUsername.=Kerberos 사용자 이름 [{0}]:\u0020
+Kerberos.password.for.username.={0}의 Kerberos 비밀번호:\u0020
diff --git a/src/java.base/share/classes/sun/security/util/resources/auth_pt_BR.properties b/src/java.base/share/classes/sun/security/util/resources/auth_pt_BR.properties
new file mode 100644
index 0000000000000..261110106259b
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/auth_pt_BR.properties
@@ -0,0 +1,66 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# NT principals
+invalid.null.input.value=entrada nula inválida: {0}
+NTDomainPrincipal.name=NTDomainPrincipal: {0}
+NTNumericCredential.name=NTNumericCredential: {0}
+Invalid.NTSid.value=Valor de NTSid inválido
+NTSid.name=NTSid: {0}
+NTSidDomainPrincipal.name=NTSidDomainPrincipal: {0}
+NTSidGroupPrincipal.name=NTSidGroupPrincipal: {0}
+NTSidPrimaryGroupPrincipal.name=NTSidPrimaryGroupPrincipal: {0}
+NTSidUserPrincipal.name=NTSidUserPrincipal: {0}
+NTUserPrincipal.name=NTUserPrincipal: {0}
+
+# UnixPrincipals
+UnixNumericGroupPrincipal.Primary.Group.name=UnixNumericGroupPrincipal [Grupo Principal]: {0}
+UnixNumericGroupPrincipal.Supplementary.Group.name=UnixNumericGroupPrincipal [Grupo Complementar]: {0}
+UnixNumericUserPrincipal.name=UnixNumericUserPrincipal: {0}
+UnixPrincipal.name=UnixPrincipal: {0}
+
+# com.sun.security.auth.login.ConfigFile
+Unable.to.properly.expand.config=Não é possível expandir corretamente {0}
+extra.config.No.such.file.or.directory.={0} (tal arquivo ou diretório não existe)
+Configuration.Error.No.such.file.or.directory=Erro de Configuração:\n\tNão há tal arquivo ou diretório
+Configuration.Error.Invalid.control.flag.flag=Erro de Configuração:\n\tFlag de controle inválido, {0}
+Configuration.Error.Can.not.specify.multiple.entries.for.appName=Erro de Configuração:\n\tNão é possível especificar várias entradas para {0}
+Configuration.Error.expected.expect.read.end.of.file.=Erro de Configuração:\n\tesperado [{0}], lido [fim do arquivo]
+Configuration.Error.Line.line.expected.expect.found.value.=Erro de Configuração:\n\tLinha {0}: esperada [{1}], encontrada [{2}]
+Configuration.Error.Line.line.expected.expect.=Erro de Configuração:\n\tLinha {0}: esperada [{1}]
+Configuration.Error.Line.line.system.property.value.expanded.to.empty.value=Erro de Configuração:\n\tLinha {0}: propriedade do sistema [{1}] expandida para valor vazio
+
+# com.sun.security.auth.module.JndiLoginModule
+username.=nome do usuário:\u0020
+password.=senha:\u0020
+
+# com.sun.security.auth.module.KeyStoreLoginModule
+Please.enter.keystore.information=Especifique as informações do armazenamento de chaves
+Keystore.alias.=Alias do armazenamento de chaves:\u0020
+Keystore.password.=Senha do armazenamento de chaves:\u0020
+Private.key.password.optional.=Senha da chave privada (opcional):\u0020
+# com.sun.security.auth.module.Krb5LoginModule
+Kerberos.username.defUsername.=Nome do usuário de Kerberos [{0}]:\u0020
+Kerberos.password.for.username.=Senha de Kerberos de {0}:\u0020
diff --git a/src/java.base/share/classes/sun/security/util/resources/auth_sv.properties b/src/java.base/share/classes/sun/security/util/resources/auth_sv.properties
new file mode 100644
index 0000000000000..4eb167b764574
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/auth_sv.properties
@@ -0,0 +1,66 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# NT principals
+invalid.null.input.value=ogiltiga null-indata: {0}
+NTDomainPrincipal.name=NTDomainPrincipal: {0}
+NTNumericCredential.name=NTNumericCredential: {0}
+Invalid.NTSid.value=Ogiltigt NTSid-värde
+NTSid.name=NTSid: {0}
+NTSidDomainPrincipal.name=NTSidDomainPrincipal: {0}
+NTSidGroupPrincipal.name=NTSidGroupPrincipal: {0}
+NTSidPrimaryGroupPrincipal.name=NTSidPrimaryGroupPrincipal: {0}
+NTSidUserPrincipal.name=NTSidUserPrincipal: {0}
+NTUserPrincipal.name=NTUserPrincipal: {0}
+
+# UnixPrincipals
+UnixNumericGroupPrincipal.Primary.Group.name=UnixNumericGroupPrincipal [primär grupp]: {0}
+UnixNumericGroupPrincipal.Supplementary.Group.name=UnixNumericGroupPrincipal [tilläggsgrupp]: {0}
+UnixNumericUserPrincipal.name=UnixNumericUserPrincipal: {0}
+UnixPrincipal.name=UnixPrincipal: {0}
+
+# com.sun.security.auth.login.ConfigFile
+Unable.to.properly.expand.config=Kan inte utöka korrekt {0}
+extra.config.No.such.file.or.directory.={0} (det finns ingen sådan fil eller katalog)
+Configuration.Error.No.such.file.or.directory=Konfigurationsfel:\n\tFilen eller katalogen finns inte
+Configuration.Error.Invalid.control.flag.flag=Konfigurationsfel:\n\tOgiltig kontrollflagga, {0}
+Configuration.Error.Can.not.specify.multiple.entries.for.appName=Konfigurationsfel:\n\tKan inte ange flera poster för {0}
+Configuration.Error.expected.expect.read.end.of.file.=Konfigurationsfel:\n\tförväntade [{0}], läste [filslut]
+Configuration.Error.Line.line.expected.expect.found.value.=Konfigurationsfel:\n\tRad {0}: förväntade [{1}], hittade [{2}]
+Configuration.Error.Line.line.expected.expect.=Konfigurationsfel:\n\tRad {0}: förväntade [{1}]
+Configuration.Error.Line.line.system.property.value.expanded.to.empty.value=Konfigurationsfel:\n\tRad {0}: systemegenskapen [{1}] utökad till tomt värde
+
+# com.sun.security.auth.module.JndiLoginModule
+username.=användarnamn:\u0020
+password.=lösenord:\u0020
+
+# com.sun.security.auth.module.KeyStoreLoginModule
+Please.enter.keystore.information=Ange nyckellagerinformation
+Keystore.alias.=Nyckellageralias:\u0020
+Keystore.password.=Nyckellagerlösenord:\u0020
+Private.key.password.optional.=Lösenord för personlig nyckel (valfritt):\u0020
+# com.sun.security.auth.module.Krb5LoginModule
+Kerberos.username.defUsername.=Kerberos-användarnamn [{0}]:\u0020
+Kerberos.password.for.username.=Kerberos-lösenord för {0}:\u0020
diff --git a/src/java.base/share/classes/sun/security/util/resources/auth_zh_CN.properties b/src/java.base/share/classes/sun/security/util/resources/auth_zh_CN.properties
new file mode 100644
index 0000000000000..6d677804544a8
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/auth_zh_CN.properties
@@ -0,0 +1,67 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# NT principals
+invalid.null.input.value=无效的空输入: {0}
+NTDomainPrincipal.name=NTDomainPrincipal: {0}
+NTNumericCredential.name=NTNumericCredential: {0}
+Invalid.NTSid.value=无效的 NTSid 值
+NTSid.name=NTSid: {0}
+NTSidDomainPrincipal.name=NTSidDomainPrincipal: {0}
+NTSidGroupPrincipal.name=NTSidGroupPrincipal: {0}
+NTSidPrimaryGroupPrincipal.name=NTSidPrimaryGroupPrincipal: {0}
+NTSidUserPrincipal.name=NTSidUserPrincipal: {0}
+NTUserPrincipal.name=NTUserPrincipal: {0}
+
+# UnixPrincipals
+UnixNumericGroupPrincipal.Primary.Group.name=UnixNumericGroupPrincipal [主组]: {0}
+UnixNumericGroupPrincipal.Supplementary.Group.name=UnixNumericGroupPrincipal [补充组]: {0}
+UnixNumericUserPrincipal.name=UnixNumericUserPrincipal: {0}
+UnixPrincipal.name=UnixPrincipal: {0}
+
+# com.sun.security.auth.login.ConfigFile
+Unable.to.properly.expand.config=无法正确扩展{0}
+extra.config.No.such.file.or.directory.={0} (没有这样的文件或目录)
+Configuration.Error.No.such.file.or.directory=配置错误:\n\t没有此文件或目录
+Configuration.Error.Invalid.control.flag.flag=配置错误: \n\t无效的控制标记, {0}
+Configuration.Error.Can.not.specify.multiple.entries.for.appName=配置错误:\n\t无法指定{0}的多个条目
+Configuration.Error.expected.expect.read.end.of.file.=配置错误: \n\t应为 [{0}], 读取的是 [文件结尾]
+Configuration.Error.Line.line.expected.expect.found.value.=配置错误: \n\t行 {0}: 应为 [{1}], 找到 [{2}]
+Configuration.Error.Line.line.expected.expect.=配置错误: \n\t行 {0}: 应为 [{1}]
+Configuration.Error.Line.line.system.property.value.expanded.to.empty.value=配置错误: \n\t行 {0}: 系统属性 [{1}] 扩展到空值
+
+# com.sun.security.auth.module.JndiLoginModule
+username.=用户名:\u0020
+password.=口令:\u0020
+
+# com.sun.security.auth.module.KeyStoreLoginModule
+Please.enter.keystore.information=请输入密钥库信息
+Keystore.alias.=密钥库别名:\u0020
+Keystore.password.=密钥库口令:\u0020
+Private.key.password.optional.=私有密钥口令 (可选):\u0020
+
+# com.sun.security.auth.module.Krb5LoginModule
+Kerberos.username.defUsername.=Kerberos 用户名 [{0}]:\u0020
+Kerberos.password.for.username.={0}的 Kerberos 口令:\u0020
diff --git a/src/java.base/share/classes/sun/security/util/resources/auth_zh_TW.properties b/src/java.base/share/classes/sun/security/util/resources/auth_zh_TW.properties
new file mode 100644
index 0000000000000..227e509361253
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/auth_zh_TW.properties
@@ -0,0 +1,66 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# NT principals
+invalid.null.input.value=無效空值輸入: {0}
+NTDomainPrincipal.name=NTDomainPrincipal: {0}
+NTNumericCredential.name=NTNumericCredential: {0}
+Invalid.NTSid.value=無效 NTSid 值
+NTSid.name=NTSid: {0}
+NTSidDomainPrincipal.name=NTSidDomainPrincipal: {0}
+NTSidGroupPrincipal.name=NTSidGroupPrincipal: {0}
+NTSidPrimaryGroupPrincipal.name=NTSidPrimaryGroupPrincipal: {0}
+NTSidUserPrincipal.name=NTSidUserPrincipal: {0}
+NTUserPrincipal.name=NTUserPrincipal: {0}
+
+# UnixPrincipals
+UnixNumericGroupPrincipal.Primary.Group.name=UnixNumericGroupPrincipal [主群組]: {0}
+UnixNumericGroupPrincipal.Supplementary.Group.name=UnixNumericGroupPrincipal [附加群組]: {0}
+UnixNumericUserPrincipal.name=UnixNumericUserPrincipal: {0}
+UnixPrincipal.name=UnixPrincipal: {0}
+
+# com.sun.security.auth.login.ConfigFile
+Unable.to.properly.expand.config=無法適當地擴充 {0}
+extra.config.No.such.file.or.directory.={0} (沒有此檔案或目錄)
+Configuration.Error.No.such.file.or.directory=組態錯誤:\n\t無此檔案或目錄
+Configuration.Error.Invalid.control.flag.flag=組態錯誤:\n\t無效的控制旗標,{0}
+Configuration.Error.Can.not.specify.multiple.entries.for.appName=組態錯誤: \n\t無法指定多重項目 {0}
+Configuration.Error.expected.expect.read.end.of.file.=組態錯誤: \n\t預期的 [{0}], 讀取 [end of file]
+Configuration.Error.Line.line.expected.expect.found.value.=組態錯誤: \n\t行 {0}: 預期的 [{1}], 發現 [{2}]
+Configuration.Error.Line.line.expected.expect.=組態錯誤: \n\t行 {0}: 預期的 [{1}]
+Configuration.Error.Line.line.system.property.value.expanded.to.empty.value=組態錯誤: \n\t行 {0}: 系統屬性 [{1}] 擴充至空值
+
+# com.sun.security.auth.module.JndiLoginModule
+username.=使用者名稱:\u0020
+password.=密碼:\u0020
+
+# com.sun.security.auth.module.KeyStoreLoginModule
+Please.enter.keystore.information=請輸入金鑰儲存庫資訊
+Keystore.alias.=金鑰儲存庫別名:\u0020
+Keystore.password.=金鑰儲存庫密碼:\u0020
+Private.key.password.optional.=私人金鑰密碼 (選擇性的):\u0020
+# com.sun.security.auth.module.Krb5LoginModule
+Kerberos.username.defUsername.=Kerberos 使用者名稱 [{0}]:\u0020
+Kerberos.password.for.username.=Kerberos 密碼 {0}:\u0020
diff --git a/src/java.base/share/classes/sun/security/util/resources/security.properties b/src/java.base/share/classes/sun/security/util/resources/security.properties
new file mode 100644
index 0000000000000..9533b4b8eee5a
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/security.properties
@@ -0,0 +1,76 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# javax.security.auth.PrivateCredentialPermission
+invalid.null.input.s.=invalid null input(s)
+actions.can.only.be.read.=actions can only be 'read'
+permission.name.name.syntax.invalid.=permission name [{0}] syntax invalid:\u0020
+Credential.Class.not.followed.by.a.Principal.Class.and.Name=Credential Class not followed by a Principal Class and Name
+Principal.Class.not.followed.by.a.Principal.Name=Principal Class not followed by a Principal Name
+Principal.Name.must.be.surrounded.by.quotes=Principal Name must be surrounded by quotes
+Principal.Name.missing.end.quote=Principal Name missing end quote
+PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value=PrivateCredentialPermission Principal Class can not be a wildcard (*) value if Principal Name is not a wildcard (*) value
+CredOwner.Principal.Class.class.Principal.Name.name=CredOwner:\n\tPrincipal Class = {0}\n\tPrincipal Name = {1}
+
+# javax.security.auth.x500
+provided.null.name=provided null name
+provided.null.keyword.map=provided null keyword map
+provided.null.OID.map=provided null OID map
+
+# javax.security.auth.Subject
+NEWLINE=\n
+invalid.null.action.provided=invalid null action provided
+invalid.null.Class.provided=invalid null Class provided
+Subject.=Subject:\n
+.Principal.=\tPrincipal:\u0020
+.Public.Credential.=\tPublic Credential:\u0020
+.Private.Credential.=\tPrivate Credential:\u0020
+.Private.Credential.inaccessible.=\tPrivate Credential inaccessible\n
+Subject.is.read.only=Subject is read-only
+attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set=attempting to add an object which is not an instance of java.security.Principal to a Subject's Principal Set
+attempting.to.add.an.object.which.is.not.an.instance.of.class=attempting to add an object which is not an instance of {0}
+
+# javax.security.auth.login.AppConfigurationEntry
+LoginModuleControlFlag.=LoginModuleControlFlag:\u0020
+
+# javax.security.auth.login.LoginContext
+Invalid.null.input.name=Invalid null input: name
+No.LoginModules.configured.for.name=No LoginModules configured for {0}
+invalid.null.Subject.provided=invalid null Subject provided
+invalid.null.CallbackHandler.provided=invalid null CallbackHandler provided
+null.subject.logout.called.before.login=null subject - logout called before login
+Login.Failure.all.modules.ignored=Login Failure: all modules ignored
+
+# sun.security.provider.PolicyParser
+duplicate.keystore.domain.name=duplicate keystore domain name: {0}
+duplicate.keystore.name=duplicate keystore name: {0}
+number.=number\u0020
+expected.expect.read.end.of.file.=expected [{0}], read [end of file]
+expected.read.end.of.file.=expected [;], read [end of file]
+line.number.msg=line {0}: {1}
+line.number.expected.expect.found.actual.=line {0}: expected [{1}], found [{2}]
+
+# sun.security.pkcs11.SunPKCS11
+PKCS11.Token.providerName.Password.=PKCS11 Token [{0}] Password:\u0020
diff --git a/src/java.base/share/classes/sun/security/util/resources/security_de.properties b/src/java.base/share/classes/sun/security/util/resources/security_de.properties
new file mode 100644
index 0000000000000..a431268831b94
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/security_de.properties
@@ -0,0 +1,76 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# javax.security.auth.PrivateCredentialPermission
+invalid.null.input.s.=Ungültige Nulleingabe(n)
+actions.can.only.be.read.=Aktionen können nur "lesen" sein
+permission.name.name.syntax.invalid.=Syntax für Berechtigungsnamen [{0}] ungültig:\u0020
+Credential.Class.not.followed.by.a.Principal.Class.and.Name=Nach Zugangsdatenklasse folgt keine Principal-Klasse und kein Name
+Principal.Class.not.followed.by.a.Principal.Name=Nach Principal-Klasse folgt kein Principal-Name
+Principal.Name.must.be.surrounded.by.quotes=Principal-Name muss in Anführungszeichen stehen
+Principal.Name.missing.end.quote=Abschließendes Anführungszeichen für Principal-Name fehlt
+PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value=Principal-Klasse PrivateCredentialPermission kann kein Platzhalterwert (*) sein, wenn der Principal-Name kein Platzhalterwert (*) ist
+CredOwner.Principal.Class.class.Principal.Name.name=CredOwner:\n\tPrincipal-Klasse = {0}\n\tPrincipal-Name = {1}
+
+# javax.security.auth.x500
+provided.null.name=Nullname angegeben
+provided.null.keyword.map=Null-Schlüsselwortzuordnung angegeben
+provided.null.OID.map=Null-OID-Zuordnung angegeben
+
+# javax.security.auth.Subject
+NEWLINE=\n
+invalid.null.action.provided=Ungültige Nullaktion angegeben
+invalid.null.Class.provided=Ungültige Nullklasse angegeben
+Subject.=Subjekt:\n
+.Principal.=\tPrincipal:\u0020
+.Public.Credential.=\tÖffentliche Zugangsdaten:\u0020
+.Private.Credential.=\tPrivate Zugangsdaten:\u0020
+.Private.Credential.inaccessible.=\tKein Zugriff auf private Zugangsdaten\n
+Subject.is.read.only=Subjekt ist schreibgeschützt
+attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set=Es wird versucht, ein Objekt hinzuzufügen, das keine Instanz von java.security.Principal für eine Principal-Gruppe eines Subjekts ist
+attempting.to.add.an.object.which.is.not.an.instance.of.class=Es wird versucht, ein Objekt hinzuzufügen, das keine Instanz von {0} ist
+
+# javax.security.auth.login.AppConfigurationEntry
+LoginModuleControlFlag.=LoginModuleControlFlag:\u0020
+
+# javax.security.auth.login.LoginContext
+Invalid.null.input.name=Ungültige Nulleingabe: Name
+No.LoginModules.configured.for.name=Für {0} sind keine LoginModules konfiguriert
+invalid.null.Subject.provided=Ungültiges Nullsubjekt angegeben
+invalid.null.CallbackHandler.provided=Ungültiger Nullwert für CallbackHandler angegeben
+null.subject.logout.called.before.login=Nullsubjekt - Abmeldung vor Anmeldung aufgerufen
+Login.Failure.all.modules.ignored=Anmeldefehler: Alle Module werden ignoriert
+
+# sun.security.provider.PolicyParser
+duplicate.keystore.domain.name=Keystore-Domainname doppelt vorhanden: {0}
+duplicate.keystore.name=Keystore-Name doppelt vorhanden: {0}
+number.=Nummer\u0020
+expected.expect.read.end.of.file.=[{0}] erwartet, [Dateiende] gelesen
+expected.read.end.of.file.=[;] erwartet, [Dateiende] gelesen
+line.number.msg=Zeile {0}: {1}
+line.number.expected.expect.found.actual.=Zeile {0}: [{1}] erwartet, [{2}] gefunden
+
+# sun.security.pkcs11.SunPKCS11
+PKCS11.Token.providerName.Password.=Kennwort für PKCS11-Token [{0}]:\u0020
diff --git a/src/java.base/share/classes/sun/security/util/resources/security_es.properties b/src/java.base/share/classes/sun/security/util/resources/security_es.properties
new file mode 100644
index 0000000000000..ba36793202a0b
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/security_es.properties
@@ -0,0 +1,110 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# javax.security.auth.PrivateCredentialPermission
+invalid.null.input.s.=entradas nulas no válidas
+actions.can.only.be.read.=las acciones sólo pueden 'leerse'
+permission.name.name.syntax.invalid.=sintaxis de nombre de permiso [{0}] no válida:\u0020
+Credential.Class.not.followed.by.a.Principal.Class.and.Name=La clase de credencial no va seguida de una clase y nombre de principal
+Principal.Class.not.followed.by.a.Principal.Name=La clase de principal no va seguida de un nombre de principal
+Principal.Name.must.be.surrounded.by.quotes=El nombre de principal debe ir entre comillas
+Principal.Name.missing.end.quote=Faltan las comillas finales en el nombre de principal
+PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value=La clase de principal PrivateCredentialPermission no puede ser un valor comodín (*) si el nombre de principal no lo es también
+CredOwner.Principal.Class.class.Principal.Name.name=CredOwner:\n\tClase de Principal = {0}\n\tNombre de Principal = {1}
+
+# javax.security.auth.x500
+provided.null.name=se ha proporcionado un nombre nulo
+provided.null.keyword.map=mapa de palabras clave proporcionado nulo
+provided.null.OID.map=mapa de OID proporcionado nulo
+
+# javax.security.auth.Subject
+NEWLINE=\n
+invalid.null.AccessControlContext.provided=se ha proporcionado un AccessControlContext nulo no válido
+invalid.null.action.provided=se ha proporcionado una acción nula no válida
+invalid.null.Class.provided=se ha proporcionado una clase nula no válida
+Subject.=Asunto:\n
+.Principal.=\tPrincipal:\u0020
+.Public.Credential.=\tCredencial Pública:\u0020
+.Private.Credentials.inaccessible.=\tCredenciales Privadas Inaccesibles\n
+.Private.Credential.=\tCredencial Privada:\u0020
+.Private.Credential.inaccessible.=\tCredencial Privada Inaccesible\n
+Subject.is.read.only=El asunto es de sólo lectura
+attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set=intentando agregar un objeto que no es una instancia de java.security.Principal al juego principal de un asunto
+attempting.to.add.an.object.which.is.not.an.instance.of.class=intentando agregar un objeto que no es una instancia de {0}
+
+# javax.security.auth.login.AppConfigurationEntry
+LoginModuleControlFlag.=LoginModuleControlFlag:\u0020
+
+# javax.security.auth.login.LoginContext
+Invalid.null.input.name=Entrada nula no válida: nombre
+No.LoginModules.configured.for.name=No se han configurado LoginModules para {0}
+invalid.null.Subject.provided=se ha proporcionado un asunto nulo no válido
+invalid.null.CallbackHandler.provided=se ha proporcionado CallbackHandler nulo no válido
+null.subject.logout.called.before.login=asunto nulo - se ha llamado al cierre de sesión antes del inicio de sesión
+unable.to.instantiate.LoginModule.module.because.it.does.not.provide.a.no.argument.constructor=no se ha podido instanciar LoginModule, {0}, porque no incluye un constructor sin argumentos
+unable.to.instantiate.LoginModule=no se ha podido instanciar LoginModule
+unable.to.instantiate.LoginModule.=no se ha podido instanciar LoginModule:\u0020
+unable.to.find.LoginModule.class.=no se ha encontrado la clase LoginModule:\u0020
+unable.to.access.LoginModule.=no se ha podido acceder a LoginModule:\u0020
+Login.Failure.all.modules.ignored=Fallo en inicio de sesión: se han ignorado todos los módulos
+
+# sun.security.provider.PolicyFile
+
+java.security.policy.error.parsing.policy.message=java.security.policy: error de análisis de {0}:\n\t{1}
+java.security.policy.error.adding.Permission.perm.message=java.security.policy: error al agregar un permiso, {0}:\n\t{1}
+java.security.policy.error.adding.Entry.message=java.security.policy: error al agregar una entrada:\n\t{0}
+alias.name.not.provided.pe.name.=no se ha proporcionado el nombre de alias ({0})
+unable.to.perform.substitution.on.alias.suffix=no se puede realizar la sustitución en el alias, {0}
+substitution.value.prefix.unsupported=valor de sustitución, {0}, no soportado
+SPACE=\u0020
+LPARAM=(
+RPARAM=)
+type.can.t.be.null=el tipo no puede ser nulo
+
+# sun.security.provider.PolicyParser
+keystorePasswordURL.can.not.be.specified.without.also.specifying.keystore=keystorePasswordURL no puede especificarse sin especificar también el almacén de claves
+expected.keystore.type=se esperaba un tipo de almacén de claves
+expected.keystore.provider=se esperaba un proveedor de almacén de claves
+multiple.Codebase.expressions=expresiones múltiples de CodeBase
+multiple.SignedBy.expressions=expresiones múltiples de SignedBy
+duplicate.keystore.domain.name=nombre de dominio de almacén de claves duplicado: {0}
+duplicate.keystore.name=nombre de almacén de claves duplicado: {0}
+SignedBy.has.empty.alias=SignedBy tiene un alias vacío
+can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name=no se puede especificar Principal con una clase de comodín sin un nombre de comodín
+expected.codeBase.or.SignedBy.or.Principal=se esperaba codeBase o SignedBy o Principal
+expected.permission.entry=se esperaba un permiso de entrada
+number.=número\u0020
+expected.expect.read.end.of.file.=se esperaba [{0}], se ha leído [final de archivo]
+expected.read.end.of.file.=se esperaba [;], se ha leído [final de archivo]
+line.number.msg=línea {0}: {1}
+line.number.expected.expect.found.actual.=línea {0}: se esperaba [{1}], se ha encontrado [{2}]
+null.principalClass.or.principalName=principalClass o principalName nulos
+
+# sun.security.pkcs11.SunPKCS11
+PKCS11.Token.providerName.Password.=Contraseña del Token PKCS11 [{0}]:\u0020
+
+# --- DEPRECATED ---
+# javax.security.auth.Policy
+unable.to.instantiate.Subject.based.policy=no se ha podido instanciar una política basada en asunto
diff --git a/src/java.base/share/classes/sun/security/util/resources/security_fr.properties b/src/java.base/share/classes/sun/security/util/resources/security_fr.properties
new file mode 100644
index 0000000000000..49468dead53c1
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/security_fr.properties
@@ -0,0 +1,110 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# javax.security.auth.PrivateCredentialPermission
+invalid.null.input.s.=entrées NULL non valides
+actions.can.only.be.read.=les actions sont accessibles en lecture uniquement
+permission.name.name.syntax.invalid.=syntaxe de nom de droit [{0}] non valide :\u0020
+Credential.Class.not.followed.by.a.Principal.Class.and.Name=Classe Credential non suivie d'une classe et d'un nom de principal
+Principal.Class.not.followed.by.a.Principal.Name=Classe de principal non suivie d'un nom de principal
+Principal.Name.must.be.surrounded.by.quotes=Le nom de principal doit être indiqué entre guillemets
+Principal.Name.missing.end.quote=Guillemet fermant manquant pour le nom de principal
+PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value=La classe de principal PrivateCredentialPermission ne peut pas être une valeur générique (*) si le nom de principal n'est pas une valeur générique (*)
+CredOwner.Principal.Class.class.Principal.Name.name=CredOwner :\n\tClasse de principal = {0}\n\tNom de principal = {1}
+
+# javax.security.auth.x500
+provided.null.name=nom NULL fourni
+provided.null.keyword.map=mappage de mots-clés NULL fourni
+provided.null.OID.map=mappage OID NULL fourni
+
+# javax.security.auth.Subject
+NEWLINE=\n
+invalid.null.AccessControlContext.provided=AccessControlContext NULL fourni non valide
+invalid.null.action.provided=action NULL fournie non valide
+invalid.null.Class.provided=classe NULL fournie non valide
+Subject.=Objet :\n
+.Principal.=\tPrincipal :\u0020
+.Public.Credential.=\tInformations d'identification publiques :\u0020
+.Private.Credentials.inaccessible.=\tInformations d'identification privées inaccessibles\n
+.Private.Credential.=\tInformations d'identification privées :\u0020
+.Private.Credential.inaccessible.=\tInformations d'identification privées inaccessibles\n
+Subject.is.read.only=Sujet en lecture seule
+attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set=tentative d'ajout d'un objet qui n'est pas une instance de java.security.Principal dans un ensemble de principaux du sujet
+attempting.to.add.an.object.which.is.not.an.instance.of.class=tentative d''ajout d''un objet qui n''est pas une instance de {0}
+
+# javax.security.auth.login.AppConfigurationEntry
+LoginModuleControlFlag.=LoginModuleControlFlag :\u0020
+
+# javax.security.auth.login.LoginContext
+Invalid.null.input.name=Entrée NULL non valide : nom
+No.LoginModules.configured.for.name=Aucun LoginModule configuré pour {0}
+invalid.null.Subject.provided=sujet NULL fourni non valide
+invalid.null.CallbackHandler.provided=CallbackHandler NULL fourni non valide
+null.subject.logout.called.before.login=sujet NULL - Tentative de déconnexion avant la connexion
+unable.to.instantiate.LoginModule.module.because.it.does.not.provide.a.no.argument.constructor=impossible d''instancier LoginModule {0} car il ne fournit pas de constructeur sans argument
+unable.to.instantiate.LoginModule=impossible d'instancier LoginModule
+unable.to.instantiate.LoginModule.=impossible d'instancier LoginModule :\u0020
+unable.to.find.LoginModule.class.=classe LoginModule introuvable :\u0020
+unable.to.access.LoginModule.=impossible d'accéder à LoginModule :\u0020
+Login.Failure.all.modules.ignored=Echec de connexion : tous les modules ont été ignorés
+
+# sun.security.provider.PolicyFile
+
+java.security.policy.error.parsing.policy.message=java.security.policy : erreur d''analyse de {0} :\n\t{1}
+java.security.policy.error.adding.Permission.perm.message=java.security.policy : erreur d''ajout de droit, {0} :\n\t{1}
+java.security.policy.error.adding.Entry.message=java.security.policy : erreur d''ajout d''entrée :\n\t{0}
+alias.name.not.provided.pe.name.=nom d''alias non fourni ({0})
+unable.to.perform.substitution.on.alias.suffix=impossible d''effectuer une substitution pour l''alias, {0}
+substitution.value.prefix.unsupported=valeur de substitution, {0}, non prise en charge
+SPACE=\u0020
+LPARAM=(
+RPARAM=)
+type.can.t.be.null=le type ne peut être NULL
+
+# sun.security.provider.PolicyParser
+keystorePasswordURL.can.not.be.specified.without.also.specifying.keystore=Impossible de spécifier keystorePasswordURL sans indiquer aussi le fichier de clés
+expected.keystore.type=type de fichier de clés attendu
+expected.keystore.provider=fournisseur de fichier de clés attendu
+multiple.Codebase.expressions=expressions Codebase multiples
+multiple.SignedBy.expressions=expressions SignedBy multiples
+duplicate.keystore.domain.name=nom de domaine de fichier de clés en double : {0}
+duplicate.keystore.name=nom de fichier de clés en double : {0}
+SignedBy.has.empty.alias=SignedBy possède un alias vide
+can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name=impossible de spécifier le principal avec une classe générique sans nom générique
+expected.codeBase.or.SignedBy.or.Principal=codeBase, SignedBy ou Principal attendu
+expected.permission.entry=entrée de droit attendue
+number.=nombre\u0020
+expected.expect.read.end.of.file.=attendu [{0}], lu [fin de fichier]
+expected.read.end.of.file.=attendu [;], lu [fin de fichier]
+line.number.msg=ligne {0} : {1}
+line.number.expected.expect.found.actual.=ligne {0} : attendu [{1}], trouvé [{2}]
+null.principalClass.or.principalName=principalClass ou principalName NULL
+
+# sun.security.pkcs11.SunPKCS11
+PKCS11.Token.providerName.Password.=Mot de passe PKCS11 Token [{0}] :\u0020
+
+# --- DEPRECATED ---
+# javax.security.auth.Policy
+unable.to.instantiate.Subject.based.policy=impossible d'instancier les règles basées sur le sujet
diff --git a/src/java.base/share/classes/sun/security/util/resources/security_it.properties b/src/java.base/share/classes/sun/security/util/resources/security_it.properties
new file mode 100644
index 0000000000000..628d441127411
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/security_it.properties
@@ -0,0 +1,110 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# javax.security.auth.PrivateCredentialPermission
+invalid.null.input.s.=input nullo/i non valido/i
+actions.can.only.be.read.=le azioni possono essere solamente 'lette'
+permission.name.name.syntax.invalid.=sintassi [{0}] non valida per il nome autorizzazione:\u0020
+Credential.Class.not.followed.by.a.Principal.Class.and.Name=la classe di credenziali non è seguita da un nome e una classe di principal
+Principal.Class.not.followed.by.a.Principal.Name=la classe di principal non è seguita da un nome principal
+Principal.Name.must.be.surrounded.by.quotes=il nome principal deve essere compreso tra apici
+Principal.Name.missing.end.quote=apice di chiusura del nome principal mancante
+PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value=la classe principal PrivateCredentialPermission non può essere un valore carattere jolly (*) se il nome principal a sua volta non è un valore carattere jolly (*)
+CredOwner.Principal.Class.class.Principal.Name.name=CredOwner:\n\tclasse Principal = {0}\n\tNome Principal = {1}
+
+# javax.security.auth.x500
+provided.null.name=il nome fornito è nullo
+provided.null.keyword.map=specificata mappa parole chiave null
+provided.null.OID.map=specificata mappa OID null
+
+# javax.security.auth.Subject
+NEWLINE=\n
+invalid.null.AccessControlContext.provided=fornito un valore nullo non valido per AccessControlContext
+invalid.null.action.provided=fornita un'azione nulla non valida
+invalid.null.Class.provided=fornita una classe nulla non valida
+Subject.=Oggetto:\n
+.Principal.=\tPrincipal:\u0020
+.Public.Credential.=\tCredenziale pubblica:\u0020
+.Private.Credentials.inaccessible.=\tImpossibile accedere alle credenziali private\n
+.Private.Credential.=\tCredenziale privata:\u0020
+.Private.Credential.inaccessible.=\tImpossibile accedere alla credenziale privata\n
+Subject.is.read.only=L'oggetto è di sola lettura
+attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set=si è tentato di aggiungere un oggetto che non è un'istanza di java.security.Principal a un set principal dell'oggetto
+attempting.to.add.an.object.which.is.not.an.instance.of.class=si è tentato di aggiungere un oggetto che non è un''istanza di {0}
+
+# javax.security.auth.login.AppConfigurationEntry
+LoginModuleControlFlag.=LoginModuleControlFlag:\u0020
+
+# javax.security.auth.login.LoginContext
+Invalid.null.input.name=Input nullo non valido: nome
+No.LoginModules.configured.for.name=Nessun LoginModules configurato per {0}
+invalid.null.Subject.provided=fornito un valore nullo non valido per l'oggetto
+invalid.null.CallbackHandler.provided=fornito un valore nullo non valido per CallbackHandler
+null.subject.logout.called.before.login=oggetto nullo - il logout è stato richiamato prima del login
+unable.to.instantiate.LoginModule.module.because.it.does.not.provide.a.no.argument.constructor=impossibile creare un''istanza di LoginModule {0} in quanto non restituisce un argomento vuoto per il costruttore
+unable.to.instantiate.LoginModule=impossibile creare un'istanza di LoginModule
+unable.to.instantiate.LoginModule.=impossibile creare un'istanza di LoginModule:\u0020
+unable.to.find.LoginModule.class.=impossibile trovare la classe LoginModule:\u0020
+unable.to.access.LoginModule.=impossibile accedere a LoginModule\u0020
+Login.Failure.all.modules.ignored=Errore di login: tutti i moduli sono stati ignorati
+
+# sun.security.provider.PolicyFile
+
+java.security.policy.error.parsing.policy.message=java.security.policy: errore durante l''analisi di {0}:\n\t{1}
+java.security.policy.error.adding.Permission.perm.message=java.security.policy: errore durante l''aggiunta dell''autorizzazione {0}:\n\t{1}
+java.security.policy.error.adding.Entry.message=java.security.policy: errore durante l''aggiunta della voce:\n\t{0}
+alias.name.not.provided.pe.name.=impossibile fornire nome alias ({0})
+unable.to.perform.substitution.on.alias.suffix=impossibile eseguire una sostituzione sull''alias, {0}
+substitution.value.prefix.unsupported=valore sostituzione, {0}, non supportato
+SPACE=\u0020
+LPARAM=(
+RPARAM=)
+type.can.t.be.null=il tipo non può essere nullo
+
+# sun.security.provider.PolicyParser
+keystorePasswordURL.can.not.be.specified.without.also.specifying.keystore=Impossibile specificare keystorePasswordURL senza specificare anche il keystore
+expected.keystore.type=tipo keystore previsto
+expected.keystore.provider=provider di keystore previsto
+multiple.Codebase.expressions=espressioni Codebase multiple
+multiple.SignedBy.expressions=espressioni SignedBy multiple
+duplicate.keystore.domain.name=nome dominio keystore duplicato: {0}
+duplicate.keystore.name=nome keystore duplicato: {0}
+SignedBy.has.empty.alias=SignedBy presenta un alias vuoto
+can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name=impossibile specificare un principal con una classe carattere jolly senza un nome carattere jolly
+expected.codeBase.or.SignedBy.or.Principal=previsto codeBase o SignedBy o principal
+expected.permission.entry=prevista voce di autorizzazione
+number.=numero\u0020
+expected.expect.read.end.of.file.=previsto [{0}], letto [end of file]
+expected.read.end.of.file.=previsto [;], letto [end of file]
+line.number.msg=riga {0}: {1}
+line.number.expected.expect.found.actual.=riga {0}: previsto [{1}], trovato [{2}]
+null.principalClass.or.principalName=principalClass o principalName nullo
+
+# sun.security.pkcs11.SunPKCS11
+PKCS11.Token.providerName.Password.=Password per token PKCS11 [{0}]:\u0020
+
+# --- DEPRECATED ---
+# javax.security.auth.Policy
+unable.to.instantiate.Subject.based.policy=impossibile creare un'istanza dei criteri basati sull'oggetto
diff --git a/src/java.base/share/classes/sun/security/util/resources/security_ja.properties b/src/java.base/share/classes/sun/security/util/resources/security_ja.properties
new file mode 100644
index 0000000000000..b9ec0a82cb939
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/security_ja.properties
@@ -0,0 +1,76 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# javax.security.auth.PrivateCredentialPermission
+invalid.null.input.s.=nullの入力は無効です
+actions.can.only.be.read.=アクションは'読込み'のみ可能です
+permission.name.name.syntax.invalid.=アクセス権名[{0}]の構文が無効です:\u0020
+Credential.Class.not.followed.by.a.Principal.Class.and.Name=Credentialクラスの次にPrincipalクラスおよび名前がありません
+Principal.Class.not.followed.by.a.Principal.Name=Principalクラスの次にプリンシパル名がありません
+Principal.Name.must.be.surrounded.by.quotes=プリンシパル名は引用符で囲む必要があります
+Principal.Name.missing.end.quote=プリンシパル名の最後に引用符がありません
+PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value=プリンシパル名がワイルドカード(*)値でない場合、PrivateCredentialPermissionのPrincipalクラスをワイルドカード(*)値にすることはできません
+CredOwner.Principal.Class.class.Principal.Name.name=CredOwner:\n\tPrincipalクラス={0}\n\tプリンシパル名={1}
+
+# javax.security.auth.x500
+provided.null.name=nullの名前が指定されました
+provided.null.keyword.map=nullのキーワード・マップが指定されました
+provided.null.OID.map=nullのOIDマップが指定されました
+
+# javax.security.auth.Subject
+NEWLINE=\n
+invalid.null.action.provided=無効なnullアクションが指定されました
+invalid.null.Class.provided=無効なnullクラスが指定されました
+Subject.=サブジェクト:\n
+.Principal.=\tプリンシパル:\u0020
+.Public.Credential.=\t公開資格:\u0020
+.Private.Credential.=\t非公開資格:\u0020
+.Private.Credential.inaccessible.=\t非公開資格にはアクセスできません\n
+Subject.is.read.only=サブジェクトは読取り専用です
+attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set=java.security.Principalのインスタンスではないオブジェクトを、サブジェクトのプリンシパル・セットに追加しようとしました
+attempting.to.add.an.object.which.is.not.an.instance.of.class={0}のインスタンスではないオブジェクトを追加しようとしました
+
+# javax.security.auth.login.AppConfigurationEntry
+LoginModuleControlFlag.=LoginModuleControlFlag:\u0020
+
+# javax.security.auth.login.LoginContext
+Invalid.null.input.name=無効なnull入力: 名前
+No.LoginModules.configured.for.name={0}用に構成されたLoginModulesはありません
+invalid.null.Subject.provided=無効なnullサブジェクトが指定されました
+invalid.null.CallbackHandler.provided=無効なnull CallbackHandlerが指定されました
+null.subject.logout.called.before.login=nullサブジェクト - ログインする前にログアウトが呼び出されました
+Login.Failure.all.modules.ignored=ログイン失敗: すべてのモジュールは無視されます
+
+# sun.security.provider.PolicyParser
+duplicate.keystore.domain.name=重複するキーストア・ドメイン名: {0}
+duplicate.keystore.name=重複するキーストア名: {0}
+number.=数\u0020
+expected.expect.read.end.of.file.=[{0}]ではなく[ファイルの終わり]が読み込まれました
+expected.read.end.of.file.=[;]ではなく[ファイルの終わり]が読み込まれました
+line.number.msg=行{0}: {1}
+line.number.expected.expect.found.actual.=行{0}: [{1}]ではなく[{2}]が検出されました
+
+# sun.security.pkcs11.SunPKCS11
+PKCS11.Token.providerName.Password.=PKCS11トークン[{0}]パスワード:\u0020
diff --git a/src/java.base/share/classes/sun/security/util/resources/security_ko.properties b/src/java.base/share/classes/sun/security/util/resources/security_ko.properties
new file mode 100644
index 0000000000000..7f275dfca4709
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/security_ko.properties
@@ -0,0 +1,110 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# javax.security.auth.PrivateCredentialPermission
+invalid.null.input.s.=널 입력값이 부적합합니다.
+actions.can.only.be.read.=작업은 '읽기' 전용입니다.
+permission.name.name.syntax.invalid.=권한 이름 [{0}] 구문이 부적합함:\u0020
+Credential.Class.not.followed.by.a.Principal.Class.and.Name=인증서 클래스 다음에 주체 클래스와 이름이 없습니다.
+Principal.Class.not.followed.by.a.Principal.Name=주체 클래스 다음에 주체 이름이 없습니다.
+Principal.Name.must.be.surrounded.by.quotes=주체 이름은 따옴표로 묶어야 합니다.
+Principal.Name.missing.end.quote=주체 이름에 닫는 따옴표가 누락되었습니다.
+PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value=주체 이름이 와일드 카드 문자(*) 값이 아닌 경우 PrivateCredentialPermission 주체 클래스는 와일드 카드 문자(*) 값일 수 없습니다.
+CredOwner.Principal.Class.class.Principal.Name.name=CredOwner:\n\t주체 클래스 = {0}\n\t주체 이름 = {1}
+
+# javax.security.auth.x500
+provided.null.name=널 이름을 제공했습니다.
+provided.null.keyword.map=널 키워드 맵을 제공했습니다.
+provided.null.OID.map=널 OID 맵을 제공했습니다.
+
+# javax.security.auth.Subject
+NEWLINE=\n
+invalid.null.AccessControlContext.provided=부적합한 널 AccessControlContext가 제공되었습니다.
+invalid.null.action.provided=부적합한 널 작업이 제공되었습니다.
+invalid.null.Class.provided=부적합한 널 클래스가 제공되었습니다.
+Subject.=제목:\n
+.Principal.=\t주체:\u0020
+.Public.Credential.=\t공용 인증서:\u0020
+.Private.Credentials.inaccessible.=\t전용 인증서에 액세스할 수 없습니다.\n
+.Private.Credential.=\t전용 인증서:\u0020
+.Private.Credential.inaccessible.=\t전용 인증서에 액세스할 수 없습니다.\n
+Subject.is.read.only=제목이 읽기 전용입니다.
+attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set=java.security.Principal의 인스턴스가 아닌 객체를 제목의 주체 집합에 추가하려고 시도하는 중
+attempting.to.add.an.object.which.is.not.an.instance.of.class={0}의 인스턴스가 아닌 객체를 추가하려고 시도하는 중
+
+# javax.security.auth.login.AppConfigurationEntry
+LoginModuleControlFlag.=LoginModuleControlFlag:\u0020
+
+# javax.security.auth.login.LoginContext
+Invalid.null.input.name=부적합한 널 입력값: 이름
+No.LoginModules.configured.for.name={0}에 대해 구성된 LoginModules가 없습니다.
+invalid.null.Subject.provided=부적합한 널 제목이 제공되었습니다.
+invalid.null.CallbackHandler.provided=부적합한 널 CallbackHandler가 제공되었습니다.
+null.subject.logout.called.before.login=널 제목 - 로그인 전에 로그아웃이 호출되었습니다.
+unable.to.instantiate.LoginModule.module.because.it.does.not.provide.a.no.argument.constructor=인수가 없는 생성자를 제공하지 않아 LoginModule {0}을(를) 인스턴스화할 수 없습니다.
+unable.to.instantiate.LoginModule=LoginModule을 인스턴스화할 수 없습니다.
+unable.to.instantiate.LoginModule.=LoginModule을 인스턴스화할 수 없음:\u0020
+unable.to.find.LoginModule.class.=LoginModule 클래스를 찾을 수 없음:\u0020
+unable.to.access.LoginModule.=LoginModule에 액세스할 수 없음:\u0020
+Login.Failure.all.modules.ignored=로그인 실패: 모든 모듈이 무시되었습니다.
+
+# sun.security.provider.PolicyFile
+
+java.security.policy.error.parsing.policy.message=java.security.policy: {0}의 구문을 분석하는 중 오류 발생:\n\t{1}
+java.security.policy.error.adding.Permission.perm.message=java.security.policy: {0} 권한을 추가하는 중 오류 발생:\n\t{1}
+java.security.policy.error.adding.Entry.message=java.security.policy: 항목을 추가하는 중 오류 발생:\n\t{0}
+alias.name.not.provided.pe.name.=별칭 이름이 제공되지 않습니다({0}).
+unable.to.perform.substitution.on.alias.suffix={0} 별칭을 대체할 수 없습니다.
+substitution.value.prefix.unsupported=대체 값 {0}은(는) 지원되지 않습니다.
+SPACE=\u0020
+LPARAM=(
+RPARAM=)
+type.can.t.be.null=유형은 널일 수 없습니다.
+
+# sun.security.provider.PolicyParser
+keystorePasswordURL.can.not.be.specified.without.also.specifying.keystore=키 저장소를 지정하지 않고 keystorePasswordURL을 지정할 수 없습니다.
+expected.keystore.type=키 저장소 유형이 필요합니다.
+expected.keystore.provider=키 저장소 제공자가 필요합니다.
+multiple.Codebase.expressions=Codebase 표현식이 여러 개입니다.
+multiple.SignedBy.expressions=SignedBy 표현식이 여러 개입니다.
+duplicate.keystore.domain.name=중복된 키 저장소 도메인 이름: {0}
+duplicate.keystore.name=중복된 키 저장소 이름: {0}
+SignedBy.has.empty.alias=SignedBy의 별칭이 비어 있습니다.
+can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name=와일드 카드 문자 이름 없이 와일드 카드 문자 클래스를 사용하는 주체를 지정할 수 없습니다.
+expected.codeBase.or.SignedBy.or.Principal=codeBase, SignedBy 또는 주체가 필요합니다.
+expected.permission.entry=권한 항목이 필요합니다.
+number.=숫자\u0020
+expected.expect.read.end.of.file.=[{0}]이(가) 필요하지만 [파일의 끝]까지 읽었습니다.
+expected.read.end.of.file.=[;]이 필요하지만 [파일의 끝]까지 읽었습니다.
+line.number.msg={0} 행: {1}
+line.number.expected.expect.found.actual.={0} 행: [{1}]이(가) 필요하지만 [{2}]이(가) 발견되었습니다.
+null.principalClass.or.principalName=principalClass 또는 principalName이 널입니다.
+
+# sun.security.pkcs11.SunPKCS11
+PKCS11.Token.providerName.Password.=PKCS11 토큰 [{0}] 비밀번호:\u0020
+
+# --- DEPRECATED ---
+# javax.security.auth.Policy
+unable.to.instantiate.Subject.based.policy=제목 기반 정책을 인스턴스화할 수 없습니다.
diff --git a/src/java.base/share/classes/sun/security/util/resources/security_pt_BR.properties b/src/java.base/share/classes/sun/security/util/resources/security_pt_BR.properties
new file mode 100644
index 0000000000000..eb49895c6055a
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/security_pt_BR.properties
@@ -0,0 +1,110 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# javax.security.auth.PrivateCredentialPermission
+invalid.null.input.s.=entrada(s) nula(s) inválida(s)
+actions.can.only.be.read.=as ações só podem ser 'lidas'
+permission.name.name.syntax.invalid.=sintaxe inválida do nome da permissão [{0}]:\u0020
+Credential.Class.not.followed.by.a.Principal.Class.and.Name=Classe da Credencial não seguida por um Nome e uma Classe do Principal
+Principal.Class.not.followed.by.a.Principal.Name=Classe do Principal não seguida por um Nome do Principal
+Principal.Name.must.be.surrounded.by.quotes=O Nome do Principal deve estar entre aspas
+Principal.Name.missing.end.quote=Faltam as aspas finais no Nome do Principal
+PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value=A Classe do Principal PrivateCredentialPermission não pode ser um valor curinga (*) se o Nome do Principal não for um valor curinga (*)
+CredOwner.Principal.Class.class.Principal.Name.name=CredOwner:\n\tClasse do Principal = {0}\n\tNome do Principal = {1}
+
+# javax.security.auth.x500
+provided.null.name=nome nulo fornecido
+provided.null.keyword.map=mapa de palavra-chave nulo fornecido
+provided.null.OID.map=mapa OID nulo fornecido
+
+# javax.security.auth.Subject
+NEWLINE=\n
+invalid.null.AccessControlContext.provided=AccessControlContext nulo inválido fornecido
+invalid.null.action.provided=ação nula inválida fornecida
+invalid.null.Class.provided=Classe nula inválida fornecida
+Subject.=Assunto:\n
+.Principal.=\tPrincipal:\u0020
+.Public.Credential.=\tCredencial Pública:\u0020
+.Private.Credentials.inaccessible.=\tCredenciais Privadas inacessíveis\n
+.Private.Credential.=\tCredencial Privada:\u0020
+.Private.Credential.inaccessible.=\tCredencial Privada inacessível\n
+Subject.is.read.only=O Assunto é somente para leitura
+attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set=tentativa de adicionar um objeto que não é uma instância de java.security.Principal a um conjunto de principais do Subject
+attempting.to.add.an.object.which.is.not.an.instance.of.class=tentativa de adicionar um objeto que não é uma instância de {0}
+
+# javax.security.auth.login.AppConfigurationEntry
+LoginModuleControlFlag.=LoginModuleControlFlag:\u0020
+
+# javax.security.auth.login.LoginContext
+Invalid.null.input.name=Entrada nula inválida: nome
+No.LoginModules.configured.for.name=Nenhum LoginModule configurado para {0}
+invalid.null.Subject.provided=Subject nulo inválido fornecido
+invalid.null.CallbackHandler.provided=CallbackHandler nulo inválido fornecido
+null.subject.logout.called.before.login=Subject nulo - log-out chamado antes do log-in
+unable.to.instantiate.LoginModule.module.because.it.does.not.provide.a.no.argument.constructor=não é possível instanciar LoginModule, {0}, porque ele não fornece um construtor sem argumento
+unable.to.instantiate.LoginModule=não é possível instanciar LoginModule
+unable.to.instantiate.LoginModule.=não é possível instanciar LoginModule:\u0020
+unable.to.find.LoginModule.class.=não é possível localizar a classe LoginModule:\u0020
+unable.to.access.LoginModule.=não é possível acessar LoginModule:\u0020
+Login.Failure.all.modules.ignored=Falha de Log-in: todos os módulos ignorados
+
+# sun.security.provider.PolicyFile
+
+java.security.policy.error.parsing.policy.message=java.security.policy: erro durante o parsing de {0}:\n\t{1}
+java.security.policy.error.adding.Permission.perm.message=java.security.policy: erro ao adicionar a permissão, {0}:\n\t{1}
+java.security.policy.error.adding.Entry.message=java.security.policy: erro ao adicionar a Entrada:\n\t{0}
+alias.name.not.provided.pe.name.=nome de alias não fornecido ({0})
+unable.to.perform.substitution.on.alias.suffix=não é possível realizar a substituição no alias, {0}
+substitution.value.prefix.unsupported=valor da substituição, {0}, não suportado
+SPACE=\u0020
+LPARAM=(
+RPARAM=)
+type.can.t.be.null=o tipo não pode ser nulo
+
+# sun.security.provider.PolicyParser
+keystorePasswordURL.can.not.be.specified.without.also.specifying.keystore=keystorePasswordURL não pode ser especificado sem que a área de armazenamento de chaves também seja especificada
+expected.keystore.type=tipo de armazenamento de chaves esperado
+expected.keystore.provider=fornecedor da área de armazenamento de chaves esperado
+multiple.Codebase.expressions=várias expressões CodeBase
+multiple.SignedBy.expressions=várias expressões SignedBy
+duplicate.keystore.domain.name=nome do domínio da área de armazenamento de teclas duplicado: {0}
+duplicate.keystore.name=nome da área de armazenamento de chaves duplicado: {0}
+SignedBy.has.empty.alias=SignedBy tem alias vazio
+can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name=não é possível especificar um principal com uma classe curinga sem um nome curinga
+expected.codeBase.or.SignedBy.or.Principal=CodeBase ou SignedBy ou Principal esperado
+expected.permission.entry=entrada de permissão esperada
+number.=número\u0020
+expected.expect.read.end.of.file.=esperado [{0}], lido [fim do arquivo]
+expected.read.end.of.file.=esperado [;], lido [fim do arquivo]
+line.number.msg=linha {0}: {1}
+line.number.expected.expect.found.actual.=linha {0}: esperada [{1}], encontrada [{2}]
+null.principalClass.or.principalName=principalClass ou principalName nulo
+
+# sun.security.pkcs11.SunPKCS11
+PKCS11.Token.providerName.Password.=Senha PKCS11 de Token [{0}]:\u0020
+
+# --- DEPRECATED ---
+# javax.security.auth.Policy
+unable.to.instantiate.Subject.based.policy=não é possível instanciar a política com base em Subject
diff --git a/src/java.base/share/classes/sun/security/util/resources/security_sv.properties b/src/java.base/share/classes/sun/security/util/resources/security_sv.properties
new file mode 100644
index 0000000000000..b06ea96456b22
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/security_sv.properties
@@ -0,0 +1,110 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# javax.security.auth.PrivateCredentialPermission
+invalid.null.input.s.=ogiltiga null-indata
+actions.can.only.be.read.=åtgärder kan endast 'läsas'
+permission.name.name.syntax.invalid.=syntaxen för behörighetsnamnet [{0}] är ogiltig:\u0020
+Credential.Class.not.followed.by.a.Principal.Class.and.Name=Inloggningsuppgiftsklassen följs inte av klass eller namn för identitetshavare
+Principal.Class.not.followed.by.a.Principal.Name=Identitetshavareklassen följs inte av något identitetshavarenamn
+Principal.Name.must.be.surrounded.by.quotes=Identitetshavarenamnet måste anges inom citattecken
+Principal.Name.missing.end.quote=Identitetshavarenamnet saknar avslutande citattecken
+PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value=Identitetshavareklassen PrivateCredentialPermission kan inte ha något jokertecken (*) om inte namnet på identitetshavaren anges med jokertecken (*)
+CredOwner.Principal.Class.class.Principal.Name.name=CredOwner:\n\tIdentitetshavareklass = {0}\n\tIdentitetshavarenamn = {1}
+
+# javax.security.auth.x500
+provided.null.name=null-namn angavs
+provided.null.keyword.map=nullnyckelordsmappning angavs
+provided.null.OID.map=null-OID-mappning angavs
+
+# javax.security.auth.Subject
+NEWLINE=\n
+invalid.null.AccessControlContext.provided=ogiltigt null-AccessControlContext
+invalid.null.action.provided=ogiltig null-funktion
+invalid.null.Class.provided=ogiltig null-klass
+Subject.=Innehavare:\n
+.Principal.=\tIdentitetshavare:\u0020
+.Public.Credential.=\tOffentlig inloggning:\u0020
+.Private.Credentials.inaccessible.=\tPrivat inloggning är inte tillgänglig\n
+.Private.Credential.=\tPrivat inloggning:\u0020
+.Private.Credential.inaccessible.=\tPrivat inloggning är inte tillgänglig\n
+Subject.is.read.only=Innehavare är skrivskyddad
+attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set=försök att lägga till ett objekt som inte är en instans av java.security.Principal till ett subjekts uppsättning av identitetshavare
+attempting.to.add.an.object.which.is.not.an.instance.of.class=försöker lägga till ett objekt som inte är en instans av {0}
+
+# javax.security.auth.login.AppConfigurationEntry
+LoginModuleControlFlag.=LoginModuleControlFlag:\u0020
+
+# javax.security.auth.login.LoginContext
+Invalid.null.input.name=Ogiltiga null-indata: namn
+No.LoginModules.configured.for.name=Inga inloggningsmoduler har konfigurerats för {0}
+invalid.null.Subject.provided=ogiltig null-subjekt
+invalid.null.CallbackHandler.provided=ogiltig null-CallbackHandler
+null.subject.logout.called.before.login=null-subjekt - utloggning anropades före inloggning
+unable.to.instantiate.LoginModule.module.because.it.does.not.provide.a.no.argument.constructor=kan inte instansiera LoginModule, {0}, eftersom den inte tillhandahåller någon icke-argumentskonstruktor
+unable.to.instantiate.LoginModule=kan inte instansiera LoginModule
+unable.to.instantiate.LoginModule.=kan inte instansiera LoginModule:\u0020
+unable.to.find.LoginModule.class.=hittar inte LoginModule-klassen:\u0020
+unable.to.access.LoginModule.=ingen åtkomst till LoginModule:\u0020
+Login.Failure.all.modules.ignored=Inloggningsfel: alla moduler ignoreras
+
+# sun.security.provider.PolicyFile
+
+java.security.policy.error.parsing.policy.message=java.security.policy: fel vid tolkning av {0}:\n\t{1}
+java.security.policy.error.adding.Permission.perm.message=java.security.policy: fel vid tillägg av behörighet, {0}:\n\t{1}
+java.security.policy.error.adding.Entry.message=java.security.policy: fel vid tillägg av post:\n\t{0}
+alias.name.not.provided.pe.name.=aliasnamn ej angivet ({0})
+unable.to.perform.substitution.on.alias.suffix=kan ej ersätta alias, {0}
+substitution.value.prefix.unsupported=ersättningsvärde, {0}, stöds ej
+SPACE=\u0020
+LPARAM=(
+RPARAM=)
+type.can.t.be.null=typen kan inte vara null
+
+# sun.security.provider.PolicyParser
+keystorePasswordURL.can.not.be.specified.without.also.specifying.keystore=kan inte ange keystorePasswordURL utan att ange nyckellager
+expected.keystore.type=förväntad nyckellagertyp
+expected.keystore.provider=nyckellagerleverantör förväntades
+multiple.Codebase.expressions=flera CodeBase-uttryck
+multiple.SignedBy.expressions=flera SignedBy-uttryck
+duplicate.keystore.domain.name=domännamn för dubbelt nyckellager: {0}
+duplicate.keystore.name=namn för dubbelt nyckellager: {0}
+SignedBy.has.empty.alias=SignedBy har ett tomt alias
+can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name=kan inte ange identitetshavare med en jokerteckenklass utan ett jokerteckennamn
+expected.codeBase.or.SignedBy.or.Principal=förväntad codeBase eller SignedBy eller identitetshavare
+expected.permission.entry=förväntade behörighetspost
+number.=nummer
+expected.expect.read.end.of.file.=förväntade [{0}], läste [filslut]
+expected.read.end.of.file.=förväntade [;], läste [filslut]
+line.number.msg=rad {0}: {1}
+line.number.expected.expect.found.actual.=rad {0}: förväntade [{1}], hittade [{2}]
+null.principalClass.or.principalName=null-principalClass eller -principalName
+
+# sun.security.pkcs11.SunPKCS11
+PKCS11.Token.providerName.Password.=Lösenord för PKCS11-token [{0}]:\u0020
+
+# --- DEPRECATED ---
+# javax.security.auth.Policy
+unable.to.instantiate.Subject.based.policy=kan inte instansiera subjektbaserad policy
diff --git a/src/java.base/share/classes/sun/security/util/resources/security_zh_CN.properties b/src/java.base/share/classes/sun/security/util/resources/security_zh_CN.properties
new file mode 100644
index 0000000000000..0653fbdca522f
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/security_zh_CN.properties
@@ -0,0 +1,76 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# javax.security.auth.PrivateCredentialPermission
+invalid.null.input.s.=无效的空输入
+actions.can.only.be.read.=操作只能为 '读取'
+permission.name.name.syntax.invalid.=权限名称 [{0}] 语法无效:\u0020
+Credential.Class.not.followed.by.a.Principal.Class.and.Name=身份证明类后面未跟随主用户类及名称
+Principal.Class.not.followed.by.a.Principal.Name=主用户类后面未跟随主用户名称
+Principal.Name.must.be.surrounded.by.quotes=主用户名称必须放在引号内
+Principal.Name.missing.end.quote=主用户名称缺少右引号
+PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value=如果主用户名称不是通配符 (*) 值, 那么 PrivateCredentialPermission 主用户类不能是通配符 (*) 值
+CredOwner.Principal.Class.class.Principal.Name.name=CredOwner:\n\t主用户类 = {0}\n\t主用户名称 = {1}
+
+# javax.security.auth.x500
+provided.null.name=提供的名称为空值
+provided.null.keyword.map=提供的关键字映射为空值
+provided.null.OID.map=提供的 OID 映射为空值
+
+# javax.security.auth.Subject
+NEWLINE=\n
+invalid.null.action.provided=提供了无效的空操作
+invalid.null.Class.provided=提供了无效的空类
+Subject.=主体: \n
+.Principal.=\t主用户:\u0020
+.Public.Credential.=\t公共身份证明:\u0020
+.Private.Credential.=\t专用身份证明:\u0020
+.Private.Credential.inaccessible.=\t无法访问专用身份证明\n
+Subject.is.read.only=主体为只读
+attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set=正在尝试将一个非 java.security.Principal 实例的对象添加到主体的主用户集中
+attempting.to.add.an.object.which.is.not.an.instance.of.class=正在尝试添加一个非{0}实例的对象
+
+# javax.security.auth.login.AppConfigurationEntry
+LoginModuleControlFlag.=LoginModuleControlFlag:\u0020
+
+# javax.security.auth.login.LoginContext
+Invalid.null.input.name=无效空输入: 名称
+No.LoginModules.configured.for.name=没有为{0}配置 LoginModules
+invalid.null.Subject.provided=提供了无效的空主体
+invalid.null.CallbackHandler.provided=提供了无效的空 CallbackHandler
+null.subject.logout.called.before.login=空主体 - 在登录之前调用了注销
+Login.Failure.all.modules.ignored=登录失败: 忽略所有模块
+
+# sun.security.provider.PolicyParser
+duplicate.keystore.domain.name=密钥库域名重复: {0}
+duplicate.keystore.name=密钥库名称重复: {0}
+number.=编号\u0020
+expected.expect.read.end.of.file.=应为 [{0}], 读取的是 [文件结尾]
+expected.read.end.of.file.=应为 [;], 读取的是 [文件结尾]
+line.number.msg=列{0}: {1}
+line.number.expected.expect.found.actual.=行号 {0}: 应为 [{1}], 找到 [{2}]
+
+# sun.security.pkcs11.SunPKCS11
+PKCS11.Token.providerName.Password.=PKCS11 标记 [{0}] 口令:\u0020
diff --git a/src/java.base/share/classes/sun/security/util/resources/security_zh_TW.properties b/src/java.base/share/classes/sun/security/util/resources/security_zh_TW.properties
new file mode 100644
index 0000000000000..efcf19cc59872
--- /dev/null
+++ b/src/java.base/share/classes/sun/security/util/resources/security_zh_TW.properties
@@ -0,0 +1,110 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# javax.security.auth.PrivateCredentialPermission
+invalid.null.input.s.=無效空值輸入
+actions.can.only.be.read.=動作只能被「讀取」
+permission.name.name.syntax.invalid.=權限名稱 [{0}] 是無效的語法:\u0020
+Credential.Class.not.followed.by.a.Principal.Class.and.Name=Credential 類別後面不是 Principal 類別及名稱
+Principal.Class.not.followed.by.a.Principal.Name=Principal 類別後面不是 Principal 名稱
+Principal.Name.must.be.surrounded.by.quotes=Principal 名稱必須以引號圈住
+Principal.Name.missing.end.quote=Principal 名稱缺少下引號
+PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value=如果 Principal 名稱不是一個萬用字元 (*) 值,那麼 PrivateCredentialPermission Principal 類別就不能是萬用字元 (*) 值
+CredOwner.Principal.Class.class.Principal.Name.name=CredOwner:\n\tPrincipal 類別 = {0}\n\tPrincipal 名稱 = {1}
+
+# javax.security.auth.x500
+provided.null.name=提供空值名稱
+provided.null.keyword.map=提供空值關鍵字對映
+provided.null.OID.map=提供空值 OID 對映
+
+# javax.security.auth.Subject
+NEWLINE=\n
+invalid.null.AccessControlContext.provided=提供無效的空值 AccessControlContext
+invalid.null.action.provided=提供無效的空值動作
+invalid.null.Class.provided=提供無效的空值類別
+Subject.=主題:\n
+.Principal.=\tPrincipal:\u0020
+.Public.Credential.=\t公用證明資料:\u0020
+.Private.Credentials.inaccessible.=\t私人證明資料無法存取\n
+.Private.Credential.=\t私人證明資料:\u0020
+.Private.Credential.inaccessible.=\t私人證明資料無法存取\n
+Subject.is.read.only=主題為唯讀
+attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set=試圖新增一個非 java.security.Principal 執行處理的物件至主題的 Principal 群中
+attempting.to.add.an.object.which.is.not.an.instance.of.class=試圖新增一個非 {0} 執行處理的物件
+
+# javax.security.auth.login.AppConfigurationEntry
+LoginModuleControlFlag.=LoginModuleControlFlag:\u0020
+
+# javax.security.auth.login.LoginContext
+Invalid.null.input.name=無效空值輸入: 名稱
+No.LoginModules.configured.for.name=無針對 {0} 設定的 LoginModules
+invalid.null.Subject.provided=提供無效空值主題
+invalid.null.CallbackHandler.provided=提供無效空值 CallbackHandler
+null.subject.logout.called.before.login=空值主題 - 在登入之前即呼叫登出
+unable.to.instantiate.LoginModule.module.because.it.does.not.provide.a.no.argument.constructor=無法創設 LoginModule,{0},因為它並未提供非引數的建構子
+unable.to.instantiate.LoginModule=無法建立 LoginModule
+unable.to.instantiate.LoginModule.=無法建立 LoginModule:\u0020
+unable.to.find.LoginModule.class.=找不到 LoginModule 類別:\u0020
+unable.to.access.LoginModule.=無法存取 LoginModule:\u0020
+Login.Failure.all.modules.ignored=登入失敗: 忽略所有模組
+
+# sun.security.provider.PolicyFile
+
+java.security.policy.error.parsing.policy.message=java.security.policy: 剖析錯誤 {0}: \n\t{1}
+java.security.policy.error.adding.Permission.perm.message=java.security.policy: 新增權限錯誤 {0}: \n\t{1}
+java.security.policy.error.adding.Entry.message=java.security.policy: 新增項目錯誤: \n\t{0}
+alias.name.not.provided.pe.name.=未提供別名名稱 ({0})
+unable.to.perform.substitution.on.alias.suffix=無法對別名執行替換,{0}
+substitution.value.prefix.unsupported=不支援的替換值,{0}
+SPACE=\u0020
+LPARAM=(
+RPARAM=)
+type.can.t.be.null=輸入不能為空值
+
+# sun.security.provider.PolicyParser
+keystorePasswordURL.can.not.be.specified.without.also.specifying.keystore=指定 keystorePasswordURL 需要同時指定金鑰儲存庫
+expected.keystore.type=預期的金鑰儲存庫類型
+expected.keystore.provider=預期的金鑰儲存庫提供者
+multiple.Codebase.expressions=多重 Codebase 表示式
+multiple.SignedBy.expressions=多重 SignedBy 表示式
+duplicate.keystore.domain.name=重複的金鑰儲存庫網域名稱: {0}
+duplicate.keystore.name=重複的金鑰儲存庫名稱: {0}
+SignedBy.has.empty.alias=SignedBy 有空別名
+can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name=沒有萬用字元名稱,無法指定含有萬用字元類別的 Principal
+expected.codeBase.or.SignedBy.or.Principal=預期的 codeBase 或 SignedBy 或 Principal
+expected.permission.entry=預期的權限項目
+number.=號碼\u0020
+expected.expect.read.end.of.file.=預期的 [{0}], 讀取 [end of file]
+expected.read.end.of.file.=預期的 [;], 讀取 [end of file]
+line.number.msg=行 {0}: {1}
+line.number.expected.expect.found.actual.=行 {0}: 預期的 [{1}],發現 [{2}]
+null.principalClass.or.principalName=空值 principalClass 或 principalName
+
+# sun.security.pkcs11.SunPKCS11
+PKCS11.Token.providerName.Password.=PKCS11 記號 [{0}] 密碼:\u0020
+
+# --- DEPRECATED ---
+# javax.security.auth.Policy
+unable.to.instantiate.Subject.based.policy=無法建立主題式的原則
diff --git a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java
index 5931e943e30c2..ab5d8fc6842ef 100644
--- a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java
+++ b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java
@@ -89,7 +89,7 @@ public class Main {
// for i18n
private static final java.util.ResourceBundle rb =
java.util.ResourceBundle.getBundle
- ("sun.security.tools.jarsigner.Resources");
+ ("sun.security.tools.jarsigner.resources.jarsigner");
private static final Collator collator = Collator.getInstance();
static {
// this is for case insensitive string comparisions
diff --git a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources.java b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources.java
deleted file mode 100644
index 82d3fb0a2aedb..0000000000000
--- a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources.java
+++ /dev/null
@@ -1,340 +0,0 @@
-/*
- * Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.tools.jarsigner;
-
-/**
- * This class represents the ResourceBundle
- * for JarSigner.
- *
- */
-public class Resources extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // shared (from jarsigner)
- {"SPACE", " "},
- {"6SPACE", " "},
- {"COMMA", ", "},
-
- {"provclass.not.a.provider", "%s not a provider"},
- {"provider.name.not.found", "Provider named \"%s\" not found"},
- {"provider.class.not.found", "Provider \"%s\" not found"},
- {"jarsigner.error.", "jarsigner error: "},
- {"Illegal.option.", "Illegal option: "},
- {".keystore.must.be.NONE.if.storetype.is.{0}",
- "-keystore must be NONE if -storetype is {0}"},
- {".keypass.can.not.be.specified.if.storetype.is.{0}",
- "-keypass can not be specified if -storetype is {0}"},
- {"If.protected.is.specified.then.storepass.and.keypass.must.not.be.specified",
- "If -protected is specified, then -storepass and -keypass must not be specified"},
- {"If.keystore.is.not.password.protected.then.storepass.and.keypass.must.not.be.specified",
- "If keystore is not password protected, then -storepass and -keypass must not be specified"},
- {"Usage.jarsigner.options.jar.file.alias",
- "Usage: jarsigner [options] jar-file alias"},
- {".jarsigner.verify.options.jar.file.alias.",
- " jarsigner -verify [options] jar-file [alias...]"},
- {".jarsigner.version",
- " jarsigner -version"},
- {".keystore.url.keystore.location",
- "[-keystore ] keystore location"},
- {".storepass.password.password.for.keystore.integrity",
- "[-storepass ] password for keystore integrity"},
- {".storetype.type.keystore.type",
- "[-storetype ] keystore type"},
- {".keypass.password.password.for.private.key.if.different.",
- "[-keypass ] password for private key (if different)"},
- {".certchain.file.name.of.alternative.certchain.file",
- "[-certchain ] name of alternative certchain file"},
- {".sigfile.file.name.of.SF.DSA.file",
- "[-sigfile ] name of .SF/.DSA file"},
- {".signedjar.file.name.of.signed.JAR.file",
- "[-signedjar ] name of signed JAR file"},
- {".digestalg.algorithm.name.of.digest.algorithm",
- "[-digestalg ] name of digest algorithm"},
- {".sigalg.algorithm.name.of.signature.algorithm",
- "[-sigalg ] name of signature algorithm"},
- {".verify.verify.a.signed.JAR.file",
- "[-verify] verify a signed JAR file"},
- {".version.print.the.program.version",
- "[-version] print the program version"},
- {".verbose.suboptions.verbose.output.when.signing.verifying.",
- "[-verbose[:suboptions]] verbose output when signing/verifying."},
- {".suboptions.can.be.all.grouped.or.summary",
- " suboptions can be all, grouped or summary"},
- {".certs.display.certificates.when.verbose.and.verifying",
- "[-certs] display certificates when verbose and verifying"},
- {".certs.revocation.check",
- "[-revCheck] Enable certificate revocation check"},
- {".tsa.url.location.of.the.Timestamping.Authority",
- "[-tsa ] location of the Timestamping Authority"},
- {".tsacert.alias.public.key.certificate.for.Timestamping.Authority",
- "[-tsacert ] public key certificate for Timestamping Authority"},
- {".tsapolicyid.tsapolicyid.for.Timestamping.Authority",
- "[-tsapolicyid ] TSAPolicyID for Timestamping Authority"},
- {".tsadigestalg.algorithm.of.digest.data.in.timestamping.request",
- "[-tsadigestalg ] algorithm of digest data in timestamping request"},
- {".internalsf.include.the.SF.file.inside.the.signature.block",
- "[-internalsf] include the .SF file inside the signature block"},
- {".sectionsonly.don.t.compute.hash.of.entire.manifest",
- "[-sectionsonly] don't compute hash of entire manifest"},
- {".protected.keystore.has.protected.authentication.path",
- "[-protected] keystore has protected authentication path"},
- {".providerName.name.provider.name",
- "[-providerName ] provider name"},
- {".add.provider.option",
- "[-addprovider add security provider by name (e.g. SunPKCS11)"},
- {".providerArg.option.1",
- " [-providerArg ]] ... configure argument for -addprovider"},
- {".providerClass.option",
- "[-providerClass add security provider by fully-qualified class name"},
- {".providerArg.option.2",
- " [-providerArg ]] ... configure argument for -providerClass"},
- {".providerPath.option",
- "[-providerPath ] provider classpath"},
- {".strict.treat.warnings.as.errors",
- "[-strict] treat warnings as errors"},
- {".conf.url.specify.a.pre.configured.options.file",
- "[-conf ] specify a pre-configured options file"},
- {".print.this.help.message",
- "[-? -h --help] Print this help message"},
- {"Option.lacks.argument", "Option lacks argument"},
- {"Please.type.jarsigner.help.for.usage", "Please type jarsigner --help for usage"},
- {"Please.specify.jarfile.name", "Please specify jarfile name"},
- {"Please.specify.alias.name", "Please specify alias name"},
- {"Only.one.alias.can.be.specified", "Only one alias can be specified"},
- {"This.jar.contains.signed.entries.which.is.not.signed.by.the.specified.alias.es.",
- "This jar contains signed entries which are not signed by the specified alias(es)."},
- {"This.jar.contains.signed.entries.that.s.not.signed.by.alias.in.this.keystore.",
- "This jar contains signed entries that are not signed by alias in this keystore."},
- {"s", "s"},
- {"m", "m"},
- {"k", "k"},
- {"X", "X"},
- {"q", "?"},
- {".and.d.more.", "(and %d more)"},
- {".s.signature.was.verified.",
- " s = signature was verified "},
- {".m.entry.is.listed.in.manifest",
- " m = entry is listed in manifest"},
- {".k.at.least.one.certificate.was.found.in.keystore",
- " k = at least one certificate was found in keystore"},
- {".X.not.signed.by.specified.alias.es.",
- " X = not signed by specified alias(es)"},
- {".q.unsigned.entry",
- " ? = unsigned entry"},
- {"no.manifest.", "no manifest."},
- {".Signature.related.entries.","(Signature related entries)"},
- {".Unsigned.entries.", "(Unsigned entries)"},
- {".Directory.entries.", "(Directory entries)"},
- {"jar.is.unsigned",
- "jar is unsigned."},
- {"jar.treated.unsigned",
- "WARNING: Signature is either not parsable or not verifiable, and the jar will be treated as unsigned. For more information, re-run jarsigner with debug enabled (-J-Djava.security.debug=jar)."},
- {"jar.treated.unsigned.see.weak",
- "The jar will be treated as unsigned, because it is signed with a weak algorithm that is now disabled.\n\nRe-run jarsigner with the -verbose option for more details."},
- {"jar.treated.unsigned.see.weak.verbose",
- "WARNING: The jar will be treated as unsigned, because it is signed with a weak algorithm that is now disabled by the security property:"},
- {"jar.signed.", "jar signed."},
- {"jar.signed.with.signer.errors.", "jar signed, with signer errors."},
- {"jar.verified.", "jar verified."},
- {"jar.verified.with.signer.errors.", "jar verified, with signer errors."},
-
- {"history.with.ts", "- Signed by \"%1$s\"\n Digest algorithm: %2$s\n Signature algorithm: %3$s, %4$s\n Timestamped by \"%6$s\" on %5$tc\n Timestamp digest algorithm: %7$s\n Timestamp signature algorithm: %8$s, %9$s"},
- {"history.without.ts", "- Signed by \"%1$s\"\n Digest algorithm: %2$s\n Signature algorithm: %3$s, %4$s"},
- {"history.nonexistent.entries", " Warning: nonexistent signed entries: "},
- {"history.unparsable", "- Unparsable signature-related file %s"},
- {"history.nosf", "- Missing signature-related file META-INF/%s.SF"},
- {"history.nobk", "- Missing block file for signature-related file META-INF/%s.SF"},
-
- {"with.weak", "%s (weak)"},
- {"with.algparams.weak", "%1$s using %2$s (weak)"},
- {"with.disabled", "%s (disabled)"},
- {"with.algparams.disabled", "%1$s using %2$s (disabled)"},
- {"key.bit", "%s key"},
- {"key.bit.weak", "%s key (weak)"},
- {"key.bit.disabled", "%s key (disabled)"},
- {"nonexistent.entries.found", "This jar contains signed entries for files that do not exist. See the -verbose output for more details."},
- {"external.file.attributes.detected", "POSIX file permission and/or symlink attributes detected. These attributes are ignored when signing and are not protected by the signature."},
-
- {"jarsigner.", "jarsigner: "},
- {"signature.filename.must.consist.of.the.following.characters.A.Z.0.9.or.",
- "signature filename must consist of the following characters: A-Z, 0-9, _ or -"},
- {"unable.to.open.jar.file.", "unable to open jar file: "},
- {"unable.to.create.", "unable to create: "},
- {".adding.", " adding: "},
- {".updating.", " updating: "},
- {".signing.", " signing: "},
- {"attempt.to.rename.signedJarFile.to.jarFile.failed",
- "attempt to rename {0} to {1} failed"},
- {"attempt.to.rename.jarFile.to.origJar.failed",
- "attempt to rename {0} to {1} failed"},
- {"unable.to.sign.jar.", "unable to sign jar: "},
- {"Enter.Passphrase.for.keystore.", "Enter Passphrase for keystore: "},
- {"keystore.load.", "keystore load: "},
- {"certificate.exception.", "certificate exception: "},
- {"unable.to.instantiate.keystore.class.",
- "unable to instantiate keystore class: "},
- {"Certificate.chain.not.found.for.alias.alias.must.reference.a.valid.KeyStore.key.entry.containing.a.private.key.and",
- "Certificate chain not found for: {0}. {1} must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain."},
- {"File.specified.by.certchain.does.not.exist",
- "File specified by -certchain does not exist"},
- {"Cannot.restore.certchain.from.file.specified",
- "Cannot restore certchain from file specified"},
- {"Certificate.chain.not.found.in.the.file.specified.",
- "Certificate chain not found in the file specified."},
- {"found.non.X.509.certificate.in.signer.s.chain",
- "found non-X.509 certificate in signer's chain"},
- {"Enter.key.password.for.alias.", "Enter key password for {0}: "},
- {"unable.to.recover.key.from.keystore",
- "unable to recover key from keystore"},
- {"key.associated.with.alias.not.a.private.key",
- "key associated with {0} not a private key"},
- {"you.must.enter.key.password", "you must enter key password"},
- {"unable.to.read.password.", "unable to read password: "},
- {"certificate.is.valid.from", "certificate is valid from {0} to {1}"},
- {"certificate.expired.on", "certificate expired on {0}"},
- {"certificate.is.not.valid.until",
- "certificate is not valid until {0}"},
- {"certificate.will.expire.on", "certificate will expire on {0}"},
- {".Invalid.certificate.chain.", "[Invalid certificate chain: "},
- {".Invalid.TSA.certificate.chain.", "[Invalid TSA certificate chain: "},
- {"requesting.a.signature.timestamp",
- "requesting a signature timestamp"},
- {"TSA.location.", "TSA location: "},
- {"TSA.certificate.", "TSA certificate: "},
- {"no.response.from.the.Timestamping.Authority.",
- "no response from the Timestamping Authority. When connecting"
- + " from behind a firewall an HTTP or HTTPS proxy may need to"
- + " be specified. Supply the following options to jarsigner:"},
- {"or", "or"},
- {"Certificate.not.found.for.alias.alias.must.reference.a.valid.KeyStore.entry.containing.an.X.509.public.key.certificate.for.the",
- "Certificate not found for: {0}. {1} must reference a valid KeyStore entry containing an X.509 public key certificate for the Timestamping Authority."},
- {"entry.was.signed.on", "entry was signed on {0}"},
- {"Warning.", "Warning: "},
- {"Error.", "Error: "},
- {"...Signer", ">>> Signer"},
- {"...TSA", ">>> TSA"},
- {"trusted.certificate", "trusted certificate"},
- {"This.jar.contains.unsigned.entries.which.have.not.been.integrity.checked.",
- "This jar contains unsigned entries which have not been integrity-checked. "},
- {"This.jar.contains.entries.whose.signer.certificate.has.expired.",
- "This jar contains entries whose signer certificate has expired. "},
- {"This.jar.contains.entries.whose.signer.certificate.will.expire.within.six.months.",
- "This jar contains entries whose signer certificate will expire within six months. "},
- {"This.jar.contains.entries.whose.signer.certificate.is.not.yet.valid.",
- "This jar contains entries whose signer certificate is not yet valid. "},
- {"This.jar.contains.entries.whose.signer.certificate.is.self.signed.",
- "This jar contains entries whose signer certificate is self-signed."},
- {"Re.run.with.the.verbose.and.certs.options.for.more.details.",
- "Re-run with the -verbose and -certs options for more details."},
- {"The.signer.certificate.has.expired.",
- "The signer certificate has expired."},
- {"The.timestamp.expired.1.but.usable.2",
- "The timestamp expired on %1$tY-%1$tm-%1$td. However, the JAR will be valid until the signer certificate expires on %2$tY-%2$tm-%2$td."},
- {"The.timestamp.has.expired.",
- "The timestamp has expired."},
- {"The.signer.certificate.will.expire.within.six.months.",
- "The signer certificate will expire within six months."},
- {"The.timestamp.will.expire.within.one.year.on.1",
- "The timestamp will expire within one year on %1$tY-%1$tm-%1$td."},
- {"The.timestamp.will.expire.within.one.year.on.1.but.2",
- "The timestamp will expire within one year on %1$tY-%1$tm-%1$td. However, the JAR will be valid until the signer certificate expires on %2$tY-%2$tm-%2$td."},
- {"The.signer.certificate.is.not.yet.valid.",
- "The signer certificate is not yet valid."},
- {"The.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.",
- "The signer certificate's KeyUsage extension doesn't allow code signing."},
- {"The.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.",
- "The signer certificate's ExtendedKeyUsage extension doesn't allow code signing."},
- {"The.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.",
- "The signer certificate's NetscapeCertType extension doesn't allow code signing."},
- {"This.jar.contains.entries.whose.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.",
- "This jar contains entries whose signer certificate's KeyUsage extension doesn't allow code signing."},
- {"This.jar.contains.entries.whose.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.",
- "This jar contains entries whose signer certificate's ExtendedKeyUsage extension doesn't allow code signing."},
- {"This.jar.contains.entries.whose.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.",
- "This jar contains entries whose signer certificate's NetscapeCertType extension doesn't allow code signing."},
- {".{0}.extension.does.not.support.code.signing.",
- "[{0} extension does not support code signing]"},
- {"The.signer.s.certificate.chain.is.invalid.reason.1",
- "The signer's certificate chain is invalid. Reason: %s"},
- {"The.tsa.certificate.chain.is.invalid.reason.1",
- "The TSA certificate chain is invalid. Reason: %s"},
- {"The.signer.s.certificate.is.self.signed.",
- "The signer's certificate is self-signed."},
- {"The.1.algorithm.specified.for.the.2.option.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.",
- "The %1$s algorithm specified for the %2$s option is considered a security risk. This algorithm will be disabled in a future update."},
- {"The.1.algorithm.specified.for.the.2.option.is.considered.a.security.risk.and.is.disabled.",
- "The %1$s algorithm specified for the %2$s option is considered a security risk and is disabled."},
- {"The.timestamp.digest.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.",
- "The %1$s timestamp digest algorithm is considered a security risk. This algorithm will be disabled in a future update."},
- {"The.digest.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.",
- "The %1$s digest algorithm is considered a security risk. This algorithm will be disabled in a future update."},
- {"The.signature.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.",
- "The %1$s signature algorithm is considered a security risk. This algorithm will be disabled in a future update."},
- {"size.bit.alg",
- "%1$d-bit %2$s"},
- {"The.full.keyAlgName.signing.key.is.considered.a.security.risk..It.will.be.disabled.in.a.future.update.",
- "The %s signing key is considered a security risk. It will be disabled in a future update."},
- {"The.full.keyAlgName.signing.key.is.considered.a.security.risk.and.is.disabled.",
- "The %s signing key is considered a security risk and is disabled."},
- {"This.jar.contains.entries.whose.certificate.chain.is.invalid.reason.1",
- "This jar contains entries whose certificate chain is invalid. Reason: %s"},
- {"This.jar.contains.entries.whose.tsa.certificate.chain.is.invalid.reason.1",
- "This jar contains entries whose TSA certificate chain is invalid. Reason: %s"},
- {"no.timestamp.signing",
- "No -tsa or -tsacert is provided and this jar is not timestamped. Without a timestamp, users may not be able to validate this jar after the signer certificate's expiration date (%1$tY-%1$tm-%1$td)."},
- {"invalid.timestamp.signing",
- "The timestamp is invalid. Without a valid timestamp, users may not be able to validate this jar after the signer certificate's expiration date (%1$tY-%1$tm-%1$td)."},
- {"no.timestamp.verifying",
- "This jar contains signatures that do not include a timestamp. Without a timestamp, users may not be able to validate this jar after any of the signer certificates expire (as early as %1$tY-%1$tm-%1$td)."},
- {"bad.timestamp.verifying",
- "This jar contains signatures that include an invalid timestamp. Without a valid timestamp, users may not be able to validate this jar after any of the signer certificates expire (as early as %1$tY-%1$tm-%1$td).\nRerun jarsigner with -J-Djava.security.debug=jar for more information."},
- {"The.signer.certificate.will.expire.on.1.",
- "The signer certificate will expire on %1$tY-%1$tm-%1$td."},
- {"The.timestamp.will.expire.on.1.",
- "The timestamp will expire on %1$tY-%1$tm-%1$td."},
- {"signer.cert.expired.1.but.timestamp.good.2.",
- "The signer certificate expired on %1$tY-%1$tm-%1$td. However, the JAR will be valid until the timestamp expires on %2$tY-%2$tm-%2$td."},
- {"Unknown.password.type.", "Unknown password type: "},
- {"Cannot.find.environment.variable.",
- "Cannot find environment variable: "},
- {"Cannot.find.file.", "Cannot find file: "},
- {"event.ocsp.check", "Contacting OCSP server at %s ..."},
- {"event.crl.check", "Downloading CRL from %s ..."},
- };
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_de.java b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_de.java
deleted file mode 100644
index ec3f3b1cce5be..0000000000000
--- a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_de.java
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- * Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.tools.jarsigner;
-
-/**
- *
This class represents the ResourceBundle
- * for JarSigner.
- *
- */
-public class Resources_de extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // shared (from jarsigner)
- {"SPACE", " "},
- {"6SPACE", " "},
- {"COMMA", ", "},
-
- {"provclass.not.a.provider", "%s kein Provider"},
- {"provider.name.not.found", "Provider namens \"%s\" nicht gefunden"},
- {"provider.class.not.found", "Provider \"%s\" nicht gefunden"},
- {"jarsigner.error.", "jarsigner-Fehler: "},
- {"Illegal.option.", "Unzul\u00E4ssige Option: "},
- {".keystore.must.be.NONE.if.storetype.is.{0}",
- "-keystore muss NONE sein, wenn -storetype {0} ist"},
- {".keypass.can.not.be.specified.if.storetype.is.{0}",
- "-keypass kann nicht angegeben werden, wenn -storetype \"{0}\" ist"},
- {"If.protected.is.specified.then.storepass.and.keypass.must.not.be.specified",
- "Wenn -protected angegeben ist, d\u00FCrfen -storepass und -keypass nicht angegeben werden"},
- {"If.keystore.is.not.password.protected.then.storepass.and.keypass.must.not.be.specified",
- "Wenn der Keystore nicht kennwortgesch\u00FCtzt ist, d\u00FCrfen -storepass und -keypass nicht angegeben werden"},
- {"Usage.jarsigner.options.jar.file.alias",
- "Verwendung: jarsigner [options] jar-file alias"},
- {".jarsigner.verify.options.jar.file.alias.",
- " jarsigner -verify [options] jar-file [alias...]"},
- {".jarsigner.version",
- " jarsigner -version"},
- {".keystore.url.keystore.location",
- "[-keystore ] Keystore-Speicherort"},
- {".storepass.password.password.for.keystore.integrity",
- "[-storepass ] Kennwort f\u00FCr Keystore-Integrit\u00E4t"},
- {".storetype.type.keystore.type",
- "[-storetype ] Keystore-Typ"},
- {".keypass.password.password.for.private.key.if.different.",
- "[-keypass ] Kennwort f\u00FCr Private Key (falls unterschiedlich)"},
- {".certchain.file.name.of.alternative.certchain.file",
- "[-certchain ] Name der alternativen certchain-Datei"},
- {".sigfile.file.name.of.SF.DSA.file",
- "[-sigfile ] Name der SF/DSA-Datei"},
- {".signedjar.file.name.of.signed.JAR.file",
- "[-signedjar ] Name der signierten JAR-Datei"},
- {".digestalg.algorithm.name.of.digest.algorithm",
- "[-digestalg ] Name des Digestalgorithmus"},
- {".sigalg.algorithm.name.of.signature.algorithm",
- "[-sigalg ] Name des Signaturalgorithmus"},
- {".verify.verify.a.signed.JAR.file",
- "[-verify] Verifiziert eine signierte JAR-Datei"},
- {".version.print.the.program.version",
- "[-version] Gibt die Programmversion aus"},
- {".verbose.suboptions.verbose.output.when.signing.verifying.",
- "[-verbose[:suboptions]] Verbose-Ausgabe beim Signieren/Verifizieren."},
- {".suboptions.can.be.all.grouped.or.summary",
- " Als Unteroptionen sind \"all\", \"grouped\" und \"summary\" m\u00F6glich"},
- {".certs.display.certificates.when.verbose.and.verifying",
- "[-certs] Zeigt Zertifikate bei Verbose und Verifizierung an"},
- {".certs.revocation.check",
- "[-revCheck] Aktiviert die Zertifikatswiderrufpr\u00FCfung"},
- {".tsa.url.location.of.the.Timestamping.Authority",
- "[-tsa ] Ort der Zeitstempelautorit\u00E4t"},
- {".tsacert.alias.public.key.certificate.for.Timestamping.Authority",
- "[-tsacert ] Public-Key-Zertifikat f\u00FCr Zeitstempelautorit\u00E4t"},
- {".tsapolicyid.tsapolicyid.for.Timestamping.Authority",
- "[-tsapolicyid ] TSAPolicyID f\u00FCr Zeitstempelautorit\u00E4t"},
- {".tsadigestalg.algorithm.of.digest.data.in.timestamping.request",
- "[-tsadigestalg ] Algorithmus der Digestdaten in Zeitstempelanforderung"},
- {".internalsf.include.the.SF.file.inside.the.signature.block",
- "[-internalsf] SF-Datei in Signaturblock aufnehmen"},
- {".sectionsonly.don.t.compute.hash.of.entire.manifest",
- "[-sectionsonly] Berechnet nicht den Hash des gesamten Manifests"},
- {".protected.keystore.has.protected.authentication.path",
- "[-protected] Keystore hat gesch\u00FCtzten Authentifizierungspfad"},
- {".providerName.name.provider.name",
- "[-providerName ] Providername"},
- {".add.provider.option",
- "[-addprovider F\u00FCgt einen Sicherheitsprovider nach Name hinzu (z.B. SunPKCS11)"},
- {".providerArg.option.1",
- " [-providerArg ]] ... Konfiguriert Argument f\u00FCr -addprovider"},
- {".providerClass.option",
- "[-providerClass F\u00FCgt einen Sicherheitsprovider nach vollqualifiziertem Klassennamen hinzu"},
- {".providerArg.option.2",
- " [-providerArg ]] ... Konfiguriert Argument f\u00FCr -providerClass"},
- {".providerPath.option",
- "[-providerPath ] Provider-Classpath"},
- {".strict.treat.warnings.as.errors",
- "[-strict] Behandelt Warnungen als Fehler"},
- {".conf.url.specify.a.pre.configured.options.file",
- "[-conf ] Vorkonfigurierte Optionsdatei angeben"},
- {".print.this.help.message",
- "[-? -h --help] Gibt diese Hilfemeldung aus"},
- {"Option.lacks.argument", "Argument fehlt in Option"},
- {"Please.type.jarsigner.help.for.usage", "Geben Sie jarsigner --help ein, um Verwendungsinformationen anzuzeigen"},
- {"Please.specify.jarfile.name", "Geben Sie den Namen der JAR-Datei an"},
- {"Please.specify.alias.name", "Geben Sie einen Aliasnamen an"},
- {"Only.one.alias.can.be.specified", "Nur ein Alias kann angegeben werden"},
- {"This.jar.contains.signed.entries.which.is.not.signed.by.the.specified.alias.es.",
- "Diese JAR-Datei enth\u00E4lt signierte Eintr\u00E4ge, die nicht von den angegebenen Aliasnamen signiert wurden."},
- {"This.jar.contains.signed.entries.that.s.not.signed.by.alias.in.this.keystore.",
- "Diese JAR-Datei enth\u00E4lt signierte Eintr\u00E4ge, die nicht vom Alias in diesem Keystore signiert wurden."},
- {"s", "s"},
- {"m", "m"},
- {"k", "k"},
- {"X", "X"},
- {"q", "?"},
- {".and.d.more.", "(und %d mehr)"},
- {".s.signature.was.verified.",
- " s = Signatur wurde verifiziert "},
- {".m.entry.is.listed.in.manifest",
- " m = Eintrag ist in Manifest aufgef\u00FChrt"},
- {".k.at.least.one.certificate.was.found.in.keystore",
- " k = Mindestens ein Zertifikat im Keystore gefunden"},
- {".X.not.signed.by.specified.alias.es.",
- " X = Nicht von den angegebenen Aliasnamen signiert"},
- {".q.unsigned.entry",
- " ? = Nicht signierter Eintrag"},
- {"no.manifest.", "Kein Manifest."},
- {".Signature.related.entries.","(Signaturbezogene Eintr\u00E4ge)"},
- {".Unsigned.entries.", "(Nicht signierte Eintr\u00E4ge)"},
- {".Directory.entries.", "(Verzeichniseintr\u00E4ge)"},
- {"jar.is.unsigned",
- "JAR-Datei ist nicht signiert."},
- {"jar.treated.unsigned",
- "Warnung: Signatur kann entweder nicht geparst oder nicht verifiziert werden. Die JAR-Datei wird als nicht signiert behandelt. Weitere Informationen erhalten Sie, indem Sie \"jarsigner\" mit aktiviertem Debugging erneut ausf\u00FChren (-J-Djava.security.debug=jar)."},
- {"jar.treated.unsigned.see.weak",
- "Die JAR-Datei wird als nicht signiert behandelt, da sie mit einem schwachen Algorithmus signiert wurde, der jetzt deaktiviert ist.\n\nF\u00FChren Sie \"jarsigner\" mit der Option \"-verbose\" erneut aus, um weitere Einzelheiten zu erhalten."},
- {"jar.treated.unsigned.see.weak.verbose",
- "Warnung: Die JAR-Datei wird als nicht signiert behandelt, da sie mit einem schwachen Algorithmus signiert wurde, der mittlerweile von der folgenden Sicherheitseigenschaft deaktiviert wurde:"},
- {"jar.signed.", "JAR-Datei signiert."},
- {"jar.signed.with.signer.errors.", "JAR-Datei signiert, mit Signaturgeberfehlern."},
- {"jar.verified.", "JAR-Datei verifiziert."},
- {"jar.verified.with.signer.errors.", "JAR-Datei verifiziert, mit Signaturgeberfehlern."},
-
- {"history.with.ts", "- Von \"%1$s\" signiert\n Digestalgorithmus: %2$s\n Signaturalgorithmus: %3$s, %4$s\n Zeitstempel von \"%6$s\" am %5$tc\n Digestalgorithmus f\u00FCr Zeitstempel: %7$s\n Signaturalgorithmus f\u00FCr Zeitstempel: %8$s, %9$s"},
- {"history.without.ts", "- Von \"%1$s\" signiert\n Digestalgorithmus: %2$s\n Signaturalgorithmus: %3$s, %4$s"},
- {"history.nonexistent.entries", " Warnung: Nicht vorhandene signierte Eintr\u00E4ge: "},
- {"history.unparsable", "- Signaturbezogene Datei %s kann nicht geparst werden"},
- {"history.nosf", "- Signaturbezogene Datei META-INF/%s.SF fehlt"},
- {"history.nobk", "- Blockdatei f\u00FCr signaturbezogene Datei META-INF/%s.SF fehlt"},
-
- {"with.weak", "%s (schwach)"},
- {"with.algparams.weak", "%1$s mit %2$s (schwach)"},
- {"with.disabled", "%s (deaktiviert)"},
- {"with.algparams.disabled", "%1$s mit %2$s (deaktiviert)"},
- {"key.bit", "%s-Schl\u00FCssel"},
- {"key.bit.weak", "%s Schl\u00FCssel (schwach)"},
- {"key.bit.disabled", "%s Schl\u00FCssel (deaktiviert)"},
- {"nonexistent.entries.found", "Diese JAR-Datei enth\u00E4lt signierte Eintr\u00E4ge f\u00FCr Dateien, die nicht vorhanden sind. Weitere Details finden Sie in der Verbose-Ausgabe (-verbose)."},
- {"external.file.attributes.detected", "POSIX-Dateiberechtigung und/oder Symlink-Attribute erkannt. Diese Attribute werden bei der Signatur ignoriert und sind nicht durch die Signatur gesch\u00FCtzt."},
-
- {"jarsigner.", "jarsigner: "},
- {"signature.filename.must.consist.of.the.following.characters.A.Z.0.9.or.",
- "Signaturdateiname muss aus den folgenden Zeichen bestehen: A-Z, 0-9, _ oder -"},
- {"unable.to.open.jar.file.", "JAR-Datei kann nicht ge\u00F6ffnet werden: "},
- {"unable.to.create.", "Erstellen nicht m\u00F6glich: "},
- {".adding.", " Wird hinzugef\u00FCgt: "},
- {".updating.", " Wird aktualisiert: "},
- {".signing.", " Wird signiert: "},
- {"attempt.to.rename.signedJarFile.to.jarFile.failed",
- "Der Versuch, {0} in {1} umzubenennen, war nicht erfolgreich"},
- {"attempt.to.rename.jarFile.to.origJar.failed",
- "Der Versuch, {0} in {1} umzubenennen, war nicht erfolgreich"},
- {"unable.to.sign.jar.", "JAR-Datei kann nicht signiert werden: "},
- {"Enter.Passphrase.for.keystore.", "Passphrase f\u00FCr Keystore eingeben: "},
- {"keystore.load.", "Keystore-Ladevorgang: "},
- {"certificate.exception.", "Zertifikatsausnahme: "},
- {"unable.to.instantiate.keystore.class.",
- "Keystore-Klasse kann nicht instanziiert werden: "},
- {"Certificate.chain.not.found.for.alias.alias.must.reference.a.valid.KeyStore.key.entry.containing.a.private.key.and",
- "Zertifikatskette nicht gefunden f\u00FCr: {0}. {1} muss einen g\u00FCltigen Keystore-Schl\u00FCssel referenzieren, der einen Private Key und eine zugeh\u00F6rige Public-Key-Zertifikatskette enth\u00E4lt."},
- {"File.specified.by.certchain.does.not.exist",
- "Von -certchain angegebene Datei ist nicht vorhanden"},
- {"Cannot.restore.certchain.from.file.specified",
- "Zertifikatskette kann nicht aus angegebener Datei wiederhergestellt werden"},
- {"Certificate.chain.not.found.in.the.file.specified.",
- "Zertifikatskette nicht in der angegebenen Datei gefunden."},
- {"found.non.X.509.certificate.in.signer.s.chain",
- "Nicht-X.509-Zertifikat in Kette des Signaturgebers gefunden"},
- {"Enter.key.password.for.alias.", "Schl\u00FCsselkennwort f\u00FCr {0} eingeben: "},
- {"unable.to.recover.key.from.keystore",
- "Schl\u00FCssel kann nicht aus Keystore wiederhergestellt werden"},
- {"key.associated.with.alias.not.a.private.key",
- "Mit {0} verkn\u00FCpfter Schl\u00FCssel ist kein Private Key"},
- {"you.must.enter.key.password", "Sie m\u00FCssen ein Schl\u00FCsselkennwort eingeben"},
- {"unable.to.read.password.", "Kennwort kann nicht gelesen werden: "},
- {"certificate.is.valid.from", "Zertifikat ist von {0} bis {1} g\u00FCltig"},
- {"certificate.expired.on", "Zertifikat ist am {0} abgelaufen"},
- {"certificate.is.not.valid.until",
- "Zertifikat ist erst ab {0} g\u00FCltig"},
- {"certificate.will.expire.on", "Zertifikat l\u00E4uft am {0} ab"},
- {".Invalid.certificate.chain.", "[Ung\u00FCltige Zertifikatskette: "},
- {".Invalid.TSA.certificate.chain.", "[Ung\u00FCltige TSA-Zertifikatskette: "},
- {"requesting.a.signature.timestamp",
- "Signaturzeitstempel wird angefordert"},
- {"TSA.location.", "TSA-Ort: "},
- {"TSA.certificate.", "TSA-Zertifikat: "},
- {"no.response.from.the.Timestamping.Authority.",
- "Keine Antwort von der Zeitstempelautorit\u00E4t. Bei Verbindungen hinter einer Firewall muss m\u00F6glicherweise ein HTTP- oder HTTPS-Proxy angegeben werden. Geben Sie die folgenden Optionen f\u00FCr \"jarsigner\" an:"},
- {"or", "oder"},
- {"Certificate.not.found.for.alias.alias.must.reference.a.valid.KeyStore.entry.containing.an.X.509.public.key.certificate.for.the",
- "Zertifikat nicht gefunden f\u00FCr: {0}. {1} muss einen g\u00FCltigen Keystore-Eintrag referenzieren, der ein X.509-Public-Key-Zertifikat f\u00FCr die Zeitstempelautorit\u00E4t enth\u00E4lt."},
- {"entry.was.signed.on", "Eintrag wurde signiert am {0}"},
- {"Warning.", "Warnung: "},
- {"Error.", "Fehler: "},
- {"...Signer", ">>> Signaturgeber"},
- {"...TSA", ">>> TSA"},
- {"trusted.certificate", "vertrauensw\u00FCrdiges Zertifikat"},
- {"This.jar.contains.unsigned.entries.which.have.not.been.integrity.checked.",
- "Diese JAR-Datei enth\u00E4lt nicht signierte Eintr\u00E4ge, deren Integrit\u00E4t nicht gepr\u00FCft wurde. "},
- {"This.jar.contains.entries.whose.signer.certificate.has.expired.",
- "Diese JAR-Datei enth\u00E4lt Eintr\u00E4ge, deren Signaturgeberzertifikat abgelaufen ist."},
- {"This.jar.contains.entries.whose.signer.certificate.will.expire.within.six.months.",
- "Diese JAR-Datei enth\u00E4lt Eintr\u00E4ge, deren Signaturgeberzertifikat innerhalb der n\u00E4chsten sechs Monate abl\u00E4uft. "},
- {"This.jar.contains.entries.whose.signer.certificate.is.not.yet.valid.",
- "Diese JAR-Datei enth\u00E4lt Eintr\u00E4ge, deren Signaturgeberzertifikat noch nicht g\u00FCltig ist. "},
- {"This.jar.contains.entries.whose.signer.certificate.is.self.signed.",
- "Diese JAR-Datei enth\u00E4lt Eintr\u00E4ge, deren Signaturgeberzertifikat selbstsigniert ist."},
- {"Re.run.with.the.verbose.and.certs.options.for.more.details.",
- "F\u00FChren Sie den Befehl erneut mit den Optionen -verbose und -certs aus, um weitere Details zu erhalten."},
- {"The.signer.certificate.has.expired.",
- "Das Signaturgeberzertifikat ist abgelaufen."},
- {"The.timestamp.expired.1.but.usable.2",
- "Der Zeitstempel ist am %1$tY-%1$tm-%1$td abgelaufen. Die JAR-Datei bleibt aber g\u00FCltig, bis das Signaturgeberzertifikat am %2$tY-%2$tm-%2$td abl\u00E4uft."},
- {"The.timestamp.has.expired.",
- "Der Zeitstempel ist abgelaufen."},
- {"The.signer.certificate.will.expire.within.six.months.",
- "Das Signaturgeberzertifikat l\u00E4uft innerhalb der n\u00E4chsten sechs Monate ab."},
- {"The.timestamp.will.expire.within.one.year.on.1",
- "Der Zeitstempel l\u00E4uft innerhalb des n\u00E4chsten Jahres am %1$tY-%1$tm-%1$td ab."},
- {"The.timestamp.will.expire.within.one.year.on.1.but.2",
- "Der Zeitstempel l\u00E4uft innerhalb des n\u00E4chsten Jahres am %1$tY-%1$tm-%1$td ab. Die JAR-Datei bleibt aber g\u00FCltig, bis das Signaturgeberzertifikat am %2$tY-%2$tm-%2$td abl\u00E4uft."},
- {"The.signer.certificate.is.not.yet.valid.",
- "Das Signaturgeberzertifikat ist noch nicht g\u00FCltig."},
- {"The.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.",
- "Die KeyUsage-Erweiterung des Signaturgeberzertifikats l\u00E4sst keine Codesignatur zu."},
- {"The.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.",
- "Die ExtendedKeyUsage-Erweiterung des Signaturgeberzertifikats l\u00E4sst keine Codesignatur zu."},
- {"The.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.",
- "Die NetscapeCertType-Erweiterung des Signaturgeberzertifikats l\u00E4sst keine Codesignatur zu."},
- {"This.jar.contains.entries.whose.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.",
- "Diese JAR-Datei enth\u00E4lt Eintr\u00E4ge, bei denen die KeyUsage-Erweiterung des Signaturgeberzertifikats keine Codesignatur zul\u00E4sst."},
- {"This.jar.contains.entries.whose.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.",
- "Diese JAR-Datei enth\u00E4lt Eintr\u00E4ge, bei denen die ExtendedKeyUsage-Erweiterung des Signaturgeberzertifikats keine Codesignatur zul\u00E4sst."},
- {"This.jar.contains.entries.whose.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.",
- "Diese JAR-Datei enth\u00E4lt Eintr\u00E4ge, bei denen die NetscapeCertType-Erweiterung des Signaturgeberzertifikats keine Codesignatur zul\u00E4sst."},
- {".{0}.extension.does.not.support.code.signing.",
- "[{0}-Erweiterung unterst\u00FCtzt keine Codesignatur]"},
- {"The.signer.s.certificate.chain.is.invalid.reason.1",
- "Die Zertifikatskette des Signaturgebers ist ung\u00FCltig. Grund: %s"},
- {"The.tsa.certificate.chain.is.invalid.reason.1",
- "Die TSA-Zertifikatskette ist ung\u00FCltig. Grund: %s"},
- {"The.signer.s.certificate.is.self.signed.",
- "Das Zertifikat des Signaturgebers ist selbstsigniert."},
- {"The.1.algorithm.specified.for.the.2.option.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.",
- "Der f\u00FCr die Option %2$s angegebene %1$s-Algorithmus gilt als Sicherheitsrisiko. Dieser Algorithmus wird in einem zuk\u00FCnftigen Update deaktiviert."},
- {"The.1.algorithm.specified.for.the.2.option.is.considered.a.security.risk.and.is.disabled.",
- "Der f\u00FCr die Option %2$s angegebene %1$s-Algorithmus gilt als Sicherheitsrisiko und ist deaktiviert."},
- {"The.timestamp.digest.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.",
- "Der %1$s-Digestalgorithmus des Zeitstempels gilt als Sicherheitsrisiko. Dieser Algorithmus wird in einem zuk\u00FCnftigen Update deaktiviert."},
- {"The.digest.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.",
- "Der %1$s-Digestalgorithmus gilt als Sicherheitsrisiko. Dieser Algorithmus wird in einem zuk\u00FCnftigen Update deaktiviert."},
- {"The.signature.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.",
- "Der %1$s-Signaturalgorithmus gilt als Sicherheitsrisiko. Dieser Algorithmus wird in einem zuk\u00FCnftigen Update deaktiviert."},
- {"size.bit.alg",
- "%1$d-Bit %2$s"},
- {"The.full.keyAlgName.signing.key.is.considered.a.security.risk..It.will.be.disabled.in.a.future.update.",
- "Der %s Signaturschl\u00FCssel wird als Sicherheitsrisiko betrachtet. Wird in einem zuk\u00FCnftigen Update deaktiviert."},
- {"The.full.keyAlgName.signing.key.is.considered.a.security.risk.and.is.disabled.",
- "Der %s Signaturschl\u00FCssel wird als Sicherheitsrisiko betrachtet und ist deaktiviert."},
- {"This.jar.contains.entries.whose.certificate.chain.is.invalid.reason.1",
- "Diese JAR-Datei enth\u00E4lt Eintr\u00E4ge, deren Zertifikatskette ung\u00FCltig ist. Grund: %s"},
- {"This.jar.contains.entries.whose.tsa.certificate.chain.is.invalid.reason.1",
- "Diese JAR-Datei enth\u00E4lt Eintr\u00E4ge, deren TSA-Zertifikatskette ung\u00FCltig ist. Grund: %s"},
- {"no.timestamp.signing",
- "Weder -tsa noch -tsacert wurde angegeben, und diese JAR-Datei hat keinen Zeitstempel. Ohne Zeitstempel k\u00F6nnen Benutzer diese JAR-Datei nach dem Ablaufdatum des Signaturgeberzertifikats (%1$tY-%1$tm-%1$td) m\u00F6glicherweise nicht mehr validieren."},
- {"invalid.timestamp.signing",
- "Der Zeitstempel ist ung\u00FCltig. Ohne einen g\u00FCltigen Zeitstempel k\u00F6nnen Benutzer diese JAR-Datei nach dem Ablaufdatum des Signaturgeberzertifikats (%1$tY-%1$tm-%1$td) m\u00F6glicherweise nicht mehr validieren."},
- {"no.timestamp.verifying",
- "Diese JAR-Datei enth\u00E4lt Signaturen ohne Zeitstempel. Ohne einen Zeitstempel k\u00F6nnen Benutzer diese JAR-Datei nach dem Ablauf eines Signaturgeberzertifikats (fr\u00FChestens %1$tY-%1$tm-%1$td) m\u00F6glicherweise nicht mehr validieren."},
- {"bad.timestamp.verifying",
- "Diese JAR-Datei enth\u00E4lt Signaturen mit einem ung\u00FCltigen Zeitstempel. Ohne einen g\u00FCltigen Zeitstempel k\u00F6nnen Benutzer diese JAR-Datei nach dem Ablauf eines Signaturgeberzertifikats (fr\u00FChestens %1$tY-%1$tm-%1$td) m\u00F6glicherweise nicht mehr validieren.\nF\u00FChren Sie \"jarsigner\" mit -J-Djava.security.debug=jar erneut aus, um weitere Informationen zu erhalten."},
- {"The.signer.certificate.will.expire.on.1.",
- "Das Signaturgeberzertifikat l\u00E4uft am %1$tY-%1$tm-%1$td ab."},
- {"The.timestamp.will.expire.on.1.",
- "Der Zeitstempel l\u00E4uft am %1$tY-%1$tm-%1$td ab."},
- {"signer.cert.expired.1.but.timestamp.good.2.",
- "Das Signaturgeberzertifikat ist am %1$tY-%1$tm-%1$td abgelaufen. Die JAR-Datei bleibt aber g\u00FCltig, bis der Zeitstempel am %2$tY-%2$tm-%2$td abl\u00E4uft."},
- {"Unknown.password.type.", "Unbekannter Kennworttyp: "},
- {"Cannot.find.environment.variable.",
- "Umgebungsvariable kann nicht gefunden werden: "},
- {"Cannot.find.file.", "Datei kann nicht gefunden werden: "},
- {"event.ocsp.check", "Verbindung zu OCSP-Server bei %s wird hergestellt..."},
- {"event.crl.check", "CRL wird von %s heruntergeladen..."},
- };
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_ja.java b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_ja.java
deleted file mode 100644
index e8f63ea5566f8..0000000000000
--- a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_ja.java
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- * Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.tools.jarsigner;
-
-/**
- *
This class represents the ResourceBundle
- * for JarSigner.
- *
- */
-public class Resources_ja extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // shared (from jarsigner)
- {"SPACE", " "},
- {"6SPACE", " "},
- {"COMMA", ", "},
-
- {"provclass.not.a.provider", "%s\u306F\u30D7\u30ED\u30D0\u30A4\u30C0\u3067\u306F\u3042\u308A\u307E\u305B\u3093"},
- {"provider.name.not.found", "\u30D7\u30ED\u30D0\u30A4\u30C0\u540D\"%s\"\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093"},
- {"provider.class.not.found", "\u30D7\u30ED\u30D0\u30A4\u30C0\"%s\"\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093"},
- {"jarsigner.error.", "jarsigner\u30A8\u30E9\u30FC: "},
- {"Illegal.option.", "\u4E0D\u6B63\u306A\u30AA\u30D7\u30B7\u30E7\u30F3: "},
- {".keystore.must.be.NONE.if.storetype.is.{0}",
- "-storetype\u304C{0}\u306E\u5834\u5408\u3001-keystore\u306FNONE\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"},
- {".keypass.can.not.be.specified.if.storetype.is.{0}",
- "-storetype\u304C{0}\u306E\u5834\u5408\u3001-keypass\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093"},
- {"If.protected.is.specified.then.storepass.and.keypass.must.not.be.specified",
- "-protected\u3092\u6307\u5B9A\u3059\u308B\u5834\u5408\u306F\u3001-storepass\u304A\u3088\u3073-keypass\u3092\u6307\u5B9A\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044"},
- {"If.keystore.is.not.password.protected.then.storepass.and.keypass.must.not.be.specified",
- "\u30AD\u30FC\u30B9\u30C8\u30A2\u304C\u30D1\u30B9\u30EF\u30FC\u30C9\u3067\u4FDD\u8B77\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408\u3001-storepass\u304A\u3088\u3073-keypass\u3092\u6307\u5B9A\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044"},
- {"Usage.jarsigner.options.jar.file.alias",
- "\u4F7F\u7528\u65B9\u6CD5: jarsigner [options] jar-file alias"},
- {".jarsigner.verify.options.jar.file.alias.",
- " jarsigner -verify [options] jar-file [alias...]"},
- {".jarsigner.version",
- " jarsigner -version"},
- {".keystore.url.keystore.location",
- "[-keystore ] \u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u4F4D\u7F6E"},
- {".storepass.password.password.for.keystore.integrity",
- "[-storepass ] \u30AD\u30FC\u30B9\u30C8\u30A2\u6574\u5408\u6027\u306E\u305F\u3081\u306E\u30D1\u30B9\u30EF\u30FC\u30C9"},
- {".storetype.type.keystore.type",
- "[-storetype ] \u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u578B"},
- {".keypass.password.password.for.private.key.if.different.",
- "[-keypass ] \u79D8\u5BC6\u30AD\u30FC\u306E\u30D1\u30B9\u30EF\u30FC\u30C9(\u7570\u306A\u308B\u5834\u5408)"},
- {".certchain.file.name.of.alternative.certchain.file",
- "[-certchain ] \u4EE3\u66FF\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u540D\u524D"},
- {".sigfile.file.name.of.SF.DSA.file",
- "[-sigfile ] .SF/.DSA\u30D5\u30A1\u30A4\u30EB\u306E\u540D\u524D"},
- {".signedjar.file.name.of.signed.JAR.file",
- "[-signedjar ] \u7F72\u540D\u4ED8\u304DJAR\u30D5\u30A1\u30A4\u30EB\u306E\u540D\u524D"},
- {".digestalg.algorithm.name.of.digest.algorithm",
- "[-digestalg ] \u30C0\u30A4\u30B8\u30A7\u30B9\u30C8\u30FB\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u306E\u540D\u524D"},
- {".sigalg.algorithm.name.of.signature.algorithm",
- "[-sigalg ] \u30B7\u30B0\u30CD\u30C1\u30E3\u30FB\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u306E\u540D\u524D"},
- {".verify.verify.a.signed.JAR.file",
- "[-verify] \u7F72\u540D\u4ED8\u304DJAR\u30D5\u30A1\u30A4\u30EB\u306E\u691C\u8A3C"},
- {".version.print.the.program.version",
- "[-version] \u30D7\u30ED\u30B0\u30E9\u30E0\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3057\u307E\u3059"},
- {".verbose.suboptions.verbose.output.when.signing.verifying.",
- "[-verbose[:suboptions]] \u7F72\u540D/\u691C\u8A3C\u6642\u306E\u8A73\u7D30\u51FA\u529B\u3002"},
- {".suboptions.can.be.all.grouped.or.summary",
- " \u30B5\u30D6\u30AA\u30D7\u30B7\u30E7\u30F3\u3068\u3057\u3066\u3001all\u3001grouped\u307E\u305F\u306Fsummary\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059"},
- {".certs.display.certificates.when.verbose.and.verifying",
- "[-certs] \u8A73\u7D30\u51FA\u529B\u304A\u3088\u3073\u691C\u8A3C\u6642\u306B\u8A3C\u660E\u66F8\u3092\u8868\u793A"},
- {".certs.revocation.check",
- "[-revCheck] \u8A3C\u660E\u66F8\u5931\u52B9\u30C1\u30A7\u30C3\u30AF\u306E\u6709\u52B9\u5316"},
- {".tsa.url.location.of.the.Timestamping.Authority",
- "[-tsa ] \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u5C40\u306E\u5834\u6240"},
- {".tsacert.alias.public.key.certificate.for.Timestamping.Authority",
- "[-tsacert ] \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u5C40\u306E\u516C\u958B\u30AD\u30FC\u8A3C\u660E\u66F8"},
- {".tsapolicyid.tsapolicyid.for.Timestamping.Authority",
- "[-tsapolicyid ] \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u5C40\u306ETSAPolicyID"},
- {".tsadigestalg.algorithm.of.digest.data.in.timestamping.request",
- "[-tsadigestalg ] \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u30FB\u30EA\u30AF\u30A8\u30B9\u30C8\u306E\u30C0\u30A4\u30B8\u30A7\u30B9\u30C8\u30FB\u30C7\u30FC\u30BF\u306E\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0"},
- {".internalsf.include.the.SF.file.inside.the.signature.block",
- "[-internalsf] \u30B7\u30B0\u30CD\u30C1\u30E3\u30FB\u30D6\u30ED\u30C3\u30AF\u306B.SF\u30D5\u30A1\u30A4\u30EB\u3092\u542B\u3081\u308B"},
- {".sectionsonly.don.t.compute.hash.of.entire.manifest",
- "[-sectionsonly] \u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u5168\u4F53\u306E\u30CF\u30C3\u30B7\u30E5\u306F\u8A08\u7B97\u3057\u306A\u3044"},
- {".protected.keystore.has.protected.authentication.path",
- "[-protected] \u30AD\u30FC\u30B9\u30C8\u30A2\u306B\u306F\u4FDD\u8B77\u3055\u308C\u305F\u8A8D\u8A3C\u30D1\u30B9\u304C\u3042\u308B"},
- {".providerName.name.provider.name",
- "[-providerName ] \u30D7\u30ED\u30D0\u30A4\u30C0\u540D"},
- {".add.provider.option",
- "[-addprovider \u540D\u524D\u3067\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30D7\u30ED\u30D0\u30A4\u30C0\u3092\u8FFD\u52A0\u3059\u308B(SunPKCS11\u306A\u3069)"},
- {".providerArg.option.1",
- " [-providerArg ]] ... -addprovider\u306E\u5F15\u6570\u3092\u69CB\u6210\u3059\u308B"},
- {".providerClass.option",
- "[-providerClass \u5B8C\u5168\u4FEE\u98FE\u30AF\u30E9\u30B9\u540D\u3067\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30D7\u30ED\u30D0\u30A4\u30C0\u3092\u8FFD\u52A0\u3059\u308B"},
- {".providerArg.option.2",
- " [-providerArg ]] ... -providerClass\u306E\u5F15\u6570\u3092\u69CB\u6210\u3059\u308B"},
- {".providerPath.option",
- "[-providerPath ] \u30D7\u30ED\u30D0\u30A4\u30C0\u30FB\u30AF\u30E9\u30B9\u30D1\u30B9"},
- {".strict.treat.warnings.as.errors",
- "[-strict] \u8B66\u544A\u3092\u30A8\u30E9\u30FC\u3068\u3057\u3066\u51E6\u7406"},
- {".conf.url.specify.a.pre.configured.options.file",
- "[-conf ] \u4E8B\u524D\u69CB\u6210\u6E08\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u6307\u5B9A\u3059\u308B"},
- {".print.this.help.message",
- "[-? -h --help] \u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u307E\u3059"},
- {"Option.lacks.argument", "\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u5F15\u6570\u304C\u3042\u308A\u307E\u305B\u3093"},
- {"Please.type.jarsigner.help.for.usage", "\u4F7F\u7528\u65B9\u6CD5\u306B\u3064\u3044\u3066\u306Fjarsigner --help\u3068\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044"},
- {"Please.specify.jarfile.name", "jarfile\u540D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"},
- {"Please.specify.alias.name", "\u5225\u540D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"},
- {"Only.one.alias.can.be.specified", "\u5225\u540D\u306F1\u3064\u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\u3059"},
- {"This.jar.contains.signed.entries.which.is.not.signed.by.the.specified.alias.es.",
- "\u3053\u306Ejar\u306B\u542B\u307E\u308C\u308B\u7F72\u540D\u6E08\u30A8\u30F3\u30C8\u30EA\u306F\u3001\u6307\u5B9A\u3055\u308C\u305F\u5225\u540D\u306B\u3088\u3063\u3066\u7F72\u540D\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002"},
- {"This.jar.contains.signed.entries.that.s.not.signed.by.alias.in.this.keystore.",
- "\u3053\u306Ejar\u306B\u542B\u307E\u308C\u308B\u7F72\u540D\u6E08\u30A8\u30F3\u30C8\u30EA\u306F\u3001\u3053\u306E\u30AD\u30FC\u30B9\u30C8\u30A2\u5185\u306E\u5225\u540D\u306B\u3088\u3063\u3066\u7F72\u540D\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002"},
- {"s", "s"},
- {"m", "m"},
- {"k", "k"},
- {"X", "X"},
- {"q", "?"},
- {".and.d.more.", "(\u4ED6\u306B\u3082%d\u500B)"},
- {".s.signature.was.verified.",
- " s=\u30B7\u30B0\u30CD\u30C1\u30E3\u304C\u691C\u8A3C\u3055\u308C\u307E\u3057\u305F "},
- {".m.entry.is.listed.in.manifest",
- " m=\u30A8\u30F3\u30C8\u30EA\u304C\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u5185\u306B\u30EA\u30B9\u30C8\u3055\u308C\u307E\u3059"},
- {".k.at.least.one.certificate.was.found.in.keystore",
- " k=1\u3064\u4EE5\u4E0A\u306E\u8A3C\u660E\u66F8\u304C\u30AD\u30FC\u30B9\u30C8\u30A2\u3067\u691C\u51FA\u3055\u308C\u307E\u3057\u305F"},
- {".X.not.signed.by.specified.alias.es.",
- " X =\u6307\u5B9A\u3057\u305F\u5225\u540D\u3067\u7F72\u540D\u3055\u308C\u3066\u3044\u307E\u305B\u3093"},
- {".q.unsigned.entry",
- " ? = \u7F72\u540D\u306A\u3057\u306E\u30A8\u30F3\u30C8\u30EA"},
- {"no.manifest.", "\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002"},
- {".Signature.related.entries.","(\u30B7\u30B0\u30CD\u30C1\u30E3\u95A2\u9023\u30A8\u30F3\u30C8\u30EA)"},
- {".Unsigned.entries.", "(\u7F72\u540D\u306A\u3057\u306E\u30A8\u30F3\u30C8\u30EA)"},
- {".Directory.entries.", "(\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30FB\u30A8\u30F3\u30C8\u30EA)"},
- {"jar.is.unsigned",
- "jar\u306F\u7F72\u540D\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002"},
- {"jar.treated.unsigned",
- "\u8B66\u544A: \u7F72\u540D\u304C\u69CB\u6587\u89E3\u6790\u3067\u304D\u306A\u3044\u304B\u691C\u8A3C\u3067\u304D\u306A\u3044\u305F\u3081\u3001\u3053\u306Ejar\u306F\u7F72\u540D\u306A\u3057\u3068\u3057\u3066\u6271\u308F\u308C\u307E\u3059\u3002\u8A73\u7D30\u306F\u3001\u30C7\u30D0\u30C3\u30B0\u3092\u6709\u52B9\u306B\u3057\u3066(-J-Djava.security.debug=jar) jarsigner\u3092\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
- {"jar.treated.unsigned.see.weak",
- "\u3053\u306Ejar\u306F\u3001\u73FE\u5728\u7121\u52B9\u306B\u306A\u3063\u3066\u3044\u308B\u5F31\u3044\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u3067\u7F72\u540D\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u7F72\u540D\u306A\u3057\u3068\u3057\u3066\u6271\u308F\u308C\u307E\u3059\u3002\n\n\u8A73\u7D30\u306F\u3001-verbose\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066jarsigner\u3092\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
- {"jar.treated.unsigned.see.weak.verbose",
- "\u8B66\u544A: \u3053\u306Ejar\u306F\u3001\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30D7\u30ED\u30D1\u30C6\u30A3\u306B\u3088\u3063\u3066\u73FE\u5728\u7121\u52B9\u306B\u306A\u3063\u3066\u3044\u308B\u5F31\u3044\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u3067\u7F72\u540D\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u7F72\u540D\u306A\u3057\u3068\u3057\u3066\u6271\u308F\u308C\u307E\u3059:"},
- {"jar.signed.", "jar\u306F\u7F72\u540D\u3055\u308C\u307E\u3057\u305F\u3002"},
- {"jar.signed.with.signer.errors.", "jar\u306F\u7F72\u540D\u3055\u308C\u307E\u3057\u305F - \u7F72\u540D\u8005\u30A8\u30E9\u30FC\u304C\u3042\u308A\u307E\u3059\u3002"},
- {"jar.verified.", "jar\u304C\u691C\u8A3C\u3055\u308C\u307E\u3057\u305F\u3002"},
- {"jar.verified.with.signer.errors.", "jar\u306F\u691C\u8A3C\u3055\u308C\u307E\u3057\u305F - \u7F72\u540D\u8005\u30A8\u30E9\u30FC\u304C\u3042\u308A\u307E\u3059\u3002"},
-
- {"history.with.ts", "- \u7F72\u540D\u8005: \"%1$s\"\n \u30C0\u30A4\u30B8\u30A7\u30B9\u30C8\u30FB\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0: %2$s\n \u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0: %3$s\u3001%4$s\n \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u4ED8\u52A0\u8005: \"%6$s\" \u65E5\u6642: %5$tc\n \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u306E\u30C0\u30A4\u30B8\u30A7\u30B9\u30C8\u30FB\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0: %7$s\n \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u306E\u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0: %8$s\u3001%9$s"},
- {"history.without.ts", "- \u7F72\u540D\u8005: \"%1$s\"\n \u30C0\u30A4\u30B8\u30A7\u30B9\u30C8\u30FB\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0: %2$s\n \u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0: %3$s\u3001%4$s"},
- {"history.nonexistent.entries", " \u8B66\u544A: \u5B58\u5728\u3057\u306A\u3044\u7F72\u540D\u6E08\u30A8\u30F3\u30C8\u30EA: "},
- {"history.unparsable", "- \u7F72\u540D\u95A2\u9023\u30D5\u30A1\u30A4\u30EB%s\u3092\u89E3\u6790\u3067\u304D\u307E\u305B\u3093"},
- {"history.nosf", "- \u7F72\u540D\u95A2\u9023\u30D5\u30A1\u30A4\u30EBMETA-INF/%s.SF\u304C\u3042\u308A\u307E\u305B\u3093"},
- {"history.nobk", "- \u7F72\u540D\u95A2\u9023\u30D5\u30A1\u30A4\u30EBMETA-INF/%s.SF\u306E\u30D6\u30ED\u30C3\u30AF\u30FB\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093"},
-
- {"with.weak", "%s (\u5F31)"},
- {"with.algparams.weak", "%2$s\u3092\u4F7F\u7528\u3057\u305F%1$s (\u5F31)"},
- {"with.disabled", "%s (\u7121\u52B9)"},
- {"with.algparams.disabled", "%2$s\u3092\u4F7F\u7528\u3057\u305F%1$s (\u7121\u52B9)"},
- {"key.bit", "%s\u30AD\u30FC"},
- {"key.bit.weak", "%s\u30AD\u30FC(\u5F31\u3044)"},
- {"key.bit.disabled", "%s\u30AD\u30FC(\u7121\u52B9)"},
- {"nonexistent.entries.found", "\u3053\u306Ejar\u306B\u306F\u3001\u5B58\u5728\u3057\u306A\u3044\u30D5\u30A1\u30A4\u30EB\u306E\u7F72\u540D\u6E08\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u307E\u3059\u3002\u8A73\u7D30\u306F\u3001-verbose\u51FA\u529B\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
- {"external.file.attributes.detected", "POSIX\u30D5\u30A1\u30A4\u30EB\u6A29\u9650\u307E\u305F\u306Fsymlink(\u3042\u308B\u3044\u306F\u305D\u306E\u4E21\u65B9)\u306E\u5C5E\u6027\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u3002\u7F72\u540D\u4E2D\u306F\u3053\u308C\u3089\u306E\u5C5E\u6027\u306F\u7121\u8996\u3055\u308C\u3001\u7F72\u540D\u306B\u3088\u3063\u3066\u4FDD\u8B77\u3055\u308C\u307E\u305B\u3093\u3002"},
-
- {"jarsigner.", "jarsigner: "},
- {"signature.filename.must.consist.of.the.following.characters.A.Z.0.9.or.",
- "\u30B7\u30B0\u30CD\u30C1\u30E3\u306E\u30D5\u30A1\u30A4\u30EB\u540D\u306B\u4F7F\u7528\u3067\u304D\u308B\u6587\u5B57\u306F\u3001A-Z\u30010-9\u3001_\u3001- \u306E\u307F\u3067\u3059\u3002"},
- {"unable.to.open.jar.file.", "\u6B21\u306Ejar\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093: "},
- {"unable.to.create.", "\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093: "},
- {".adding.", " \u8FFD\u52A0\u4E2D: "},
- {".updating.", " \u66F4\u65B0\u4E2D: "},
- {".signing.", " \u7F72\u540D\u4E2D: "},
- {"attempt.to.rename.signedJarFile.to.jarFile.failed",
- "{0}\u306E\u540D\u524D\u3092{1}\u306B\u5909\u66F4\u3057\u3088\u3046\u3068\u3057\u307E\u3057\u305F\u304C\u5931\u6557\u3057\u307E\u3057\u305F"},
- {"attempt.to.rename.jarFile.to.origJar.failed",
- "{0}\u306E\u540D\u524D\u3092{1}\u306B\u5909\u66F4\u3057\u3088\u3046\u3068\u3057\u307E\u3057\u305F\u304C\u5931\u6557\u3057\u307E\u3057\u305F"},
- {"unable.to.sign.jar.", "jar\u306B\u7F72\u540D\u3067\u304D\u307E\u305B\u3093: "},
- {"Enter.Passphrase.for.keystore.", "\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044: "},
- {"keystore.load.", "\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30ED\u30FC\u30C9: "},
- {"certificate.exception.", "\u8A3C\u660E\u66F8\u4F8B\u5916: "},
- {"unable.to.instantiate.keystore.class.",
- "\u30AD\u30FC\u30B9\u30C8\u30A2\u30FB\u30AF\u30E9\u30B9\u306E\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u751F\u6210\u3067\u304D\u307E\u305B\u3093: "},
- {"Certificate.chain.not.found.for.alias.alias.must.reference.a.valid.KeyStore.key.entry.containing.a.private.key.and",
- "\u6B21\u306E\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0}\u3002{1}\u306F\u3001\u79D8\u5BC6\u30AD\u30FC\u304A\u3088\u3073\u5BFE\u5FDC\u3059\u308B\u516C\u958B\u30AD\u30FC\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u3092\u542B\u3080\u6709\u52B9\u306AKeyStore\u30AD\u30FC\u30FB\u30A8\u30F3\u30C8\u30EA\u3092\u53C2\u7167\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002"},
- {"File.specified.by.certchain.does.not.exist",
- "-certchain\u3067\u6307\u5B9A\u3055\u308C\u3066\u3044\u308B\u30D5\u30A1\u30A4\u30EB\u306F\u5B58\u5728\u3057\u307E\u305B\u3093"},
- {"Cannot.restore.certchain.from.file.specified",
- "\u6307\u5B9A\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u3092\u5FA9\u5143\u3067\u304D\u307E\u305B\u3093"},
- {"Certificate.chain.not.found.in.the.file.specified.",
- "\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u306F\u6307\u5B9A\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u306B\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002"},
- {"found.non.X.509.certificate.in.signer.s.chain",
- "\u7F72\u540D\u8005\u306E\u9023\u9396\u5185\u3067\u975EX.509\u8A3C\u660E\u66F8\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F"},
- {"Enter.key.password.for.alias.", "{0}\u306E\u30AD\u30FC\u30FB\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044: "},
- {"unable.to.recover.key.from.keystore",
- "\u30AD\u30FC\u30B9\u30C8\u30A2\u304B\u3089\u30AD\u30FC\u3092\u5FA9\u5143\u3067\u304D\u307E\u305B\u3093"},
- {"key.associated.with.alias.not.a.private.key",
- "{0}\u3068\u95A2\u9023\u4ED8\u3051\u3089\u308C\u305F\u30AD\u30FC\u306F\u3001\u79D8\u5BC6\u30AD\u30FC\u3067\u306F\u3042\u308A\u307E\u305B\u3093"},
- {"you.must.enter.key.password", "\u30AD\u30FC\u30FB\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"},
- {"unable.to.read.password.", "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093: "},
- {"certificate.is.valid.from", "\u8A3C\u660E\u66F8\u306F{0}\u304B\u3089{1}\u307E\u3067\u6709\u52B9\u3067\u3059"},
- {"certificate.expired.on", "\u8A3C\u660E\u66F8\u306F{0}\u306B\u5931\u52B9\u3057\u307E\u3057\u305F"},
- {"certificate.is.not.valid.until",
- "\u8A3C\u660E\u66F8\u306F{0}\u307E\u3067\u6709\u52B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093"},
- {"certificate.will.expire.on", "\u8A3C\u660E\u66F8\u306F{0}\u306B\u5931\u52B9\u3057\u307E\u3059"},
- {".Invalid.certificate.chain.", "[\u7121\u52B9\u306A\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3: "},
- {".Invalid.TSA.certificate.chain.", "[\u7121\u52B9\u306ATSA\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3: "},
- {"requesting.a.signature.timestamp",
- "\u30B7\u30B0\u30CD\u30C1\u30E3\u30FB\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u306E\u30EA\u30AF\u30A8\u30B9\u30C8"},
- {"TSA.location.", "TSA\u306E\u5834\u6240: "},
- {"TSA.certificate.", "TSA\u8A3C\u660E\u66F8: "},
- {"no.response.from.the.Timestamping.Authority.",
- "\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u5C40\u304B\u3089\u306E\u30EC\u30B9\u30DD\u30F3\u30B9\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30D5\u30A1\u30A4\u30A2\u30A6\u30A9\u30FC\u30EB\u3092\u4ECB\u3057\u3066\u63A5\u7D9A\u3059\u308B\u3068\u304D\u306F\u3001\u5FC5\u8981\u306B\u5FDC\u3058\u3066HTTP\u307E\u305F\u306FHTTPS\u30D7\u30ED\u30AD\u30B7\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002jarsigner\u306B\u6B21\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044:"},
- {"or", "\u307E\u305F\u306F"},
- {"Certificate.not.found.for.alias.alias.must.reference.a.valid.KeyStore.entry.containing.an.X.509.public.key.certificate.for.the",
- "\u8A3C\u660E\u66F8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F: {0}\u3002{1}\u306F\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u5C40\u306EX.509\u516C\u958B\u30AD\u30FC\u8A3C\u660E\u66F8\u304C\u542B\u307E\u308C\u3066\u3044\u308B\u6709\u52B9\u306AKeyStore\u30A8\u30F3\u30C8\u30EA\u3092\u53C2\u7167\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002"},
- {"entry.was.signed.on", "\u30A8\u30F3\u30C8\u30EA\u306F{0}\u306B\u7F72\u540D\u3055\u308C\u307E\u3057\u305F"},
- {"Warning.", "\u8B66\u544A: "},
- {"Error.", "\u30A8\u30E9\u30FC: "},
- {"...Signer", ">>> \u7F72\u540D\u8005"},
- {"...TSA", ">>> TSA"},
- {"trusted.certificate", "\u4FE1\u983C\u3067\u304D\u308B\u8A3C\u660E\u66F8"},
- {"This.jar.contains.unsigned.entries.which.have.not.been.integrity.checked.",
- "\u3053\u306Ejar\u306B\u306F\u3001\u6574\u5408\u6027\u30C1\u30A7\u30C3\u30AF\u3092\u3057\u3066\u3044\u306A\u3044\u7F72\u540D\u306A\u3057\u306E\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002 "},
- {"This.jar.contains.entries.whose.signer.certificate.has.expired.",
- "\u3053\u306Ejar\u306B\u306F\u3001\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u304C\u671F\u9650\u5207\u308C\u306E\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002 "},
- {"This.jar.contains.entries.whose.signer.certificate.will.expire.within.six.months.",
- "\u3053\u306Ejar\u306B\u306F\u3001\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u304C6\u304B\u6708\u4EE5\u5185\u306B\u671F\u9650\u5207\u308C\u3068\u306A\u308B\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002 "},
- {"This.jar.contains.entries.whose.signer.certificate.is.not.yet.valid.",
- "\u3053\u306Ejar\u306B\u306F\u3001\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u304C\u307E\u3060\u6709\u52B9\u306B\u306A\u3063\u3066\u3044\u306A\u3044\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002 "},
- {"This.jar.contains.entries.whose.signer.certificate.is.self.signed.",
- "\u3053\u306Ejar\u306B\u306F\u3001\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u304C\u81EA\u5DF1\u7F72\u540D\u3055\u308C\u3066\u3044\u308B\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002 "},
- {"Re.run.with.the.verbose.and.certs.options.for.more.details.",
- "\u8A73\u7D30\u306F\u3001-verbose\u304A\u3088\u3073-certs\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
- {"The.signer.certificate.has.expired.",
- "\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u306F\u671F\u9650\u5207\u308C\u3067\u3059\u3002"},
- {"The.timestamp.expired.1.but.usable.2",
- "\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u306F%1$tY-%1$tm-%1$td\u306B\u671F\u9650\u5207\u308C\u306B\u306A\u308A\u307E\u3059\u3002\u305F\u3060\u3057\u3001JAR\u306F\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u304C%2$tY-%2$tm-%2$td\u306B\u671F\u9650\u5207\u308C\u306B\u306A\u308B\u307E\u3067\u6709\u52B9\u3067\u3059\u3002"},
- {"The.timestamp.has.expired.",
- "\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u306F\u671F\u9650\u5207\u308C\u306B\u306A\u308A\u307E\u3057\u305F\u3002"},
- {"The.signer.certificate.will.expire.within.six.months.",
- "\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u306F6\u304B\u6708\u4EE5\u5185\u306B\u671F\u9650\u5207\u308C\u306B\u306A\u308A\u307E\u3059\u3002"},
- {"The.timestamp.will.expire.within.one.year.on.1",
- "\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u306F1\u5E74\u4EE5\u5185\u306E%1$tY-%1$tm-%1$td\u306B\u671F\u9650\u5207\u308C\u306B\u306A\u308A\u307E\u3059\u3002"},
- {"The.timestamp.will.expire.within.one.year.on.1.but.2",
- "\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u306F1\u5E74\u4EE5\u5185\u306E%1$tY-%1$tm-%1$td\u306B\u671F\u9650\u5207\u308C\u306B\u306A\u308A\u307E\u3059\u3002\u305F\u3060\u3057\u3001JAR\u306F\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u304C%2$tY-%2$tm-%2$td\u306B\u671F\u9650\u5207\u308C\u306B\u306A\u308B\u307E\u3067\u6709\u52B9\u3067\u3059\u3002"},
- {"The.signer.certificate.is.not.yet.valid.",
- "\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u306F\u307E\u3060\u6709\u52B9\u306B\u306A\u3063\u3066\u3044\u307E\u305B\u3093\u3002"},
- {"The.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.",
- "\u7F72\u540D\u8005\u8A3C\u660E\u66F8\u306EKeyUsage\u62E1\u5F35\u6A5F\u80FD\u3067\u306F\u3001\u30B3\u30FC\u30C9\u7F72\u540D\u306F\u8A31\u53EF\u3055\u308C\u307E\u305B\u3093\u3002"},
- {"The.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.",
- "\u7F72\u540D\u8005\u8A3C\u660E\u66F8\u306EExtendedKeyUsage\u62E1\u5F35\u6A5F\u80FD\u3067\u306F\u3001\u30B3\u30FC\u30C9\u7F72\u540D\u306F\u8A31\u53EF\u3055\u308C\u307E\u305B\u3093\u3002"},
- {"The.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.",
- "\u7F72\u540D\u8005\u8A3C\u660E\u66F8\u306ENetscapeCertType\u62E1\u5F35\u6A5F\u80FD\u3067\u306F\u3001\u30B3\u30FC\u30C9\u7F72\u540D\u306F\u8A31\u53EF\u3055\u308C\u307E\u305B\u3093\u3002"},
- {"This.jar.contains.entries.whose.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.",
- "\u3053\u306Ejar\u306B\u306F\u3001\u7F72\u540D\u8005\u8A3C\u660E\u66F8\u306EKeyUsage\u62E1\u5F35\u6A5F\u80FD\u304C\u30B3\u30FC\u30C9\u7F72\u540D\u3092\u8A31\u53EF\u3057\u306A\u3044\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002"},
- {"This.jar.contains.entries.whose.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.",
- "\u3053\u306Ejar\u306B\u306F\u3001\u7F72\u540D\u8005\u8A3C\u660E\u66F8\u306EExtendedKeyUsage\u62E1\u5F35\u6A5F\u80FD\u304C\u30B3\u30FC\u30C9\u7F72\u540D\u3092\u8A31\u53EF\u3057\u306A\u3044\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002"},
- {"This.jar.contains.entries.whose.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.",
- "\u3053\u306Ejar\u306B\u306F\u3001\u7F72\u540D\u8005\u8A3C\u660E\u66F8\u306ENetscapeCertType\u62E1\u5F35\u6A5F\u80FD\u304C\u30B3\u30FC\u30C9\u7F72\u540D\u3092\u8A31\u53EF\u3057\u306A\u3044\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002"},
- {".{0}.extension.does.not.support.code.signing.",
- "[{0}\u62E1\u5F35\u6A5F\u80FD\u306F\u30B3\u30FC\u30C9\u7F72\u540D\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093]"},
- {"The.signer.s.certificate.chain.is.invalid.reason.1",
- "\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u304C\u7121\u52B9\u3067\u3059\u3002\u7406\u7531: %s"},
- {"The.tsa.certificate.chain.is.invalid.reason.1",
- "TSA\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u304C\u7121\u52B9\u3067\u3059\u3002\u7406\u7531: %s"},
- {"The.signer.s.certificate.is.self.signed.",
- "\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u306F\u81EA\u5DF1\u7F72\u540D\u3055\u308C\u3066\u3044\u307E\u3059\u3002"},
- {"The.1.algorithm.specified.for.the.2.option.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.",
- "%1$s\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0(%2$s\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u6307\u5B9A)\u306F\u3001\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30EA\u30B9\u30AF\u3068\u307F\u306A\u3055\u308C\u307E\u3059\u3002\u3053\u306E\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u306F\u5C06\u6765\u306E\u66F4\u65B0\u3067\u7121\u52B9\u5316\u3055\u308C\u307E\u3059\u3002"},
- {"The.1.algorithm.specified.for.the.2.option.is.considered.a.security.risk.and.is.disabled.",
- "%1$s\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0(%2$s\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u6307\u5B9A)\u306F\u3001\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30EA\u30B9\u30AF\u3068\u307F\u306A\u3055\u308C\u3001\u7121\u52B9\u5316\u3055\u308C\u3066\u3044\u307E\u3059\u3002"},
- {"The.timestamp.digest.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.",
- "%1$s\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u30FB\u30C0\u30A4\u30B8\u30A7\u30B9\u30C8\u30FB\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u306F\u3001\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30EA\u30B9\u30AF\u3068\u307F\u306A\u3055\u308C\u307E\u3059\u3002\u3053\u306E\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u306F\u5C06\u6765\u306E\u66F4\u65B0\u3067\u7121\u52B9\u5316\u3055\u308C\u307E\u3059\u3002"},
- {"The.digest.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.",
- "%1$s\u30C0\u30A4\u30B8\u30A7\u30B9\u30C8\u30FB\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u306F\u3001\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30EA\u30B9\u30AF\u3068\u307F\u306A\u3055\u308C\u307E\u3059\u3002\u3053\u306E\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u306F\u5C06\u6765\u306E\u66F4\u65B0\u3067\u7121\u52B9\u5316\u3055\u308C\u307E\u3059\u3002"},
- {"The.signature.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.",
- "%1$s\u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u306F\u3001\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30EA\u30B9\u30AF\u3068\u307F\u306A\u3055\u308C\u307E\u3059\u3002\u3053\u306E\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u306F\u5C06\u6765\u306E\u66F4\u65B0\u3067\u7121\u52B9\u5316\u3055\u308C\u307E\u3059\u3002"},
- {"size.bit.alg",
- "%1$d\u30D3\u30C3\u30C8%2$s"},
- {"The.full.keyAlgName.signing.key.is.considered.a.security.risk..It.will.be.disabled.in.a.future.update.",
- "%s\u7F72\u540D\u30AD\u30FC\u306F\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30EA\u30B9\u30AF\u3068\u307F\u306A\u3055\u308C\u307E\u3059\u3002\u4ECA\u5F8C\u306E\u66F4\u65B0\u3067\u306F\u7121\u52B9\u306B\u306A\u308A\u307E\u3059\u3002"},
- {"The.full.keyAlgName.signing.key.is.considered.a.security.risk.and.is.disabled.",
- "%s\u7F72\u540D\u30AD\u30FC\u306F\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30EA\u30B9\u30AF\u3068\u307F\u306A\u3055\u308C\u3001\u7121\u52B9\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002"},
- {"This.jar.contains.entries.whose.certificate.chain.is.invalid.reason.1",
- "\u3053\u306Ejar\u306B\u306F\u3001\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u304C\u7121\u52B9\u306A\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002\u7406\u7531: %s"},
- {"This.jar.contains.entries.whose.tsa.certificate.chain.is.invalid.reason.1",
- "\u3053\u306Ejar\u306B\u306F\u3001TSA\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u304C\u7121\u52B9\u306A\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002\u7406\u7531: %s"},
- {"no.timestamp.signing",
- "-tsa\u307E\u305F\u306F-tsacert\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u305F\u3081\u3001\u3053\u306Ejar\u306B\u306F\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u4ED8\u52A0\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u306A\u3044\u3068\u3001\u7F72\u540D\u8005\u8A3C\u660E\u66F8\u306E\u6709\u52B9\u671F\u9650(%1$tY-%1$tm-%1$td)\u5F8C\u306B\u3001\u30E6\u30FC\u30B6\u30FC\u306F\u3053\u306Ejar\u3092\u691C\u8A3C\u3067\u304D\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002"},
- {"invalid.timestamp.signing",
- "\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u7121\u52B9\u3067\u3059\u3002\u6709\u52B9\u306A\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u306A\u3044\u3068\u3001\u7F72\u540D\u8005\u8A3C\u660E\u66F8\u306E\u6709\u52B9\u671F\u9650(%1$tY-%1$tm-%1$td)\u5F8C\u306B\u3001\u30E6\u30FC\u30B6\u30FC\u306F\u3053\u306Ejar\u3092\u691C\u8A3C\u3067\u304D\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002"},
- {"no.timestamp.verifying",
- "\u3053\u306Ejar\u306B\u306F\u3001\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u306A\u3044\u7F72\u540D\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u306A\u3044\u3068\u3001\u3044\u305A\u308C\u304B\u306E\u7F72\u540D\u8005\u8A3C\u660E\u66F8\u306E\u6709\u52B9\u671F\u9650\u5F8C\u306B(\u65E9\u3051\u308C\u3070%1$tY-%1$tm-%1$td)\u30E6\u30FC\u30B6\u30FC\u306F\u3053\u306Ejar\u3092\u691C\u8A3C\u3067\u304D\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002"},
- {"bad.timestamp.verifying",
- "\u3053\u306Ejar\u306B\u306F\u3001\u7121\u52B9\u306A\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u306E\u3042\u308B\u7F72\u540D\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002\u6709\u52B9\u306A\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u306A\u3044\u3068\u3001\u3044\u305A\u308C\u304B\u306E\u7F72\u540D\u8005\u8A3C\u660E\u66F8\u306E\u6709\u52B9\u671F\u9650\u5F8C\u306B(\u65E9\u3051\u308C\u3070%1$tY-%1$tm-%1$td)\u30E6\u30FC\u30B6\u30FC\u306F\u3053\u306Ejar\u3092\u691C\u8A3C\u3067\u304D\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\n\u8A73\u7D30\u306F\u3001-J-Djava.security.debug=jar\u3092\u6307\u5B9A\u3057\u3066jarsigner\u3092\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
- {"The.signer.certificate.will.expire.on.1.",
- "\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u306F%1$tY-%1$tm-%1$td\u306B\u671F\u9650\u5207\u308C\u306B\u306A\u308A\u307E\u3059\u3002"},
- {"The.timestamp.will.expire.on.1.",
- "\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u306F%1$tY-%1$tm-%1$td\u306B\u671F\u9650\u5207\u308C\u306B\u306A\u308A\u307E\u3059\u3002"},
- {"signer.cert.expired.1.but.timestamp.good.2.",
- "\u7F72\u540D\u8005\u306E\u8A3C\u660E\u66F8\u306F%1$tY-%1$tm-%1$td\u306B\u671F\u9650\u5207\u308C\u306B\u306A\u308A\u307E\u3059\u3002\u305F\u3060\u3057\u3001JAR\u306F\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C%2$tY-%2$tm-%2$td\u306B\u671F\u9650\u5207\u308C\u306B\u306A\u308B\u307E\u3067\u6709\u52B9\u3067\u3059\u3002"},
- {"Unknown.password.type.", "\u4E0D\u660E\u306A\u30D1\u30B9\u30EF\u30FC\u30C9\u30FB\u30BF\u30A4\u30D7: "},
- {"Cannot.find.environment.variable.",
- "\u74B0\u5883\u5909\u6570\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: "},
- {"Cannot.find.file.", "\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: "},
- {"event.ocsp.check", "%s\u306EOCSP\u30B5\u30FC\u30D0\u30FC\u306B\u63A5\u7D9A\u3057\u3066\u3044\u307E\u3059..."},
- {"event.crl.check", "%s\u304B\u3089CRL\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u3066\u3044\u307E\u3059..."},
- };
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_zh_CN.java b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_zh_CN.java
deleted file mode 100644
index 44fa18f3541e2..0000000000000
--- a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_zh_CN.java
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- * Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.tools.jarsigner;
-
-/**
- *
This class represents the ResourceBundle
- * for JarSigner.
- *
- */
-public class Resources_zh_CN extends java.util.ListResourceBundle {
-
- private static final Object[][] contents = {
-
- // shared (from jarsigner)
- {"SPACE", " "},
- {"6SPACE", " "},
- {"COMMA", ", "},
-
- {"provclass.not.a.provider", "%s\u4E0D\u662F\u63D0\u4F9B\u65B9"},
- {"provider.name.not.found", "\u672A\u627E\u5230\u540D\u4E3A \"%s\" \u7684\u63D0\u4F9B\u65B9"},
- {"provider.class.not.found", "\u672A\u627E\u5230\u63D0\u4F9B\u65B9 \"%s\""},
- {"jarsigner.error.", "jarsigner \u9519\u8BEF: "},
- {"Illegal.option.", "\u975E\u6CD5\u9009\u9879: "},
- {".keystore.must.be.NONE.if.storetype.is.{0}",
- "\u5982\u679C -storetype \u4E3A {0}, \u5219 -keystore \u5FC5\u987B\u4E3A NONE"},
- {".keypass.can.not.be.specified.if.storetype.is.{0}",
- "\u5982\u679C -storetype \u4E3A {0}, \u5219\u4E0D\u80FD\u6307\u5B9A -keypass"},
- {"If.protected.is.specified.then.storepass.and.keypass.must.not.be.specified",
- "\u5982\u679C\u6307\u5B9A\u4E86 -protected, \u5219\u4E0D\u80FD\u6307\u5B9A -storepass \u548C -keypass"},
- {"If.keystore.is.not.password.protected.then.storepass.and.keypass.must.not.be.specified",
- "\u5982\u679C\u5BC6\u94A5\u5E93\u672A\u53D7\u53E3\u4EE4\u4FDD\u62A4, \u5219\u4E0D\u80FD\u6307\u5B9A -storepass \u548C -keypass"},
- {"Usage.jarsigner.options.jar.file.alias",
- "\u7528\u6CD5: jarsigner [\u9009\u9879] jar-file \u522B\u540D"},
- {".jarsigner.verify.options.jar.file.alias.",
- " jarsigner -verify [\u9009\u9879] jar-file [\u522B\u540D...]"},
- {".jarsigner.version",
- " jarsigner -version"},
- {".keystore.url.keystore.location",
- "[-keystore ] \u5BC6\u94A5\u5E93\u4F4D\u7F6E"},
- {".storepass.password.password.for.keystore.integrity",
- "[-storepass <\u53E3\u4EE4>] \u7528\u4E8E\u5BC6\u94A5\u5E93\u5B8C\u6574\u6027\u7684\u53E3\u4EE4"},
- {".storetype.type.keystore.type",
- "[-storetype <\u7C7B\u578B>] \u5BC6\u94A5\u5E93\u7C7B\u578B"},
- {".keypass.password.password.for.private.key.if.different.",
- "[-keypass <\u53E3\u4EE4>] \u79C1\u6709\u5BC6\u94A5\u7684\u53E3\u4EE4 (\u5982\u679C\u4E0D\u540C)"},
- {".certchain.file.name.of.alternative.certchain.file",
- "[-certchain <\u6587\u4EF6>] \u66FF\u4EE3\u8BC1\u4E66\u94FE\u6587\u4EF6\u7684\u540D\u79F0"},
- {".sigfile.file.name.of.SF.DSA.file",
- "[-sigfile <\u6587\u4EF6>] .SF/.DSA \u6587\u4EF6\u7684\u540D\u79F0"},
- {".signedjar.file.name.of.signed.JAR.file",
- "[-signedjar <\u6587\u4EF6>] \u5DF2\u7B7E\u540D\u7684 JAR \u6587\u4EF6\u7684\u540D\u79F0"},
- {".digestalg.algorithm.name.of.digest.algorithm",
- "[-digestalg <\u7B97\u6CD5>] \u6458\u8981\u7B97\u6CD5\u7684\u540D\u79F0"},
- {".sigalg.algorithm.name.of.signature.algorithm",
- "[-sigalg <\u7B97\u6CD5>] \u7B7E\u540D\u7B97\u6CD5\u7684\u540D\u79F0"},
- {".verify.verify.a.signed.JAR.file",
- "[-verify] \u9A8C\u8BC1\u5DF2\u7B7E\u540D\u7684 JAR \u6587\u4EF6"},
- {".version.print.the.program.version",
- "[-version] \u8F93\u51FA\u7A0B\u5E8F\u7248\u672C"},
- {".verbose.suboptions.verbose.output.when.signing.verifying.",
- "[-verbose[:suboptions]] \u7B7E\u540D/\u9A8C\u8BC1\u65F6\u8F93\u51FA\u8BE6\u7EC6\u4FE1\u606F\u3002"},
- {".suboptions.can.be.all.grouped.or.summary",
- " \u5B50\u9009\u9879\u53EF\u4EE5\u662F all, grouped \u6216 summary"},
- {".certs.display.certificates.when.verbose.and.verifying",
- "[-certs] \u8F93\u51FA\u8BE6\u7EC6\u4FE1\u606F\u548C\u9A8C\u8BC1\u65F6\u663E\u793A\u8BC1\u4E66"},
- {".certs.revocation.check",
- "[-revCheck] \u542F\u7528\u8BC1\u4E66\u64A4\u6D88\u68C0\u67E5"},
- {".tsa.url.location.of.the.Timestamping.Authority",
- "[-tsa ] \u65F6\u95F4\u6233\u9881\u53D1\u673A\u6784\u7684\u4F4D\u7F6E"},
- {".tsacert.alias.public.key.certificate.for.Timestamping.Authority",
- "[-tsacert <\u522B\u540D>] \u65F6\u95F4\u6233\u9881\u53D1\u673A\u6784\u7684\u516C\u5171\u5BC6\u94A5\u8BC1\u4E66"},
- {".tsapolicyid.tsapolicyid.for.Timestamping.Authority",
- "[-tsapolicyid ] \u65F6\u95F4\u6233\u9881\u53D1\u673A\u6784\u7684 TSAPolicyID"},
- {".tsadigestalg.algorithm.of.digest.data.in.timestamping.request",
- "[-tsadigestalg <\u7B97\u6CD5>] \u65F6\u95F4\u6233\u8BF7\u6C42\u4E2D\u7684\u6458\u8981\u6570\u636E\u7684\u7B97\u6CD5"},
- {".internalsf.include.the.SF.file.inside.the.signature.block",
- "[-internalsf] \u5728\u7B7E\u540D\u5757\u5185\u5305\u542B .SF \u6587\u4EF6"},
- {".sectionsonly.don.t.compute.hash.of.entire.manifest",
- "[-sectionsonly] \u4E0D\u8BA1\u7B97\u6574\u4E2A\u6E05\u5355\u7684\u6563\u5217"},
- {".protected.keystore.has.protected.authentication.path",
- "[-protected] \u5BC6\u94A5\u5E93\u5177\u6709\u53D7\u4FDD\u62A4\u9A8C\u8BC1\u8DEF\u5F84"},
- {".providerName.name.provider.name",
- "[-providerName <\u540D\u79F0>] \u63D0\u4F9B\u65B9\u540D\u79F0"},
- {".add.provider.option",
- "[-addprovider <\u540D\u79F0> \u6309\u540D\u79F0 (\u4F8B\u5982 SunPKCS11) \u6DFB\u52A0\u5B89\u5168\u63D0\u4F9B\u65B9"},
- {".providerArg.option.1",
- " [-providerArg <\u53C2\u6570>]] ... \u914D\u7F6E -addprovider \u7684\u53C2\u6570"},
- {".providerClass.option",
- "[-providerClass <\u7C7B> \u6309\u5168\u9650\u5B9A\u7C7B\u540D\u6DFB\u52A0\u5B89\u5168\u63D0\u4F9B\u65B9"},
- {".providerArg.option.2",
- " [-providerArg <\u53C2\u6570>]] ... \u914D\u7F6E -providerClass \u7684\u53C2\u6570"},
- {".providerPath.option",
- "[-providerPath ] \u63D0\u4F9B\u65B9\u7C7B\u8DEF\u5F84"},
- {".strict.treat.warnings.as.errors",
- "[-strict] \u5C06\u8B66\u544A\u89C6\u4E3A\u9519\u8BEF"},
- {".conf.url.specify.a.pre.configured.options.file",
- "[-conf ] \u6307\u5B9A\u9884\u914D\u7F6E\u7684\u9009\u9879\u6587\u4EF6"},
- {".print.this.help.message",
- "[-? -h --help] \u8F93\u51FA\u6B64\u5E2E\u52A9\u6D88\u606F"},
- {"Option.lacks.argument", "\u9009\u9879\u7F3A\u5C11\u53C2\u6570"},
- {"Please.type.jarsigner.help.for.usage", "\u8BF7\u952E\u5165 jarsigner --help \u4EE5\u4E86\u89E3\u7528\u6CD5"},
- {"Please.specify.jarfile.name", "\u8BF7\u6307\u5B9A jarfile \u540D\u79F0"},
- {"Please.specify.alias.name", "\u8BF7\u6307\u5B9A\u522B\u540D"},
- {"Only.one.alias.can.be.specified", "\u53EA\u80FD\u6307\u5B9A\u4E00\u4E2A\u522B\u540D"},
- {"This.jar.contains.signed.entries.which.is.not.signed.by.the.specified.alias.es.",
- "\u6B64 jar \u5305\u542B\u672A\u7531\u6307\u5B9A\u522B\u540D\u7B7E\u540D\u7684\u5DF2\u7B7E\u540D\u6761\u76EE\u3002"},
- {"This.jar.contains.signed.entries.that.s.not.signed.by.alias.in.this.keystore.",
- "\u6B64 jar \u5305\u542B\u672A\u7531\u6B64\u5BC6\u94A5\u5E93\u4E2D\u7684\u522B\u540D\u7B7E\u540D\u7684\u5DF2\u7B7E\u540D\u6761\u76EE\u3002"},
- {"s", "s"},
- {"m", "m"},
- {"k", "k"},
- {"X", "X"},
- {"q", "?"},
- {".and.d.more.", "(%d \u53CA\u4EE5\u4E0A)"},
- {".s.signature.was.verified.",
- " s = \u5DF2\u9A8C\u8BC1\u7B7E\u540D "},
- {".m.entry.is.listed.in.manifest",
- " m = \u5728\u6E05\u5355\u4E2D\u5217\u51FA\u6761\u76EE"},
- {".k.at.least.one.certificate.was.found.in.keystore",
- " k = \u5728\u5BC6\u94A5\u5E93\u4E2D\u81F3\u5C11\u627E\u5230\u4E86\u4E00\u4E2A\u8BC1\u4E66"},
- {".X.not.signed.by.specified.alias.es.",
- " X = \u672A\u7531\u6307\u5B9A\u522B\u540D\u7B7E\u540D"},
- {".q.unsigned.entry",
- " ? = \u672A\u7B7E\u540D\u6761\u76EE"},
- {"no.manifest.", "\u6CA1\u6709\u6E05\u5355\u3002"},
- {".Signature.related.entries.","(\u4E0E\u7B7E\u540D\u76F8\u5173\u7684\u6761\u76EE)"},
- {".Unsigned.entries.", "(\u672A\u7B7E\u540D\u6761\u76EE)"},
- {".Directory.entries.", "\uFF08\u76EE\u5F55\u6761\u76EE\uFF09"},
- {"jar.is.unsigned",
- "jar \u672A\u7B7E\u540D\u3002"},
- {"jar.treated.unsigned",
- "\u8B66\u544A: \u7B7E\u540D\u65E0\u6CD5\u89E3\u6790\u6216\u9A8C\u8BC1, \u8BE5 jar \u5C06\u88AB\u89C6\u4E3A\u672A\u7B7E\u540D\u3002\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u5728\u542F\u7528\u8C03\u8BD5\u7684\u60C5\u51B5\u4E0B\u91CD\u65B0\u8FD0\u884C jarsigner (-J-Djava.security.debug=jar)\u3002"},
- {"jar.treated.unsigned.see.weak",
- "\u7531\u4E8E\u8BE5 jar \u662F\u4F7F\u7528\u76EE\u524D\u5DF2\u7981\u7528\u7684\u5F31\u7B97\u6CD5\u7B7E\u540D\u7684, \u56E0\u6B64\u8BE5 jar \u5C06\u88AB\u89C6\u4E3A\u672A\u7B7E\u540D\u3002\n\n\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u4F7F\u7528 -verbose \u9009\u9879\u91CD\u65B0\u8FD0\u884C jarsigner\u3002"},
- {"jar.treated.unsigned.see.weak.verbose",
- "\u8B66\u544A: \u8BE5 jar \u5C06\u88AB\u89C6\u4E3A\u672A\u7B7E\u540D, \u56E0\u4E3A\u5B83\u662F\u7531\u76EE\u524D\u5B89\u5168\u5C5E\u6027\u7981\u7528\u7684\u5F31\u7B97\u6CD5\u7B7E\u540D\u7684:"},
- {"jar.signed.", "jar \u5DF2\u7B7E\u540D\u3002"},
- {"jar.signed.with.signer.errors.", "jar \u5DF2\u7B7E\u540D, \u4F46\u51FA\u73B0\u7B7E\u540D\u8005\u9519\u8BEF\u3002"},
- {"jar.verified.", "jar \u5DF2\u9A8C\u8BC1\u3002"},
- {"jar.verified.with.signer.errors.", "jar \u5DF2\u9A8C\u8BC1, \u4F46\u51FA\u73B0\u7B7E\u540D\u8005\u9519\u8BEF\u3002"},
-
- {"history.with.ts", "- \u7531 \"%1$s\" \u7B7E\u540D\n \u6458\u8981\u7B97\u6CD5: %2$s\n \u7B7E\u540D\u7B97\u6CD5: %3$s, %4$s\n \u7531 \"%6$s\" \u4E8E %5$tc \u52A0\u65F6\u95F4\u6233\n \u65F6\u95F4\u6233\u6458\u8981\u7B97\u6CD5: %7$s\n \u65F6\u95F4\u6233\u7B7E\u540D\u7B97\u6CD5: %8$s, %9$s"},
- {"history.without.ts", "- \u7531 \"%1$s\" \u7B7E\u540D\n \u6458\u8981\u7B97\u6CD5: %2$s\n \u7B7E\u540D\u7B97\u6CD5: %3$s, %4$s"},
- {"history.nonexistent.entries", "\u8B66\u544A\uFF1A\u4E0D\u5B58\u5728\u7684\u7B7E\u540D\u6761\u76EE\uFF1A "},
- {"history.unparsable", "- \u65E0\u6CD5\u89E3\u6790\u7684\u4E0E\u7B7E\u540D\u76F8\u5173\u7684\u6587\u4EF6 %s"},
- {"history.nosf", "- \u7F3A\u5C11\u4E0E\u7B7E\u540D\u76F8\u5173\u7684\u6587\u4EF6 META-INF/%s.SF"},
- {"history.nobk", "- \u4E0E\u7B7E\u540D\u76F8\u5173\u7684\u6587\u4EF6 META-INF/%s.SF \u7F3A\u5C11\u5757\u6587\u4EF6"},
-
- {"with.weak", "%s (\u5F31)"},
- {"with.algparams.weak", "%1$s \u4F7F\u7528 %2$s\uFF08\u5F31\uFF09"},
- {"with.disabled", "%s\uFF08\u7981\u7528\uFF09"},
- {"with.algparams.disabled", "%1$s \u4F7F\u7528 %2$s\uFF08\u7981\u7528\uFF09"},
- {"key.bit", "%s \u5BC6\u94A5"},
- {"key.bit.weak", "%s \u5BC6\u94A5\uFF08\u5F31\uFF09"},
- {"key.bit.disabled", "%s \u5BC6\u94A5\uFF08\u5DF2\u7981\u7528\uFF09"},
- {"nonexistent.entries.found", "\u6B64 jar \u7684\u6587\u4EF6\u5305\u542B\u4E0D\u5B58\u5728\u7684\u7B7E\u540D\u6761\u76EE\u3002\u6709\u5173\u66F4\u591A\u8BE6\u7EC6\u4FE1\u606F\uFF0C\u8BF7\u53C2\u89C1 -verbose \u8F93\u51FA\u3002"},
- {"external.file.attributes.detected", "\u68C0\u6D4B\u5230 POSIX \u6587\u4EF6\u6743\u9650\u548C/\u6216 symlink \u5C5E\u6027\u3002\u8FD9\u4E9B\u5C5E\u6027\u5728\u8FDB\u884C\u7B7E\u540D\u65F6\u4F1A\u88AB\u5FFD\u7565\uFF0C\u4E0D\u53D7\u8BE5\u7B7E\u540D\u7684\u4FDD\u62A4\u3002"},
-
- {"jarsigner.", "jarsigner: "},
- {"signature.filename.must.consist.of.the.following.characters.A.Z.0.9.or.",
- "\u7B7E\u540D\u6587\u4EF6\u540D\u5FC5\u987B\u5305\u542B\u4EE5\u4E0B\u5B57\u7B26: A-Z, 0-9, _ \u6216 -"},
- {"unable.to.open.jar.file.", "\u65E0\u6CD5\u6253\u5F00 jar \u6587\u4EF6: "},
- {"unable.to.create.", "\u65E0\u6CD5\u521B\u5EFA: "},
- {".adding.", " \u6B63\u5728\u6DFB\u52A0: "},
- {".updating.", " \u6B63\u5728\u66F4\u65B0: "},
- {".signing.", " \u6B63\u5728\u7B7E\u540D: "},
- {"attempt.to.rename.signedJarFile.to.jarFile.failed",
- "\u5C1D\u8BD5\u5C06{0}\u91CD\u547D\u540D\u4E3A{1}\u65F6\u5931\u8D25"},
- {"attempt.to.rename.jarFile.to.origJar.failed",
- "\u5C1D\u8BD5\u5C06{0}\u91CD\u547D\u540D\u4E3A{1}\u65F6\u5931\u8D25"},
- {"unable.to.sign.jar.", "\u65E0\u6CD5\u5BF9 jar \u8FDB\u884C\u7B7E\u540D: "},
- {"Enter.Passphrase.for.keystore.", "\u8F93\u5165\u5BC6\u94A5\u5E93\u7684\u5BC6\u7801\u77ED\u8BED: "},
- {"keystore.load.", "\u5BC6\u94A5\u5E93\u52A0\u8F7D: "},
- {"certificate.exception.", "\u8BC1\u4E66\u5F02\u5E38\u9519\u8BEF: "},
- {"unable.to.instantiate.keystore.class.",
- "\u65E0\u6CD5\u5B9E\u4F8B\u5316\u5BC6\u94A5\u5E93\u7C7B: "},
- {"Certificate.chain.not.found.for.alias.alias.must.reference.a.valid.KeyStore.key.entry.containing.a.private.key.and",
- "\u627E\u4E0D\u5230{0}\u7684\u8BC1\u4E66\u94FE\u3002{1}\u5FC5\u987B\u5F15\u7528\u5305\u542B\u79C1\u6709\u5BC6\u94A5\u548C\u76F8\u5E94\u7684\u516C\u5171\u5BC6\u94A5\u8BC1\u4E66\u94FE\u7684\u6709\u6548\u5BC6\u94A5\u5E93\u5BC6\u94A5\u6761\u76EE\u3002"},
- {"File.specified.by.certchain.does.not.exist",
- "\u7531 -certchain \u6307\u5B9A\u7684\u6587\u4EF6\u4E0D\u5B58\u5728"},
- {"Cannot.restore.certchain.from.file.specified",
- "\u65E0\u6CD5\u4ECE\u6307\u5B9A\u7684\u6587\u4EF6\u8FD8\u539F certchain"},
- {"Certificate.chain.not.found.in.the.file.specified.",
- "\u5728\u6307\u5B9A\u7684\u6587\u4EF6\u4E2D\u627E\u4E0D\u5230\u8BC1\u4E66\u94FE\u3002"},
- {"found.non.X.509.certificate.in.signer.s.chain",
- "\u5728\u7B7E\u540D\u8005\u7684\u94FE\u4E2D\u627E\u5230\u975E X.509 \u8BC1\u4E66"},
- {"Enter.key.password.for.alias.", "\u8F93\u5165{0}\u7684\u5BC6\u94A5\u53E3\u4EE4: "},
- {"unable.to.recover.key.from.keystore",
- "\u65E0\u6CD5\u4ECE\u5BC6\u94A5\u5E93\u4E2D\u6062\u590D\u5BC6\u94A5"},
- {"key.associated.with.alias.not.a.private.key",
- "\u4E0E{0}\u5173\u8054\u7684\u5BC6\u94A5\u4E0D\u662F\u79C1\u6709\u5BC6\u94A5"},
- {"you.must.enter.key.password", "\u5FC5\u987B\u8F93\u5165\u5BC6\u94A5\u53E3\u4EE4"},
- {"unable.to.read.password.", "\u65E0\u6CD5\u8BFB\u53D6\u53E3\u4EE4: "},
- {"certificate.is.valid.from", "\u8BC1\u4E66\u7684\u6709\u6548\u671F\u4E3A{0}\u81F3{1}"},
- {"certificate.expired.on", "\u8BC1\u4E66\u5230\u671F\u65E5\u671F\u4E3A {0}"},
- {"certificate.is.not.valid.until",
- "\u76F4\u5230{0}, \u8BC1\u4E66\u624D\u6709\u6548"},
- {"certificate.will.expire.on", "\u8BC1\u4E66\u5C06\u5728{0}\u5230\u671F"},
- {".Invalid.certificate.chain.", "[\u65E0\u6548\u7684\u8BC1\u4E66\u94FE: "},
- {".Invalid.TSA.certificate.chain.", "[\u65E0\u6548 TSA \u7684\u8BC1\u4E66\u94FE: "},
- {"requesting.a.signature.timestamp",
- "\u6B63\u5728\u8BF7\u6C42\u7B7E\u540D\u65F6\u95F4\u6233"},
- {"TSA.location.", "TSA \u4F4D\u7F6E: "},
- {"TSA.certificate.", "TSA \u8BC1\u4E66: "},
- {"no.response.from.the.Timestamping.Authority.",
- "\u65F6\u95F4\u6233\u9881\u53D1\u673A\u6784\u6CA1\u6709\u54CD\u5E94\u3002\u5982\u679C\u8981\u4ECE\u9632\u706B\u5899\u540E\u9762\u8FDE\u63A5, \u5219\u53EF\u80FD\u9700\u8981\u6307\u5B9A HTTP \u6216 HTTPS \u4EE3\u7406\u3002\u8BF7\u4E3A jarsigner \u63D0\u4F9B\u4EE5\u4E0B\u9009\u9879: "},
- {"or", "\u6216"},
- {"Certificate.not.found.for.alias.alias.must.reference.a.valid.KeyStore.entry.containing.an.X.509.public.key.certificate.for.the",
- "\u627E\u4E0D\u5230{0}\u7684\u8BC1\u4E66\u3002{1}\u5FC5\u987B\u5F15\u7528\u5305\u542B\u65F6\u95F4\u6233\u9881\u53D1\u673A\u6784\u7684 X.509 \u516C\u5171\u5BC6\u94A5\u8BC1\u4E66\u7684\u6709\u6548\u5BC6\u94A5\u5E93\u6761\u76EE\u3002"},
- {"entry.was.signed.on", "\u6761\u76EE\u7684\u7B7E\u540D\u65E5\u671F\u4E3A {0}"},
- {"Warning.", "\u8B66\u544A: "},
- {"Error.", "\u9519\u8BEF: "},
- {"...Signer", ">>> \u7B7E\u540D\u8005"},
- {"...TSA", ">>> TSA"},
- {"trusted.certificate", "\u53EF\u4FE1\u8BC1\u4E66"},
- {"This.jar.contains.unsigned.entries.which.have.not.been.integrity.checked.",
- "\u6B64 jar \u5305\u542B\u5C1A\u672A\u8FDB\u884C\u5B8C\u6574\u6027\u68C0\u67E5\u7684\u672A\u7B7E\u540D\u6761\u76EE\u3002 "},
- {"This.jar.contains.entries.whose.signer.certificate.has.expired.",
- "\u6B64 jar \u5305\u542B\u7B7E\u540D\u8005\u8BC1\u4E66\u5DF2\u8FC7\u671F\u7684\u6761\u76EE\u3002 "},
- {"This.jar.contains.entries.whose.signer.certificate.will.expire.within.six.months.",
- "\u6B64 jar \u5305\u542B\u7B7E\u540D\u8005\u8BC1\u4E66\u5C06\u5728\u516D\u4E2A\u6708\u5185\u8FC7\u671F\u7684\u6761\u76EE\u3002 "},
- {"This.jar.contains.entries.whose.signer.certificate.is.not.yet.valid.",
- "\u6B64 jar \u5305\u542B\u7B7E\u540D\u8005\u8BC1\u4E66\u4ECD\u65E0\u6548\u7684\u6761\u76EE\u3002 "},
- {"This.jar.contains.entries.whose.signer.certificate.is.self.signed.",
- "\u6B64 jar \u5305\u542B\u5176\u7B7E\u540D\u8005\u8BC1\u4E66\u4E3A\u81EA\u7B7E\u540D\u8BC1\u4E66\u7684\u6761\u76EE\u3002"},
- {"Re.run.with.the.verbose.and.certs.options.for.more.details.",
- "\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u4F7F\u7528 -verbose \u548C -certs \u9009\u9879\u91CD\u65B0\u8FD0\u884C\u3002"},
- {"The.signer.certificate.has.expired.",
- "\u7B7E\u540D\u8005\u8BC1\u4E66\u5DF2\u8FC7\u671F\u3002"},
- {"The.timestamp.expired.1.but.usable.2",
- "\u65F6\u95F4\u6233\u5230\u671F\u65E5\u671F\u4E3A %1$tY-%1$tm-%1$td\u3002\u4E0D\u8FC7\uFF0C\u5728\u7B7E\u540D\u8005\u8BC1\u4E66\u4E8E %2$tY-%2$tm-%2$td \u5230\u671F\u4E4B\u524D\uFF0CJAR \u5C06\u6709\u6548\u3002"},
- {"The.timestamp.has.expired.",
- "\u65F6\u95F4\u6233\u5DF2\u5230\u671F\u3002"},
- {"The.signer.certificate.will.expire.within.six.months.",
- "\u7B7E\u540D\u8005\u8BC1\u4E66\u5C06\u5728\u516D\u4E2A\u6708\u5185\u8FC7\u671F\u3002"},
- {"The.timestamp.will.expire.within.one.year.on.1",
- "\u65F6\u95F4\u6233\u5C06\u5728\u4E00\u5E74\u5185\u4E8E %1$tY-%1$tm-%1$td \u5230\u671F\u3002"},
- {"The.timestamp.will.expire.within.one.year.on.1.but.2",
- "\u65F6\u95F4\u6233\u5C06\u5728\u4E00\u5E74\u5185\u4E8E %1$tY-%1$tm-%1$td \u5230\u671F\u3002\u4E0D\u8FC7\uFF0C\u5728\u7B7E\u540D\u8005\u8BC1\u4E66\u4E8E %2$tY-%2$tm-%2$td \u5230\u671F\u4E4B\u524D\uFF0CJAR \u5C06\u6709\u6548\u3002"},
- {"The.signer.certificate.is.not.yet.valid.",
- "\u7B7E\u540D\u8005\u8BC1\u4E66\u4ECD\u65E0\u6548\u3002"},
- {"The.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.",
- "\u7531\u4E8E\u7B7E\u540D\u8005\u8BC1\u4E66\u7684 KeyUsage \u6269\u5C55\u800C\u65E0\u6CD5\u8FDB\u884C\u4EE3\u7801\u7B7E\u540D\u3002"},
- {"The.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.",
- "\u7531\u4E8E\u7B7E\u540D\u8005\u8BC1\u4E66\u7684 ExtendedKeyUsage \u6269\u5C55\u800C\u65E0\u6CD5\u8FDB\u884C\u4EE3\u7801\u7B7E\u540D\u3002"},
- {"The.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.",
- "\u7531\u4E8E\u7B7E\u540D\u8005\u8BC1\u4E66\u7684 NetscapeCertType \u6269\u5C55\u800C\u65E0\u6CD5\u8FDB\u884C\u4EE3\u7801\u7B7E\u540D\u3002"},
- {"This.jar.contains.entries.whose.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.",
- "\u6B64 jar \u5305\u542B\u7531\u4E8E\u7B7E\u540D\u8005\u8BC1\u4E66\u7684 KeyUsage \u6269\u5C55\u800C\u65E0\u6CD5\u8FDB\u884C\u4EE3\u7801\u7B7E\u540D\u7684\u6761\u76EE\u3002"},
- {"This.jar.contains.entries.whose.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.",
- "\u6B64 jar \u5305\u542B\u7531\u4E8E\u7B7E\u540D\u8005\u8BC1\u4E66\u7684 ExtendedKeyUsage \u6269\u5C55\u800C\u65E0\u6CD5\u8FDB\u884C\u4EE3\u7801\u7B7E\u540D\u7684\u6761\u76EE\u3002"},
- {"This.jar.contains.entries.whose.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.",
- "\u6B64 jar \u5305\u542B\u7531\u4E8E\u7B7E\u540D\u8005\u8BC1\u4E66\u7684 NetscapeCertType \u6269\u5C55\u800C\u65E0\u6CD5\u8FDB\u884C\u4EE3\u7801\u7B7E\u540D\u7684\u6761\u76EE\u3002"},
- {".{0}.extension.does.not.support.code.signing.",
- "[{0} \u6269\u5C55\u4E0D\u652F\u6301\u4EE3\u7801\u7B7E\u540D]"},
- {"The.signer.s.certificate.chain.is.invalid.reason.1",
- "\u7B7E\u540D\u8005\u8BC1\u4E66\u94FE\u65E0\u6548\u3002\u539F\u56E0: %s"},
- {"The.tsa.certificate.chain.is.invalid.reason.1",
- "TSA \u8BC1\u4E66\u94FE\u65E0\u6548\u3002\u539F\u56E0: %s"},
- {"The.signer.s.certificate.is.self.signed.",
- "\u7B7E\u540D\u8005\u8BC1\u4E66\u4E3A\u81EA\u7B7E\u540D\u8BC1\u4E66\u3002"},
- {"The.1.algorithm.specified.for.the.2.option.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.",
- "\u4E3A %2$s \u9009\u9879\u6307\u5B9A\u7684 %1$s \u7B97\u6CD5\u88AB\u89C6\u4E3A\u5B58\u5728\u5B89\u5168\u98CE\u9669\u3002\u6B64\u7B97\u6CD5\u5C06\u5728\u672A\u6765\u7684\u66F4\u65B0\u4E2D\u88AB\u7981\u7528\u3002"},
- {"The.1.algorithm.specified.for.the.2.option.is.considered.a.security.risk.and.is.disabled.",
- "\u4E3A %2$s \u9009\u9879\u6307\u5B9A\u7684 %1$s \u7B97\u6CD5\u88AB\u89C6\u4E3A\u5B58\u5728\u5B89\u5168\u98CE\u9669\u800C\u4E14\u88AB\u7981\u7528\u3002"},
- {"The.timestamp.digest.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.",
- "%1$s \u65F6\u95F4\u6233\u6458\u8981\u7B97\u6CD5\u88AB\u89C6\u4E3A\u5B58\u5728\u5B89\u5168\u98CE\u9669\u3002\u6B64\u7B97\u6CD5\u5C06\u5728\u672A\u6765\u7684\u66F4\u65B0\u4E2D\u88AB\u7981\u7528\u3002"},
- {"The.digest.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.",
- "%1$s \u6458\u8981\u7B97\u6CD5\u88AB\u89C6\u4E3A\u5B58\u5728\u5B89\u5168\u98CE\u9669\u3002\u6B64\u7B97\u6CD5\u5C06\u5728\u672A\u6765\u7684\u66F4\u65B0\u4E2D\u88AB\u7981\u7528\u3002"},
- {"The.signature.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.",
- "%1$s \u7B7E\u540D\u7B97\u6CD5\u88AB\u89C6\u4E3A\u5B58\u5728\u5B89\u5168\u98CE\u9669\u3002\u6B64\u7B97\u6CD5\u5C06\u5728\u672A\u6765\u7684\u66F4\u65B0\u4E2D\u88AB\u7981\u7528\u3002"},
- {"size.bit.alg",
- "%1$d \u4F4D %2$s"},
- {"The.full.keyAlgName.signing.key.is.considered.a.security.risk..It.will.be.disabled.in.a.future.update.",
- "%s \u7B7E\u540D\u5BC6\u94A5\u88AB\u89C6\u4E3A\u5B89\u5168\u98CE\u9669\u3002\u5728\u5C06\u6765\u7684\u66F4\u65B0\u4E2D\u5C06\u7981\u7528\u5B83\u3002"},
- {"The.full.keyAlgName.signing.key.is.considered.a.security.risk.and.is.disabled.",
- "%s \u7B7E\u540D\u5BC6\u94A5\u88AB\u89C6\u4E3A\u5B89\u5168\u98CE\u9669\u5E76\u88AB\u7981\u7528\u3002"},
- {"This.jar.contains.entries.whose.certificate.chain.is.invalid.reason.1",
- "\u6B64 jar \u5305\u542B\u5176\u8BC1\u4E66\u94FE\u65E0\u6548\u7684\u6761\u76EE\u3002\u539F\u56E0: %s"},
- {"This.jar.contains.entries.whose.tsa.certificate.chain.is.invalid.reason.1",
- "\u6B64 jar \u5305\u542B\u5176 TSA \u8BC1\u4E66\u94FE\u65E0\u6548\u7684\u6761\u76EE\u3002\u539F\u56E0: %s"},
- {"no.timestamp.signing",
- "\u672A\u63D0\u4F9B -tsa \u6216 -tsacert, \u6B64 jar \u6CA1\u6709\u65F6\u95F4\u6233\u3002\u5982\u679C\u6CA1\u6709\u65F6\u95F4\u6233, \u5219\u5728\u7B7E\u540D\u8005\u8BC1\u4E66\u7684\u5230\u671F\u65E5\u671F (%1$tY-%1$tm-%1$td) \u4E4B\u540E, \u7528\u6237\u53EF\u80FD\u65E0\u6CD5\u9A8C\u8BC1\u6B64 jar\u3002"},
- {"invalid.timestamp.signing",
- "\u65F6\u95F4\u6233\u65E0\u6548\u3002\u5982\u679C\u6CA1\u6709\u6709\u6548\u7684\u65F6\u95F4\u6233\uFF0C\u5219\u5728\u7B7E\u540D\u8005\u8BC1\u4E66\u7684\u5230\u671F\u65E5\u671F (%1$tY-%1$tm-%1$td) \u4E4B\u540E\uFF0C\u7528\u6237\u53EF\u80FD\u65E0\u6CD5\u9A8C\u8BC1\u6B64 jar\u3002"},
- {"no.timestamp.verifying",
- "\u6B64 jar \u5305\u542B\u7684\u7B7E\u540D\u6CA1\u6709\u65F6\u95F4\u6233\u3002\u5982\u679C\u6CA1\u6709\u65F6\u95F4\u6233, \u5219\u5728\u5176\u4E2D\u4EFB\u4E00\u7B7E\u540D\u8005\u8BC1\u4E66\u5230\u671F (\u6700\u65E9\u4E3A %1$tY-%1$tm-%1$td) \u4E4B\u540E, \u7528\u6237\u53EF\u80FD\u65E0\u6CD5\u9A8C\u8BC1\u6B64 jar\u3002"},
- {"bad.timestamp.verifying",
- "\u6B64 jar \u5305\u542B\u5E26\u6709\u65E0\u6548\u65F6\u95F4\u6233\u7684\u7B7E\u540D\u3002\u5982\u679C\u6CA1\u6709\u6709\u6548\u65F6\u95F4\u6233, \u5219\u5728\u5176\u4E2D\u4EFB\u4E00\u7B7E\u540D\u8005\u8BC1\u4E66\u5230\u671F (\u6700\u65E9\u4E3A %1$tY-%1$tm-%1$td) \u4E4B\u540E, \u7528\u6237\u53EF\u80FD\u65E0\u6CD5\u9A8C\u8BC1\u6B64 jar\u3002\n\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u4F7F\u7528 -J-Djava.security.debug=jar \u91CD\u65B0\u8FD0\u884C jarsigner\u3002"},
- {"The.signer.certificate.will.expire.on.1.",
- "\u7B7E\u540D\u8005\u8BC1\u4E66\u5C06\u4E8E %1$tY-%1$tm-%1$td \u5230\u671F\u3002"},
- {"The.timestamp.will.expire.on.1.",
- "\u65F6\u95F4\u6233\u5C06\u4E8E %1$tY-%1$tm-%1$td \u5230\u671F\u3002"},
- {"signer.cert.expired.1.but.timestamp.good.2.",
- "\u7B7E\u540D\u8005\u8BC1\u4E66\u5230\u671F\u65E5\u671F\u4E3A %1$tY-%1$tm-%1$td\u3002\u4E0D\u8FC7\uFF0C\u5728\u65F6\u95F4\u6233\u4E8E %2$tY-%2$tm-%2$td \u5230\u671F\u4E4B\u524D\uFF0CJAR \u5C06\u6709\u6548\u3002"},
- {"Unknown.password.type.", "\u672A\u77E5\u53E3\u4EE4\u7C7B\u578B: "},
- {"Cannot.find.environment.variable.",
- "\u627E\u4E0D\u5230\u73AF\u5883\u53D8\u91CF: "},
- {"Cannot.find.file.", "\u627E\u4E0D\u5230\u6587\u4EF6: "},
- {"event.ocsp.check", "\u6B63\u5728\u8054\u7CFB\u4F4D\u4E8E %s \u7684 OCSP \u670D\u52A1\u5668..."},
- {"event.crl.check", "\u6B63\u5728\u4ECE %s \u4E0B\u8F7D CRL..."},
- };
-
- /**
- * Returns the contents of this ResourceBundle.
- *
- *
- *
- * @return the contents of this ResourceBundle.
- */
- @Override
- public Object[][] getContents() {
- return contents;
- }
-}
diff --git a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/resources/jarsigner.properties b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/resources/jarsigner.properties
new file mode 100644
index 0000000000000..6721dbc837b71
--- /dev/null
+++ b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/resources/jarsigner.properties
@@ -0,0 +1,209 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# shared (from jarsigner)
+SPACE=\u0020
+6SPACE=\u0020 \u0020
+COMMA=,\u0020
+provclass.not.a.provider=%s not a provider
+provider.name.not.found=Provider named "%s" not found
+provider.class.not.found=Provider "%s" not found
+jarsigner.error.=jarsigner error:\u0020
+Illegal.option.=Illegal option:\u0020
+.keystore.must.be.NONE.if.storetype.is.{0}=-keystore must be NONE if -storetype is {0}
+.keypass.can.not.be.specified.if.storetype.is.{0}=-keypass can not be specified if -storetype is {0}
+If.protected.is.specified.then.storepass.and.keypass.must.not.be.specified=If -protected is specified, then -storepass and -keypass must not be specified
+If.keystore.is.not.password.protected.then.storepass.and.keypass.must.not.be.specified=If keystore is not password protected, then -storepass and -keypass must not be specified
+Usage.jarsigner.options.jar.file.alias=Usage: jarsigner [options] jar-file alias
+.jarsigner.verify.options.jar.file.alias.=\u0020 jarsigner -verify [options] jar-file [alias...]
+.jarsigner.version=\u0020 jarsigner -version
+.keystore.url.keystore.location=[-keystore ] keystore location
+.storepass.password.password.for.keystore.integrity=[-storepass ] password for keystore integrity
+.storetype.type.keystore.type=[-storetype ] keystore type
+.keypass.password.password.for.private.key.if.different.=[-keypass ] password for private key (if different)
+.certchain.file.name.of.alternative.certchain.file=[-certchain ] name of alternative certchain file
+.sigfile.file.name.of.SF.DSA.file=[-sigfile ] name of .SF/.DSA file
+.signedjar.file.name.of.signed.JAR.file=[-signedjar ] name of signed JAR file
+.digestalg.algorithm.name.of.digest.algorithm=[-digestalg ] name of digest algorithm
+.sigalg.algorithm.name.of.signature.algorithm=[-sigalg ] name of signature algorithm
+.verify.verify.a.signed.JAR.file=[-verify] verify a signed JAR file
+.version.print.the.program.version=[-version] print the program version
+.verbose.suboptions.verbose.output.when.signing.verifying.=[-verbose[:suboptions]] verbose output when signing/verifying.
+.suboptions.can.be.all.grouped.or.summary=\u0020 suboptions can be all, grouped or summary
+.certs.display.certificates.when.verbose.and.verifying=[-certs] display certificates when verbose and verifying
+.certs.revocation.check=[-revCheck] Enable certificate revocation check
+.tsa.url.location.of.the.Timestamping.Authority=[-tsa ] location of the Timestamping Authority
+.tsacert.alias.public.key.certificate.for.Timestamping.Authority=[-tsacert ] public key certificate for Timestamping Authority
+.tsapolicyid.tsapolicyid.for.Timestamping.Authority=[-tsapolicyid ] TSAPolicyID for Timestamping Authority
+.tsadigestalg.algorithm.of.digest.data.in.timestamping.request=[-tsadigestalg ] algorithm of digest data in timestamping request
+.internalsf.include.the.SF.file.inside.the.signature.block=[-internalsf] include the .SF file inside the signature block
+.sectionsonly.don.t.compute.hash.of.entire.manifest=[-sectionsonly] don't compute hash of entire manifest
+.protected.keystore.has.protected.authentication.path=[-protected] keystore has protected authentication path
+.providerName.name.provider.name=[-providerName ] provider name
+.add.provider.option=[-addprovider add security provider by name (e.g. SunPKCS11)
+.providerArg.option.1=\u0020 [-providerArg ]] ... configure argument for -addprovider
+.providerClass.option=[-providerClass add security provider by fully-qualified class name
+.providerArg.option.2=\u0020 [-providerArg ]] ... configure argument for -providerClass
+.providerPath.option=[-providerPath ] provider classpath
+.strict.treat.warnings.as.errors=[-strict] treat warnings as errors
+.conf.url.specify.a.pre.configured.options.file=[-conf ] specify a pre-configured options file
+.print.this.help.message=[-? -h --help] Print this help message
+Option.lacks.argument=Option lacks argument
+Please.type.jarsigner.help.for.usage=Please type jarsigner --help for usage
+Please.specify.jarfile.name=Please specify jarfile name
+Please.specify.alias.name=Please specify alias name
+Only.one.alias.can.be.specified=Only one alias can be specified
+This.jar.contains.signed.entries.which.is.not.signed.by.the.specified.alias.es.=This jar contains signed entries which are not signed by the specified alias(es).
+This.jar.contains.signed.entries.that.s.not.signed.by.alias.in.this.keystore.=This jar contains signed entries that are not signed by alias in this keystore.
+s=s
+m=m
+k=k
+X=X
+q=?
+.and.d.more.=(and %d more)
+.s.signature.was.verified.=\u0020 s = signature was verified\u0020
+.m.entry.is.listed.in.manifest=\u0020 m = entry is listed in manifest
+.k.at.least.one.certificate.was.found.in.keystore=\u0020 k = at least one certificate was found in keystore
+.X.not.signed.by.specified.alias.es.=\u0020 X = not signed by specified alias(es)
+.q.unsigned.entry=\u0020 ? = unsigned entry
+no.manifest.=no manifest.
+.Signature.related.entries.=(Signature related entries)
+.Unsigned.entries.=(Unsigned entries)
+.Directory.entries.=(Directory entries)
+jar.is.unsigned=jar is unsigned.
+jar.treated.unsigned=WARNING: Signature is either not parsable or not verifiable, and the jar will be treated as unsigned. For more information, re-run jarsigner with debug enabled (-J-Djava.security.debug=jar).
+jar.treated.unsigned.see.weak=The jar will be treated as unsigned, because it is signed with a weak algorithm that is now disabled.\n\nRe-run jarsigner with the -verbose option for more details.
+jar.treated.unsigned.see.weak.verbose=WARNING: The jar will be treated as unsigned, because it is signed with a weak algorithm that is now disabled by the security property:
+jar.signed.=jar signed.
+jar.signed.with.signer.errors.=jar signed, with signer errors.
+jar.verified.=jar verified.
+jar.verified.with.signer.errors.=jar verified, with signer errors.
+
+history.with.ts=- Signed by "%1$s"\n Digest algorithm: %2$s\n Signature algorithm: %3$s, %4$s\n Timestamped by "%6$s" on %5$tc\n Timestamp digest algorithm: %7$s\n Timestamp signature algorithm: %8$s, %9$s
+history.without.ts=- Signed by "%1$s"\n Digest algorithm: %2$s\n Signature algorithm: %3$s, %4$s
+history.nonexistent.entries=\u0020 Warning: nonexistent signed entries:\u0020
+history.unparsable=- Unparsable signature-related file %s
+history.nosf=- Missing signature-related file META-INF/%s.SF
+history.nobk=- Missing block file for signature-related file META-INF/%s.SF
+
+with.weak=%s (weak)
+with.algparams.weak=%1$s using %2$s (weak)
+with.disabled=%s (disabled)
+with.algparams.disabled=%1$s using %2$s (disabled)
+key.bit=%s key
+key.bit.weak=%s key (weak)
+key.bit.disabled=%s key (disabled)
+nonexistent.entries.found=This jar contains signed entries for files that do not exist. See the -verbose output for more details.
+external.file.attributes.detected=POSIX file permission and/or symlink attributes detected. These attributes are ignored when signing and are not protected by the signature.
+
+jarsigner.=jarsigner:\u0020
+signature.filename.must.consist.of.the.following.characters.A.Z.0.9.or.=signature filename must consist of the following characters: A-Z, 0-9, _ or -
+unable.to.open.jar.file.=unable to open jar file:\u0020
+unable.to.create.=unable to create:\u0020
+.adding.=\u0020 adding:\u0020
+.updating.=\u0020updating:\u0020
+.signing.=\u0020 signing:\u0020
+attempt.to.rename.signedJarFile.to.jarFile.failed=attempt to rename {0} to {1} failed
+attempt.to.rename.jarFile.to.origJar.failed=attempt to rename {0} to {1} failed
+unable.to.sign.jar.=unable to sign jar:\u0020
+Enter.Passphrase.for.keystore.=Enter Passphrase for keystore:\u0020
+keystore.load.=keystore load:\u0020
+certificate.exception.=certificate exception:\u0020
+unable.to.instantiate.keystore.class.=unable to instantiate keystore class:\u0020
+Certificate.chain.not.found.for.alias.alias.must.reference.a.valid.KeyStore.key.entry.containing.a.private.key.and=Certificate chain not found for: {0}. {1} must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.
+File.specified.by.certchain.does.not.exist=File specified by -certchain does not exist
+Cannot.restore.certchain.from.file.specified=Cannot restore certchain from file specified
+Certificate.chain.not.found.in.the.file.specified.=Certificate chain not found in the file specified.
+found.non.X.509.certificate.in.signer.s.chain=found non-X.509 certificate in signer's chain
+Enter.key.password.for.alias.=Enter key password for {0}:\u0020
+unable.to.recover.key.from.keystore=unable to recover key from keystore
+key.associated.with.alias.not.a.private.key=key associated with {0} not a private key
+you.must.enter.key.password=you must enter key password
+unable.to.read.password.=unable to read password:\u0020
+certificate.is.valid.from=certificate is valid from {0} to {1}
+certificate.expired.on=certificate expired on {0}
+certificate.is.not.valid.until=certificate is not valid until {0}
+certificate.will.expire.on=certificate will expire on {0}
+.Invalid.certificate.chain.=[Invalid certificate chain:\u0020
+.Invalid.TSA.certificate.chain.=[Invalid TSA certificate chain:\u0020
+requesting.a.signature.timestamp=requesting a signature timestamp
+TSA.location.=TSA location:\u0020
+TSA.certificate.=TSA certificate:\u0020
+no.response.from.the.Timestamping.Authority.=no response from the Timestamping Authority. When connecting \
+from behind a firewall an HTTP or HTTPS proxy may need to \
+be specified. Supply the following options to jarsigner:
+or=or
+Certificate.not.found.for.alias.alias.must.reference.a.valid.KeyStore.entry.containing.an.X.509.public.key.certificate.for.the=Certificate not found for: {0}. {1} must reference a valid KeyStore entry containing an X.509 public key certificate for the Timestamping Authority.
+entry.was.signed.on=entry was signed on {0}
+Warning.=Warning:\u0020
+Error.=Error:\u0020
+...Signer=>>> Signer
+...TSA=>>> TSA
+trusted.certificate=trusted certificate
+This.jar.contains.unsigned.entries.which.have.not.been.integrity.checked.=This jar contains unsigned entries which have not been integrity-checked.\u0020
+This.jar.contains.entries.whose.signer.certificate.has.expired.=This jar contains entries whose signer certificate has expired.\u0020
+This.jar.contains.entries.whose.signer.certificate.will.expire.within.six.months.=This jar contains entries whose signer certificate will expire within six months.\u0020
+This.jar.contains.entries.whose.signer.certificate.is.not.yet.valid.=This jar contains entries whose signer certificate is not yet valid.\u0020
+This.jar.contains.entries.whose.signer.certificate.is.self.signed.=This jar contains entries whose signer certificate is self-signed.
+Re.run.with.the.verbose.and.certs.options.for.more.details.=Re-run with the -verbose and -certs options for more details.
+The.signer.certificate.has.expired.=The signer certificate has expired.
+The.timestamp.expired.1.but.usable.2=The timestamp expired on %1$tY-%1$tm-%1$td. However, the JAR will be valid until the signer certificate expires on %2$tY-%2$tm-%2$td.
+The.timestamp.has.expired.=The timestamp has expired.
+The.signer.certificate.will.expire.within.six.months.=The signer certificate will expire within six months.
+The.timestamp.will.expire.within.one.year.on.1=The timestamp will expire within one year on %1$tY-%1$tm-%1$td.
+The.timestamp.will.expire.within.one.year.on.1.but.2=The timestamp will expire within one year on %1$tY-%1$tm-%1$td. However, the JAR will be valid until the signer certificate expires on %2$tY-%2$tm-%2$td.
+The.signer.certificate.is.not.yet.valid.=The signer certificate is not yet valid.
+The.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.=The signer certificate's KeyUsage extension doesn't allow code signing.
+The.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.=The signer certificate's ExtendedKeyUsage extension doesn't allow code signing.
+The.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.=The signer certificate's NetscapeCertType extension doesn't allow code signing.
+This.jar.contains.entries.whose.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.=This jar contains entries whose signer certificate's KeyUsage extension doesn't allow code signing.
+This.jar.contains.entries.whose.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.=This jar contains entries whose signer certificate's ExtendedKeyUsage extension doesn't allow code signing.
+This.jar.contains.entries.whose.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.=This jar contains entries whose signer certificate's NetscapeCertType extension doesn't allow code signing.
+.{0}.extension.does.not.support.code.signing.=[{0} extension does not support code signing]
+The.signer.s.certificate.chain.is.invalid.reason.1=The signer's certificate chain is invalid. Reason: %s
+The.tsa.certificate.chain.is.invalid.reason.1=The TSA certificate chain is invalid. Reason: %s
+The.signer.s.certificate.is.self.signed.=The signer's certificate is self-signed.
+The.1.algorithm.specified.for.the.2.option.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.=The %1$s algorithm specified for the %2$s option is considered a security risk. This algorithm will be disabled in a future update.
+The.1.algorithm.specified.for.the.2.option.is.considered.a.security.risk.and.is.disabled.=The %1$s algorithm specified for the %2$s option is considered a security risk and is disabled.
+The.timestamp.digest.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.=The %1$s timestamp digest algorithm is considered a security risk. This algorithm will be disabled in a future update.
+The.digest.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.=The %1$s digest algorithm is considered a security risk. This algorithm will be disabled in a future update.
+The.signature.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.=The %1$s signature algorithm is considered a security risk. This algorithm will be disabled in a future update.
+size.bit.alg=%1$d-bit %2$s
+The.full.keyAlgName.signing.key.is.considered.a.security.risk..It.will.be.disabled.in.a.future.update.=The %s signing key is considered a security risk. It will be disabled in a future update.
+The.full.keyAlgName.signing.key.is.considered.a.security.risk.and.is.disabled.=The %s signing key is considered a security risk and is disabled.
+This.jar.contains.entries.whose.certificate.chain.is.invalid.reason.1=This jar contains entries whose certificate chain is invalid. Reason: %s
+This.jar.contains.entries.whose.tsa.certificate.chain.is.invalid.reason.1=This jar contains entries whose TSA certificate chain is invalid. Reason: %s
+no.timestamp.signing=No -tsa or -tsacert is provided and this jar is not timestamped. Without a timestamp, users may not be able to validate this jar after the signer certificate's expiration date (%1$tY-%1$tm-%1$td).
+invalid.timestamp.signing=The timestamp is invalid. Without a valid timestamp, users may not be able to validate this jar after the signer certificate's expiration date (%1$tY-%1$tm-%1$td).
+no.timestamp.verifying=This jar contains signatures that do not include a timestamp. Without a timestamp, users may not be able to validate this jar after any of the signer certificates expire (as early as %1$tY-%1$tm-%1$td).
+bad.timestamp.verifying=This jar contains signatures that include an invalid timestamp. Without a valid timestamp, users may not be able to validate this jar after any of the signer certificates expire (as early as %1$tY-%1$tm-%1$td).\nRerun jarsigner with -J-Djava.security.debug=jar for more information.
+The.signer.certificate.will.expire.on.1.=The signer certificate will expire on %1$tY-%1$tm-%1$td.
+The.timestamp.will.expire.on.1.=The timestamp will expire on %1$tY-%1$tm-%1$td.
+signer.cert.expired.1.but.timestamp.good.2.=The signer certificate expired on %1$tY-%1$tm-%1$td. However, the JAR will be valid until the timestamp expires on %2$tY-%2$tm-%2$td.
+Unknown.password.type.=Unknown password type:\u0020
+Cannot.find.environment.variable.=Cannot find environment variable:\u0020
+Cannot.find.file.=Cannot find file:\u0020
+event.ocsp.check=Contacting OCSP server at %s ...
+event.crl.check=Downloading CRL from %s ...
diff --git a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/resources/jarsigner_de.properties b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/resources/jarsigner_de.properties
new file mode 100644
index 0000000000000..fe4ff9b50c439
--- /dev/null
+++ b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/resources/jarsigner_de.properties
@@ -0,0 +1,207 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# shared (from jarsigner)
+SPACE=\u0020
+6SPACE=\u0020 \u0020
+COMMA=,\u0020
+provclass.not.a.provider=%s kein Provider
+provider.name.not.found=Provider namens "%s" nicht gefunden
+provider.class.not.found=Provider "%s" nicht gefunden
+jarsigner.error.=jarsigner-Fehler:\u0020
+Illegal.option.=Unzulässige Option:\u0020
+.keystore.must.be.NONE.if.storetype.is.{0}=-keystore muss NONE sein, wenn -storetype {0} ist
+.keypass.can.not.be.specified.if.storetype.is.{0}=-keypass kann nicht angegeben werden, wenn -storetype "{0}" ist
+If.protected.is.specified.then.storepass.and.keypass.must.not.be.specified=Wenn -protected angegeben ist, dürfen -storepass und -keypass nicht angegeben werden
+If.keystore.is.not.password.protected.then.storepass.and.keypass.must.not.be.specified=Wenn der Keystore nicht kennwortgeschützt ist, dürfen -storepass und -keypass nicht angegeben werden
+Usage.jarsigner.options.jar.file.alias=Verwendung: jarsigner [options] jar-file alias
+.jarsigner.verify.options.jar.file.alias.=\u0020 jarsigner -verify [options] jar-file [alias...]
+.jarsigner.version=\u0020 jarsigner -version
+.keystore.url.keystore.location=[-keystore ] Keystore-Speicherort
+.storepass.password.password.for.keystore.integrity=[-storepass ] Kennwort für Keystore-Integrität
+.storetype.type.keystore.type=[-storetype ] Keystore-Typ
+.keypass.password.password.for.private.key.if.different.=[-keypass ] Kennwort für Private Key (falls unterschiedlich)
+.certchain.file.name.of.alternative.certchain.file=[-certchain ] Name der alternativen certchain-Datei
+.sigfile.file.name.of.SF.DSA.file=[-sigfile ] Name der SF/DSA-Datei
+.signedjar.file.name.of.signed.JAR.file=[-signedjar ] Name der signierten JAR-Datei
+.digestalg.algorithm.name.of.digest.algorithm=[-digestalg ] Name des Digestalgorithmus
+.sigalg.algorithm.name.of.signature.algorithm=[-sigalg ] Name des Signaturalgorithmus
+.verify.verify.a.signed.JAR.file=[-verify] Verifiziert eine signierte JAR-Datei
+.version.print.the.program.version=[-version] Gibt die Programmversion aus
+.verbose.suboptions.verbose.output.when.signing.verifying.=[-verbose[:suboptions]] Verbose-Ausgabe beim Signieren/Verifizieren.
+.suboptions.can.be.all.grouped.or.summary=\u0020 Als Unteroptionen sind "all", "grouped" und "summary" möglich
+.certs.display.certificates.when.verbose.and.verifying=[-certs] Zeigt Zertifikate bei Verbose und Verifizierung an
+.certs.revocation.check=[-revCheck] Aktiviert die Zertifikatswiderrufprüfung
+.tsa.url.location.of.the.Timestamping.Authority=[-tsa ] Ort der Zeitstempelautorität
+.tsacert.alias.public.key.certificate.for.Timestamping.Authority=[-tsacert ] Public-Key-Zertifikat für Zeitstempelautorität
+.tsapolicyid.tsapolicyid.for.Timestamping.Authority=[-tsapolicyid ] TSAPolicyID für Zeitstempelautorität
+.tsadigestalg.algorithm.of.digest.data.in.timestamping.request=[-tsadigestalg ] Algorithmus der Digestdaten in Zeitstempelanforderung
+.internalsf.include.the.SF.file.inside.the.signature.block=[-internalsf] SF-Datei in Signaturblock aufnehmen
+.sectionsonly.don.t.compute.hash.of.entire.manifest=[-sectionsonly] Berechnet nicht den Hash des gesamten Manifests
+.protected.keystore.has.protected.authentication.path=[-protected] Keystore hat geschützten Authentifizierungspfad
+.providerName.name.provider.name=[-providerName ] Providername
+.add.provider.option=[-addprovider Fügt einen Sicherheitsprovider nach Name hinzu (z.B. SunPKCS11)
+.providerArg.option.1=\u0020 [-providerArg ]] ... Konfiguriert Argument für -addprovider
+.providerClass.option=[-providerClass Fügt einen Sicherheitsprovider nach vollqualifiziertem Klassennamen hinzu
+.providerArg.option.2=\u0020 [-providerArg ]] ... Konfiguriert Argument für -providerClass
+.providerPath.option=[-providerPath ] Provider-Classpath
+.strict.treat.warnings.as.errors=[-strict] Behandelt Warnungen als Fehler
+.conf.url.specify.a.pre.configured.options.file=[-conf ] Vorkonfigurierte Optionsdatei angeben
+.print.this.help.message=[-? -h --help] Gibt diese Hilfemeldung aus
+Option.lacks.argument=Argument fehlt in Option
+Please.type.jarsigner.help.for.usage=Geben Sie jarsigner --help ein, um Verwendungsinformationen anzuzeigen
+Please.specify.jarfile.name=Geben Sie den Namen der JAR-Datei an
+Please.specify.alias.name=Geben Sie einen Aliasnamen an
+Only.one.alias.can.be.specified=Nur ein Alias kann angegeben werden
+This.jar.contains.signed.entries.which.is.not.signed.by.the.specified.alias.es.=Diese JAR-Datei enthält signierte Einträge, die nicht von den angegebenen Aliasnamen signiert wurden.
+This.jar.contains.signed.entries.that.s.not.signed.by.alias.in.this.keystore.=Diese JAR-Datei enthält signierte Einträge, die nicht vom Alias in diesem Keystore signiert wurden.
+s=s
+m=m
+k=k
+X=X
+q=?
+.and.d.more.=(und %d mehr)
+.s.signature.was.verified.=\u0020 s = Signatur wurde verifiziert\u0020
+.m.entry.is.listed.in.manifest=\u0020 m = Eintrag ist in Manifest aufgeführt
+.k.at.least.one.certificate.was.found.in.keystore=\u0020 k = Mindestens ein Zertifikat im Keystore gefunden
+.X.not.signed.by.specified.alias.es.=\u0020 X = Nicht von den angegebenen Aliasnamen signiert
+.q.unsigned.entry=\u0020 ? = Nicht signierter Eintrag
+no.manifest.=Kein Manifest.
+.Signature.related.entries.=(Signaturbezogene Einträge)
+.Unsigned.entries.=(Nicht signierte Einträge)
+.Directory.entries.=(Verzeichniseinträge)
+jar.is.unsigned=JAR-Datei ist nicht signiert.
+jar.treated.unsigned=Warnung: Signatur kann entweder nicht geparst oder nicht verifiziert werden. Die JAR-Datei wird als nicht signiert behandelt. Weitere Informationen erhalten Sie, indem Sie "jarsigner" mit aktiviertem Debugging erneut ausführen (-J-Djava.security.debug=jar).
+jar.treated.unsigned.see.weak=Die JAR-Datei wird als nicht signiert behandelt, da sie mit einem schwachen Algorithmus signiert wurde, der jetzt deaktiviert ist.\n\nFühren Sie "jarsigner" mit der Option "-verbose" erneut aus, um weitere Einzelheiten zu erhalten.
+jar.treated.unsigned.see.weak.verbose=Warnung: Die JAR-Datei wird als nicht signiert behandelt, da sie mit einem schwachen Algorithmus signiert wurde, der mittlerweile von der folgenden Sicherheitseigenschaft deaktiviert wurde:
+jar.signed.=JAR-Datei signiert.
+jar.signed.with.signer.errors.=JAR-Datei signiert, mit Signaturgeberfehlern.
+jar.verified.=JAR-Datei verifiziert.
+jar.verified.with.signer.errors.=JAR-Datei verifiziert, mit Signaturgeberfehlern.
+
+history.with.ts=- Von "%1$s" signiert\n Digestalgorithmus: %2$s\n Signaturalgorithmus: %3$s, %4$s\n Zeitstempel von "%6$s" am %5$tc\n Digestalgorithmus für Zeitstempel: %7$s\n Signaturalgorithmus für Zeitstempel: %8$s, %9$s
+history.without.ts=- Von "%1$s" signiert\n Digestalgorithmus: %2$s\n Signaturalgorithmus: %3$s, %4$s
+history.nonexistent.entries=\u0020 Warnung: Nicht vorhandene signierte Einträge:\u0020
+history.unparsable=- Signaturbezogene Datei %s kann nicht geparst werden
+history.nosf=- Signaturbezogene Datei META-INF/%s.SF fehlt
+history.nobk=- Blockdatei für signaturbezogene Datei META-INF/%s.SF fehlt
+
+with.weak=%s (schwach)
+with.algparams.weak=%1$s mit %2$s (schwach)
+with.disabled=%s (deaktiviert)
+with.algparams.disabled=%1$s mit %2$s (deaktiviert)
+key.bit=%s-Schlüssel
+key.bit.weak=%s Schlüssel (schwach)
+key.bit.disabled=%s Schlüssel (deaktiviert)
+nonexistent.entries.found=Diese JAR-Datei enthält signierte Einträge für Dateien, die nicht vorhanden sind. Weitere Details finden Sie in der Verbose-Ausgabe (-verbose).
+external.file.attributes.detected=POSIX-Dateiberechtigung und/oder Symlink-Attribute erkannt. Diese Attribute werden bei der Signatur ignoriert und sind nicht durch die Signatur geschützt.
+
+jarsigner.=jarsigner:\u0020
+signature.filename.must.consist.of.the.following.characters.A.Z.0.9.or.=Signaturdateiname muss aus den folgenden Zeichen bestehen: A-Z, 0-9, _ oder -
+unable.to.open.jar.file.=JAR-Datei kann nicht geöffnet werden:\u0020
+unable.to.create.=Erstellen nicht möglich:\u0020
+.adding.=\u0020 Wird hinzugefügt:\u0020
+.updating.=\u0020Wird aktualisiert:\u0020
+.signing.=\u0020 Wird signiert:\u0020
+attempt.to.rename.signedJarFile.to.jarFile.failed=Der Versuch, {0} in {1} umzubenennen, war nicht erfolgreich
+attempt.to.rename.jarFile.to.origJar.failed=Der Versuch, {0} in {1} umzubenennen, war nicht erfolgreich
+unable.to.sign.jar.=JAR-Datei kann nicht signiert werden:\u0020
+Enter.Passphrase.for.keystore.=Passphrase für Keystore eingeben:\u0020
+keystore.load.=Keystore-Ladevorgang:\u0020
+certificate.exception.=Zertifikatsausnahme:\u0020
+unable.to.instantiate.keystore.class.=Keystore-Klasse kann nicht instanziiert werden:\u0020
+Certificate.chain.not.found.for.alias.alias.must.reference.a.valid.KeyStore.key.entry.containing.a.private.key.and=Zertifikatskette nicht gefunden für: {0}. {1} muss einen gültigen Keystore-Schlüssel referenzieren, der einen Private Key und eine zugehörige Public-Key-Zertifikatskette enthält.
+File.specified.by.certchain.does.not.exist=Von -certchain angegebene Datei ist nicht vorhanden
+Cannot.restore.certchain.from.file.specified=Zertifikatskette kann nicht aus angegebener Datei wiederhergestellt werden
+Certificate.chain.not.found.in.the.file.specified.=Zertifikatskette nicht in der angegebenen Datei gefunden.
+found.non.X.509.certificate.in.signer.s.chain=Nicht-X.509-Zertifikat in Kette des Signaturgebers gefunden
+Enter.key.password.for.alias.=Schlüsselkennwort für {0} eingeben:\u0020
+unable.to.recover.key.from.keystore=Schlüssel kann nicht aus Keystore wiederhergestellt werden
+key.associated.with.alias.not.a.private.key=Mit {0} verknüpfter Schlüssel ist kein Private Key
+you.must.enter.key.password=Sie müssen ein Schlüsselkennwort eingeben
+unable.to.read.password.=Kennwort kann nicht gelesen werden:\u0020
+certificate.is.valid.from=Zertifikat ist von {0} bis {1} gültig
+certificate.expired.on=Zertifikat ist am {0} abgelaufen
+certificate.is.not.valid.until=Zertifikat ist erst ab {0} gültig
+certificate.will.expire.on=Zertifikat läuft am {0} ab
+.Invalid.certificate.chain.=[Ungültige Zertifikatskette:\u0020
+.Invalid.TSA.certificate.chain.=[Ungültige TSA-Zertifikatskette:\u0020
+requesting.a.signature.timestamp=Signaturzeitstempel wird angefordert
+TSA.location.=TSA-Ort:\u0020
+TSA.certificate.=TSA-Zertifikat:\u0020
+no.response.from.the.Timestamping.Authority.=Keine Antwort von der Zeitstempelautorität. Bei Verbindungen hinter einer Firewall muss möglicherweise ein HTTP- oder HTTPS-Proxy angegeben werden. Geben Sie die folgenden Optionen für "jarsigner" an:
+or=oder
+Certificate.not.found.for.alias.alias.must.reference.a.valid.KeyStore.entry.containing.an.X.509.public.key.certificate.for.the=Zertifikat nicht gefunden für: {0}. {1} muss einen gültigen Keystore-Eintrag referenzieren, der ein X.509-Public-Key-Zertifikat für die Zeitstempelautorität enthält.
+entry.was.signed.on=Eintrag wurde signiert am {0}
+Warning.=Warnung:\u0020
+Error.=Fehler:\u0020
+...Signer=>>> Signaturgeber
+...TSA=>>> TSA
+trusted.certificate=vertrauenswürdiges Zertifikat
+This.jar.contains.unsigned.entries.which.have.not.been.integrity.checked.=Diese JAR-Datei enthält nicht signierte Einträge, deren Integrität nicht geprüft wurde.\u0020
+This.jar.contains.entries.whose.signer.certificate.has.expired.=Diese JAR-Datei enthält Einträge, deren Signaturgeberzertifikat abgelaufen ist.
+This.jar.contains.entries.whose.signer.certificate.will.expire.within.six.months.=Diese JAR-Datei enthält Einträge, deren Signaturgeberzertifikat innerhalb der nächsten sechs Monate abläuft.\u0020
+This.jar.contains.entries.whose.signer.certificate.is.not.yet.valid.=Diese JAR-Datei enthält Einträge, deren Signaturgeberzertifikat noch nicht gültig ist.\u0020
+This.jar.contains.entries.whose.signer.certificate.is.self.signed.=Diese JAR-Datei enthält Einträge, deren Signaturgeberzertifikat selbstsigniert ist.
+Re.run.with.the.verbose.and.certs.options.for.more.details.=Führen Sie den Befehl erneut mit den Optionen -verbose und -certs aus, um weitere Details zu erhalten.
+The.signer.certificate.has.expired.=Das Signaturgeberzertifikat ist abgelaufen.
+The.timestamp.expired.1.but.usable.2=Der Zeitstempel ist am %1$tY-%1$tm-%1$td abgelaufen. Die JAR-Datei bleibt aber gültig, bis das Signaturgeberzertifikat am %2$tY-%2$tm-%2$td abläuft.
+The.timestamp.has.expired.=Der Zeitstempel ist abgelaufen.
+The.signer.certificate.will.expire.within.six.months.=Das Signaturgeberzertifikat läuft innerhalb der nächsten sechs Monate ab.
+The.timestamp.will.expire.within.one.year.on.1=Der Zeitstempel läuft innerhalb des nächsten Jahres am %1$tY-%1$tm-%1$td ab.
+The.timestamp.will.expire.within.one.year.on.1.but.2=Der Zeitstempel läuft innerhalb des nächsten Jahres am %1$tY-%1$tm-%1$td ab. Die JAR-Datei bleibt aber gültig, bis das Signaturgeberzertifikat am %2$tY-%2$tm-%2$td abläuft.
+The.signer.certificate.is.not.yet.valid.=Das Signaturgeberzertifikat ist noch nicht gültig.
+The.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.=Die KeyUsage-Erweiterung des Signaturgeberzertifikats lässt keine Codesignatur zu.
+The.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.=Die ExtendedKeyUsage-Erweiterung des Signaturgeberzertifikats lässt keine Codesignatur zu.
+The.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.=Die NetscapeCertType-Erweiterung des Signaturgeberzertifikats lässt keine Codesignatur zu.
+This.jar.contains.entries.whose.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.=Diese JAR-Datei enthält Einträge, bei denen die KeyUsage-Erweiterung des Signaturgeberzertifikats keine Codesignatur zulässt.
+This.jar.contains.entries.whose.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.=Diese JAR-Datei enthält Einträge, bei denen die ExtendedKeyUsage-Erweiterung des Signaturgeberzertifikats keine Codesignatur zulässt.
+This.jar.contains.entries.whose.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.=Diese JAR-Datei enthält Einträge, bei denen die NetscapeCertType-Erweiterung des Signaturgeberzertifikats keine Codesignatur zulässt.
+.{0}.extension.does.not.support.code.signing.=[{0}-Erweiterung unterstützt keine Codesignatur]
+The.signer.s.certificate.chain.is.invalid.reason.1=Die Zertifikatskette des Signaturgebers ist ungültig. Grund: %s
+The.tsa.certificate.chain.is.invalid.reason.1=Die TSA-Zertifikatskette ist ungültig. Grund: %s
+The.signer.s.certificate.is.self.signed.=Das Zertifikat des Signaturgebers ist selbstsigniert.
+The.1.algorithm.specified.for.the.2.option.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.=Der für die Option %2$s angegebene %1$s-Algorithmus gilt als Sicherheitsrisiko. Dieser Algorithmus wird in einem zukünftigen Update deaktiviert.
+The.1.algorithm.specified.for.the.2.option.is.considered.a.security.risk.and.is.disabled.=Der für die Option %2$s angegebene %1$s-Algorithmus gilt als Sicherheitsrisiko und ist deaktiviert.
+The.timestamp.digest.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.=Der %1$s-Digestalgorithmus des Zeitstempels gilt als Sicherheitsrisiko. Dieser Algorithmus wird in einem zukünftigen Update deaktiviert.
+The.digest.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.=Der %1$s-Digestalgorithmus gilt als Sicherheitsrisiko. Dieser Algorithmus wird in einem zukünftigen Update deaktiviert.
+The.signature.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.=Der %1$s-Signaturalgorithmus gilt als Sicherheitsrisiko. Dieser Algorithmus wird in einem zukünftigen Update deaktiviert.
+size.bit.alg=%1$d-Bit %2$s
+The.full.keyAlgName.signing.key.is.considered.a.security.risk..It.will.be.disabled.in.a.future.update.=Der %s Signaturschlüssel wird als Sicherheitsrisiko betrachtet. Wird in einem zukünftigen Update deaktiviert.
+The.full.keyAlgName.signing.key.is.considered.a.security.risk.and.is.disabled.=Der %s Signaturschlüssel wird als Sicherheitsrisiko betrachtet und ist deaktiviert.
+This.jar.contains.entries.whose.certificate.chain.is.invalid.reason.1=Diese JAR-Datei enthält Einträge, deren Zertifikatskette ungültig ist. Grund: %s
+This.jar.contains.entries.whose.tsa.certificate.chain.is.invalid.reason.1=Diese JAR-Datei enthält Einträge, deren TSA-Zertifikatskette ungültig ist. Grund: %s
+no.timestamp.signing=Weder -tsa noch -tsacert wurde angegeben, und diese JAR-Datei hat keinen Zeitstempel. Ohne Zeitstempel können Benutzer diese JAR-Datei nach dem Ablaufdatum des Signaturgeberzertifikats (%1$tY-%1$tm-%1$td) möglicherweise nicht mehr validieren.
+invalid.timestamp.signing=Der Zeitstempel ist ungültig. Ohne einen gültigen Zeitstempel können Benutzer diese JAR-Datei nach dem Ablaufdatum des Signaturgeberzertifikats (%1$tY-%1$tm-%1$td) möglicherweise nicht mehr validieren.
+no.timestamp.verifying=Diese JAR-Datei enthält Signaturen ohne Zeitstempel. Ohne einen Zeitstempel können Benutzer diese JAR-Datei nach dem Ablauf eines Signaturgeberzertifikats (frühestens %1$tY-%1$tm-%1$td) möglicherweise nicht mehr validieren.
+bad.timestamp.verifying=Diese JAR-Datei enthält Signaturen mit einem ungültigen Zeitstempel. Ohne einen gültigen Zeitstempel können Benutzer diese JAR-Datei nach dem Ablauf eines Signaturgeberzertifikats (frühestens %1$tY-%1$tm-%1$td) möglicherweise nicht mehr validieren.\nFühren Sie "jarsigner" mit -J-Djava.security.debug=jar erneut aus, um weitere Informationen zu erhalten.
+The.signer.certificate.will.expire.on.1.=Das Signaturgeberzertifikat läuft am %1$tY-%1$tm-%1$td ab.
+The.timestamp.will.expire.on.1.=Der Zeitstempel läuft am %1$tY-%1$tm-%1$td ab.
+signer.cert.expired.1.but.timestamp.good.2.=Das Signaturgeberzertifikat ist am %1$tY-%1$tm-%1$td abgelaufen. Die JAR-Datei bleibt aber gültig, bis der Zeitstempel am %2$tY-%2$tm-%2$td abläuft.
+Unknown.password.type.=Unbekannter Kennworttyp:\u0020
+Cannot.find.environment.variable.=Umgebungsvariable kann nicht gefunden werden:\u0020
+Cannot.find.file.=Datei kann nicht gefunden werden:\u0020
+event.ocsp.check=Verbindung zu OCSP-Server bei %s wird hergestellt...
+event.crl.check=CRL wird von %s heruntergeladen...
diff --git a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/resources/jarsigner_ja.properties b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/resources/jarsigner_ja.properties
new file mode 100644
index 0000000000000..e13d8b5a471be
--- /dev/null
+++ b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/resources/jarsigner_ja.properties
@@ -0,0 +1,207 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# shared (from jarsigner)
+SPACE=\u0020
+6SPACE=\u0020 \u0020
+COMMA=,\u0020
+provclass.not.a.provider=%sはプロバイダではありません
+provider.name.not.found=プロバイダ名"%s"が見つかりません
+provider.class.not.found=プロバイダ"%s"が見つかりません
+jarsigner.error.=jarsignerエラー:\u0020
+Illegal.option.=不正なオプション:\u0020
+.keystore.must.be.NONE.if.storetype.is.{0}=-storetypeが{0}の場合、-keystoreはNONEである必要があります
+.keypass.can.not.be.specified.if.storetype.is.{0}=-storetypeが{0}の場合、-keypassは指定できません
+If.protected.is.specified.then.storepass.and.keypass.must.not.be.specified=-protectedを指定する場合は、-storepassおよび-keypassを指定しないでください
+If.keystore.is.not.password.protected.then.storepass.and.keypass.must.not.be.specified=キーストアがパスワードで保護されていない場合、-storepassおよび-keypassを指定しないでください
+Usage.jarsigner.options.jar.file.alias=使用方法: jarsigner [options] jar-file alias
+.jarsigner.verify.options.jar.file.alias.=\u0020 jarsigner -verify [options] jar-file [alias...]
+.jarsigner.version=\u0020 jarsigner -version
+.keystore.url.keystore.location=[-keystore ] キーストアの位置
+.storepass.password.password.for.keystore.integrity=[-storepass ] キーストア整合性のためのパスワード
+.storetype.type.keystore.type=[-storetype ] キーストアの型
+.keypass.password.password.for.private.key.if.different.=[-keypass ] 秘密キーのパスワード(異なる場合)
+.certchain.file.name.of.alternative.certchain.file=[-certchain ] 代替証明書チェーン・ファイルの名前
+.sigfile.file.name.of.SF.DSA.file=[-sigfile ] .SF/.DSAファイルの名前
+.signedjar.file.name.of.signed.JAR.file=[-signedjar ] 署名付きJARファイルの名前
+.digestalg.algorithm.name.of.digest.algorithm=[-digestalg ] ダイジェスト・アルゴリズムの名前
+.sigalg.algorithm.name.of.signature.algorithm=[-sigalg ] シグネチャ・アルゴリズムの名前
+.verify.verify.a.signed.JAR.file=[-verify] 署名付きJARファイルの検証
+.version.print.the.program.version=[-version] プログラム・バージョンを出力します
+.verbose.suboptions.verbose.output.when.signing.verifying.=[-verbose[:suboptions]] 署名/検証時の詳細出力。
+.suboptions.can.be.all.grouped.or.summary=\u0020 サブオプションとして、all、groupedまたはsummaryを使用できます
+.certs.display.certificates.when.verbose.and.verifying=[-certs] 詳細出力および検証時に証明書を表示
+.certs.revocation.check=[-revCheck] 証明書失効チェックの有効化
+.tsa.url.location.of.the.Timestamping.Authority=[-tsa ] タイムスタンプ局の場所
+.tsacert.alias.public.key.certificate.for.Timestamping.Authority=[-tsacert ] タイムスタンプ局の公開キー証明書
+.tsapolicyid.tsapolicyid.for.Timestamping.Authority=[-tsapolicyid ] タイムスタンプ局のTSAPolicyID
+.tsadigestalg.algorithm.of.digest.data.in.timestamping.request=[-tsadigestalg ] タイムスタンプ・リクエストのダイジェスト・データのアルゴリズム
+.internalsf.include.the.SF.file.inside.the.signature.block=[-internalsf] シグネチャ・ブロックに.SFファイルを含める
+.sectionsonly.don.t.compute.hash.of.entire.manifest=[-sectionsonly] マニフェスト全体のハッシュは計算しない
+.protected.keystore.has.protected.authentication.path=[-protected] キーストアには保護された認証パスがある
+.providerName.name.provider.name=[-providerName ] プロバイダ名
+.add.provider.option=[-addprovider 名前でセキュリティ・プロバイダを追加する(SunPKCS11など)
+.providerArg.option.1=\u0020 [-providerArg ]] ... -addproviderの引数を構成する
+.providerClass.option=[-providerClass 完全修飾クラス名でセキュリティ・プロバイダを追加する
+.providerArg.option.2=\u0020 [-providerArg ]] ... -providerClassの引数を構成する
+.providerPath.option=[-providerPath ] プロバイダ・クラスパス
+.strict.treat.warnings.as.errors=[-strict] 警告をエラーとして処理
+.conf.url.specify.a.pre.configured.options.file=[-conf ] 事前構成済のオプション・ファイルを指定する
+.print.this.help.message=[-? -h --help] このヘルプ・メッセージを出力します
+Option.lacks.argument=オプションに引数がありません
+Please.type.jarsigner.help.for.usage=使用方法についてはjarsigner --helpと入力してください
+Please.specify.jarfile.name=jarfile名を指定してください
+Please.specify.alias.name=別名を指定してください
+Only.one.alias.can.be.specified=別名は1つのみ指定できます
+This.jar.contains.signed.entries.which.is.not.signed.by.the.specified.alias.es.=このjarに含まれる署名済エントリは、指定された別名によって署名されていません。
+This.jar.contains.signed.entries.that.s.not.signed.by.alias.in.this.keystore.=このjarに含まれる署名済エントリは、このキーストア内の別名によって署名されていません。
+s=s
+m=m
+k=k
+X=X
+q=?
+.and.d.more.=(他にも%d個)
+.s.signature.was.verified.=\u0020 s=シグネチャが検証されました\u0020
+.m.entry.is.listed.in.manifest=\u0020 m=エントリがマニフェスト内にリストされます
+.k.at.least.one.certificate.was.found.in.keystore=\u0020 k=1つ以上の証明書がキーストアで検出されました
+.X.not.signed.by.specified.alias.es.=\u0020 X =指定した別名で署名されていません
+.q.unsigned.entry=\u0020 ? = 署名なしのエントリ
+no.manifest.=マニフェストは存在しません。
+.Signature.related.entries.=(シグネチャ関連エントリ)
+.Unsigned.entries.=(署名なしのエントリ)
+.Directory.entries.=(ディレクトリ・エントリ)
+jar.is.unsigned=jarは署名されていません。
+jar.treated.unsigned=警告: 署名が構文解析できないか検証できないため、このjarは署名なしとして扱われます。詳細は、デバッグを有効にして(-J-Djava.security.debug=jar) jarsignerを再実行してください。
+jar.treated.unsigned.see.weak=このjarは、現在無効になっている弱いアルゴリズムで署名されているため、署名なしとして扱われます。\n\n詳細は、-verboseオプションを使用してjarsignerを再実行してください。
+jar.treated.unsigned.see.weak.verbose=警告: このjarは、セキュリティ・プロパティによって現在無効になっている弱いアルゴリズムで署名されているため、署名なしとして扱われます:
+jar.signed.=jarは署名されました。
+jar.signed.with.signer.errors.=jarは署名されました - 署名者エラーがあります。
+jar.verified.=jarが検証されました。
+jar.verified.with.signer.errors.=jarは検証されました - 署名者エラーがあります。
+
+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
+history.without.ts=- 署名者: "%1$s"\n ダイジェスト・アルゴリズム: %2$s\n 署名アルゴリズム: %3$s、%4$s
+history.nonexistent.entries=\u0020 警告: 存在しない署名済エントリ:\u0020
+history.unparsable=- 署名関連ファイル%sを解析できません
+history.nosf=- 署名関連ファイルMETA-INF/%s.SFがありません
+history.nobk=- 署名関連ファイルMETA-INF/%s.SFのブロック・ファイルがありません
+
+with.weak=%s (弱)
+with.algparams.weak=%2$sを使用した%1$s (弱)
+with.disabled=%s (無効)
+with.algparams.disabled=%2$sを使用した%1$s (無効)
+key.bit=%sキー
+key.bit.weak=%sキー(弱い)
+key.bit.disabled=%sキー(無効)
+nonexistent.entries.found=このjarには、存在しないファイルの署名済エントリが含まれます。詳細は、-verbose出力を参照してください。
+external.file.attributes.detected=POSIXファイル権限またはsymlink(あるいはその両方)の属性が検出されました。署名中はこれらの属性は無視され、署名によって保護されません。
+
+jarsigner.=jarsigner:\u0020
+signature.filename.must.consist.of.the.following.characters.A.Z.0.9.or.=シグネチャのファイル名に使用できる文字は、A-Z、0-9、_、- のみです。
+unable.to.open.jar.file.=次のjarファイルを開くことができません:\u0020
+unable.to.create.=作成できません:\u0020
+.adding.=\u0020 追加中:\u0020
+.updating.=\u0020更新中:\u0020
+.signing.=\u0020 署名中:\u0020
+attempt.to.rename.signedJarFile.to.jarFile.failed={0}の名前を{1}に変更しようとしましたが失敗しました
+attempt.to.rename.jarFile.to.origJar.failed={0}の名前を{1}に変更しようとしましたが失敗しました
+unable.to.sign.jar.=jarに署名できません:\u0020
+Enter.Passphrase.for.keystore.=キーストアのパスワードを入力してください:\u0020
+keystore.load.=キーストアのロード:\u0020
+certificate.exception.=証明書例外:\u0020
+unable.to.instantiate.keystore.class.=キーストア・クラスのインスタンスを生成できません:\u0020
+Certificate.chain.not.found.for.alias.alias.must.reference.a.valid.KeyStore.key.entry.containing.a.private.key.and=次の証明書チェーンが見つかりません: {0}。{1}は、秘密キーおよび対応する公開キー証明書チェーンを含む有効なKeyStoreキー・エントリを参照する必要があります。
+File.specified.by.certchain.does.not.exist=-certchainで指定されているファイルは存在しません
+Cannot.restore.certchain.from.file.specified=指定されたファイルから証明書チェーンを復元できません
+Certificate.chain.not.found.in.the.file.specified.=証明書チェーンは指定されたファイルに見つかりません。
+found.non.X.509.certificate.in.signer.s.chain=署名者の連鎖内で非X.509証明書が検出されました
+Enter.key.password.for.alias.={0}のキー・パスワードを入力してください:\u0020
+unable.to.recover.key.from.keystore=キーストアからキーを復元できません
+key.associated.with.alias.not.a.private.key={0}と関連付けられたキーは、秘密キーではありません
+you.must.enter.key.password=キー・パスワードを入力する必要があります
+unable.to.read.password.=パスワードを読み込めません:\u0020
+certificate.is.valid.from=証明書は{0}から{1}まで有効です
+certificate.expired.on=証明書は{0}に失効しました
+certificate.is.not.valid.until=証明書は{0}まで有効ではありません
+certificate.will.expire.on=証明書は{0}に失効します
+.Invalid.certificate.chain.=[無効な証明書チェーン:\u0020
+.Invalid.TSA.certificate.chain.=[無効なTSA証明書チェーン:\u0020
+requesting.a.signature.timestamp=シグネチャ・タイムスタンプのリクエスト
+TSA.location.=TSAの場所:\u0020
+TSA.certificate.=TSA証明書:\u0020
+no.response.from.the.Timestamping.Authority.=タイムスタンプ局からのレスポンスがありません。ファイアウォールを介して接続するときは、必要に応じてHTTPまたはHTTPSプロキシを指定してください。jarsignerに次のオプションを指定してください:
+or=または
+Certificate.not.found.for.alias.alias.must.reference.a.valid.KeyStore.entry.containing.an.X.509.public.key.certificate.for.the=証明書が見つかりませんでした: {0}。{1}はタイムスタンプ局のX.509公開キー証明書が含まれている有効なKeyStoreエントリを参照する必要があります。
+entry.was.signed.on=エントリは{0}に署名されました
+Warning.=警告:\u0020
+Error.=エラー:\u0020
+...Signer=>>> 署名者
+...TSA=>>> TSA
+trusted.certificate=信頼できる証明書
+This.jar.contains.unsigned.entries.which.have.not.been.integrity.checked.=このjarには、整合性チェックをしていない署名なしのエントリが含まれています。\u0020
+This.jar.contains.entries.whose.signer.certificate.has.expired.=このjarには、署名者の証明書が期限切れのエントリが含まれています。\u0020
+This.jar.contains.entries.whose.signer.certificate.will.expire.within.six.months.=このjarには、署名者の証明書が6か月以内に期限切れとなるエントリが含まれています。\u0020
+This.jar.contains.entries.whose.signer.certificate.is.not.yet.valid.=このjarには、署名者の証明書がまだ有効になっていないエントリが含まれています。\u0020
+This.jar.contains.entries.whose.signer.certificate.is.self.signed.=このjarには、署名者の証明書が自己署名されているエントリが含まれています。\u0020
+Re.run.with.the.verbose.and.certs.options.for.more.details.=詳細は、-verboseおよび-certsオプションを使用して再実行してください。
+The.signer.certificate.has.expired.=署名者の証明書は期限切れです。
+The.timestamp.expired.1.but.usable.2=タイムスタンプは%1$tY-%1$tm-%1$tdに期限切れになります。ただし、JARは署名者の証明書が%2$tY-%2$tm-%2$tdに期限切れになるまで有効です。
+The.timestamp.has.expired.=タイムスタンプは期限切れになりました。
+The.signer.certificate.will.expire.within.six.months.=署名者の証明書は6か月以内に期限切れになります。
+The.timestamp.will.expire.within.one.year.on.1=タイムスタンプは1年以内の%1$tY-%1$tm-%1$tdに期限切れになります。
+The.timestamp.will.expire.within.one.year.on.1.but.2=タイムスタンプは1年以内の%1$tY-%1$tm-%1$tdに期限切れになります。ただし、JARは署名者の証明書が%2$tY-%2$tm-%2$tdに期限切れになるまで有効です。
+The.signer.certificate.is.not.yet.valid.=署名者の証明書はまだ有効になっていません。
+The.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.=署名者証明書のKeyUsage拡張機能では、コード署名は許可されません。
+The.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.=署名者証明書のExtendedKeyUsage拡張機能では、コード署名は許可されません。
+The.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.=署名者証明書のNetscapeCertType拡張機能では、コード署名は許可されません。
+This.jar.contains.entries.whose.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.=このjarには、署名者証明書のKeyUsage拡張機能がコード署名を許可しないエントリが含まれています。
+This.jar.contains.entries.whose.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.=このjarには、署名者証明書のExtendedKeyUsage拡張機能がコード署名を許可しないエントリが含まれています。
+This.jar.contains.entries.whose.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.=このjarには、署名者証明書のNetscapeCertType拡張機能がコード署名を許可しないエントリが含まれています。
+.{0}.extension.does.not.support.code.signing.=[{0}拡張機能はコード署名をサポートしていません]
+The.signer.s.certificate.chain.is.invalid.reason.1=署名者の証明書チェーンが無効です。理由: %s
+The.tsa.certificate.chain.is.invalid.reason.1=TSA証明書チェーンが無効です。理由: %s
+The.signer.s.certificate.is.self.signed.=署名者の証明書は自己署名されています。
+The.1.algorithm.specified.for.the.2.option.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.=%1$sアルゴリズム(%2$sオプションに指定)は、セキュリティ・リスクとみなされます。このアルゴリズムは将来の更新で無効化されます。
+The.1.algorithm.specified.for.the.2.option.is.considered.a.security.risk.and.is.disabled.=%1$sアルゴリズム(%2$sオプションに指定)は、セキュリティ・リスクとみなされ、無効化されています。
+The.timestamp.digest.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.=%1$sタイムスタンプ・ダイジェスト・アルゴリズムは、セキュリティ・リスクとみなされます。このアルゴリズムは将来の更新で無効化されます。
+The.digest.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.=%1$sダイジェスト・アルゴリズムは、セキュリティ・リスクとみなされます。このアルゴリズムは将来の更新で無効化されます。
+The.signature.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.=%1$s署名アルゴリズムは、セキュリティ・リスクとみなされます。このアルゴリズムは将来の更新で無効化されます。
+size.bit.alg=%1$dビット%2$s
+The.full.keyAlgName.signing.key.is.considered.a.security.risk..It.will.be.disabled.in.a.future.update.=%s署名キーはセキュリティ・リスクとみなされます。今後の更新では無効になります。
+The.full.keyAlgName.signing.key.is.considered.a.security.risk.and.is.disabled.=%s署名キーはセキュリティ・リスクとみなされ、無効になっています。
+This.jar.contains.entries.whose.certificate.chain.is.invalid.reason.1=このjarには、証明書チェーンが無効なエントリが含まれています。理由: %s
+This.jar.contains.entries.whose.tsa.certificate.chain.is.invalid.reason.1=このjarには、TSA証明書チェーンが無効なエントリが含まれています。理由: %s
+no.timestamp.signing=-tsaまたは-tsacertが指定されていないため、このjarにはタイムスタンプが付加されていません。タイムスタンプがないと、署名者証明書の有効期限(%1$tY-%1$tm-%1$td)後に、ユーザーはこのjarを検証できない可能性があります。
+invalid.timestamp.signing=タイムスタンプが無効です。有効なタイムスタンプがないと、署名者証明書の有効期限(%1$tY-%1$tm-%1$td)後に、ユーザーはこのjarを検証できない可能性があります。
+no.timestamp.verifying=このjarには、タイムスタンプがない署名が含まれています。タイムスタンプがないと、いずれかの署名者証明書の有効期限後に(早ければ%1$tY-%1$tm-%1$td)ユーザーはこのjarを検証できない可能性があります。
+bad.timestamp.verifying=このjarには、無効なタイムスタンプのある署名が含まれています。有効なタイムスタンプがないと、いずれかの署名者証明書の有効期限後に(早ければ%1$tY-%1$tm-%1$td)ユーザーはこのjarを検証できない可能性があります。\n詳細は、-J-Djava.security.debug=jarを指定してjarsignerを再実行してください。
+The.signer.certificate.will.expire.on.1.=署名者の証明書は%1$tY-%1$tm-%1$tdに期限切れになります。
+The.timestamp.will.expire.on.1.=タイムスタンプは%1$tY-%1$tm-%1$tdに期限切れになります。
+signer.cert.expired.1.but.timestamp.good.2.=署名者の証明書は%1$tY-%1$tm-%1$tdに期限切れになります。ただし、JARはタイムスタンプが%2$tY-%2$tm-%2$tdに期限切れになるまで有効です。
+Unknown.password.type.=不明なパスワード・タイプ:\u0020
+Cannot.find.environment.variable.=環境変数が見つかりません:\u0020
+Cannot.find.file.=ファイルが見つかりません:\u0020
+event.ocsp.check=%sのOCSPサーバーに接続しています...
+event.crl.check=%sからCRLをダウンロードしています...
diff --git a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/resources/jarsigner_zh_CN.properties b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/resources/jarsigner_zh_CN.properties
new file mode 100644
index 0000000000000..2558239039f7c
--- /dev/null
+++ b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/resources/jarsigner_zh_CN.properties
@@ -0,0 +1,207 @@
+#
+# Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# shared (from jarsigner)
+SPACE=\u0020
+6SPACE=\u0020 \u0020
+COMMA=,\u0020
+provclass.not.a.provider=%s不是提供方
+provider.name.not.found=未找到名为 "%s" 的提供方
+provider.class.not.found=未找到提供方 "%s"
+jarsigner.error.=jarsigner 错误:\u0020
+Illegal.option.=非法选项:\u0020
+.keystore.must.be.NONE.if.storetype.is.{0}=如果 -storetype 为 {0}, 则 -keystore 必须为 NONE
+.keypass.can.not.be.specified.if.storetype.is.{0}=如果 -storetype 为 {0}, 则不能指定 -keypass
+If.protected.is.specified.then.storepass.and.keypass.must.not.be.specified=如果指定了 -protected, 则不能指定 -storepass 和 -keypass
+If.keystore.is.not.password.protected.then.storepass.and.keypass.must.not.be.specified=如果密钥库未受口令保护, 则不能指定 -storepass 和 -keypass
+Usage.jarsigner.options.jar.file.alias=用法: jarsigner [选项] jar-file 别名
+.jarsigner.verify.options.jar.file.alias.=\u0020 jarsigner -verify [选项] jar-file [别名...]
+.jarsigner.version=\u0020 jarsigner -version
+.keystore.url.keystore.location=[-keystore ] 密钥库位置
+.storepass.password.password.for.keystore.integrity=[-storepass <口令>] 用于密钥库完整性的口令
+.storetype.type.keystore.type=[-storetype <类型>] 密钥库类型
+.keypass.password.password.for.private.key.if.different.=[-keypass <口令>] 私有密钥的口令 (如果不同)
+.certchain.file.name.of.alternative.certchain.file=[-certchain <文件>] 替代证书链文件的名称
+.sigfile.file.name.of.SF.DSA.file=[-sigfile <文件>] .SF/.DSA 文件的名称
+.signedjar.file.name.of.signed.JAR.file=[-signedjar <文件>] 已签名的 JAR 文件的名称
+.digestalg.algorithm.name.of.digest.algorithm=[-digestalg <算法>] 摘要算法的名称
+.sigalg.algorithm.name.of.signature.algorithm=[-sigalg <算法>] 签名算法的名称
+.verify.verify.a.signed.JAR.file=[-verify] 验证已签名的 JAR 文件
+.version.print.the.program.version=[-version] 输出程序版本
+.verbose.suboptions.verbose.output.when.signing.verifying.=[-verbose[:suboptions]] 签名/验证时输出详细信息。
+.suboptions.can.be.all.grouped.or.summary=\u0020 子选项可以是 all, grouped 或 summary
+.certs.display.certificates.when.verbose.and.verifying=[-certs] 输出详细信息和验证时显示证书
+.certs.revocation.check=[-revCheck] 启用证书撤消检查
+.tsa.url.location.of.the.Timestamping.Authority=[-tsa ] 时间戳颁发机构的位置
+.tsacert.alias.public.key.certificate.for.Timestamping.Authority=[-tsacert <别名>] 时间戳颁发机构的公共密钥证书
+.tsapolicyid.tsapolicyid.for.Timestamping.Authority=[-tsapolicyid ] 时间戳颁发机构的 TSAPolicyID
+.tsadigestalg.algorithm.of.digest.data.in.timestamping.request=[-tsadigestalg <算法>] 时间戳请求中的摘要数据的算法
+.internalsf.include.the.SF.file.inside.the.signature.block=[-internalsf] 在签名块内包含 .SF 文件
+.sectionsonly.don.t.compute.hash.of.entire.manifest=[-sectionsonly] 不计算整个清单的散列
+.protected.keystore.has.protected.authentication.path=[-protected] 密钥库具有受保护验证路径
+.providerName.name.provider.name=[-providerName <名称>] 提供方名称
+.add.provider.option=[-addprovider <名称> 按名称 (例如 SunPKCS11) 添加安全提供方
+.providerArg.option.1=\u0020 [-providerArg <参数>]] ... 配置 -addprovider 的参数
+.providerClass.option=[-providerClass <类> 按全限定类名添加安全提供方
+.providerArg.option.2=\u0020 [-providerArg <参数>]] ... 配置 -providerClass 的参数
+.providerPath.option=[-providerPath ] 提供方类路径
+.strict.treat.warnings.as.errors=[-strict] 将警告视为错误
+.conf.url.specify.a.pre.configured.options.file=[-conf ] 指定预配置的选项文件
+.print.this.help.message=[-? -h --help] 输出此帮助消息
+Option.lacks.argument=选项缺少参数
+Please.type.jarsigner.help.for.usage=请键入 jarsigner --help 以了解用法
+Please.specify.jarfile.name=请指定 jarfile 名称
+Please.specify.alias.name=请指定别名
+Only.one.alias.can.be.specified=只能指定一个别名
+This.jar.contains.signed.entries.which.is.not.signed.by.the.specified.alias.es.=此 jar 包含未由指定别名签名的已签名条目。
+This.jar.contains.signed.entries.that.s.not.signed.by.alias.in.this.keystore.=此 jar 包含未由此密钥库中的别名签名的已签名条目。
+s=s
+m=m
+k=k
+X=X
+q=?
+.and.d.more.=(%d 及以上)
+.s.signature.was.verified.=\u0020 s = 已验证签名\u0020
+.m.entry.is.listed.in.manifest=\u0020 m = 在清单中列出条目
+.k.at.least.one.certificate.was.found.in.keystore=\u0020 k = 在密钥库中至少找到了一个证书
+.X.not.signed.by.specified.alias.es.=\u0020 X = 未由指定别名签名
+.q.unsigned.entry=\u0020 ? = 未签名条目
+no.manifest.=没有清单。
+.Signature.related.entries.=(与签名相关的条目)
+.Unsigned.entries.=(未签名条目)
+.Directory.entries.=(目录条目)
+jar.is.unsigned=jar 未签名。
+jar.treated.unsigned=警告: 签名无法解析或验证, 该 jar 将被视为未签名。有关详细信息, 请在启用调试的情况下重新运行 jarsigner (-J-Djava.security.debug=jar)。
+jar.treated.unsigned.see.weak=由于该 jar 是使用目前已禁用的弱算法签名的, 因此该 jar 将被视为未签名。\n\n有关详细信息, 请使用 -verbose 选项重新运行 jarsigner。
+jar.treated.unsigned.see.weak.verbose=警告: 该 jar 将被视为未签名, 因为它是由目前安全属性禁用的弱算法签名的:
+jar.signed.=jar 已签名。
+jar.signed.with.signer.errors.=jar 已签名, 但出现签名者错误。
+jar.verified.=jar 已验证。
+jar.verified.with.signer.errors.=jar 已验证, 但出现签名者错误。
+
+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
+history.without.ts=- 由 "%1$s" 签名\n 摘要算法: %2$s\n 签名算法: %3$s, %4$s
+history.nonexistent.entries=警告:不存在的签名条目:\u0020
+history.unparsable=- 无法解析的与签名相关的文件 %s
+history.nosf=- 缺少与签名相关的文件 META-INF/%s.SF
+history.nobk=- 与签名相关的文件 META-INF/%s.SF 缺少块文件
+
+with.weak=%s (弱)
+with.algparams.weak=%1$s 使用 %2$s(弱)
+with.disabled=%s(禁用)
+with.algparams.disabled=%1$s 使用 %2$s(禁用)
+key.bit=%s 密钥
+key.bit.weak=%s 密钥(弱)
+key.bit.disabled=%s 密钥(已禁用)
+nonexistent.entries.found=此 jar 的文件包含不存在的签名条目。有关更多详细信息,请参见 -verbose 输出。
+external.file.attributes.detected=检测到 POSIX 文件权限和/或 symlink 属性。这些属性在进行签名时会被忽略,不受该签名的保护。
+
+jarsigner.=jarsigner:\u0020
+signature.filename.must.consist.of.the.following.characters.A.Z.0.9.or.=签名文件名必须包含以下字符: A-Z, 0-9, _ 或 -
+unable.to.open.jar.file.=无法打开 jar 文件:\u0020
+unable.to.create.=无法创建:\u0020
+.adding.=\u0020 正在添加:\u0020
+.updating.=\u0020正在更新:\u0020
+.signing.=\u0020 正在签名:\u0020
+attempt.to.rename.signedJarFile.to.jarFile.failed=尝试将{0}重命名为{1}时失败
+attempt.to.rename.jarFile.to.origJar.failed=尝试将{0}重命名为{1}时失败
+unable.to.sign.jar.=无法对 jar 进行签名:\u0020
+Enter.Passphrase.for.keystore.=输入密钥库的密码短语:\u0020
+keystore.load.=密钥库加载:\u0020
+certificate.exception.=证书异常错误:\u0020
+unable.to.instantiate.keystore.class.=无法实例化密钥库类:\u0020
+Certificate.chain.not.found.for.alias.alias.must.reference.a.valid.KeyStore.key.entry.containing.a.private.key.and=找不到{0}的证书链。{1}必须引用包含私有密钥和相应的公共密钥证书链的有效密钥库密钥条目。
+File.specified.by.certchain.does.not.exist=由 -certchain 指定的文件不存在
+Cannot.restore.certchain.from.file.specified=无法从指定的文件还原 certchain
+Certificate.chain.not.found.in.the.file.specified.=在指定的文件中找不到证书链。
+found.non.X.509.certificate.in.signer.s.chain=在签名者的链中找到非 X.509 证书
+Enter.key.password.for.alias.=输入{0}的密钥口令:\u0020
+unable.to.recover.key.from.keystore=无法从密钥库中恢复密钥
+key.associated.with.alias.not.a.private.key=与{0}关联的密钥不是私有密钥
+you.must.enter.key.password=必须输入密钥口令
+unable.to.read.password.=无法读取口令:\u0020
+certificate.is.valid.from=证书的有效期为{0}至{1}
+certificate.expired.on=证书到期日期为 {0}
+certificate.is.not.valid.until=直到{0}, 证书才有效
+certificate.will.expire.on=证书将在{0}到期
+.Invalid.certificate.chain.=[无效的证书链:\u0020
+.Invalid.TSA.certificate.chain.=[无效 TSA 的证书链:\u0020
+requesting.a.signature.timestamp=正在请求签名时间戳
+TSA.location.=TSA 位置:\u0020
+TSA.certificate.=TSA 证书:\u0020
+no.response.from.the.Timestamping.Authority.=时间戳颁发机构没有响应。如果要从防火墙后面连接, 则可能需要指定 HTTP 或 HTTPS 代理。请为 jarsigner 提供以下选项:\u0020
+or=或
+Certificate.not.found.for.alias.alias.must.reference.a.valid.KeyStore.entry.containing.an.X.509.public.key.certificate.for.the=找不到{0}的证书。{1}必须引用包含时间戳颁发机构的 X.509 公共密钥证书的有效密钥库条目。
+entry.was.signed.on=条目的签名日期为 {0}
+Warning.=警告:\u0020
+Error.=错误:\u0020
+...Signer=>>> 签名者
+...TSA=>>> TSA
+trusted.certificate=可信证书
+This.jar.contains.unsigned.entries.which.have.not.been.integrity.checked.=此 jar 包含尚未进行完整性检查的未签名条目。\u0020
+This.jar.contains.entries.whose.signer.certificate.has.expired.=此 jar 包含签名者证书已过期的条目。\u0020
+This.jar.contains.entries.whose.signer.certificate.will.expire.within.six.months.=此 jar 包含签名者证书将在六个月内过期的条目。\u0020
+This.jar.contains.entries.whose.signer.certificate.is.not.yet.valid.=此 jar 包含签名者证书仍无效的条目。\u0020
+This.jar.contains.entries.whose.signer.certificate.is.self.signed.=此 jar 包含其签名者证书为自签名证书的条目。
+Re.run.with.the.verbose.and.certs.options.for.more.details.=有关详细信息, 请使用 -verbose 和 -certs 选项重新运行。
+The.signer.certificate.has.expired.=签名者证书已过期。
+The.timestamp.expired.1.but.usable.2=时间戳到期日期为 %1$tY-%1$tm-%1$td。不过,在签名者证书于 %2$tY-%2$tm-%2$td 到期之前,JAR 将有效。
+The.timestamp.has.expired.=时间戳已到期。
+The.signer.certificate.will.expire.within.six.months.=签名者证书将在六个月内过期。
+The.timestamp.will.expire.within.one.year.on.1=时间戳将在一年内于 %1$tY-%1$tm-%1$td 到期。
+The.timestamp.will.expire.within.one.year.on.1.but.2=时间戳将在一年内于 %1$tY-%1$tm-%1$td 到期。不过,在签名者证书于 %2$tY-%2$tm-%2$td 到期之前,JAR 将有效。
+The.signer.certificate.is.not.yet.valid.=签名者证书仍无效。
+The.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.=由于签名者证书的 KeyUsage 扩展而无法进行代码签名。
+The.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.=由于签名者证书的 ExtendedKeyUsage 扩展而无法进行代码签名。
+The.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.=由于签名者证书的 NetscapeCertType 扩展而无法进行代码签名。
+This.jar.contains.entries.whose.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.=此 jar 包含由于签名者证书的 KeyUsage 扩展而无法进行代码签名的条目。
+This.jar.contains.entries.whose.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.=此 jar 包含由于签名者证书的 ExtendedKeyUsage 扩展而无法进行代码签名的条目。
+This.jar.contains.entries.whose.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.=此 jar 包含由于签名者证书的 NetscapeCertType 扩展而无法进行代码签名的条目。
+.{0}.extension.does.not.support.code.signing.=[{0} 扩展不支持代码签名]
+The.signer.s.certificate.chain.is.invalid.reason.1=签名者证书链无效。原因: %s
+The.tsa.certificate.chain.is.invalid.reason.1=TSA 证书链无效。原因: %s
+The.signer.s.certificate.is.self.signed.=签名者证书为自签名证书。
+The.1.algorithm.specified.for.the.2.option.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.=为 %2$s 选项指定的 %1$s 算法被视为存在安全风险。此算法将在未来的更新中被禁用。
+The.1.algorithm.specified.for.the.2.option.is.considered.a.security.risk.and.is.disabled.=为 %2$s 选项指定的 %1$s 算法被视为存在安全风险而且被禁用。
+The.timestamp.digest.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.=%1$s 时间戳摘要算法被视为存在安全风险。此算法将在未来的更新中被禁用。
+The.digest.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.=%1$s 摘要算法被视为存在安全风险。此算法将在未来的更新中被禁用。
+The.signature.algorithm.1.is.considered.a.security.risk..This.algorithm.will.be.disabled.in.a.future.update.=%1$s 签名算法被视为存在安全风险。此算法将在未来的更新中被禁用。
+size.bit.alg=%1$d 位 %2$s
+The.full.keyAlgName.signing.key.is.considered.a.security.risk..It.will.be.disabled.in.a.future.update.=%s 签名密钥被视为安全风险。在将来的更新中将禁用它。
+The.full.keyAlgName.signing.key.is.considered.a.security.risk.and.is.disabled.=%s 签名密钥被视为安全风险并被禁用。
+This.jar.contains.entries.whose.certificate.chain.is.invalid.reason.1=此 jar 包含其证书链无效的条目。原因: %s
+This.jar.contains.entries.whose.tsa.certificate.chain.is.invalid.reason.1=此 jar 包含其 TSA 证书链无效的条目。原因: %s
+no.timestamp.signing=未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。如果没有时间戳, 则在签名者证书的到期日期 (%1$tY-%1$tm-%1$td) 之后, 用户可能无法验证此 jar。
+invalid.timestamp.signing=时间戳无效。如果没有有效的时间戳,则在签名者证书的到期日期 (%1$tY-%1$tm-%1$td) 之后,用户可能无法验证此 jar。
+no.timestamp.verifying=此 jar 包含的签名没有时间戳。如果没有时间戳, 则在其中任一签名者证书到期 (最早为 %1$tY-%1$tm-%1$td) 之后, 用户可能无法验证此 jar。
+bad.timestamp.verifying=此 jar 包含带有无效时间戳的签名。如果没有有效时间戳, 则在其中任一签名者证书到期 (最早为 %1$tY-%1$tm-%1$td) 之后, 用户可能无法验证此 jar。\n有关详细信息, 请使用 -J-Djava.security.debug=jar 重新运行 jarsigner。
+The.signer.certificate.will.expire.on.1.=签名者证书将于 %1$tY-%1$tm-%1$td 到期。
+The.timestamp.will.expire.on.1.=时间戳将于 %1$tY-%1$tm-%1$td 到期。
+signer.cert.expired.1.but.timestamp.good.2.=签名者证书到期日期为 %1$tY-%1$tm-%1$td。不过,在时间戳于 %2$tY-%2$tm-%2$td 到期之前,JAR 将有效。
+Unknown.password.type.=未知口令类型:\u0020
+Cannot.find.environment.variable.=找不到环境变量:\u0020
+Cannot.find.file.=找不到文件:\u0020
+event.ocsp.check=正在联系位于 %s 的 OCSP 服务器...
+event.crl.check=正在从 %s 下载 CRL...
diff --git a/test/jdk/sun/security/util/Resources/Usages.java b/test/jdk/sun/security/util/Resources/Usages.java
index 7b08ce4a6168f..1e0a7d7ef7086 100644
--- a/test/jdk/sun/security/util/Resources/Usages.java
+++ b/test/jdk/sun/security/util/Resources/Usages.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2025, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,11 +23,13 @@
/*
* @test
- * @bug 8215937
+ * @bug 8215937 8345940
* @modules java.base/sun.security.util
- * java.base/sun.security.tools.keytool
- * jdk.jartool/sun.security.tools.jarsigner
+ * java.base/sun.security.util.resources
+ * java.base/sun.security.tools.keytool.resources
+ * jdk.jartool/sun.security.tools.jarsigner.resources
* @summary Check usages of security-related Resources files
+ * @run main/othervm Usages
*/
import java.io.IOException;
@@ -106,17 +108,22 @@ public class Usages {
// For each Resources file, where and how the strings are used.
static Map> MAP = Map.of(
- new sun.security.tools.keytool.Resources(), List.of(
+ new sun.security.tools.keytool.resources.keytool(),
+ List.of(
new Pair("java.base/share/classes/sun/security/tools/keytool/Main.java",
List.of(RB_GETSTRING, KT_ENUM)),
new Pair("java.base/share/classes/sun/security/tools/KeyStoreUtil.java",
List.of(RB_GETSTRING))),
- new sun.security.util.AuthResources(), List.of(
+
+ new sun.security.util.resources.auth(),
+ List.of(
new Pair("java.base/share/classes/sun/security/provider/ConfigFile.java",
List.of(GETAUTHSTRING, IOEXCEPTION)),
new Pair("jdk.security.auth/share/classes/com/sun/security/auth/",
List.of(GETAUTHSTRING))),
- new sun.security.tools.jarsigner.Resources(), List.of(
+
+ new sun.security.tools.jarsigner.resources.jarsigner(),
+ List.of(
new Pair("jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java",
List.of(RB_GETSTRING)),
new Pair("java.base/share/classes/sun/security/provider/certpath/OCSP.java",
@@ -125,7 +132,9 @@ public class Usages {
List.of(EVENT_OCSP_CRL)),
new Pair("java.base/share/classes/sun/security/tools/KeyStoreUtil.java",
List.of(RB_GETSTRING))),
- new sun.security.util.Resources(), List.of(
+
+ new sun.security.util.resources.security(),
+ List.of(
new Pair("jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java",
List.of(MGR_GETSTRING)),
new Pair("java.base/share/classes/sun/security/provider/PolicyParser.java",
diff --git a/test/jdk/sun/security/util/Resources/customSysClassLoader/MessageFormatting.java b/test/jdk/sun/security/util/Resources/customSysClassLoader/MessageFormatting.java
index 63d1f47aa8977..d10958341a8c2 100644
--- a/test/jdk/sun/security/util/Resources/customSysClassLoader/MessageFormatting.java
+++ b/test/jdk/sun/security/util/Resources/customSysClassLoader/MessageFormatting.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2025, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -22,7 +22,6 @@
*/
import java.util.*;
-import sun.security.util.Resources;
import sun.security.util.LocalizedMessage;
import java.text.MessageFormat;
@@ -32,6 +31,7 @@
* @summary Ensure that security message formatting code is capable of
* displaying all messages.
* @modules java.base/sun.security.util
+ * java.base/sun.security.util.resources
* @run main MessageFormatting
* @run main/othervm -Duser.country=SA -Duser.language=ar MessageFormatting
*/
@@ -42,7 +42,7 @@ public class MessageFormatting {
public static void main(String[] args) throws Exception {
- Resources resources = new Resources();
+ ListResourceBundle resources = new sun.security.util.resources.security();
Enumeration keys = resources.getKeys();
while (keys.hasMoreElements()) {
String curKey = keys.nextElement();