#
#
# Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#

# Localizations for Level names.  For the US locale
# these are the same as the non-localized level name.

agent.err.error			   = \u9519\u8bef
agent.err.exception                = \u4ee3\u7406\u629b\u51fa\u5f02\u5e38 
agent.err.warning		   = \u8b66\u544a

agent.err.configfile.notfound      = \u627e\u4e0d\u5230\u914d\u7f6e\u6587\u4ef6
agent.err.configfile.failed        = \u8bfb\u53d6\u914d\u7f6e\u6587\u4ef6\u5931\u8d25
agent.err.configfile.closed.failed = \u5173\u95ed\u914d\u7f6e\u6587\u4ef6\u5931\u8d25
agent.err.configfile.access.denied = \u62d2\u7edd\u8bbf\u95ee\u914d\u7f6e\u6587\u4ef6

agent.err.exportaddress.failed	   = \u5c06 JMX \u8fde\u63a5\u5668\u5730\u5740\u5bfc\u51fa\u5230\u6d4b\u8bd5\u8bbe\u5907\u7f13\u51b2\u533a\u5931\u8d25

agent.err.agentclass.notfound      = \u627e\u4e0d\u5230\u7ba1\u7406\u4ee3\u7406\u7c7b
agent.err.agentclass.failed        = \u7ba1\u7406\u4ee3\u7406\u7c7b\u5931\u8d25 
agent.err.premain.notfound         = \u4ee3\u7406\u7c7b\u4e2d\u4e0d\u5b58\u5728 premain(String)
agent.err.agentclass.access.denied = \u62d2\u7edd\u8bbf\u95ee premain(String)
agent.err.invalid.agentclass       = com.sun.management.agent.class \u5c5e\u6027\u503c\u65e0\u6548

agent.err.invalid.jmxremote.port   = com.sun.management.jmxremote.port \u7f16\u53f7\u65e0\u6548

agent.err.password.file.notset     = \u672a\u6307\u5b9a\u53e3\u4ee4\u6587\u4ef6\uff0c\u4f46 com.sun.management.jmxremote.authenticate=true
agent.err.password.file.not.readable = \u65e0\u6cd5\u8bfb\u53d6\u53e3\u4ee4\u6587\u4ef6
agent.err.password.file.read.failed = \u8bfb\u53d6\u53e3\u4ee4\u6587\u4ef6\u5931\u8d25
agent.err.password.file.notfound   = \u627e\u4e0d\u5230\u53e3\u4ee4\u6587\u4ef6
agent.err.password.file.access.notrestricted = \u5fc5\u987b\u9650\u5236\u53e3\u4ee4\u6587\u4ef6\u8bfb\u53d6\u8bbf\u95ee

agent.err.access.file.notset       = \u672a\u6307\u5b9a\u8bbf\u95ee\u6587\u4ef6\uff0c\u4f46 com.sun.management.jmxremote.authenticate=true
agent.err.access.file.not.readable = \u65e0\u6cd5\u8bfb\u53d6\u8bbf\u95ee\u6587\u4ef6
agent.err.access.file.read.failed  = \u8bfb\u53d6\u8bbf\u95ee\u6587\u4ef6\u5931\u8d25
agent.err.access.file.notfound     = \u627e\u4e0d\u5230\u8bbf\u95ee\u6587\u4ef6

agent.err.connector.server.io.error = JMX \u8fde\u63a5\u5668\u670d\u52a1\u5668\u901a\u4fe1\u9519\u8bef

agent.err.invalid.option	   = \u6307\u5b9a\u7684\u9009\u9879\u65e0\u6548
agent.err.invalid.snmp.port        = com.sun.management.snmp.port \u7f16\u53f7\u65e0\u6548
agent.err.invalid.snmp.trap.port   = com.sun.management.snmp.trap \u7f16\u53f7\u65e0\u6548
agent.err.unknown.snmp.interface   = \u672a\u77e5 SNMP \u63a5\u53e3
agent.err.acl.file.notset          = \u672a\u6307\u5b9a SNMP ACL \u6587\u4ef6\uff0c\u4f46 com.sun.management.snmp.acl=true
agent.err.acl.file.notfound        = \u627e\u4e0d\u5230 SNMP ACL \u6587\u4ef6
agent.err.acl.file.not.readable    = \u65e0\u6cd5\u8bfb\u53d6 SNMP ACL \u6587\u4ef6
agent.err.acl.file.read.failed     = \u8bfb\u53d6 SNMP ACL \u6587\u4ef6\u5931\u8d25
agent.err.acl.file.access.notrestricted = \u5fc5\u987b\u9650\u5236\u53e3\u4ee4\u6587\u4ef6\u8bfb\u53d6\u8bbf\u95ee

agent.err.snmp.adaptor.start.failed = \u65e0\u6cd5\u542f\u52a8\u5e26\u6709\u5730\u5740\u7684 SNMP \u9002\u914d\u5668
agent.err.snmp.mib.init.failed     = \u65e0\u6cd5\u521d\u59cb\u5316\u5e26\u6709\u9519\u8bef\u7684 SNMP MIB

jmxremote.ConnectorBootstrap.initialize = \u6b63\u5728\u542f\u52a8 JMX \u8fde\u63a5\u5668\u670d\u52a1\u5668\uff1a
jmxremote.ConnectorBootstrap.initialize.noAuthentication = \u65e0\u9a8c\u8bc1
jmxremote.ConnectorBootstrap.initialize.ready = \u4f4d\u4e8e {0} \u7684 JMX \u8fde\u63a5\u5668\u5c31\u7eea
jmxremote.ConnectorBootstrap.initialize.password.readonly = \u5fc5\u987b\u9650\u5236\u53e3\u4ee4\u6587\u4ef6\u8bfb\u53d6\u8bbf\u95ee\uff1a{0}

jmxremote.AdaptorBootstrap.getTargetList.processing = \u6b63\u5728\u5904\u7406 ACL
jmxremote.AdaptorBootstrap.getTargetList.adding = \u6b63\u5728\u6dfb\u52a0\u76ee\u6807\uff1a{0}
jmxremote.AdaptorBootstrap.getTargetList.starting = \u6b63\u5728\u542f\u52a8\u9002\u914d\u5668\u670d\u52a1\u5668\uff1a
jmxremote.AdaptorBootstrap.getTargetList.initialize1 = \u9002\u914d\u5668\u5c31\u7eea\u3002
jmxremote.AdaptorBootstrap.getTargetList.initialize2 = \u4f4d\u4e8e {0}:{1} \u7684 SNMP \u9002\u914d\u5668\u5c31\u7eea
jmxremote.AdaptorBootstrap.getTargetList.terminate = \u7ec8\u6b62 {0}
