###############################################################################
# Copyright (c) 2001, 2004 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
# 
# Contributors:
# IBM Corporation - initial API and implementation
###############################################################################
# This properties file holds all the externalized strings for the Application Client project
#
# :Begin: WebSphere Quality Validation Information :Begin:
#COMPONENTPREFIX CHKJ
#COMPONENTNAMEFOR CHKJ IBM WebSphere Validation
#CMVCPATHNAME ncf/src/java/com/ibm/websphere/validation/applicationclientvalidation.properties
# :End: WebSphere Quality Validation Information :End:


ERROR_APPLICATIONCLIENT_INVALID_APPCLIENT_FILE=CHKJ1000E: \u9a57\u8b49\u5931\u6557\uff0c\u56e0\u70ba\u61c9\u7528\u7a0b\u5f0f\u7528\u6236\u7aef\u6a94\u6848\u7121\u6548\u3002\u8acb\u78ba\u5b9a\u90e8\u7f72\u63cf\u8ff0\u5b50\u6709\u6548\u3002
#EXPLANATION None.
#USERACTION None.

ERROR_APPCLIENT_VALIDATION_FAILED=CHKJ1001E: \u9a57\u8b49\u5931\u6557\uff1a
#EXPLANATION None.
#USERACTION None.

ERROR_EJB_REFS=CHKJ1002E: {0} \u6709\u7121\u6cd5\u5206\u8fa8\u7684 EJB \u53c3\u7167\uff1b
#EXPLANATION None.
#USERACTION None.

INVALID_DD=CHKJ1003E: \u61c9\u7528\u7a0b\u5f0f\u7528\u6236\u7aef\u5c08\u6848\u6709\u7121\u6548\u7684\u90e8\u7f72\u63cf\u8ff0\u5b50\u3002
#EXPLANATION None.
#USERACTION None.

MESSAGE_APPCLIENT_MISSING_URI=CHKJ1004E: URI {0} \u8207\u61c9\u7528\u7a0b\u5f0f\u7528\u6236\u7aef\u6a94\u6848\u4e2d\u7684\u4efb\u4f55\u9805\u76ee\u4e0d\u7b26\u3002
#EXPLANATION None.
#USERACTION None.

APPCLIENT_DD_PARSE_LINECOL=CHKJ1005E: \u90e8\u7f72\u63cf\u8ff0\u5b50\u56e0\u4e0d\u660e\u8a9e\u6cd5\u932f\u8aa4\u800c\u7121\u6cd5\u8f09\u5165\u3002\u932f\u8aa4\u5340\u6bb5\u5f9e\u7b2c {0} \u884c\u7b2c {1} \u76f4\u6b04\u958b\u59cb\u3002
#EXPLANATION None.
#USERACTION None.

APPCLIENT_DD_PARSE_LINE=CHKJ1006E: \u90e8\u7f72\u63cf\u8ff0\u5b50\u56e0\u4e0d\u660e\u8a9e\u6cd5\u932f\u8aa4\u800c\u7121\u6cd5\u8f09\u5165\u3002\u932f\u8aa4\u5340\u6bb5\u5f9e\u7b2c {0} \u884c\u958b\u59cb\u3002
#EXPLANATION None.
#USERACTION None.

APPCLIENT_DD_PARSE_NOINFO=CHKJ1007E: \u90e8\u7f72\u63cf\u8ff0\u5b50\u56e0\u4e0d\u660e\u8a9e\u6cd5\u932f\u8aa4\u800c\u7121\u6cd5\u8f09\u5165\u3002\u6c92\u6709\u8cc7\u8a0a\u53ef\u5354\u52a9\u8b58\u5225\u932f\u8aa4\u7684\u5340\u6bb5\u3002
#EXPLANATION None.
#USERACTION None.

APPCLIENT_DD_CANNOT_OPEN_DD=CHKJ1008E: \u7121\u6cd5\u5b8c\u6210\u9a57\u8b49\uff0c\u56e0\u70ba\u7121\u6cd5\u958b\u555f\u90e8\u7f72\u63cf\u8ff0\u5b50\u3002
#EXPLANATION None.
#USERACTION None.

APPCLIENT_DUP_RES_ENV_REF_ERROR_=IWAE0002E \u5728 application-client.xml \u4e2d\uff0c\u6709\u91cd\u8907\u7684\u8cc7\u6e90\u74b0\u5883\u53c3\u7167 "{0}"\u3002
#EXPLANATION None.
#USERACTION None.

APPCLIENT_INVALID_DOC_TYPE_ERROR_=IWAE0003E "{1}" \u5c08\u6848\u4e2d\u7684 application-client.xml \u4e4b\u6587\u4ef6\u985e\u578b\u7248\u672c "{0}" \u5fc5\u9808\u662f "{2}" \u7248\u3002
#EXPLANATION None.
#USERACTION None.

APPCLIENT_DUP_EJB_REF_ERROR_=IWAE0004E  application-client.xml \u4e2d\uff0c\u6709\u91cd\u8907\u7684 Enterprise Bean \u53c3\u7167 "{0}"\u3002
APPCLIENT_MAIN_CLASS_ERROR_=IWAE0035E \u4e3b\u8981\u985e\u5225\u5c6c\u6027\u5fc5\u9808\u5b9a\u7fa9\u65bc\u61c9\u7528\u7a0b\u5f0f\u7528\u6236\u7aef\u6a21\u7d44\u4e2d\u3002
