jdk/src/share/classes/sun/security/util/Resources.java
changeset 7179 4afb81e50183
parent 6688 74c17eb999d2
child 9011 c08eb9697ee4
equal deleted inserted replaced
7178:03d19396adb9 7179:4afb81e50183
    33 public class Resources extends java.util.ListResourceBundle {
    33 public class Resources extends java.util.ListResourceBundle {
    34 
    34 
    35     private static final Object[][] contents = {
    35     private static final Object[][] contents = {
    36 
    36 
    37         // shared (from jarsigner)
    37         // shared (from jarsigner)
    38         {" ", " "},
    38         {"SPACE", " "},
    39         {"  ", "  "},
    39         {"2SPACE", "  "},
    40         {"      ", "      "},
    40         {"6SPACE", "      "},
    41         {", ", ", "},
    41         {"COMMA", ", "},
    42         // shared (from keytool)
    42         // shared (from keytool)
    43         {"\n", "\n"},
    43         {"NEWLINE", "\n"},
    44         {"*******************************************",
    44         {"STAR",
    45                 "*******************************************"},
    45                 "*******************************************"},
    46         {"*******************************************\n\n",
    46         {"STARNN",
    47                 "*******************************************\n\n"},
    47                 "*******************************************\n\n"},
    48 
    48 
    49         // keytool: Help part
    49         // keytool: Help part
    50         {" [OPTION]...", " [OPTION]..."},
    50         {".OPTION.", " [OPTION]..."},
    51         {"Options:", "Options:"},
    51         {"Options.", "Options:"},
    52         {"Use \"keytool -help\" for all available commands",
    52         {"Use.keytool.help.for.all.available.commands",
    53                  "Use \"keytool -help\" for all available commands"},
    53                  "Use \"keytool -help\" for all available commands"},
    54         {"Key and Certificate Management Tool",
    54         {"Key.and.Certificate.Management.Tool",
    55                  "Key and Certificate Management Tool"},
    55                  "Key and Certificate Management Tool"},
    56         {"Commands:", "Commands:"},
    56         {"Commands.", "Commands:"},
    57         {"Use \"keytool -command_name -help\" for usage of command_name",
    57         {"Use.keytool.command.name.help.for.usage.of.command.name",
    58                 "Use \"keytool -command_name -help\" for usage of command_name"},
    58                 "Use \"keytool -command_name -help\" for usage of command_name"},
    59         // keytool: help: commands
    59         // keytool: help: commands
    60         {"Generates a certificate request",
    60         {"Generates.a.certificate.request",
    61                 "Generates a certificate request"}, //-certreq
    61                 "Generates a certificate request"}, //-certreq
    62         {"Changes an entry's alias",
    62         {"Changes.an.entry.s.alias",
    63                 "Changes an entry's alias"}, //-changealias
    63                 "Changes an entry's alias"}, //-changealias
    64         {"Deletes an entry",
    64         {"Deletes.an.entry",
    65                 "Deletes an entry"}, //-delete
    65                 "Deletes an entry"}, //-delete
    66         {"Exports certificate",
    66         {"Exports.certificate",
    67                 "Exports certificate"}, //-exportcert
    67                 "Exports certificate"}, //-exportcert
    68         {"Generates a key pair",
    68         {"Generates.a.key.pair",
    69                 "Generates a key pair"}, //-genkeypair
    69                 "Generates a key pair"}, //-genkeypair
    70         {"Generates a secret key",
    70         {"Generates.a.secret.key",
    71                 "Generates a secret key"}, //-genseckey
    71                 "Generates a secret key"}, //-genseckey
    72         {"Generates certificate from a certificate request",
    72         {"Generates.certificate.from.a.certificate.request",
    73                 "Generates certificate from a certificate request"}, //-gencert
    73                 "Generates certificate from a certificate request"}, //-gencert
    74         {"Generates CRL", "Generates CRL"}, //-gencrl
    74         {"Generates.CRL", "Generates CRL"}, //-gencrl
    75         {"Imports entries from a JDK 1.1.x-style identity database",
    75         {"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
    76                 "Imports entries from a JDK 1.1.x-style identity database"}, //-identitydb
    76                 "Imports entries from a JDK 1.1.x-style identity database"}, //-identitydb
    77         {"Imports a certificate or a certificate chain",
    77         {"Imports.a.certificate.or.a.certificate.chain",
    78                 "Imports a certificate or a certificate chain"}, //-importcert
    78                 "Imports a certificate or a certificate chain"}, //-importcert
    79         {"Imports one or all entries from another keystore",
    79         {"Imports.one.or.all.entries.from.another.keystore",
    80                 "Imports one or all entries from another keystore"}, //-importkeystore
    80                 "Imports one or all entries from another keystore"}, //-importkeystore
    81         {"Clones a key entry",
    81         {"Clones.a.key.entry",
    82                 "Clones a key entry"}, //-keyclone
    82                 "Clones a key entry"}, //-keyclone
    83         {"Changes the key password of an entry",
    83         {"Changes.the.key.password.of.an.entry",
    84                 "Changes the key password of an entry"}, //-keypasswd
    84                 "Changes the key password of an entry"}, //-keypasswd
    85         {"Lists entries in a keystore",
    85         {"Lists.entries.in.a.keystore",
    86                 "Lists entries in a keystore"}, //-list
    86                 "Lists entries in a keystore"}, //-list
    87         {"Prints the content of a certificate",
    87         {"Prints.the.content.of.a.certificate",
    88                 "Prints the content of a certificate"}, //-printcert
    88                 "Prints the content of a certificate"}, //-printcert
    89         {"Prints the content of a certificate request",
    89         {"Prints.the.content.of.a.certificate.request",
    90                 "Prints the content of a certificate request"}, //-printcertreq
    90                 "Prints the content of a certificate request"}, //-printcertreq
    91         {"Prints the content of a CRL file",
    91         {"Prints.the.content.of.a.CRL.file",
    92                 "Prints the content of a CRL file"}, //-printcrl
    92                 "Prints the content of a CRL file"}, //-printcrl
    93         {"Generates a self-signed certificate",
    93         {"Generates.a.self.signed.certificate",
    94                 "Generates a self-signed certificate"}, //-selfcert
    94                 "Generates a self-signed certificate"}, //-selfcert
    95         {"Changes the store password of a keystore",
    95         {"Changes.the.store.password.of.a.keystore",
    96                 "Changes the store password of a keystore"}, //-storepasswd
    96                 "Changes the store password of a keystore"}, //-storepasswd
    97         // keytool: help: options
    97         // keytool: help: options
    98         {"alias name of the entry to process",
    98         {"alias.name.of.the.entry.to.process",
    99                 "alias name of the entry to process"}, //-alias
    99                 "alias name of the entry to process"}, //-alias
   100         {"destination alias",
   100         {"destination.alias",
   101                 "destination alias"}, //-destalias
   101                 "destination alias"}, //-destalias
   102         {"destination key password",
   102         {"destination.key.password",
   103                 "destination key password"}, //-destkeypass
   103                 "destination key password"}, //-destkeypass
   104         {"destination keystore name",
   104         {"destination.keystore.name",
   105                 "destination keystore name"}, //-destkeystore
   105                 "destination keystore name"}, //-destkeystore
   106         {"destination keystore password protected",
   106         {"destination.keystore.password.protected",
   107                 "destination keystore password protected"}, //-destprotected
   107                 "destination keystore password protected"}, //-destprotected
   108         {"destination keystore provider name",
   108         {"destination.keystore.provider.name",
   109                 "destination keystore provider name"}, //-destprovidername
   109                 "destination keystore provider name"}, //-destprovidername
   110         {"destination keystore password",
   110         {"destination.keystore.password",
   111                 "destination keystore password"}, //-deststorepass
   111                 "destination keystore password"}, //-deststorepass
   112         {"destination keystore type",
   112         {"destination.keystore.type",
   113                 "destination keystore type"}, //-deststoretype
   113                 "destination keystore type"}, //-deststoretype
   114         {"distinguished name",
   114         {"distinguished.name",
   115                 "distinguished name"}, //-dname
   115                 "distinguished name"}, //-dname
   116         {"X.509 extension",
   116         {"X.509.extension",
   117                 "X.509 extension"}, //-ext
   117                 "X.509 extension"}, //-ext
   118         {"output file name",
   118         {"output.file.name",
   119                 "output file name"}, //-file and -outfile
   119                 "output file name"}, //-file and -outfile
   120         {"input file name",
   120         {"input.file.name",
   121                 "input file name"}, //-file and -infile
   121                 "input file name"}, //-file and -infile
   122         {"key algorithm name",
   122         {"key.algorithm.name",
   123                 "key algorithm name"}, //-keyalg
   123                 "key algorithm name"}, //-keyalg
   124         {"key password",
   124         {"key.password",
   125                 "key password"}, //-keypass
   125                 "key password"}, //-keypass
   126         {"key bit size",
   126         {"key.bit.size",
   127                 "key bit size"}, //-keysize
   127                 "key bit size"}, //-keysize
   128         {"keystore name",
   128         {"keystore.name",
   129                 "keystore name"}, //-keystore
   129                 "keystore name"}, //-keystore
   130         {"new password",
   130         {"new.password",
   131                 "new password"}, //-new
   131                 "new password"}, //-new
   132         {"do not prompt",
   132         {"do.not.prompt",
   133                 "do not prompt"}, //-noprompt
   133                 "do not prompt"}, //-noprompt
   134         {"password through protected mechanism",
   134         {"password.through.protected.mechanism",
   135                 "password through protected mechanism"}, //-protected
   135                 "password through protected mechanism"}, //-protected
   136         {"provider argument",
   136         {"provider.argument",
   137                 "provider argument"}, //-providerarg
   137                 "provider argument"}, //-providerarg
   138         {"provider class name",
   138         {"provider.class.name",
   139                 "provider class name"}, //-providerclass
   139                 "provider class name"}, //-providerclass
   140         {"provider name",
   140         {"provider.name",
   141                 "provider name"}, //-providername
   141                 "provider name"}, //-providername
   142         {"provider classpath",
   142         {"provider.classpath",
   143                 "provider classpath"}, //-providerpath
   143                 "provider classpath"}, //-providerpath
   144         {"output in RFC style",
   144         {"output.in.RFC.style",
   145                 "output in RFC style"}, //-rfc
   145                 "output in RFC style"}, //-rfc
   146         {"signature algorithm name",
   146         {"signature.algorithm.name",
   147                 "signature algorithm name"}, //-sigalg
   147                 "signature algorithm name"}, //-sigalg
   148         {"source alias",
   148         {"source.alias",
   149                 "source alias"}, //-srcalias
   149                 "source alias"}, //-srcalias
   150         {"source key password",
   150         {"source.key.password",
   151                 "source key password"}, //-srckeypass
   151                 "source key password"}, //-srckeypass
   152         {"source keystore name",
   152         {"source.keystore.name",
   153                 "source keystore name"}, //-srckeystore
   153                 "source keystore name"}, //-srckeystore
   154         {"source keystore password protected",
   154         {"source.keystore.password.protected",
   155                 "source keystore password protected"}, //-srcprotected
   155                 "source keystore password protected"}, //-srcprotected
   156         {"source keystore provider name",
   156         {"source.keystore.provider.name",
   157                 "source keystore provider name"}, //-srcprovidername
   157                 "source keystore provider name"}, //-srcprovidername
   158         {"source keystore password",
   158         {"source.keystore.password",
   159                 "source keystore password"}, //-srcstorepass
   159                 "source keystore password"}, //-srcstorepass
   160         {"source keystore type",
   160         {"source.keystore.type",
   161                 "source keystore type"}, //-srcstoretype
   161                 "source keystore type"}, //-srcstoretype
   162         {"SSL server host and port",
   162         {"SSL.server.host.and.port",
   163                 "SSL server host and port"}, //-sslserver
   163                 "SSL server host and port"}, //-sslserver
   164         {"signed jar file",
   164         {"signed.jar.file",
   165                 "signed jar file"}, //=jarfile
   165                 "signed jar file"}, //=jarfile
   166         {"certificate validity start date/time",
   166         {"certificate.validity.start.date.time",
   167                 "certificate validity start date/time"}, //-startdate
   167                 "certificate validity start date/time"}, //-startdate
   168         {"keystore password",
   168         {"keystore.password",
   169                 "keystore password"}, //-storepass
   169                 "keystore password"}, //-storepass
   170         {"keystore type",
   170         {"keystore.type",
   171                 "keystore type"}, //-storetype
   171                 "keystore type"}, //-storetype
   172         {"trust certificates from cacerts",
   172         {"trust.certificates.from.cacerts",
   173                 "trust certificates from cacerts"}, //-trustcacerts
   173                 "trust certificates from cacerts"}, //-trustcacerts
   174         {"verbose output",
   174         {"verbose.output",
   175                 "verbose output"}, //-v
   175                 "verbose output"}, //-v
   176         {"validity number of days",
   176         {"validity.number.of.days",
   177                 "validity number of days"}, //-validity
   177                 "validity number of days"}, //-validity
   178         {"Serial ID of cert to revoke",
   178         {"Serial.ID.of.cert.to.revoke",
   179                  "Serial ID of cert to revoke"}, //-id
   179                  "Serial ID of cert to revoke"}, //-id
   180         // keytool: Running part
   180         // keytool: Running part
   181         {"keytool error: ", "keytool error: "},
   181         {"keytool.error.", "keytool error: "},
   182         {"Illegal option:  ", "Illegal option:  "},
   182         {"Illegal.option.", "Illegal option:  "},
   183         {"Illegal value: ", "Illegal value: "},
   183         {"Illegal.value.", "Illegal value: "},
   184         {"Unknown password type: ", "Unknown password type: "},
   184         {"Unknown.password.type.", "Unknown password type: "},
   185         {"Cannot find environment variable: ",
   185         {"Cannot.find.environment.variable.",
   186                 "Cannot find environment variable: "},
   186                 "Cannot find environment variable: "},
   187         {"Cannot find file: ", "Cannot find file: "},
   187         {"Cannot.find.file.", "Cannot find file: "},
   188         {"Command option <flag> needs an argument.", "Command option {0} needs an argument."},
   188         {"Command.option.flag.needs.an.argument.", "Command option {0} needs an argument."},
   189         {"Warning:  Different store and key passwords not supported for PKCS12 KeyStores. Ignoring user-specified <command> value.",
   189         {"Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.",
   190                 "Warning:  Different store and key passwords not supported for PKCS12 KeyStores. Ignoring user-specified {0} value."},
   190                 "Warning:  Different store and key passwords not supported for PKCS12 KeyStores. Ignoring user-specified {0} value."},
   191         {"-keystore must be NONE if -storetype is {0}",
   191         {".keystore.must.be.NONE.if.storetype.is.{0}",
   192                 "-keystore must be NONE if -storetype is {0}"},
   192                 "-keystore must be NONE if -storetype is {0}"},
   193         {"Too many retries, program terminated",
   193         {"Too.many.retries.program.terminated",
   194                  "Too many retries, program terminated"},
   194                  "Too many retries, program terminated"},
   195         {"-storepasswd and -keypasswd commands not supported if -storetype is {0}",
   195         {".storepasswd.and.keypasswd.commands.not.supported.if.storetype.is.{0}",
   196                 "-storepasswd and -keypasswd commands not supported if -storetype is {0}"},
   196                 "-storepasswd and -keypasswd commands not supported if -storetype is {0}"},
   197         {"-keypasswd commands not supported if -storetype is PKCS12",
   197         {".keypasswd.commands.not.supported.if.storetype.is.PKCS12",
   198                 "-keypasswd commands not supported if -storetype is PKCS12"},
   198                 "-keypasswd commands not supported if -storetype is PKCS12"},
   199         {"-keypass and -new can not be specified if -storetype is {0}",
   199         {".keypass.and.new.can.not.be.specified.if.storetype.is.{0}",
   200                 "-keypass and -new can not be specified if -storetype is {0}"},
   200                 "-keypass and -new can not be specified if -storetype is {0}"},
   201         {"if -protected is specified, then -storepass, -keypass, and -new must not be specified",
   201         {"if.protected.is.specified.then.storepass.keypass.and.new.must.not.be.specified",
   202                 "if -protected is specified, then -storepass, -keypass, and -new must not be specified"},
   202                 "if -protected is specified, then -storepass, -keypass, and -new must not be specified"},
   203         {"if -srcprotected is specified, then -srcstorepass and -srckeypass must not be specified",
   203         {"if.srcprotected.is.specified.then.srcstorepass.and.srckeypass.must.not.be.specified",
   204                 "if -srcprotected is specified, then -srcstorepass and -srckeypass must not be specified"},
   204                 "if -srcprotected is specified, then -srcstorepass and -srckeypass must not be specified"},
   205         {"if keystore is not password protected, then -storepass, -keypass, and -new must not be specified",
   205         {"if.keystore.is.not.password.protected.then.storepass.keypass.and.new.must.not.be.specified",
   206                 "if keystore is not password protected, then -storepass, -keypass, and -new must not be specified"},
   206                 "if keystore is not password protected, then -storepass, -keypass, and -new must not be specified"},
   207         {"if source keystore is not password protected, then -srcstorepass and -srckeypass must not be specified",
   207         {"if.source.keystore.is.not.password.protected.then.srcstorepass.and.srckeypass.must.not.be.specified",
   208                 "if source keystore is not password protected, then -srcstorepass and -srckeypass must not be specified"},
   208                 "if source keystore is not password protected, then -srcstorepass and -srckeypass must not be specified"},
   209         {"Illegal startdate value", "Illegal startdate value"},
   209         {"Illegal.startdate.value", "Illegal startdate value"},
   210         {"Validity must be greater than zero",
   210         {"Validity.must.be.greater.than.zero",
   211                 "Validity must be greater than zero"},
   211                 "Validity must be greater than zero"},
   212         {"provName not a provider", "{0} not a provider"},
   212         {"provName.not.a.provider", "{0} not a provider"},
   213         {"Usage error: no command provided", "Usage error: no command provided"},
   213         {"Usage.error.no.command.provided", "Usage error: no command provided"},
   214         {"Source keystore file exists, but is empty: ", "Source keystore file exists, but is empty: "},
   214         {"Source.keystore.file.exists.but.is.empty.", "Source keystore file exists, but is empty: "},
   215         {"Please specify -srckeystore", "Please specify -srckeystore"},
   215         {"Please.specify.srckeystore", "Please specify -srckeystore"},
   216         {"Must not specify both -v and -rfc with 'list' command",
   216         {"Must.not.specify.both.v.and.rfc.with.list.command",
   217                 "Must not specify both -v and -rfc with 'list' command"},
   217                 "Must not specify both -v and -rfc with 'list' command"},
   218         {"Key password must be at least 6 characters",
   218         {"Key.password.must.be.at.least.6.characters",
   219                 "Key password must be at least 6 characters"},
   219                 "Key password must be at least 6 characters"},
   220         {"New password must be at least 6 characters",
   220         {"New.password.must.be.at.least.6.characters",
   221                 "New password must be at least 6 characters"},
   221                 "New password must be at least 6 characters"},
   222         {"Keystore file exists, but is empty: ",
   222         {"Keystore.file.exists.but.is.empty.",
   223                 "Keystore file exists, but is empty: "},
   223                 "Keystore file exists, but is empty: "},
   224         {"Keystore file does not exist: ",
   224         {"Keystore.file.does.not.exist.",
   225                 "Keystore file does not exist: "},
   225                 "Keystore file does not exist: "},
   226         {"Must specify destination alias", "Must specify destination alias"},
   226         {"Must.specify.destination.alias", "Must specify destination alias"},
   227         {"Must specify alias", "Must specify alias"},
   227         {"Must.specify.alias", "Must specify alias"},
   228         {"Keystore password must be at least 6 characters",
   228         {"Keystore.password.must.be.at.least.6.characters",
   229                 "Keystore password must be at least 6 characters"},
   229                 "Keystore password must be at least 6 characters"},
   230         {"Enter keystore password:  ", "Enter keystore password:  "},
   230         {"Enter.keystore.password.", "Enter keystore password:  "},
   231         {"Enter source keystore password:  ", "Enter source keystore password:  "},
   231         {"Enter.source.keystore.password.", "Enter source keystore password:  "},
   232         {"Enter destination keystore password:  ", "Enter destination keystore password:  "},
   232         {"Enter.destination.keystore.password.", "Enter destination keystore password:  "},
   233         {"Keystore password is too short - must be at least 6 characters",
   233         {"Keystore.password.is.too.short.must.be.at.least.6.characters",
   234          "Keystore password is too short - must be at least 6 characters"},
   234          "Keystore password is too short - must be at least 6 characters"},
   235         {"Unknown Entry Type", "Unknown Entry Type"},
   235         {"Unknown.Entry.Type", "Unknown Entry Type"},
   236         {"Too many failures. Alias not changed", "Too many failures. Alias not changed"},
   236         {"Too.many.failures.Alias.not.changed", "Too many failures. Alias not changed"},
   237         {"Entry for alias <alias> successfully imported.",
   237         {"Entry.for.alias.alias.successfully.imported.",
   238                  "Entry for alias {0} successfully imported."},
   238                  "Entry for alias {0} successfully imported."},
   239         {"Entry for alias <alias> not imported.", "Entry for alias {0} not imported."},
   239         {"Entry.for.alias.alias.not.imported.", "Entry for alias {0} not imported."},
   240         {"Problem importing entry for alias <alias>: <exception>.\nEntry for alias <alias> not imported.",
   240         {"Problem.importing.entry.for.alias.alias.exception.Entry.for.alias.alias.not.imported.",
   241                  "Problem importing entry for alias {0}: {1}.\nEntry for alias {0} not imported."},
   241                  "Problem importing entry for alias {0}: {1}.\nEntry for alias {0} not imported."},
   242         {"Import command completed:  <ok> entries successfully imported, <fail> entries failed or cancelled",
   242         {"Import.command.completed.ok.entries.successfully.imported.fail.entries.failed.or.cancelled",
   243                  "Import command completed:  {0} entries successfully imported, {1} entries failed or cancelled"},
   243                  "Import command completed:  {0} entries successfully imported, {1} entries failed or cancelled"},
   244         {"Warning: Overwriting existing alias <alias> in destination keystore",
   244         {"Warning.Overwriting.existing.alias.alias.in.destination.keystore",
   245                  "Warning: Overwriting existing alias {0} in destination keystore"},
   245                  "Warning: Overwriting existing alias {0} in destination keystore"},
   246         {"Existing entry alias <alias> exists, overwrite? [no]:  ",
   246         {"Existing.entry.alias.alias.exists.overwrite.no.",
   247                  "Existing entry alias {0} exists, overwrite? [no]:  "},
   247                  "Existing entry alias {0} exists, overwrite? [no]:  "},
   248         {"Too many failures - try later", "Too many failures - try later"},
   248         {"Too.many.failures.try.later", "Too many failures - try later"},
   249         {"Certification request stored in file <filename>",
   249         {"Certification.request.stored.in.file.filename.",
   250                 "Certification request stored in file <{0}>"},
   250                 "Certification request stored in file <{0}>"},
   251         {"Submit this to your CA", "Submit this to your CA"},
   251         {"Submit.this.to.your.CA", "Submit this to your CA"},
   252         {"if alias not specified, destalias, srckeypass, and destkeypass must not be specified",
   252         {"if.alias.not.specified.destalias.srckeypass.and.destkeypass.must.not.be.specified",
   253             "if alias not specified, destalias, srckeypass, and destkeypass must not be specified"},
   253             "if alias not specified, destalias, srckeypass, and destkeypass must not be specified"},
   254         {"Certificate stored in file <filename>",
   254         {"Certificate.stored.in.file.filename.",
   255                 "Certificate stored in file <{0}>"},
   255                 "Certificate stored in file <{0}>"},
   256         {"Certificate reply was installed in keystore",
   256         {"Certificate.reply.was.installed.in.keystore",
   257                 "Certificate reply was installed in keystore"},
   257                 "Certificate reply was installed in keystore"},
   258         {"Certificate reply was not installed in keystore",
   258         {"Certificate.reply.was.not.installed.in.keystore",
   259                 "Certificate reply was not installed in keystore"},
   259                 "Certificate reply was not installed in keystore"},
   260         {"Certificate was added to keystore",
   260         {"Certificate.was.added.to.keystore",
   261                 "Certificate was added to keystore"},
   261                 "Certificate was added to keystore"},
   262         {"Certificate was not added to keystore",
   262         {"Certificate.was.not.added.to.keystore",
   263                 "Certificate was not added to keystore"},
   263                 "Certificate was not added to keystore"},
   264         {"[Storing ksfname]", "[Storing {0}]"},
   264         {".Storing.ksfname.", "[Storing {0}]"},
   265         {"alias has no public key (certificate)",
   265         {"alias.has.no.public.key.certificate.",
   266                 "{0} has no public key (certificate)"},
   266                 "{0} has no public key (certificate)"},
   267         {"Cannot derive signature algorithm",
   267         {"Cannot.derive.signature.algorithm",
   268                 "Cannot derive signature algorithm"},
   268                 "Cannot derive signature algorithm"},
   269         {"Alias <alias> does not exist",
   269         {"Alias.alias.does.not.exist",
   270                 "Alias <{0}> does not exist"},
   270                 "Alias <{0}> does not exist"},
   271         {"Alias <alias> has no certificate",
   271         {"Alias.alias.has.no.certificate",
   272                 "Alias <{0}> has no certificate"},
   272                 "Alias <{0}> has no certificate"},
   273         {"Key pair not generated, alias <alias> already exists",
   273         {"Key.pair.not.generated.alias.alias.already.exists",
   274                 "Key pair not generated, alias <{0}> already exists"},
   274                 "Key pair not generated, alias <{0}> already exists"},
   275         {"Generating keysize bit keyAlgName key pair and self-signed certificate (sigAlgName) with a validity of validality days\n\tfor: x500Name",
   275         {"Generating.keysize.bit.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.validality.days.for",
   276                 "Generating {0} bit {1} key pair and self-signed certificate ({2}) with a validity of {3} days\n\tfor: {4}"},
   276                 "Generating {0} bit {1} key pair and self-signed certificate ({2}) with a validity of {3} days\n\tfor: {4}"},
   277         {"Enter key password for <alias>", "Enter key password for <{0}>"},
   277         {"Enter.key.password.for.alias.", "Enter key password for <{0}>"},
   278         {"\t(RETURN if same as keystore password):  ",
   278         {".RETURN.if.same.as.keystore.password.",
   279                 "\t(RETURN if same as keystore password):  "},
   279                 "\t(RETURN if same as keystore password):  "},
   280         {"Key password is too short - must be at least 6 characters",
   280         {"Key.password.is.too.short.must.be.at.least.6.characters",
   281                 "Key password is too short - must be at least 6 characters"},
   281                 "Key password is too short - must be at least 6 characters"},
   282         {"Too many failures - key not added to keystore",
   282         {"Too.many.failures.key.not.added.to.keystore",
   283                 "Too many failures - key not added to keystore"},
   283                 "Too many failures - key not added to keystore"},
   284         {"Destination alias <dest> already exists",
   284         {"Destination.alias.dest.already.exists",
   285                 "Destination alias <{0}> already exists"},
   285                 "Destination alias <{0}> already exists"},
   286         {"Password is too short - must be at least 6 characters",
   286         {"Password.is.too.short.must.be.at.least.6.characters",
   287                 "Password is too short - must be at least 6 characters"},
   287                 "Password is too short - must be at least 6 characters"},
   288         {"Too many failures. Key entry not cloned",
   288         {"Too.many.failures.Key.entry.not.cloned",
   289                 "Too many failures. Key entry not cloned"},
   289                 "Too many failures. Key entry not cloned"},
   290         {"key password for <alias>", "key password for <{0}>"},
   290         {"key.password.for.alias.", "key password for <{0}>"},
   291         {"Keystore entry for <id.getName()> already exists",
   291         {"Keystore.entry.for.id.getName.already.exists",
   292                 "Keystore entry for <{0}> already exists"},
   292                 "Keystore entry for <{0}> already exists"},
   293         {"Creating keystore entry for <id.getName()> ...",
   293         {"Creating.keystore.entry.for.id.getName.",
   294                 "Creating keystore entry for <{0}> ..."},
   294                 "Creating keystore entry for <{0}> ..."},
   295         {"No entries from identity database added",
   295         {"No.entries.from.identity.database.added",
   296                 "No entries from identity database added"},
   296                 "No entries from identity database added"},
   297         {"Alias name: alias", "Alias name: {0}"},
   297         {"Alias.name.alias", "Alias name: {0}"},
   298         {"Creation date: keyStore.getCreationDate(alias)",
   298         {"Creation.date.keyStore.getCreationDate.alias.",
   299                 "Creation date: {0,date}"},
   299                 "Creation date: {0,date}"},
   300         {"alias, keyStore.getCreationDate(alias), ",
   300         {"alias.keyStore.getCreationDate.alias.",
   301                 "{0}, {1,date}, "},
   301                 "{0}, {1,date}, "},
   302         {"alias, ", "{0}, "},
   302         {"alias.", "{0}, "},
   303         {"Entry type: <type>", "Entry type: {0}"},
   303         {"Entry.type.type.", "Entry type: {0}"},
   304         {"Certificate chain length: ", "Certificate chain length: "},
   304         {"Certificate.chain.length.", "Certificate chain length: "},
   305         {"Certificate[(i + 1)]:", "Certificate[{0,number,integer}]:"},
   305         {"Certificate.i.1.", "Certificate[{0,number,integer}]:"},
   306         {"Certificate fingerprint (SHA1): ", "Certificate fingerprint (SHA1): "},
   306         {"Certificate.fingerprint.SHA1.", "Certificate fingerprint (SHA1): "},
   307         {"Entry type: trustedCertEntry\n", "Entry type: trustedCertEntry\n"},
   307         {"Entry.type.trustedCertEntry.", "Entry type: trustedCertEntry\n"},
   308         {"trustedCertEntry,", "trustedCertEntry,"},
   308         {"trustedCertEntry.", "trustedCertEntry,"},
   309         {"Keystore type: ", "Keystore type: "},
   309         {"Keystore.type.", "Keystore type: "},
   310         {"Keystore provider: ", "Keystore provider: "},
   310         {"Keystore.provider.", "Keystore provider: "},
   311         {"Your keystore contains keyStore.size() entry",
   311         {"Your.keystore.contains.keyStore.size.entry",
   312                 "Your keystore contains {0,number,integer} entry"},
   312                 "Your keystore contains {0,number,integer} entry"},
   313         {"Your keystore contains keyStore.size() entries",
   313         {"Your.keystore.contains.keyStore.size.entries",
   314                 "Your keystore contains {0,number,integer} entries"},
   314                 "Your keystore contains {0,number,integer} entries"},
   315         {"Failed to parse input", "Failed to parse input"},
   315         {"Failed.to.parse.input", "Failed to parse input"},
   316         {"Empty input", "Empty input"},
   316         {"Empty.input", "Empty input"},
   317         {"Not X.509 certificate", "Not X.509 certificate"},
   317         {"Not.X.509.certificate", "Not X.509 certificate"},
   318         {"alias has no public key", "{0} has no public key"},
   318         {"alias.has.no.public.key", "{0} has no public key"},
   319         {"alias has no X.509 certificate", "{0} has no X.509 certificate"},
   319         {"alias.has.no.X.509.certificate", "{0} has no X.509 certificate"},
   320         {"New certificate (self-signed):", "New certificate (self-signed):"},
   320         {"New.certificate.self.signed.", "New certificate (self-signed):"},
   321         {"Reply has no certificates", "Reply has no certificates"},
   321         {"Reply.has.no.certificates", "Reply has no certificates"},
   322         {"Certificate not imported, alias <alias> already exists",
   322         {"Certificate.not.imported.alias.alias.already.exists",
   323                 "Certificate not imported, alias <{0}> already exists"},
   323                 "Certificate not imported, alias <{0}> already exists"},
   324         {"Input not an X.509 certificate", "Input not an X.509 certificate"},
   324         {"Input.not.an.X.509.certificate", "Input not an X.509 certificate"},
   325         {"Certificate already exists in keystore under alias <trustalias>",
   325         {"Certificate.already.exists.in.keystore.under.alias.trustalias.",
   326                 "Certificate already exists in keystore under alias <{0}>"},
   326                 "Certificate already exists in keystore under alias <{0}>"},
   327         {"Do you still want to add it? [no]:  ",
   327         {"Do.you.still.want.to.add.it.no.",
   328                 "Do you still want to add it? [no]:  "},
   328                 "Do you still want to add it? [no]:  "},
   329         {"Certificate already exists in system-wide CA keystore under alias <trustalias>",
   329         {"Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.",
   330                 "Certificate already exists in system-wide CA keystore under alias <{0}>"},
   330                 "Certificate already exists in system-wide CA keystore under alias <{0}>"},
   331         {"Do you still want to add it to your own keystore? [no]:  ",
   331         {"Do.you.still.want.to.add.it.to.your.own.keystore.no.",
   332                 "Do you still want to add it to your own keystore? [no]:  "},
   332                 "Do you still want to add it to your own keystore? [no]:  "},
   333         {"Trust this certificate? [no]:  ", "Trust this certificate? [no]:  "},
   333         {"Trust.this.certificate.no.", "Trust this certificate? [no]:  "},
   334         {"YES", "YES"},
   334         {"YES", "YES"},
   335         {"New prompt: ", "New {0}: "},
   335         {"New.prompt.", "New {0}: "},
   336         {"Passwords must differ", "Passwords must differ"},
   336         {"Passwords.must.differ", "Passwords must differ"},
   337         {"Re-enter new prompt: ", "Re-enter new {0}: "},
   337         {"Re.enter.new.prompt.", "Re-enter new {0}: "},
   338         {"Re-enter new password: ", "Re-enter new password: "},
   338         {"Re.enter.new.password.", "Re-enter new password: "},
   339         {"They don't match. Try again", "They don't match. Try again"},
   339         {"They.don.t.match.Try.again", "They don't match. Try again"},
   340         {"Enter prompt alias name:  ", "Enter {0} alias name:  "},
   340         {"Enter.prompt.alias.name.", "Enter {0} alias name:  "},
   341         {"Enter new alias name\t(RETURN to cancel import for this entry):  ",
   341         {"Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.",
   342                  "Enter new alias name\t(RETURN to cancel import for this entry):  "},
   342                  "Enter new alias name\t(RETURN to cancel import for this entry):  "},
   343         {"Enter alias name:  ", "Enter alias name:  "},
   343         {"Enter.alias.name.", "Enter alias name:  "},
   344         {"\t(RETURN if same as for <otherAlias>)",
   344         {".RETURN.if.same.as.for.otherAlias.",
   345                 "\t(RETURN if same as for <{0}>)"},
   345                 "\t(RETURN if same as for <{0}>)"},
   346         {"*PATTERN* printX509Cert",
   346         {".PATTERN.printX509Cert",
   347                 "Owner: {0}\nIssuer: {1}\nSerial number: {2}\nValid from: {3} until: {4}\nCertificate fingerprints:\n\t MD5:  {5}\n\t SHA1: {6}\n\t SHA256: {7}\n\t Signature algorithm name: {8}\n\t Version: {9}"},
   347                 "Owner: {0}\nIssuer: {1}\nSerial number: {2}\nValid from: {3} until: {4}\nCertificate fingerprints:\n\t MD5:  {5}\n\t SHA1: {6}\n\t SHA256: {7}\n\t Signature algorithm name: {8}\n\t Version: {9}"},
   348         {"What is your first and last name?",
   348         {"What.is.your.first.and.last.name.",
   349                 "What is your first and last name?"},
   349                 "What is your first and last name?"},
   350         {"What is the name of your organizational unit?",
   350         {"What.is.the.name.of.your.organizational.unit.",
   351                 "What is the name of your organizational unit?"},
   351                 "What is the name of your organizational unit?"},
   352         {"What is the name of your organization?",
   352         {"What.is.the.name.of.your.organization.",
   353                 "What is the name of your organization?"},
   353                 "What is the name of your organization?"},
   354         {"What is the name of your City or Locality?",
   354         {"What.is.the.name.of.your.City.or.Locality.",
   355                 "What is the name of your City or Locality?"},
   355                 "What is the name of your City or Locality?"},
   356         {"What is the name of your State or Province?",
   356         {"What.is.the.name.of.your.State.or.Province.",
   357                 "What is the name of your State or Province?"},
   357                 "What is the name of your State or Province?"},
   358         {"What is the two-letter country code for this unit?",
   358         {"What.is.the.two.letter.country.code.for.this.unit.",
   359                 "What is the two-letter country code for this unit?"},
   359                 "What is the two-letter country code for this unit?"},
   360         {"Is <name> correct?", "Is {0} correct?"},
   360         {"Is.name.correct.", "Is {0} correct?"},
   361         {"no", "no"},
   361         {"no", "no"},
   362         {"yes", "yes"},
   362         {"yes", "yes"},
   363         {"y", "y"},
   363         {"y", "y"},
   364         {"  [defaultValue]:  ", "  [{0}]:  "},
   364         {".defaultValue.", "  [{0}]:  "},
   365         {"Alias <alias> has no key",
   365         {"Alias.alias.has.no.key",
   366                 "Alias <{0}> has no key"},
   366                 "Alias <{0}> has no key"},
   367         {"Alias <alias> references an entry type that is not a private key entry.  The -keyclone command only supports cloning of private key entries",
   367         {"Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key",
   368                  "Alias <{0}> references an entry type that is not a private key entry.  The -keyclone command only supports cloning of private key entries"},
   368                  "Alias <{0}> references an entry type that is not a private key entry.  The -keyclone command only supports cloning of private key entries"},
   369 
   369 
   370         {"*****************  WARNING WARNING WARNING  *****************",
   370         {".WARNING.WARNING.WARNING.",
   371             "*****************  WARNING WARNING WARNING  *****************"},
   371             "*****************  WARNING WARNING WARNING  *****************"},
   372         {"Signer #%d:", "Signer #%d:"},
   372         {"Signer.d.", "Signer #%d:"},
   373         {"Timestamp:", "Timestamp:"},
   373         {"Timestamp.", "Timestamp:"},
   374         {"Signature:", "Signature:"},
   374         {"Signature.", "Signature:"},
   375         {"CRLs:", "CRLs:"},
   375         {"CRLs.", "CRLs:"},
   376         {"Certificate owner: ", "Certificate owner: "},
   376         {"Certificate.owner.", "Certificate owner: "},
   377         {"Not a signed jar file", "Not a signed jar file"},
   377         {"Not.a.signed.jar.file", "Not a signed jar file"},
   378         {"No certificate from the SSL server",
   378         {"No.certificate.from.the.SSL.server",
   379                 "No certificate from the SSL server"},
   379                 "No certificate from the SSL server"},
   380 
   380 
   381         // Translators of the following 5 pairs, ATTENTION:
   381         // Translators of the following 5 pairs, ATTENTION:
   382         // the next 5 string pairs are meant to be combined into 2 paragraphs,
   382         // the next 5 string pairs are meant to be combined into 2 paragraphs,
   383         // 1+3+4 and 2+3+5. make sure your translation also does.
   383         // 1+3+4 and 2+3+5. make sure your translation also does.
   384         {"* The integrity of the information stored in your keystore  *",
   384         {".The.integrity.of.the.information.stored.in.your.keystore.",
   385             "* The integrity of the information stored in your keystore  *"},
   385             "* The integrity of the information stored in your keystore  *"},
   386         {"* The integrity of the information stored in the srckeystore*",
   386         {".The.integrity.of.the.information.stored.in.the.srckeystore.",
   387             "* The integrity of the information stored in the srckeystore*"},
   387             "* The integrity of the information stored in the srckeystore*"},
   388         {"* has NOT been verified!  In order to verify its integrity, *",
   388         {".has.NOT.been.verified.In.order.to.verify.its.integrity.",
   389             "* has NOT been verified!  In order to verify its integrity, *"},
   389             "* has NOT been verified!  In order to verify its integrity, *"},
   390         {"* you must provide your keystore password.                  *",
   390         {".you.must.provide.your.keystore.password.",
   391             "* you must provide your keystore password.                  *"},
   391             "* you must provide your keystore password.                  *"},
   392         {"* you must provide the srckeystore password.                *",
   392         {".you.must.provide.the.srckeystore.password.",
   393             "* you must provide the srckeystore password.                *"},
   393             "* you must provide the srckeystore password.                *"},
   394 
   394 
   395 
   395 
   396         {"Certificate reply does not contain public key for <alias>",
   396         {"Certificate.reply.does.not.contain.public.key.for.alias.",
   397                 "Certificate reply does not contain public key for <{0}>"},
   397                 "Certificate reply does not contain public key for <{0}>"},
   398         {"Incomplete certificate chain in reply",
   398         {"Incomplete.certificate.chain.in.reply",
   399                 "Incomplete certificate chain in reply"},
   399                 "Incomplete certificate chain in reply"},
   400         {"Certificate chain in reply does not verify: ",
   400         {"Certificate.chain.in.reply.does.not.verify.",
   401                 "Certificate chain in reply does not verify: "},
   401                 "Certificate chain in reply does not verify: "},
   402         {"Top-level certificate in reply:\n",
   402         {"Top.level.certificate.in.reply.",
   403                 "Top-level certificate in reply:\n"},
   403                 "Top-level certificate in reply:\n"},
   404         {"... is not trusted. ", "... is not trusted. "},
   404         {".is.not.trusted.", "... is not trusted. "},
   405         {"Install reply anyway? [no]:  ", "Install reply anyway? [no]:  "},
   405         {"Install.reply.anyway.no.", "Install reply anyway? [no]:  "},
   406         {"NO", "NO"},
   406         {"NO", "NO"},
   407         {"Public keys in reply and keystore don't match",
   407         {"Public.keys.in.reply.and.keystore.don.t.match",
   408                 "Public keys in reply and keystore don't match"},
   408                 "Public keys in reply and keystore don't match"},
   409         {"Certificate reply and certificate in keystore are identical",
   409         {"Certificate.reply.and.certificate.in.keystore.are.identical",
   410                 "Certificate reply and certificate in keystore are identical"},
   410                 "Certificate reply and certificate in keystore are identical"},
   411         {"Failed to establish chain from reply",
   411         {"Failed.to.establish.chain.from.reply",
   412                 "Failed to establish chain from reply"},
   412                 "Failed to establish chain from reply"},
   413         {"n", "n"},
   413         {"n", "n"},
   414         {"Wrong answer, try again", "Wrong answer, try again"},
   414         {"Wrong.answer.try.again", "Wrong answer, try again"},
   415         {"Secret key not generated, alias <alias> already exists",
   415         {"Secret.key.not.generated.alias.alias.already.exists",
   416                 "Secret Key not generated, alias <{0}> already exists"},
   416                 "Secret Key not generated, alias <{0}> already exists"},
   417         {"Please provide -keysize for secret key generation",
   417         {"Please.provide.keysize.for.secret.key.generation",
   418                 "Please provide -keysize for secret key generation"},
   418                 "Please provide -keysize for secret key generation"},
   419 
   419 
   420         {"Extensions: ", "Extensions: "},
   420         {"Extensions.", "Extensions: "},
   421         {"(Empty value)", "(Empty value)"},
   421         {".Empty.value.", "(Empty value)"},
   422         {"Extension Request:", "Extension Request:"},
   422         {"Extension.Request.", "Extension Request:"},
   423         {"PKCS #10 Certificate Request (Version 1.0)\n" +
   423         {"PKCS.10.Certificate.Request.Version.1.0.Subject.s.Public.Key.s.format.s.key.",
   424                 "Subject: %s\nPublic Key: %s format %s key\n",
       
   425                 "PKCS #10 Certificate Request (Version 1.0)\n" +
   424                 "PKCS #10 Certificate Request (Version 1.0)\n" +
   426                 "Subject: %s\nPublic Key: %s format %s key\n"},
   425                 "Subject: %s\nPublic Key: %s format %s key\n"},
   427         {"Unknown keyUsage type: ", "Unknown keyUsage type: "},
   426         {"Unknown.keyUsage.type.", "Unknown keyUsage type: "},
   428         {"Unknown extendedkeyUsage type: ", "Unknown extendedkeyUsage type: "},
   427         {"Unknown.extendedkeyUsage.type.", "Unknown extendedkeyUsage type: "},
   429         {"Unknown AccessDescription type: ", "Unknown AccessDescription type: "},
   428         {"Unknown.AccessDescription.type.", "Unknown AccessDescription type: "},
   430         {"Unrecognized GeneralName type: ", "Unrecognized GeneralName type: "},
   429         {"Unrecognized.GeneralName.type.", "Unrecognized GeneralName type: "},
   431         {"This extension cannot be marked as critical. ",
   430         {"This.extension.cannot.be.marked.as.critical.",
   432                  "This extension cannot be marked as critical. "},
   431                  "This extension cannot be marked as critical. "},
   433         {"Odd number of hex digits found: ", "Odd number of hex digits found: "},
   432         {"Odd.number.of.hex.digits.found.", "Odd number of hex digits found: "},
   434         {"Unknown extension type: ", "Unknown extension type: "},
   433         {"Unknown.extension.type.", "Unknown extension type: "},
   435         {"command {0} is ambiguous:", "command {0} is ambiguous:"},
   434         {"command.{0}.is.ambiguous.", "command {0} is ambiguous:"},
   436 
   435 
   437         // policytool
   436         // policytool
   438         {"Warning: A public key for alias 'signers[i]' does not exist.  Make sure a KeyStore is properly configured.",
   437         {"Warning.A.public.key.for.alias.signers.i.does.not.exist.Make.sure.a.KeyStore.is.properly.configured.",
   439                 "Warning: A public key for alias {0} does not exist.  Make sure a KeyStore is properly configured."},
   438                 "Warning: A public key for alias {0} does not exist.  Make sure a KeyStore is properly configured."},
   440         {"Warning: Class not found: class", "Warning: Class not found: {0}"},
   439         {"Warning.Class.not.found.class", "Warning: Class not found: {0}"},
   441         {"Warning: Invalid argument(s) for constructor: arg",
   440         {"Warning.Invalid.argument.s.for.constructor.arg",
   442                 "Warning: Invalid argument(s) for constructor: {0}"},
   441                 "Warning: Invalid argument(s) for constructor: {0}"},
   443         {"Illegal Principal Type: type", "Illegal Principal Type: {0}"},
   442         {"Illegal.Principal.Type.type", "Illegal Principal Type: {0}"},
   444         {"Illegal option: option", "Illegal option: {0}"},
   443         {"Illegal.option.option", "Illegal option: {0}"},
   445         {"Usage: policytool [options]", "Usage: policytool [options]"},
   444         {"Usage.policytool.options.", "Usage: policytool [options]"},
   446         {"  [-file <file>]    policy file location",
   445         {".file.file.policy.file.location",
   447                 "  [-file <file>]    policy file location"},
   446                 "  [-file <file>]    policy file location"},
   448         {"New", "New"},
   447         {"New", "New"},
   449         {"Open", "Open"},
   448         {"Open", "Open"},
   450         {"Save", "Save"},
   449         {"Save", "Save"},
   451         {"Save As", "Save As"},
   450         {"Save.As", "Save As"},
   452         {"View Warning Log", "View Warning Log"},
   451         {"View.Warning.Log", "View Warning Log"},
   453         {"Exit", "Exit"},
   452         {"Exit", "Exit"},
   454         {"Add Policy Entry", "Add Policy Entry"},
   453         {"Add.Policy.Entry", "Add Policy Entry"},
   455         {"Edit Policy Entry", "Edit Policy Entry"},
   454         {"Edit.Policy.Entry", "Edit Policy Entry"},
   456         {"Remove Policy Entry", "Remove Policy Entry"},
   455         {"Remove.Policy.Entry", "Remove Policy Entry"},
   457         {"Edit", "Edit"},
   456         {"Edit", "Edit"},
   458         {"Retain", "Retain"},
   457         {"Retain", "Retain"},
   459 
   458 
   460         {"Warning: File name may include escaped backslash characters. " +
   459         {"Warning.File.name.may.include.escaped.backslash.characters.It.is.not.necessary.to.escape.backslash.characters.the.tool.escapes",
   461                         "It is not necessary to escape backslash characters " +
       
   462                         "(the tool escapes characters as necessary when writing " +
       
   463                         "the policy contents to the persistent store).\n\n" +
       
   464                         "Click on Retain to retain the entered name, or click on " +
       
   465                         "Edit to edit the name.",
       
   466             "Warning: File name may include escaped backslash characters. " +
   460             "Warning: File name may include escaped backslash characters. " +
   467                         "It is not necessary to escape backslash characters " +
   461                         "It is not necessary to escape backslash characters " +
   468                         "(the tool escapes characters as necessary when writing " +
   462                         "(the tool escapes characters as necessary when writing " +
   469                         "the policy contents to the persistent store).\n\n" +
   463                         "the policy contents to the persistent store).\n\n" +
   470                         "Click on Retain to retain the entered name, or click on " +
   464                         "Click on Retain to retain the entered name, or click on " +
   471                         "Edit to edit the name."},
   465                         "Edit to edit the name."},
   472 
   466 
   473         {"Add Public Key Alias", "Add Public Key Alias"},
   467         {"Add.Public.Key.Alias", "Add Public Key Alias"},
   474         {"Remove Public Key Alias", "Remove Public Key Alias"},
   468         {"Remove.Public.Key.Alias", "Remove Public Key Alias"},
   475         {"File", "File"},
   469         {"File", "File"},
   476         {"KeyStore", "KeyStore"},
   470         {"KeyStore", "KeyStore"},
   477         {"Policy File:", "Policy File:"},
   471         {"Policy.File.", "Policy File:"},
   478         {"Could not open policy file: policyFile: e.toString()",
   472         {"Could.not.open.policy.file.policyFile.e.toString.",
   479                 "Could not open policy file: {0}: {1}"},
   473                 "Could not open policy file: {0}: {1}"},
   480         {"Policy Tool", "Policy Tool"},
   474         {"Policy.Tool", "Policy Tool"},
   481         {"Errors have occurred while opening the policy configuration.  View the Warning Log for more information.",
   475         {"Errors.have.occurred.while.opening.the.policy.configuration.View.the.Warning.Log.for.more.information.",
   482                 "Errors have occurred while opening the policy configuration.  View the Warning Log for more information."},
   476                 "Errors have occurred while opening the policy configuration.  View the Warning Log for more information."},
   483         {"Error", "Error"},
   477         {"Error", "Error"},
   484         {"OK", "OK"},
   478         {"OK", "OK"},
   485         {"Status", "Status"},
   479         {"Status", "Status"},
   486         {"Warning", "Warning"},
   480         {"Warning", "Warning"},
   487         {"Permission:                                                       ",
   481         {"Permission.",
   488                 "Permission:                                                       "},
   482                 "Permission:                                                       "},
   489         {"Principal Type:", "Principal Type:"},
   483         {"Principal.Type.", "Principal Type:"},
   490         {"Principal Name:", "Principal Name:"},
   484         {"Principal.Name.", "Principal Name:"},
   491         {"Target Name:                                                    ",
   485         {"Target.Name.",
   492                 "Target Name:                                                    "},
   486                 "Target Name:                                                    "},
   493         {"Actions:                                                             ",
   487         {"Actions.",
   494                 "Actions:                                                             "},
   488                 "Actions:                                                             "},
   495         {"OK to overwrite existing file filename?",
   489         {"OK.to.overwrite.existing.file.filename.",
   496                 "OK to overwrite existing file {0}?"},
   490                 "OK to overwrite existing file {0}?"},
   497         {"Cancel", "Cancel"},
   491         {"Cancel", "Cancel"},
   498         {"CodeBase:", "CodeBase:"},
   492         {"CodeBase.", "CodeBase:"},
   499         {"SignedBy:", "SignedBy:"},
   493         {"SignedBy.", "SignedBy:"},
   500         {"Add Principal", "Add Principal"},
   494         {"Add.Principal", "Add Principal"},
   501         {"Edit Principal", "Edit Principal"},
   495         {"Edit.Principal", "Edit Principal"},
   502         {"Remove Principal", "Remove Principal"},
   496         {"Remove.Principal", "Remove Principal"},
   503         {"Principals:", "Principals:"},
   497         {"Principals.", "Principals:"},
   504         {"  Add Permission", "  Add Permission"},
   498         {".Add.Permission", "  Add Permission"},
   505         {"  Edit Permission", "  Edit Permission"},
   499         {".Edit.Permission", "  Edit Permission"},
   506         {"Remove Permission", "Remove Permission"},
   500         {"Remove.Permission", "Remove Permission"},
   507         {"Done", "Done"},
   501         {"Done", "Done"},
   508         {"KeyStore URL:", "KeyStore URL:"},
   502         {"KeyStore.URL.", "KeyStore URL:"},
   509         {"KeyStore Type:", "KeyStore Type:"},
   503         {"KeyStore.Type.", "KeyStore Type:"},
   510         {"KeyStore Provider:", "KeyStore Provider:"},
   504         {"KeyStore.Provider.", "KeyStore Provider:"},
   511         {"KeyStore Password URL:", "KeyStore Password URL:"},
   505         {"KeyStore.Password.URL.", "KeyStore Password URL:"},
   512         {"Principals", "Principals"},
   506         {"Principals", "Principals"},
   513         {"  Edit Principal:", "  Edit Principal:"},
   507         {".Edit.Principal.", "  Edit Principal:"},
   514         {"  Add New Principal:", "  Add New Principal:"},
   508         {".Add.New.Principal.", "  Add New Principal:"},
   515         {"Permissions", "Permissions"},
   509         {"Permissions", "Permissions"},
   516         {"  Edit Permission:", "  Edit Permission:"},
   510         {".Edit.Permission.", "  Edit Permission:"},
   517         {"  Add New Permission:", "  Add New Permission:"},
   511         {".Add.New.Permission.", "  Add New Permission:"},
   518         {"Signed By:", "Signed By:"},
   512         {"Signed.By.", "Signed By:"},
   519         {"Cannot Specify Principal with a Wildcard Class without a Wildcard Name",
   513         {"Cannot.Specify.Principal.with.a.Wildcard.Class.without.a.Wildcard.Name",
   520             "Cannot Specify Principal with a Wildcard Class without a Wildcard Name"},
   514             "Cannot Specify Principal with a Wildcard Class without a Wildcard Name"},
   521         {"Cannot Specify Principal without a Name",
   515         {"Cannot.Specify.Principal.without.a.Name",
   522             "Cannot Specify Principal without a Name"},
   516             "Cannot Specify Principal without a Name"},
   523         {"Permission and Target Name must have a value",
   517         {"Permission.and.Target.Name.must.have.a.value",
   524                 "Permission and Target Name must have a value"},
   518                 "Permission and Target Name must have a value"},
   525         {"Remove this Policy Entry?", "Remove this Policy Entry?"},
   519         {"Remove.this.Policy.Entry.", "Remove this Policy Entry?"},
   526         {"Overwrite File", "Overwrite File"},
   520         {"Overwrite.File", "Overwrite File"},
   527         {"Policy successfully written to filename",
   521         {"Policy.successfully.written.to.filename",
   528                 "Policy successfully written to {0}"},
   522                 "Policy successfully written to {0}"},
   529         {"null filename", "null filename"},
   523         {"null.filename", "null filename"},
   530         {"Save changes?", "Save changes?"},
   524         {"Save.changes.", "Save changes?"},
   531         {"Yes", "Yes"},
   525         {"Yes", "Yes"},
   532         {"No", "No"},
   526         {"No", "No"},
   533         {"Policy Entry", "Policy Entry"},
   527         {"Policy.Entry", "Policy Entry"},
   534         {"Save Changes", "Save Changes"},
   528         {"Save.Changes", "Save Changes"},
   535         {"No Policy Entry selected", "No Policy Entry selected"},
   529         {"No.Policy.Entry.selected", "No Policy Entry selected"},
   536         {"Unable to open KeyStore: ex.toString()",
   530         {"Unable.to.open.KeyStore.ex.toString.",
   537                 "Unable to open KeyStore: {0}"},
   531                 "Unable to open KeyStore: {0}"},
   538         {"No principal selected", "No principal selected"},
   532         {"No.principal.selected", "No principal selected"},
   539         {"No permission selected", "No permission selected"},
   533         {"No.permission.selected", "No permission selected"},
   540         {"name", "name"},
   534         {"name", "name"},
   541         {"configuration type", "configuration type"},
   535         {"configuration.type", "configuration type"},
   542         {"environment variable name", "environment variable name"},
   536         {"environment.variable.name", "environment variable name"},
   543         {"library name", "library name"},
   537         {"library.name", "library name"},
   544         {"package name", "package name"},
   538         {"package.name", "package name"},
   545         {"policy type", "policy type"},
   539         {"policy.type", "policy type"},
   546         {"property name", "property name"},
   540         {"property.name", "property name"},
   547         {"Principal List", "Principal List"},
   541         {"Principal.List", "Principal List"},
   548         {"Permission List", "Permission List"},
   542         {"Permission.List", "Permission List"},
   549         {"Code Base", "Code Base"},
   543         {"Code.Base", "Code Base"},
   550         {"KeyStore U R L:", "KeyStore U R L:"},
   544         {"KeyStore.U.R.L.", "KeyStore U R L:"},
   551         {"KeyStore Password U R L:", "KeyStore Password U R L:"},
   545         {"KeyStore.Password.U.R.L.", "KeyStore Password U R L:"},
   552 
   546 
   553 
   547 
   554         // javax.security.auth.PrivateCredentialPermission
   548         // javax.security.auth.PrivateCredentialPermission
   555         {"invalid null input(s)", "invalid null input(s)"},
   549         {"invalid.null.input.s.", "invalid null input(s)"},
   556         {"actions can only be 'read'", "actions can only be 'read'"},
   550         {"actions.can.only.be.read.", "actions can only be 'read'"},
   557         {"permission name [name] syntax invalid: ",
   551         {"permission.name.name.syntax.invalid.",
   558                 "permission name [{0}] syntax invalid: "},
   552                 "permission name [{0}] syntax invalid: "},
   559         {"Credential Class not followed by a Principal Class and Name",
   553         {"Credential.Class.not.followed.by.a.Principal.Class.and.Name",
   560                 "Credential Class not followed by a Principal Class and Name"},
   554                 "Credential Class not followed by a Principal Class and Name"},
   561         {"Principal Class not followed by a Principal Name",
   555         {"Principal.Class.not.followed.by.a.Principal.Name",
   562                 "Principal Class not followed by a Principal Name"},
   556                 "Principal Class not followed by a Principal Name"},
   563         {"Principal Name must be surrounded by quotes",
   557         {"Principal.Name.must.be.surrounded.by.quotes",
   564                 "Principal Name must be surrounded by quotes"},
   558                 "Principal Name must be surrounded by quotes"},
   565         {"Principal Name missing end quote",
   559         {"Principal.Name.missing.end.quote",
   566                 "Principal Name missing end quote"},
   560                 "Principal Name missing end quote"},
   567         {"PrivateCredentialPermission Principal Class can not be a wildcard (*) value if Principal Name is not a wildcard (*) value",
   561         {"PrivateCredentialPermission.Principal.Class.can.not.be.a.wildcard.value.if.Principal.Name.is.not.a.wildcard.value",
   568                 "PrivateCredentialPermission Principal Class can not be a wildcard (*) value if Principal Name is not a wildcard (*) value"},
   562                 "PrivateCredentialPermission Principal Class can not be a wildcard (*) value if Principal Name is not a wildcard (*) value"},
   569         {"CredOwner:\n\tPrincipal Class = class\n\tPrincipal Name = name",
   563         {"CredOwner.Principal.Class.class.Principal.Name.name",
   570                 "CredOwner:\n\tPrincipal Class = {0}\n\tPrincipal Name = {1}"},
   564                 "CredOwner:\n\tPrincipal Class = {0}\n\tPrincipal Name = {1}"},
   571 
   565 
   572         // javax.security.auth.x500
   566         // javax.security.auth.x500
   573         {"provided null name", "provided null name"},
   567         {"provided.null.name", "provided null name"},
   574         {"provided null keyword map", "provided null keyword map"},
   568         {"provided.null.keyword.map", "provided null keyword map"},
   575         {"provided null OID map", "provided null OID map"},
   569         {"provided.null.OID.map", "provided null OID map"},
   576 
   570 
   577         // javax.security.auth.Subject
   571         // javax.security.auth.Subject
   578         {"invalid null AccessControlContext provided",
   572         {"invalid.null.AccessControlContext.provided",
   579                 "invalid null AccessControlContext provided"},
   573                 "invalid null AccessControlContext provided"},
   580         {"invalid null action provided", "invalid null action provided"},
   574         {"invalid.null.action.provided", "invalid null action provided"},
   581         {"invalid null Class provided", "invalid null Class provided"},
   575         {"invalid.null.Class.provided", "invalid null Class provided"},
   582         {"Subject:\n", "Subject:\n"},
   576         {"Subject.", "Subject:\n"},
   583         {"\tPrincipal: ", "\tPrincipal: "},
   577         {".Principal.", "\tPrincipal: "},
   584         {"\tPublic Credential: ", "\tPublic Credential: "},
   578         {".Public.Credential.", "\tPublic Credential: "},
   585         {"\tPrivate Credentials inaccessible\n",
   579         {".Private.Credentials.inaccessible.",
   586                 "\tPrivate Credentials inaccessible\n"},
   580                 "\tPrivate Credentials inaccessible\n"},
   587         {"\tPrivate Credential: ", "\tPrivate Credential: "},
   581         {".Private.Credential.", "\tPrivate Credential: "},
   588         {"\tPrivate Credential inaccessible\n",
   582         {".Private.Credential.inaccessible.",
   589                 "\tPrivate Credential inaccessible\n"},
   583                 "\tPrivate Credential inaccessible\n"},
   590         {"Subject is read-only", "Subject is read-only"},
   584         {"Subject.is.read.only", "Subject is read-only"},
   591         {"attempting to add an object which is not an instance of java.security.Principal to a Subject's Principal Set",
   585         {"attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set",
   592                 "attempting to add an object which is not an instance of java.security.Principal to a Subject's Principal Set"},
   586                 "attempting to add an object which is not an instance of java.security.Principal to a Subject's Principal Set"},
   593         {"attempting to add an object which is not an instance of class",
   587         {"attempting.to.add.an.object.which.is.not.an.instance.of.class",
   594                 "attempting to add an object which is not an instance of {0}"},
   588                 "attempting to add an object which is not an instance of {0}"},
   595 
   589 
   596         // javax.security.auth.login.AppConfigurationEntry
   590         // javax.security.auth.login.AppConfigurationEntry
   597         {"LoginModuleControlFlag: ", "LoginModuleControlFlag: "},
   591         {"LoginModuleControlFlag.", "LoginModuleControlFlag: "},
   598 
   592 
   599         // javax.security.auth.login.LoginContext
   593         // javax.security.auth.login.LoginContext
   600         {"Invalid null input: name", "Invalid null input: name"},
   594         {"Invalid.null.input.name", "Invalid null input: name"},
   601         {"No LoginModules configured for name",
   595         {"No.LoginModules.configured.for.name",
   602          "No LoginModules configured for {0}"},
   596          "No LoginModules configured for {0}"},
   603         {"invalid null Subject provided", "invalid null Subject provided"},
   597         {"invalid.null.Subject.provided", "invalid null Subject provided"},
   604         {"invalid null CallbackHandler provided",
   598         {"invalid.null.CallbackHandler.provided",
   605                 "invalid null CallbackHandler provided"},
   599                 "invalid null CallbackHandler provided"},
   606         {"null subject - logout called before login",
   600         {"null.subject.logout.called.before.login",
   607                 "null subject - logout called before login"},
   601                 "null subject - logout called before login"},
   608         {"unable to instantiate LoginModule, module, because it does not provide a no-argument constructor",
   602         {"unable.to.instantiate.LoginModule.module.because.it.does.not.provide.a.no.argument.constructor",
   609                 "unable to instantiate LoginModule, {0}, because it does not provide a no-argument constructor"},
   603                 "unable to instantiate LoginModule, {0}, because it does not provide a no-argument constructor"},
   610         {"unable to instantiate LoginModule",
   604         {"unable.to.instantiate.LoginModule",
   611                 "unable to instantiate LoginModule"},
   605                 "unable to instantiate LoginModule"},
   612         {"unable to instantiate LoginModule: ",
   606         {"unable.to.instantiate.LoginModule.",
   613                 "unable to instantiate LoginModule: "},
   607                 "unable to instantiate LoginModule: "},
   614         {"unable to find LoginModule class: ",
   608         {"unable.to.find.LoginModule.class.",
   615                 "unable to find LoginModule class: "},
   609                 "unable to find LoginModule class: "},
   616         {"unable to access LoginModule: ",
   610         {"unable.to.access.LoginModule.",
   617                 "unable to access LoginModule: "},
   611                 "unable to access LoginModule: "},
   618         {"Login Failure: all modules ignored",
   612         {"Login.Failure.all.modules.ignored",
   619                 "Login Failure: all modules ignored"},
   613                 "Login Failure: all modules ignored"},
   620 
   614 
   621         // sun.security.provider.PolicyFile
   615         // sun.security.provider.PolicyFile
   622 
   616 
   623         {"java.security.policy: error parsing policy:\n\tmessage",
   617         {"java.security.policy.error.parsing.policy.message",
   624                 "java.security.policy: error parsing {0}:\n\t{1}"},
   618                 "java.security.policy: error parsing {0}:\n\t{1}"},
   625         {"java.security.policy: error adding Permission, perm:\n\tmessage",
   619         {"java.security.policy.error.adding.Permission.perm.message",
   626                 "java.security.policy: error adding Permission, {0}:\n\t{1}"},
   620                 "java.security.policy: error adding Permission, {0}:\n\t{1}"},
   627         {"java.security.policy: error adding Entry:\n\tmessage",
   621         {"java.security.policy.error.adding.Entry.message",
   628                 "java.security.policy: error adding Entry:\n\t{0}"},
   622                 "java.security.policy: error adding Entry:\n\t{0}"},
   629         {"alias name not provided (pe.name)", "alias name not provided ({0})"},
   623         {"alias.name.not.provided.pe.name.", "alias name not provided ({0})"},
   630         {"unable to perform substitution on alias, suffix",
   624         {"unable.to.perform.substitution.on.alias.suffix",
   631                 "unable to perform substitution on alias, {0}"},
   625                 "unable to perform substitution on alias, {0}"},
   632         {"substitution value, prefix, unsupported",
   626         {"substitution.value.prefix.unsupported",
   633                 "substitution value, {0}, unsupported"},
   627                 "substitution value, {0}, unsupported"},
   634         {"(", "("},
   628         {"LPARAM", "("},
   635         {")", ")"},
   629         {"RPARAM", ")"},
   636         {"type can't be null","type can't be null"},
   630         {"type.can.t.be.null","type can't be null"},
   637 
   631 
   638         // sun.security.provider.PolicyParser
   632         // sun.security.provider.PolicyParser
   639         {"keystorePasswordURL can not be specified without also specifying keystore",
   633         {"keystorePasswordURL.can.not.be.specified.without.also.specifying.keystore",
   640                 "keystorePasswordURL can not be specified without also specifying keystore"},
   634                 "keystorePasswordURL can not be specified without also specifying keystore"},
   641         {"expected keystore type", "expected keystore type"},
   635         {"expected.keystore.type", "expected keystore type"},
   642         {"expected keystore provider", "expected keystore provider"},
   636         {"expected.keystore.provider", "expected keystore provider"},
   643         {"multiple Codebase expressions",
   637         {"multiple.Codebase.expressions",
   644                 "multiple Codebase expressions"},
   638                 "multiple Codebase expressions"},
   645         {"multiple SignedBy expressions","multiple SignedBy expressions"},
   639         {"multiple.SignedBy.expressions","multiple SignedBy expressions"},
   646         {"SignedBy has empty alias","SignedBy has empty alias"},
   640         {"SignedBy.has.empty.alias","SignedBy has empty alias"},
   647         {"can not specify Principal with a wildcard class without a wildcard name",
   641         {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name",
   648                 "can not specify Principal with a wildcard class without a wildcard name"},
   642                 "can not specify Principal with a wildcard class without a wildcard name"},
   649         {"expected codeBase or SignedBy or Principal",
   643         {"expected.codeBase.or.SignedBy.or.Principal",
   650                 "expected codeBase or SignedBy or Principal"},
   644                 "expected codeBase or SignedBy or Principal"},
   651         {"expected permission entry", "expected permission entry"},
   645         {"expected.permission.entry", "expected permission entry"},
   652         {"number ", "number "},
   646         {"number.", "number "},
   653         {"expected [expect], read [end of file]",
   647         {"expected.expect.read.end.of.file.",
   654                 "expected [{0}], read [end of file]"},
   648                 "expected [{0}], read [end of file]"},
   655         {"expected [;], read [end of file]",
   649         {"expected.read.end.of.file.",
   656                 "expected [;], read [end of file]"},
   650                 "expected [;], read [end of file]"},
   657         {"line number: msg", "line {0}: {1}"},
   651         {"line.number.msg", "line {0}: {1}"},
   658         {"line number: expected [expect], found [actual]",
   652         {"line.number.expected.expect.found.actual.",
   659                 "line {0}: expected [{1}], found [{2}]"},
   653                 "line {0}: expected [{1}], found [{2}]"},
   660         {"null principalClass or principalName",
   654         {"null.principalClass.or.principalName",
   661                 "null principalClass or principalName"},
   655                 "null principalClass or principalName"},
   662 
   656 
   663         // sun.security.pkcs11.SunPKCS11
   657         // sun.security.pkcs11.SunPKCS11
   664         {"PKCS11 Token [providerName] Password: ",
   658         {"PKCS11.Token.providerName.Password.",
   665                 "PKCS11 Token [{0}] Password: "},
   659                 "PKCS11 Token [{0}] Password: "},
   666 
   660 
   667         /* --- DEPRECATED --- */
   661         /* --- DEPRECATED --- */
   668         // javax.security.auth.Policy
   662         // javax.security.auth.Policy
   669         {"unable to instantiate Subject-based policy",
   663         {"unable.to.instantiate.Subject.based.policy",
   670                 "unable to instantiate Subject-based policy"}
   664                 "unable to instantiate Subject-based policy"}
   671     };
   665     };
   672 
   666 
   673 
   667 
   674     /**
   668     /**