jdk/src/share/classes/sun/security/util/Resources_zh_CN.java
changeset 2 90ce3da70b43
child 5506 202f599c92aa
equal deleted inserted replaced
0:fd16c54261b3 2:90ce3da70b43
       
     1 /*
       
     2  * Copyright 2001-2006 Sun Microsystems, Inc.  All Rights Reserved.
       
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       
     4  *
       
     5  * This code is free software; you can redistribute it and/or modify it
       
     6  * under the terms of the GNU General Public License version 2 only, as
       
     7  * published by the Free Software Foundation.  Sun designates this
       
     8  * particular file as subject to the "Classpath" exception as provided
       
     9  * by Sun in the LICENSE file that accompanied this code.
       
    10  *
       
    11  * This code is distributed in the hope that it will be useful, but WITHOUT
       
    12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
       
    13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
       
    14  * version 2 for more details (a copy is included in the LICENSE file that
       
    15  * accompanied this code).
       
    16  *
       
    17  * You should have received a copy of the GNU General Public License version
       
    18  * 2 along with this work; if not, write to the Free Software Foundation,
       
    19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
       
    20  *
       
    21  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
       
    22  * CA 95054 USA or visit www.sun.com if you need additional information or
       
    23  * have any questions.
       
    24  */
       
    25 
       
    26 package sun.security.util;
       
    27 
       
    28 /**
       
    29  * <p> This class represents the <code>ResourceBundle</code>
       
    30  * for javax.security.auth and sun.security.
       
    31  *
       
    32  */
       
    33 public class Resources_zh_CN extends java.util.ListResourceBundle {
       
    34 
       
    35     private static final Object[][] contents = {
       
    36 
       
    37         // shared (from jarsigner)
       
    38         {" ", " "},
       
    39         {"  ", "  "},
       
    40         {"      ", "      "},
       
    41         {", ", ", "},
       
    42         // shared (from keytool)
       
    43         {"\n", "\n"},
       
    44         {"*******************************************",
       
    45                 "*******************************************"},
       
    46         {"*******************************************\n\n",
       
    47                 "*******************************************\n\n"},
       
    48 
       
    49         // keytool
       
    50         {"keytool error: ", "keytool\u9519\u8bef\uff1a "},
       
    51         {"Illegal option:  ", "\u975e\u6cd5\u9009\u9879\uff1a  "},
       
    52         {"Try keytool -help","\u5c1d\u8bd5 keytool -help"},
       
    53         {"Command option <flag> needs an argument.", "\u547d\u4ee4\u9009\u9879 {0} \u9700\u8981\u4e00\u4e2a\u53c2\u6570\u3002"},
       
    54         {"Warning:  Different store and key passwords not supported for PKCS12 KeyStores. Ignoring user-specified <command> value.",
       
    55 "\u8b66\u544a: PKCS12 KeyStores \u4e0d\u652f\u6301\u5176\u4ed6\u5b58\u50a8\u548c\u5bc6\u94a5\u53e3\u4ee4\u3002\u5ffd\u7565\u7528\u6237\u6307\u5b9a\u7684 {0} \u503c\u3002"},
       
    56         {"-keystore must be NONE if -storetype is {0}",
       
    57                 "\u5982\u679c -storetype \u4e3a {0}\uff0c\u5219 -keystore \u5fc5\u987b\u4e3a NONE"},
       
    58         {"Too may retries, program terminated",
       
    59 "\u91cd\u8bd5\u6b21\u6570\u8fc7\u591a\uff0c\u7a0b\u5e8f\u5df2\u7ec8\u6b62"},
       
    60         {"-storepasswd and -keypasswd commands not supported if -storetype is {0}",
       
    61                 "\u5982\u679c -storetype \u4e3a {0}\uff0c\u5219\u4e0d\u652f\u6301 -storepasswd \u548c -keypasswd \u547d\u4ee4"},
       
    62         {"-keypasswd commands not supported if -storetype is PKCS12",
       
    63                 "\u5982\u679c -storetype \u4e3a PKCS12\uff0c\u5219\u4e0d\u652f\u6301 -keypasswd \u547d\u4ee4"},
       
    64         {"-keypass and -new can not be specified if -storetype is {0}",
       
    65                 "\u5982\u679c -storetype \u4e3a {0}\uff0c\u5219\u4e0d\u80fd\u6307\u5b9a -keypass \u548c -new"},
       
    66         {"if -protected is specified, then -storepass, -keypass, and -new must not be specified",
       
    67                 "\u5982\u679c\u6307\u5b9a\u4e86 -protected\uff0c\u5219\u4e0d\u8981\u6307\u5b9a -storepass\u3001-keypass \u548c -new"},
       
    68         {"if -srcprotected is specified, then -srcstorepass and -srckeypass must not be specified",
       
    69                 "\u5982\u679c\u6307\u5b9a\u4e86 -srcprotected\uff0c\u5219\u4e0d\u80fd\u6307\u5b9a -srcstorepass \u548c -srckeypass"},
       
    70         {"if keystore is not password protected, then -storepass, -keypass, and -new must not be specified",
       
    71                 "\u5982\u679c\u5bc6\u94a5\u5e93\u672a\u53d7\u5bc6\u7801\u4fdd\u62a4\uff0c\u5219\u8bf7\u52ff\u6307\u5b9a -storepass\u3001-keypass \u548c -new"},
       
    72         {"if source keystore is not password protected, then -srcstorepass and -srckeypass must not be specified",
       
    73                 "\u5982\u679c\u6e90\u5bc6\u94a5\u5e93\u672a\u53d7\u5bc6\u7801\u4fdd\u62a4\uff0c\u5219\u8bf7\u52ff\u6307\u5b9a -srcstorepass \u548c -srckeypass"},
       
    74         {"Validity must be greater than zero",
       
    75                 "\u6709\u6548\u6027\u5fc5\u987b\u5927\u4e8e\u96f6"},
       
    76         {"provName not a provider", "{0}\u4e0d\u662f\u4e00\u4e2a\u63d0\u4f9b\u8005"},
       
    77         {"Usage error: no command provided", "\u7528\u6cd5\u9519\u8bef: \u6ca1\u6709\u63d0\u4f9b\u547d\u4ee4"},
       
    78         {"Usage error, <arg> is not a legal command", "\u7528\u6cd5\u9519\u8bef\uff0c{0} \u4e0d\u662f\u5408\u6cd5\u7684\u547d\u4ee4"},
       
    79         {"Source keystore file exists, but is empty: ", "\u6e90\u5bc6\u94a5\u5e93\u6587\u4ef6\u5b58\u5728\uff0c\u4f46\u4e3a\u7a7a: "},
       
    80         {"Please specify -srckeystore", "\u8bf7\u6307\u5b9a -srckeystore"},
       
    81         {"Must not specify both -v and -rfc with 'list' command",
       
    82                 "\u4e0d\u5f97\u4ee5\u300c\u5217\u8868\u300d\u6307\u4ee4\u6765\u6307\u5b9a-v \u53ca-rfc"},
       
    83         {"Key password must be at least 6 characters",
       
    84                 "\u5173\u952e\u5bc6\u7801\u81f3\u5c11\u5fc5\u987b\u4e3a6\u4e2a\u5b57\u7b26"},
       
    85         {"New password must be at least 6 characters",
       
    86                 "\u65b0\u5bc6\u7801\u81f3\u5c11\u5fc5\u987b\u4e3a6\u4e2a\u5b57\u7b26"},
       
    87         {"Keystore file exists, but is empty: ",
       
    88                 "Keystore\u6587\u4ef6\u5b58\u5728\uff0c\u4f46\u4e3a\u7a7a\u6587\u4ef6\uff1a "},
       
    89         {"Keystore file does not exist: ",
       
    90                 "Keystore \u6587\u4ef6\u4e0d\u5b58\u5728\uff1a "},
       
    91         {"Must specify destination alias", "\u5fc5\u987b\u6307\u5b9a\u76ee\u7684\u5730\u522b\u540d"},
       
    92         {"Must specify alias", "\u5fc5\u987b\u6307\u5b9a\u522b\u540d"},
       
    93         {"Keystore password must be at least 6 characters",
       
    94                 "Keystore \u5bc6\u7801\u81f3\u5c11\u5fc5\u987b\u4e3a6\u4e2a\u5b57\u7b26"},
       
    95         {"Enter keystore password:  ", "\u8f93\u5165keystore\u5bc6\u7801\uff1a  "},
       
    96         {"Enter source keystore password:  ", "\u8f93\u5165\u6e90\u5bc6\u94a5\u5e93\u53e3\u4ee4:  "},
       
    97         {"Enter destination keystore password:  ", "\u8f93\u5165\u76ee\u6807\u5bc6\u94a5\u5e93\u53e3\u4ee4:  "},
       
    98         {"Keystore password is too short - must be at least 6 characters",
       
    99          "Keystore \u5bc6\u7801\u592a\u77ed -\u81f3\u5c11\u5fc5\u987b\u4e3a6\u4e2a\u5b57\u7b26"},
       
   100         {"Unknown Entry Type", "\u672a\u77e5\u9879\u7c7b\u578b"},
       
   101         {"Too many failures. Alias not changed", "\u9519\u8bef\u8fc7\u591a\u3002\u672a\u66f4\u6539\u522b\u540d"},
       
   102         {"Entry for alias <alias> successfully imported.",
       
   103 "\u5df2\u6210\u529f\u5bfc\u5165\u522b\u540d {0} \u9879\u3002"},
       
   104         {"Entry for alias <alias> not imported.", "\u672a\u5bfc\u5165\u522b\u540d {0} \u9879\u3002"},
       
   105         {"Problem importing entry for alias <alias>: <exception>.\nEntry for alias <alias> not imported.",
       
   106 "\u5bfc\u5165\u522b\u540d {0} \u9879\u65f6\u51fa\u73b0\u95ee\u9898: {1}\u3002\n\u672a\u5bfc\u5165\u522b\u540d {0} \u9879\u3002"},
       
   107         {"Import command completed:  <ok> entries successfully imported, <fail> entries failed or cancelled",
       
   108 "\u5df2\u5b8c\u6210\u5bfc\u5165\u547d\u4ee4: {0} \u9879\u6210\u529f\u5bfc\u5165\uff0c{1} \u9879\u5931\u8d25\u6216\u53d6\u6d88"},
       
   109         {"Warning: Overwriting existing alias <alias> in destination keystore",
       
   110 "\u8b66\u544a: \u6b63\u5728\u8986\u76d6\u76ee\u6807\u5bc6\u94a5\u5e93\u4e2d\u7684\u73b0\u6709\u522b\u540d {0}"},
       
   111         {"Existing entry alias <alias> exists, overwrite? [no]:  ",
       
   112 "\u5b58\u5728\u73b0\u6709\u9879\u522b\u540d {0}\uff0c\u662f\u5426\u8981\u8986\u76d6\uff1f[\u5426]:  "},
       
   113         {"Too many failures - try later", "\u592a\u591a\u9519\u8bef - \u8bf7\u7a0d\u540e\u518d\u8bd5"},
       
   114         {"Certification request stored in file <filename>",
       
   115                 "\u4fdd\u5b58\u5728\u6587\u4ef6\u4e2d\u7684\u8ba4\u8bc1\u8981\u6c42 <{0}>"},
       
   116         {"Submit this to your CA", "\u5c06\u6b64\u63d0\u4ea4\u7ed9\u60a8\u7684CA"},
       
   117         {"if alias not specified, destalias, srckeypass, and destkeypass must not be specified",
       
   118 "\u5982\u679c\u6ca1\u6709\u6307\u5b9a\u522b\u540d\uff0c\u5219\u4e0d\u80fd\u6307\u5b9a\u76ee\u6807\u522b\u540d\u3001\u6e90\u5bc6\u94a5\u5e93\u53e3\u4ee4\u548c\u76ee\u6807\u5bc6\u94a5\u5e93\u53e3\u4ee4"},
       
   119         {"Certificate stored in file <filename>",
       
   120                 "\u4fdd\u5b58\u5728\u6587\u4ef6\u4e2d\u7684\u8ba4\u8bc1 <{0}>"},
       
   121         {"Certificate reply was installed in keystore",
       
   122                 "\u8ba4\u8bc1\u56de\u590d\u5df2\u5b89\u88c5\u5728 keystore\u4e2d"},
       
   123         {"Certificate reply was not installed in keystore",
       
   124                 "\u8ba4\u8bc1\u56de\u590d\u672a\u5b89\u88c5\u5728 keystore\u4e2d"},
       
   125         {"Certificate was added to keystore",
       
   126                 "\u8ba4\u8bc1\u5df2\u6dfb\u52a0\u81f3keystore\u4e2d"},
       
   127         {"Certificate was not added to keystore",
       
   128                 "\u8ba4\u8bc1\u672a\u6dfb\u52a0\u81f3keystore\u4e2d"},
       
   129         {"[Storing ksfname]", "[\u6b63\u5728\u5b58\u50a8 {0}]"},
       
   130         {"alias has no public key (certificate)",
       
   131                 "{0} \u6ca1\u6709\u516c\u5f00\u91d1\u94a5\uff08\u8ba4\u8bc1\uff09"},
       
   132         {"Cannot derive signature algorithm",
       
   133                 "\u65e0\u6cd5\u53d6\u5f97\u7b7e\u540d\u7b97\u6cd5"},
       
   134         {"Alias <alias> does not exist",
       
   135                 "\u522b\u540d <{0}> \u4e0d\u5b58\u5728"},
       
   136         {"Alias <alias> has no certificate",
       
   137                 "\u522b\u540d <{0}> \u6ca1\u6709\u8ba4\u8bc1"},
       
   138         {"Key pair not generated, alias <alias> already exists",
       
   139                 "\u6ca1\u6709\u521b\u5efa\u952e\u503c\u5bf9\uff0c\u522b\u540d <{0}> \u5df2\u7ecf\u5b58\u5728"},
       
   140         {"Cannot derive signature algorithm",
       
   141                 "\u65e0\u6cd5\u53d6\u5f97\u7b7e\u540d\u7b97\u6cd5"},
       
   142         {"Generating keysize bit keyAlgName key pair and self-signed certificate (sigAlgName) with a validity of validality days\n\tfor: x500Name",
       
   143 "\u6b63\u5728\u4e3a\u4ee5\u4e0b\u5bf9\u8c61\u751f\u6210 {0} \u4f4d {1} \u5bc6\u94a5\u5bf9\u548c\u81ea\u7b7e\u540d\u8bc1\u4e66 ({2})\uff08\u6709\u6548\u671f\u4e3a {3} \u5929\uff09:\n\t {4}"},
       
   144         {"Enter key password for <alias>", "\u8f93\u5165<{0}>\u7684\u4e3b\u5bc6\u7801"},
       
   145         {"\t(RETURN if same as keystore password):  ",
       
   146                 "\t\uff08\u5982\u679c\u548c keystore \u5bc6\u7801\u76f8\u540c\uff0c\u6309\u56de\u8f66\uff09\uff1a  "},
       
   147         {"Key password is too short - must be at least 6 characters",
       
   148                 "\u4e3b\u5bc6\u7801\u592a\u77ed -\u81f3\u5c11\u5fc5\u987b\u4e3a 6 \u4e2a\u5b57\u7b26"},
       
   149         {"Too many failures - key not added to keystore",
       
   150                 "\u592a\u591a\u9519\u8bef - \u952e\u503c\u672a\u88ab\u6dfb\u52a0\u81f3keystore\u4e2d"},
       
   151         {"Destination alias <dest> already exists",
       
   152                 "\u76ee\u7684\u5730\u522b\u540d <{0}> \u5df2\u7ecf\u5b58\u5728"},
       
   153         {"Password is too short - must be at least 6 characters",
       
   154                 "\u5bc6\u7801\u592a\u77ed -\u81f3\u5c11\u5fc5\u987b\u4e3a6\u4e2a\u5b57\u7b26"},
       
   155         {"Too many failures. Key entry not cloned",
       
   156                 "\u592a\u591a\u9519\u8bef\u3002\u952e\u503c\u8f93\u5165\u672a\u88ab\u590d\u5236"},
       
   157         {"key password for <alias>", "<{0}> \u7684\u4e3b\u5bc6\u7801"},
       
   158         {"Keystore entry for <id.getName()> already exists",
       
   159                 "<{0}> \u7684 Keystore \u8f93\u5165\u5df2\u7ecf\u5b58\u5728"},
       
   160         {"Creating keystore entry for <id.getName()> ...",
       
   161                 "\u521b\u5efa <{0}> \u7684 keystore\u8f93\u5165..."},
       
   162         {"No entries from identity database added",
       
   163                 "\u4ece\u6dfb\u52a0\u7684\u8fa8\u8bc6\u6570\u636e\u5e93\u4e2d\uff0c\u6ca1\u6709\u8f93\u5165"},
       
   164         {"Alias name: alias", "\u522b\u540d\u540d\u79f0\uff1a {0}"},
       
   165         {"Creation date: keyStore.getCreationDate(alias)",
       
   166                 "\u521b\u5efa\u65e5\u671f\uff1a {0,date}"},
       
   167         {"alias, keyStore.getCreationDate(alias), ",
       
   168                 "{0}, {1,date}, "},
       
   169         {"alias, ", "{0}, "},
       
   170         {"Entry type: <type>", "\u9879\u7c7b\u578b: {0}"},
       
   171         {"Certificate chain length: ", "\u8ba4\u8bc1\u94fe\u957f\u5ea6\uff1a "},
       
   172         {"Certificate[(i + 1)]:", "\u8ba4\u8bc1 [{0,number,integer}]:"},
       
   173         {"Certificate fingerprint (MD5): ", "\u8ba4\u8bc1\u6307\u7eb9 (MD5)\uff1a "},
       
   174         {"Entry type: trustedCertEntry\n", "\u8f93\u5165\u7c7b\u578b\uff1a trustedCertEntry\n"},
       
   175         {"trustedCertEntry,", "trustedCertEntry,"},
       
   176         {"Keystore type: ", "Keystore \u7c7b\u578b\uff1a "},
       
   177         {"Keystore provider: ", "Keystore \u63d0\u4f9b\u8005\uff1a "},
       
   178         {"Your keystore contains keyStore.size() entry",
       
   179                 "\u60a8\u7684 keystore \u5305\u542b {0,number,integer} \u8f93\u5165"},
       
   180         {"Your keystore contains keyStore.size() entries",
       
   181                 "\u60a8\u7684 keystore \u5305\u542b {0,number,integer} \u8f93\u5165"},
       
   182         {"Failed to parse input", "\u65e0\u6cd5\u5bf9\u8f93\u5165\u8fdb\u884c\u8bed\u6cd5\u5206\u6790"},
       
   183         {"Empty input", "\u7a7a\u8f93\u5165"},
       
   184         {"Not X.509 certificate", "\u975e X.509 \u8ba4\u8bc1"},
       
   185         {"Cannot derive signature algorithm",
       
   186                 "\u65e0\u6cd5\u53d6\u5f97\u7b7e\u540d\u7b97\u6cd5"},
       
   187         {"alias has no public key", "{0} \u65e0\u516c\u7528\u5bc6\u94a5"},
       
   188         {"alias has no X.509 certificate", "{0} \u65e0 X.509 \u8ba4\u8bc1"},
       
   189         {"New certificate (self-signed):", "\u65b0\u8ba4\u8bc1\uff08\u81ea\u6211\u7b7e\u7f72\uff09\uff1a"},
       
   190         {"Reply has no certificates", "\u56de\u590d\u4e2d\u6ca1\u6709\u8ba4\u8bc1"},
       
   191         {"Certificate not imported, alias <alias> already exists",
       
   192                 "\u8ba4\u8bc1\u672a\u8f93\u5165\uff0c\u522b\u540d <{0}> \u5df2\u7ecf\u5b58\u5728"},
       
   193         {"Input not an X.509 certificate", "\u6240\u8f93\u5165\u7684\u4e0d\u662f\u4e00\u4e2a X.509 \u8ba4\u8bc1"},
       
   194         {"Certificate already exists in keystore under alias <trustalias>",
       
   195                 "\u5728 <{0}> \u7684\u522b\u540d\u4e4b\u4e0b\uff0c\u8ba4\u8bc1\u5df2\u7ecf\u5b58\u5728 keystore \u4e2d"},
       
   196         {"Do you still want to add it? [no]:  ",
       
   197                 "\u60a8\u4ecd\u7136\u60f3\u8981\u6dfb\u52a0\u5b83\u5417\uff1f [\u5426]\uff1a  "},
       
   198         {"Certificate already exists in system-wide CA keystore under alias <trustalias>",
       
   199                 "\u5728 <{0}> \u7684\u522b\u540d\u4e4b\u4e0b\uff0c\u8ba4\u8bc1\u5df2\u7ecf\u5b58\u5728\u4e8e CA keystore \u6574\u4e2a\u7cfb\u7edf\u4e4b\u4e2d"},
       
   200         {"Do you still want to add it to your own keystore? [no]:  ",
       
   201                 "\u60a8\u4ecd\u7136\u60f3\u8981\u5c06\u5b83\u6dfb\u52a0\u5230\u81ea\u5df1\u7684keystore \u5417\uff1f [\u5426]\uff1a  "},
       
   202         {"Trust this certificate? [no]:  ", "\u4fe1\u4efb\u8fd9\u4e2a\u8ba4\u8bc1\uff1f [\u5426]\uff1a  "},
       
   203         {"YES", "\u662f"},
       
   204         {"New prompt: ", "\u65b0 {0}\uff1a "},
       
   205         {"Passwords must differ", "\u5fc5\u987b\u662f\u4e0d\u540c\u7684\u5bc6\u7801"},
       
   206         {"Re-enter new prompt: ", "\u91cd\u65b0\u8f93\u5165\u65b0 {0}\uff1a "},
       
   207         {"Re-enter new password: ", "\u518d\u6b21\u8f93\u5165\u65b0\u5bc6\u7801: "},
       
   208         {"They don't match. Try again", "\u5b83\u4eec\u4e0d\u5339\u914d\u3002\u8bf7\u91cd\u8bd5"},
       
   209         {"Enter prompt alias name:  ", "\u8f93\u5165 {0} \u522b\u540d\u540d\u79f0\uff1a  "},
       
   210         {"Enter new alias name\t(RETURN to cancel import for this entry):  ",
       
   211 "\u8f93\u5165\u65b0\u7684\u522b\u540d\t\uff08\u6309\u56de\u8f66\u952e\u4ee5\u53d6\u6d88\u5bf9\u6b64\u9879\u7684\u5bfc\u5165\uff09:  "},
       
   212         {"Enter alias name:  ", "\u8f93\u5165\u522b\u540d\u540d\u79f0\uff1a  "},
       
   213         {"\t(RETURN if same as for <otherAlias>)",
       
   214                 "\t\uff08\u5982\u679c\u548c <{0}> \u7684\u76f8\u540c\uff0c\u6309\u56de\u8f66\uff09"},
       
   215         {"*PATTERN* printX509Cert",
       
   216                 "\u6240\u6709\u8005:{0}\n\u7b7e\u53d1\u4eba:{1}\n\u5e8f\u5217\u53f7:{2}\n\u6709\u6548\u671f: {3} \u81f3{4}\n\u8bc1\u4e66\u6307\u7eb9:\n\t MD5:{5}\n\t SHA1:{6}\n\t \u7b7e\u540d\u7b97\u6cd5\u540d\u79f0:{7}\n\t \u7248\u672c: {8}"},
       
   217         {"What is your first and last name?",
       
   218                 "\u60a8\u7684\u540d\u5b57\u4e0e\u59d3\u6c0f\u662f\u4ec0\u4e48\uff1f"},
       
   219         {"What is the name of your organizational unit?",
       
   220                 "\u60a8\u7684\u7ec4\u7ec7\u5355\u4f4d\u540d\u79f0\u662f\u4ec0\u4e48\uff1f"},
       
   221         {"What is the name of your organization?",
       
   222                 "\u60a8\u7684\u7ec4\u7ec7\u540d\u79f0\u662f\u4ec0\u4e48\uff1f"},
       
   223         {"What is the name of your City or Locality?",
       
   224                 "\u60a8\u6240\u5728\u7684\u57ce\u5e02\u6216\u533a\u57df\u540d\u79f0\u662f\u4ec0\u4e48\uff1f"},
       
   225         {"What is the name of your State or Province?",
       
   226                 "\u60a8\u6240\u5728\u7684\u5dde\u6216\u7701\u4efd\u540d\u79f0\u662f\u4ec0\u4e48\uff1f"},
       
   227         {"What is the two-letter country code for this unit?",
       
   228                 "\u8be5\u5355\u4f4d\u7684\u4e24\u5b57\u6bcd\u56fd\u5bb6\u4ee3\u7801\u662f\u4ec0\u4e48"},
       
   229         {"Is <name> correct?", "{0} \u6b63\u786e\u5417\uff1f"},
       
   230         {"no", "\u5426"},
       
   231         {"yes", "\u662f"},
       
   232         {"y", "y"},
       
   233         {"  [defaultValue]:  ", "  [{0}]\uff1a  "},
       
   234         {"Alias <alias> has no key",
       
   235                 "\u522b\u540d <{0}> \u6ca1\u6709\u5bc6\u94a5"},
       
   236         {"Alias <alias> references an entry type that is not a private key entry.  The -keyclone command only supports cloning of private key entries",
       
   237 "\u522b\u540d <{0}> \u5f15\u7528\u4e86\u4e0d\u5c5e\u4e8e\u4e13\u7528\u5bc6\u94a5\u9879\u7684\u9879\u7c7b\u578b\u3002-keyclone \u547d\u4ee4\u4ec5\u652f\u6301\u5bf9\u4e13\u7528\u5bc6\u94a5\u9879\u7684\u514b\u9686"},
       
   238 
       
   239         {"*****************  WARNING WARNING WARNING  *****************",
       
   240             "***************** \u8b66\u544a \u8b66\u544a \u8b66\u544a  *****************"},
       
   241 
       
   242         // Translators of the following 5 pairs, ATTENTION:
       
   243         // the next 5 string pairs are meant to be combined into 2 paragraphs,
       
   244         // 1+3+4 and 2+3+5. make sure your translation also does.
       
   245         {"* The integrity of the information stored in your keystore  *",
       
   246             "*\u4fdd\u5b58\u5728\u60a8\u7684 keystore \u4e2d\u6570\u636e\u7684\u5b8c\u6574\u6027  *"},
       
   247         {"* The integrity of the information stored in the srckeystore*",
       
   248 "* srckeystore \u4e2d\u6240\u5b58\u50a8\u7684\u4fe1\u606f\u7684\u5b8c\u6574\u6027*"},
       
   249         {"* has NOT been verified!  In order to verify its integrity, *",
       
   250             "* \u5c1a\u672a\u88ab\u9a8c\u8bc1\uff01  \u4e3a\u4e86\u9a8c\u8bc1\u5176\u5b8c\u6574\u6027\uff0c *"},
       
   251         {"* you must provide your keystore password.                  *",
       
   252             "* \u60a8\u5fc5\u987b\u63d0\u4f9b\u60a8 keystore \u7684\u5bc6\u7801\u3002                  *"},
       
   253         {"* you must provide the srckeystore password.                *",
       
   254 "* \u60a8\u5fc5\u987b\u63d0\u4f9b\u6e90\u5bc6\u94a5\u5e93\u53e3\u4ee4\u3002                *"},
       
   255 
       
   256 
       
   257         {"Certificate reply does not contain public key for <alias>",
       
   258                 "\u8ba4\u8bc1\u56de\u590d\u5e76\u672a\u5305\u542b <{0}> \u7684\u516c\u7528\u5bc6\u94a5"},
       
   259         {"Incomplete certificate chain in reply",
       
   260                 "\u56de\u590d\u4e2d\u7684\u8ba4\u8bc1\u94fe\u4e0d\u5b8c\u6574"},
       
   261         {"Certificate chain in reply does not verify: ",
       
   262                 "\u56de\u590d\u4e2d\u7684\u8ba4\u8bc1\u94fe\u672a\u9a8c\u8bc1\uff1a "},
       
   263         {"Top-level certificate in reply:\n",
       
   264                 "\u56de\u590d\u4e2d\u7684\u6700\u9ad8\u7ea7\u8ba4\u8bc1\uff1a\n"},
       
   265         {"... is not trusted. ", "... \u662f\u4e0d\u53ef\u4fe1\u7684\u3002 "},
       
   266         {"Install reply anyway? [no]:  ", "\u8fd8\u662f\u8981\u5b89\u88c5\u56de\u590d\uff1f [\u5426]\uff1a  "},
       
   267         {"NO", "\u5426"},
       
   268         {"Public keys in reply and keystore don't match",
       
   269                 "\u56de\u590d\u4e2d\u7684\u516c\u7528\u5bc6\u94a5\u4e0e keystore \u4e0d\u7b26"},
       
   270         {"Certificate reply and certificate in keystore are identical",
       
   271                 "\u8ba4\u8bc1\u56de\u590d\u4e0ekeystore\u4e2d\u7684\u8ba4\u8bc1\u662f\u76f8\u540c\u7684"},
       
   272         {"Failed to establish chain from reply",
       
   273                 "\u65e0\u6cd5\u4ece\u56de\u590d\u4e2d\u5efa\u7acb\u94fe\u63a5"},
       
   274         {"n", "n"},
       
   275         {"Wrong answer, try again", "\u9519\u8bef\u7684\u7b54\u6848\uff0c\u8bf7\u518d\u8bd5\u4e00\u6b21"},
       
   276         {"Secret key not generated, alias <alias> already exists",
       
   277                 "\u6ca1\u6709\u751f\u6210\u5bc6\u94a5\uff0c\u522b\u540d <{0}> \u5df2\u7ecf\u5b58\u5728"},
       
   278         {"Please provide -keysize for secret key generation",
       
   279 "\u8bf7\u63d0\u4f9b -keysize \u4ee5\u751f\u6210\u5bc6\u94a5"},
       
   280         {"keytool usage:\n", "keytool \u7528\u6cd5\uff1a\n"},
       
   281 
       
   282         {"Extensions: ", "\u6269\u5c55: "},
       
   283 
       
   284         {"-certreq     [-v] [-protected]",
       
   285                 "-certreq     [-v] [-protected]"},
       
   286         {"\t     [-alias <alias>] [-sigalg <sigalg>]",
       
   287                 "\t     [-alias <\u522b\u540d>] [-sigalg <sigalg>]"},
       
   288         {"\t     [-file <csr_file>] [-keypass <keypass>]",
       
   289                 "\t     [-file <csr_file>] [-keypass <\u5bc6\u94a5\u5e93\u53e3\u4ee4>]"},
       
   290         {"\t     [-keystore <keystore>] [-storepass <storepass>]",
       
   291                 "\t     [-keystore <\u5bc6\u94a5\u5e93>] [-storepass <\u5b58\u50a8\u5e93\u53e3\u4ee4>]"},
       
   292         {"\t     [-storetype <storetype>] [-providername <name>]",
       
   293                 "\t     [-storetype <\u5b58\u50a8\u7c7b\u578b>] [-providername <\u540d\u79f0>]"},
       
   294         {"\t     [-providerclass <provider_class_name> [-providerarg <arg>]] ...",
       
   295                 "\t     [-providerclass <\u63d0\u4f9b\u65b9\u7c7b\u540d\u79f0> [-providerarg <\u53c2\u6570>]] ..."},
       
   296         {"\t     [-providerpath <pathlist>]",
       
   297 "\t     [-providerpath <\u8def\u5f84\u5217\u8868>]"},
       
   298         {"-delete      [-v] [-protected] -alias <alias>",
       
   299                 "-delete      [-v] [-protected] -alias <\u522b\u540d>"},
       
   300         /** rest is same as -certreq starting from -keystore **/
       
   301 
       
   302         //{"-export      [-v] [-rfc] [-protected]",
       
   303         //       "-export      [-v] [-rfc] [-protected]"},
       
   304         {"-exportcert  [-v] [-rfc] [-protected]",
       
   305                 "-exportcert  [-v] [-rfc] [-protected]"},
       
   306         {"\t     [-alias <alias>] [-file <cert_file>]",
       
   307                 "\t     [-alias <\u522b\u540d>] [-file <\u8ba4\u8bc1\u6587\u4ef6>]"},
       
   308         /** rest is same as -certreq starting from -keystore **/
       
   309 
       
   310         //{"-genkey      [-v] [-protected]",
       
   311         //        "-genkey      [-v] [-protected]"},
       
   312         {"-genkeypair  [-v] [-protected]",
       
   313                 "-genkeypair  [-v] [-protected]"},
       
   314         {"\t     [-alias <alias>]", "\t     [-alias <\u522b\u540d>]"},
       
   315         {"\t     [-keyalg <keyalg>] [-keysize <keysize>]",
       
   316                 "\t     [-keyalg <keyalg>] [-keysize <\u5bc6\u94a5\u5927\u5c0f>]"},
       
   317         {"\t     [-sigalg <sigalg>] [-dname <dname>]",
       
   318                 "\t     [-sigalg <sigalg>] [-dname <dname>]"},
       
   319         {"\t     [-validity <valDays>] [-keypass <keypass>]",
       
   320                 "\t     [-validity <valDays>] [-keypass <\u5bc6\u94a5\u5e93\u53e3\u4ee4>]"},
       
   321         /** rest is same as -certreq starting from -keystore **/
       
   322 
       
   323         {"-genseckey   [-v] [-protected]",
       
   324                 "-genseckey   [-v] [-protected]"},
       
   325         /** rest is same as -certreq starting from -keystore **/
       
   326 
       
   327         {"-help", "-help"},
       
   328         //{"-identitydb  [-v] [-protected]",
       
   329         //      "-identitydb  [-v] [-protected]"},
       
   330         //{"\t     [-file <idb_file>]", "\t     [-file <idb_file>]"},
       
   331         /** rest is same as -certreq starting from -keystore **/
       
   332 
       
   333         //{"-import      [-v] [-noprompt] [-trustcacerts] [-protected]",
       
   334         //       "-import      [-v] [-noprompt] [-trustcacerts] [-protected]"},
       
   335         {"-importcert  [-v] [-noprompt] [-trustcacerts] [-protected]",
       
   336                 "-importcert  [-v] [-noprompt] [-trustcacerts] [-protected]"},
       
   337         {"\t     [-alias <alias>]", "\t     [-alias <\u522b\u540d>]"},
       
   338         {"\t     [-alias <alias>] [-keypass <keypass>]",
       
   339 "\t     [-alias <\u522b\u540d>] [-keypass <\u5bc6\u94a5\u5e93\u53e3\u4ee4>]"},
       
   340         {"\t     [-file <cert_file>] [-keypass <keypass>]",
       
   341                 "\t     [-file <\u8ba4\u8bc1\u6587\u4ef6>] [-keypass <\u5bc6\u94a5\u5e93\u53e3\u4ee4>]"},
       
   342         /** rest is same as -certreq starting from -keystore **/
       
   343 
       
   344         {"-importkeystore [-v] ",
       
   345 "-importkeystore [-v] "},
       
   346         {"\t     [-srckeystore <srckeystore>] [-destkeystore <destkeystore>]",
       
   347 "\t     [-srckeystore <\u6e90\u5bc6\u94a5\u5e93>] [-destkeystore <\u76ee\u6807\u5bc6\u94a5\u5e93>]"},
       
   348         {"\t     [-srcstoretype <srcstoretype>] [-deststoretype <deststoretype>]",
       
   349 "\t     [-srcstoretype <\u6e90\u5b58\u50a8\u7c7b\u578b>] [-deststoretype <\u76ee\u6807\u5b58\u50a8\u7c7b\u578b>]"},
       
   350         {"\t     [-srcprotected] [-destprotected]",
       
   351 "\t     [-srcprotected] [-destprotected]"},
       
   352         {"\t     [-srcstorepass <srcstorepass>] [-deststorepass <deststorepass>]",
       
   353 "\t     [-srcstorepass <\u6e90\u5b58\u50a8\u5e93\u53e3\u4ee4>] [-deststorepass <\u76ee\u6807\u5b58\u50a8\u5e93\u53e3\u4ee4>]"},
       
   354         {"\t     [-srcprovidername <srcprovidername>]\n\t     [-destprovidername <destprovidername>]",  // \u884c\u592a\u957f\uff0c\u5206\u4e3a\u4e24\u884c
       
   355 "\t     [-srcprovidername <\u6e90\u63d0\u4f9b\u65b9\u540d\u79f0>]\n\t     [-destprovidername <\u76ee\u6807\u63d0\u4f9b\u65b9\u540d\u79f0>]"},
       
   356         {"\t     [-srcalias <srcalias> [-destalias <destalias>]",
       
   357 "\t     [-srcalias <\u6e90\u522b\u540d> [-destalias <\u76ee\u6807\u522b\u540d>]"},
       
   358         {"\t       [-srckeypass <srckeypass>] [-destkeypass <destkeypass>]]",
       
   359 "\t       [-srckeypass <\u6e90\u5bc6\u94a5\u5e93\u53e3\u4ee4>] [-destkeypass <\u76ee\u6807\u5bc6\u94a5\u5e93\u53e3\u4ee4>]]"},
       
   360         {"\t     [-noprompt]", "\t     [-noprompt]"},
       
   361         /** rest is same as -certreq starting from -keystore **/
       
   362 
       
   363         {"-changealias [-v] [-protected] -alias <alias> -destalias <destalias>",
       
   364 "-changealias [-v] [-protected] -alias <\u522b\u540d> -destalias <\u76ee\u6807\u522b\u540d>"},
       
   365         {"\t     [-keypass <keypass>]", "\t     [-keypass <\u5bc6\u94a5\u5e93\u53e3\u4ee4>]"},
       
   366 
       
   367         //{"-keyclone    [-v] [-protected]",
       
   368         //      "-keyclone    [-v] [-protected]"},
       
   369         //{"\t     [-alias <alias>] -dest <dest_alias>",
       
   370         //      "\t     [-alias <alias>] -dest <dest_alias>"},
       
   371         //{"\t     [-keypass <keypass>] [-new <new_keypass>]",
       
   372         //      "\t     [-keypass <keypass>] [-new <new_keypass>]"},
       
   373         /** rest is same as -certreq starting from -keystore **/
       
   374 
       
   375         {"-keypasswd   [-v] [-alias <alias>]",
       
   376                 "-keypasswd   [-v] [-alias <\u522b\u540d>]"},
       
   377         {"\t     [-keypass <old_keypass>] [-new <new_keypass>]",
       
   378                 "\t     [-keypass <\u65e7\u5bc6\u94a5\u5e93\u53e3\u4ee4>] [-new <\u65b0\u5bc6\u94a5\u5e93\u53e3\u4ee4>]"},
       
   379         /** rest is same as -certreq starting from -keystore **/
       
   380 
       
   381         {"-list        [-v | -rfc] [-protected]",
       
   382                 "-list        [-v | -rfc] [-protected]"},
       
   383         {"\t     [-alias <alias>]", "\t     [-alias <\u522b\u540d>]"},
       
   384         /** rest is same as -certreq starting from -keystore **/
       
   385 
       
   386         {"-printcert   [-v] [-file <cert_file>]",
       
   387                 "-printcert   [-v] [-file <\u8ba4\u8bc1\u6587\u4ef6>]"},
       
   388 
       
   389         //{"-selfcert    [-v] [-protected]",
       
   390         //      "-selfcert    [-v] [-protected]"},
       
   391         {"\t     [-alias <alias>]", "\t     [-alias <\u522b\u540d>]"},
       
   392         //{"\t     [-dname <dname>] [-validity <valDays>]",
       
   393         //      "\t     [-dname <dname>] [-validity <valDays>]"},
       
   394         //{"\t     [-keypass <keypass>] [-sigalg <sigalg>]",
       
   395         //      "\t     [-keypass <\u5bc6\u94a5\u5e93\u53e3\u4ee4>] [-sigalg <sigalg>]"},
       
   396         /** rest is same as -certreq starting from -keystore **/
       
   397 
       
   398         {"-storepasswd [-v] [-new <new_storepass>]",
       
   399                 "-storepasswd [-v] [-new <\u65b0\u5b58\u50a8\u5e93\u53e3\u4ee4>]"},
       
   400         /** rest is same as -certreq starting from -keystore **/
       
   401 
       
   402         // policytool
       
   403         {"Warning: A public key for alias 'signers[i]' does not exist.  Make sure a KeyStore is properly configured.",
       
   404                 "\u8b66\u544a: \u522b\u540d {0} \u7684\u516c\u7528\u5bc6\u94a5\u4e0d\u5b58\u5728\u3002\u8bf7\u786e\u4fdd\u5df2\u6b63\u786e\u914d\u7f6e\u5bc6\u94a5\u5e93\u3002"},
       
   405         {"Warning: Class not found: class", "\u8b66\u544a: \u627e\u4e0d\u5230\u7c7b: {0}"},
       
   406         {"Warning: Invalid argument(s) for constructor: arg",
       
   407                 "\u8b66\u544a: \u6784\u9020\u51fd\u6570\u7684\u53c2\u6570\u65e0\u6548: {0}"},
       
   408         {"Illegal Principal Type: type", "\u975e\u6cd5\u7684 Principal \u7c7b\u578b: {0}"},
       
   409         {"Illegal option: option", "\u975e\u6cd5\u9009\u9879: {0}"},
       
   410         {"Usage: policytool [options]", "\u7528\u6cd5\uff1a policytool [\u9009\u9879]"},
       
   411         {"  [-file <file>]    policy file location",
       
   412                 "  [-file <file>]    \u89c4\u5219\u6587\u4ef6\u4f4d\u7f6e"},
       
   413         {"New", "\u65b0\u6587\u4ef6"},
       
   414         {"Open", "\u6253\u5f00"},
       
   415         {"Save", "\u4fdd\u5b58"},
       
   416         {"Save As", "\u53e6\u5b58\u4e3a"},
       
   417         {"View Warning Log", "\u67e5\u770b\u8b66\u544a\u8bb0\u5f55"},
       
   418         {"Exit", "\u9000\u51fa"},
       
   419         {"Add Policy Entry", "\u6dfb\u52a0\u89c4\u5219\u9879\u76ee"},
       
   420         {"Edit Policy Entry", "\u7f16\u8f91\u89c4\u5219\u9879\u76ee"},
       
   421         {"Remove Policy Entry", "\u5220\u9664\u89c4\u5219\u9879\u76ee"},
       
   422         {"Edit", "\u7f16\u8f91"},
       
   423         {"Retain", "\u4fdd\u6301"},
       
   424 
       
   425         {"Warning: File name may include escaped backslash characters. " +
       
   426                         "It is not necessary to escape backslash characters " +
       
   427                         "(the tool escapes characters as necessary when writing " +
       
   428                         "the policy contents to the persistent store).\n\n" +
       
   429                         "Click on Retain to retain the entered name, or click on " +
       
   430                         "Edit to edit the name.",
       
   431             "Warning: File name may include escaped backslash characters. " +
       
   432                         "It is not necessary to escape backslash characters " +
       
   433                         "(the tool escapes characters as necessary when writing " +
       
   434                         "the policy contents to the persistent store).\n\n" +
       
   435                         "Click on Retain to retain the entered name, or click on " +
       
   436                         "Edit to edit the name."},
       
   437 
       
   438         {"Add Public Key Alias", "\u6dfb\u52a0\u516c\u7528\u5bc6\u94a5\u522b\u540d"},
       
   439         {"Remove Public Key Alias", "\u5220\u9664\u516c\u7528\u5bc6\u94a5\u522b\u540d"},
       
   440         {"File", "\u6587\u4ef6"},
       
   441         {"KeyStore", "\u5bc6\u94a5\u5e93"},
       
   442         {"Policy File:", "\u89c4\u5219\u6587\u4ef6\uff1a"},
       
   443         {"Could not open policy file: policyFile: e.toString()",
       
   444                 "\u65e0\u6cd5\u6253\u5f00\u7b56\u7565\u6587\u4ef6: {0}: {1}"},
       
   445         {"Policy Tool", "\u89c4\u5219\u5de5\u5177"},
       
   446         {"Errors have occurred while opening the policy configuration.  View the Warning Log for more information.",
       
   447                 "\u6253\u5f00\u89c4\u5219\u914d\u7f6e\u65f6\u53d1\u751f\u9519\u8bef\u3002 \u8bf7\u67e5\u770b\u8b66\u544a\u8bb0\u5f55\u83b7\u53d6\u66f4\u591a\u4fe1\u606f"},
       
   448         {"Error", "\u9519\u8bef"},
       
   449         {"OK", "\u786e\u8ba4"},
       
   450         {"Status", "\u72b6\u6001"},
       
   451         {"Warning", "\u8b66\u544a"},
       
   452         {"Permission:                                                       ",
       
   453                 "\u8bb8\u53ef\uff1a                                                       "},
       
   454         {"Principal Type:", "Principal \u7c7b\u578b\uff1a"},
       
   455         {"Principal Name:", "Principal \u540d\u79f0\uff1a"},
       
   456         {"Target Name:                                                    ",
       
   457                 "\u76ee\u6807\u540d\u79f0\uff1a                                                    "},
       
   458         {"Actions:                                                             ",
       
   459                 "\u52a8\u4f5c\uff1a                                                             "},
       
   460         {"OK to overwrite existing file filename?",
       
   461                 "\u786e\u8ba4\u66ff\u6362\u73b0\u6709\u7684\u6587\u4ef6 {0}\uff1f"},
       
   462         {"Cancel", "\u53d6\u6d88"},
       
   463         {"CodeBase:", "CodeBase:"},
       
   464         {"SignedBy:", "SignedBy:"},
       
   465         {"Add Principal", "\u6dfb\u52a0 Principal"},
       
   466         {"Edit Principal", "\u7f16\u8f91 Principal"},
       
   467         {"Remove Principal", "\u5220\u9664 Principal"},
       
   468         {"Principals:", "Principals\uff1a"},
       
   469         {"  Add Permission", "  \u6dfb\u52a0\u6743\u9650"},
       
   470         {"  Edit Permission", "  \u7f16\u8f91\u6743\u9650"},
       
   471         {"Remove Permission", "\u5220\u9664\u6743\u9650"},
       
   472         {"Done", "\u5b8c\u6210"},
       
   473         {"KeyStore URL:", "\u5bc6\u94a5\u5e93 URL:"},
       
   474         {"KeyStore Type:", "\u5bc6\u94a5\u5e93\u7c7b\u578b:"},
       
   475         {"KeyStore Provider:", "\u5bc6\u94a5\u5e93\u63d0\u4f9b\u8005:"},
       
   476         {"KeyStore Password URL:", "\u5bc6\u94a5\u5e93\u53e3\u4ee4 URL:"},
       
   477         {"Principals", "Principals"},
       
   478         {"  Edit Principal:", "  \u7f16\u8f91 Principal\uff1a"},
       
   479         {"  Add New Principal:", "  \u52a0\u5165\u65b0 Principal\uff1a"},
       
   480         {"Permissions", "\u6743\u9650"},
       
   481         {"  Edit Permission:", "  \u7f16\u8f91\u6743\u9650"},
       
   482         {"  Add New Permission:", "  \u52a0\u5165\u65b0\u7684\u6743\u9650"},
       
   483         {"Signed By:", "\u7b7e\u7f72\u4eba\uff1a"},
       
   484         {"Cannot Specify Principal with a Wildcard Class without a Wildcard Name",
       
   485             "\u6ca1\u6709\u901a\u914d\u7b26\u540d\u79f0\uff0c\u65e0\u6cd5\u7528\u901a\u914d\u7b26\u7c7b\u522b\u6307\u5b9aPrincipal"},
       
   486         {"Cannot Specify Principal without a Name",
       
   487             "\u6ca1\u6709\u540d\u79f0\uff0c\u65e0\u6cd5\u6307\u5b9a Principal"},
       
   488         {"Permission and Target Name must have a value",
       
   489                 "\u6743\u9650\u53ca\u76ee\u6807\u540d\u5fc5\u987b\u6709\u4e00\u4e2a\u503c\u3002"},
       
   490         {"Remove this Policy Entry?", "\u5220\u9664\u6b64\u89c4\u5219\u9879\uff1f"},
       
   491         {"Overwrite File", "\u66ff\u6362\u6587\u4ef6"},
       
   492         {"Policy successfully written to filename",
       
   493                 "\u89c4\u5219\u6210\u529f\u5199\u81f3 {0}"},
       
   494         {"null filename", "\u65e0\u6548\u7684\u6587\u4ef6\u540d"},
       
   495         {"Save changes?", "\u662f\u5426\u4fdd\u5b58\u6240\u505a\u7684\u66f4\u6539\uff1f"},
       
   496         {"Yes", "\u662f"},
       
   497         {"No", "\u5426"},
       
   498         {"Policy Entry", "\u89c4\u5219\u9879\u76ee"},
       
   499         {"Save Changes", "\u4fdd\u5b58\u4fee\u6539"},
       
   500         {"No Policy Entry selected", "\u6ca1\u6709\u9009\u62e9\u89c4\u5219\u9879\u76ee"},
       
   501         {"Unable to open KeyStore: ex.toString()",
       
   502                 "\u65e0\u6cd5\u6253\u5f00\u5bc6\u94a5\u5e93: {0}"},
       
   503         {"No principal selected", "\u672a\u9009\u62e9 Principal"},
       
   504         {"No permission selected", "\u6ca1\u6709\u9009\u62e9\u6743\u9650"},
       
   505         {"name", "\u540d\u79f0"},
       
   506         {"configuration type", "\u914d\u7f6e\u7c7b\u578b"},
       
   507         {"environment variable name", "\u73af\u5883\u53d8\u91cf\u540d"},
       
   508         {"library name", "\u7a0b\u5e8f\u5e93\u540d\u79f0"},
       
   509         {"package name", "\u8f6f\u4ef6\u5305\u540d\u79f0"},
       
   510         {"policy type", "\u7b56\u7565\u7c7b\u578b"},
       
   511         {"property name", "\u5c5e\u6027\u540d\u79f0"},
       
   512         {"provider name", "\u63d0\u4f9b\u8005\u540d\u79f0"},
       
   513         {"Principal List", "Principal \u5217\u8868"},
       
   514         {"Permission List", "\u6743\u9650\u5217\u8868"},
       
   515         {"Code Base", "Code Base\uff08\u4ee3\u7801\u5e93\uff09"},
       
   516         {"KeyStore U R L:", "\u5bc6\u94a5\u5e93 URL:"},
       
   517         {"KeyStore Password U R L:", "\u5bc6\u94a5\u5e93\u53e3\u4ee4 URL:"},
       
   518 
       
   519 
       
   520         // javax.security.auth.PrivateCredentialPermission
       
   521         {"invalid null input(s)", "\u65e0\u6548\u7a7a\u8f93\u5165"},
       
   522         {"actions can only be 'read'", "\u52a8\u4f5c\u53ea\u80fd\u88ab\u2018\u8bfb\u53d6'"},
       
   523         {"permission name [name] syntax invalid: ",
       
   524                 "\u6743\u9650\u540d\u79f0 [{0}]\u8bed\u6cd5\u65e0\u6548\uff1a "},
       
   525         {"Credential Class not followed by a Principal Class and Name",
       
   526                 "\u8ba4\u8bc1\u7b49\u7ea7\u540e\u672a\u52a0\u4e0aPrincipal \u7c7b\u522b\u53ca\u540d\u79f0"},
       
   527         {"Principal Class not followed by a Principal Name",
       
   528                 "Principal \u7c7b\u522b\u540e\u9762\u6ca1\u52a0\u4e0aPrincipal \u540d\u79f0"},
       
   529         {"Principal Name must be surrounded by quotes",
       
   530                 "Principal \u540d\u79f0\u5fc5\u987b\u653e\u5728\u5f15\u53f7\u5185"},
       
   531         {"Principal Name missing end quote",
       
   532                 "Principal \u540d\u79f0\u7f3a\u5c11\u4e0b\u5f15\u53f7"},
       
   533         {"PrivateCredentialPermission Principal Class can not be a wildcard (*) value if Principal Name is not a wildcard (*) value",
       
   534                 "\u5982\u679c Principal \u540d\u79f0\u4e0d\u662f\u4e00\u4e2a\u901a\u914d\u7b26 (*) \u503c\uff0c\u90a3\u4e48 PrivateCredentialPermission Principal \u7c7b\u522b\u5c31\u4e0d\u4f1a\u662f\u4e00\u4e2a\u901a\u914d\u7b26 (*) \u503c"},
       
   535         {"CredOwner:\n\tPrincipal Class = class\n\tPrincipal Name = name",
       
   536                 "CredOwner:\n\tPrincipal \u7c7b\u522b = {0}\n\tPrincipal \u540d\u79f0 = {1}"},
       
   537 
       
   538         // javax.security.auth.x500
       
   539         {"provided null name", "\u6240\u4f9b\u540d\u79f0\u65e0\u6548"},
       
   540         {"provided null keyword map", "\u63d0\u4f9b\u4e86\u7a7a\u5173\u952e\u5b57\u6620\u5c04"},
       
   541         {"provided null OID map", "\u63d0\u4f9b\u4e86\u7a7a OID \u6620\u5c04"},
       
   542 
       
   543         // javax.security.auth.Subject
       
   544         {"invalid null AccessControlContext provided",
       
   545                 "\u63d0\u4f9b\u65e0\u6548\u7684\u7a7a AccessControlContext"},
       
   546         {"invalid null action provided", "\u63d0\u4f9b\u4e86\u65e0\u6548\u7684\u7a7a\u52a8\u4f5c"},
       
   547         {"invalid null Class provided", "\u63d0\u4f9b\u4e86\u65e0\u6548\u7684\u7a7a\u7c7b\u522b"},
       
   548         {"Subject:\n", "\u4e3b\u9898\uff1a\n"},
       
   549         {"\tPrincipal: ", "\tPrincipal: "},
       
   550         {"\tPublic Credential: ", "\t\u516c\u7528\u8ba4\u8bc1 "},
       
   551         {"\tPrivate Credentials inaccessible\n",
       
   552                 "\t\u65e0\u6cd5\u8bbf\u95ee\u79c1\u4eba\u8ba4\u8bc1\n"},
       
   553         {"\tPrivate Credential: ", "\t\u79c1\u4eba\u8ba4\u8bc1 "},
       
   554         {"\tPrivate Credential inaccessible\n",
       
   555                 "\t\u65e0\u6cd5\u8bbf\u95ee\u79c1\u4eba\u8ba4\u8bc1\n"},
       
   556         {"Subject is read-only", "\u4e3b\u9898\u4e3a\u53ea\u8bfb"},
       
   557         {"attempting to add an object which is not an instance of java.security.Principal to a Subject's Principal Set",
       
   558                 "\u8bd5\u56fe\u5c06\u4e00\u4e2a\u975e java.security.Principal \u5b9e\u4f8b\u7684\u5bf9\u8c61\u6dfb\u52a0\u81f3\u4e3b\u9898\u7684 Principal \u96c6\u4e2d"},
       
   559         {"attempting to add an object which is not an instance of class",
       
   560                 "\u8bd5\u56fe\u6dfb\u52a0\u4e00\u4e2a\u975e {0} \u5b9e\u4f8b\u7684\u5bf9\u8c61"},
       
   561 
       
   562         // javax.security.auth.login.AppConfigurationEntry
       
   563         {"LoginModuleControlFlag: ", "LoginModuleControlFlag: "},
       
   564 
       
   565         // javax.security.auth.login.LoginContext
       
   566         {"Invalid null input: name", "\u65e0\u6548\u7a7a\u8f93\u5165\uff1a\u540d\u79f0"},
       
   567         {"No LoginModules configured for name",
       
   568          "\u6ca1\u6709\u4e3a {0} \u914d\u7f6eLoginModules"},
       
   569         {"invalid null Subject provided", "\u63d0\u4f9b\u4e86\u65e0\u6548\u7a7a\u4e3b\u9898"},
       
   570         {"invalid null CallbackHandler provided",
       
   571                 "\u63d0\u4f9b\u4e86\u65e0\u6548\u7684\u7a7a CallbackHandler"},
       
   572         {"null subject - logout called before login",
       
   573                 "\u65e0\u6548\u4e3b\u9898 - \u5728\u767b\u5f55\u4e4b\u524d\u5373\u88ab\u8c03\u7528\u6ce8\u9500"},
       
   574         {"unable to instantiate LoginModule, module, because it does not provide a no-argument constructor",
       
   575                 "\u65e0\u6cd5\u4f8b\u793a LoginModule\uff0c {0}\uff0c\u56e0\u4e3a\u5b83\u5e76\u672a\u63d0\u4f9b\u4e00\u4e2a\u4e0d\u542b\u53c2\u6570\u7684\u6784\u9020\u7a0b\u5e8f"},
       
   576         {"unable to instantiate LoginModule",
       
   577                 "\u65e0\u6cd5\u4f8b\u793a LoginModule"},
       
   578         {"unable to instantiate LoginModule: ",
       
   579                 "\u65e0\u6cd5\u5b9e\u4f8b\u5316 LoginModule: "},
       
   580         {"unable to find LoginModule class: ",
       
   581                 "\u65e0\u6cd5\u627e\u5230 LoginModule \u7c7b\u522b\uff1a "},
       
   582         {"unable to access LoginModule: ",
       
   583                 "\u65e0\u6cd5\u8bbf\u95ee LoginModule: "},
       
   584         {"Login Failure: all modules ignored",
       
   585                 "\u767b\u5f55\u5931\u8d25\uff1a\u5ffd\u7565\u6240\u6709\u6a21\u5757"},
       
   586 
       
   587         // sun.security.provider.PolicyFile
       
   588 
       
   589         {"java.security.policy: error parsing policy:\n\tmessage",
       
   590                 "java.security.policy: \u89e3\u6790\u9519\u8bef {0}\uff1a\n\t{1}"},
       
   591         {"java.security.policy: error adding Permission, perm:\n\tmessage",
       
   592                 "java.security.policy: \u6dfb\u52a0\u6743\u9650\u9519\u8bef {0}\uff1a\n\t{1}"},
       
   593         {"java.security.policy: error adding Entry:\n\tmessage",
       
   594                 "java.security.policy: \u6dfb\u52a0\u9879\u76ee\u9519\u8bef\uff1a\n\t{0}"},
       
   595         {"alias name not provided (pe.name)", "\u672a\u63d0\u4f9b\u522b\u540d ({0})"},
       
   596         {"unable to perform substitution on alias, suffix",
       
   597                 "\u4e0d\u80fd\u5728\u522b\u540d\u4e0a\u6267\u884c\u66ff\u4ee3\uff0c {0}"},
       
   598         {"substitution value, prefix, unsupported",
       
   599                 "\u66ff\u4ee3\u503c {0} \u4e0d\u53d7\u652f\u6301"},
       
   600         {"(", "("},
       
   601         {")", ")"},
       
   602         {"type can't be null","\u4e0d\u80fd\u4e3a\u65e0\u6548\u7c7b\u578b"},
       
   603 
       
   604         // sun.security.provider.PolicyParser
       
   605         {"keystorePasswordURL can not be specified without also specifying keystore",
       
   606                 "\u4e0d\u6307\u5b9a keystore \u65f6\u65e0\u6cd5\u6307\u5b9a keystorePasswordURL"},
       
   607         {"expected keystore type", "\u9884\u671f\u7684 keystore \u7c7b\u578b"},
       
   608         {"expected keystore provider", "\u9884\u671f\u7684 keystore \u63d0\u4f9b\u8005"},
       
   609         {"multiple Codebase expressions",
       
   610                 "\u591a\u79cd Codebase \u8868\u8fbe\u5f0f"},
       
   611         {"multiple SignedBy expressions","\u591a\u79cd SignedBy \u8868\u8fbe\u5f0f"},
       
   612         {"SignedBy has empty alias","SignedBy \u6709\u7a7a\u522b\u540d"},
       
   613         {"can not specify Principal with a wildcard class without a wildcard name",
       
   614                 "\u6ca1\u6709\u901a\u914d\u7b26\u540d\u79f0\uff0c\u65e0\u6cd5\u7528\u901a\u914d\u7b26\u7c7b\u522b\u6307\u5b9aPrincipal"},
       
   615         {"expected codeBase or SignedBy or Principal",
       
   616                 "\u9884\u671f\u7684 codeBase \u6216 SignedBy \u6216 Principal"},
       
   617         {"expected permission entry", "\u9884\u671f\u7684\u6743\u9650\u9879\u76ee"},
       
   618         {"number ", "\u53f7\u7801"},
       
   619         {"expected [expect], read [end of file]",
       
   620                 "\u9884\u671f\u7684 [{0}], \u8bfb\u53d6 [end of file]"},
       
   621         {"expected [;], read [end of file]",
       
   622                 "\u9884\u671f\u7684 [;], \u8bfb\u53d6[end of file]"},
       
   623         {"line number: msg", "\u5217 {0}\uff1a {1}"},
       
   624         {"line number: expected [expect], found [actual]",
       
   625                 "\u884c\u53f7 {0}\uff1a\u9884\u671f\u7684 [{1}]\uff0c\u627e\u5230 [{2}]"},
       
   626         {"null principalClass or principalName",
       
   627                 "\u65e0\u6548 principalClass \u6216 principalName"},
       
   628 
       
   629         // sun.security.pkcs11.SunPKCS11
       
   630         {"PKCS11 Token [providerName] Password: ",
       
   631                 "PKCS11 Token [{0}] \u5bc6\u7801: "},
       
   632 
       
   633         /* --- DEPRECATED --- */
       
   634         // javax.security.auth.Policy
       
   635         {"unable to instantiate Subject-based policy",
       
   636                 "\u65e0\u6cd5\u5b9e\u4f8b\u5316\u57fa\u4e8e\u4e3b\u9898\u7684\u7b56\u7565"}
       
   637     };
       
   638 
       
   639 
       
   640     /**
       
   641      * Returns the contents of this <code>ResourceBundle</code>.
       
   642      *
       
   643      * <p>
       
   644      *
       
   645      * @return the contents of this <code>ResourceBundle</code>.
       
   646      */
       
   647     public Object[][] getContents() {
       
   648         return contents;
       
   649     }
       
   650 }