###############################################################################
# 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\uff1a\u9a8c\u8bc1\u5931\u8d25\uff0c\u539f\u56e0\u662f\u5e94\u7528\u7a0b\u5e8f\u5ba2\u6237\u673a\u6587\u4ef6\u65e0\u6548\u3002\u786e\u4fdd\u90e8\u7f72\u63cf\u8ff0\u7b26\u6709\u6548\u3002
#EXPLANATION None.
#USERACTION None.

ERROR_APPCLIENT_VALIDATION_FAILED=CHKJ1001E\uff1a\u9a8c\u8bc1\u5931\u8d25\uff1a
#EXPLANATION None.
#USERACTION None.

ERROR_EJB_REFS=CHKJ1002E\uff1a{0} \u4e2d\u5b58\u5728\u4e0d\u80fd\u89e3\u6790\u7684 EJB \u5f15\u7528\uff1b
#EXPLANATION None.
#USERACTION None.

INVALID_DD=CHKJ1003E\uff1a\u5e94\u7528\u7a0b\u5e8f\u5ba2\u6237\u673a\u9879\u76ee\u5177\u6709\u65e0\u6548\u7684\u90e8\u7f72\u63cf\u8ff0\u7b26\u3002
#EXPLANATION None.
#USERACTION None.

MESSAGE_APPCLIENT_MISSING_URI=CHKJ1004E\uff1aURI {0} \u4e0e\u5e94\u7528\u7a0b\u5e8f\u5ba2\u6237\u673a\u6587\u4ef6\u4e2d\u7684\u4efb\u4f55\u5185\u5bb9\u90fd\u4e0d\u5339\u914d\u3002
#EXPLANATION None.
#USERACTION None.

APPCLIENT_DD_PARSE_LINECOL=CHKJ1005E\uff1a\u7531\u4e8e\u5b58\u5728\u672a\u77e5\u7684\u8bed\u6cd5\u9519\u8bef\u800c\u4e0d\u80fd\u88c5\u5165\u90e8\u7f72\u63cf\u8ff0\u7b26\u3002\u9519\u8bef\u90e8\u5206\u4ece\u7b2c {0} \u884c\u7b2c {1} \u5217\u5f00\u59cb\u3002
#EXPLANATION None.
#USERACTION None.

APPCLIENT_DD_PARSE_LINE=CHKJ1006E\uff1a\u7531\u4e8e\u5b58\u5728\u672a\u77e5\u7684\u8bed\u6cd5\u9519\u8bef\u800c\u4e0d\u80fd\u88c5\u5165\u90e8\u7f72\u63cf\u8ff0\u7b26\u3002\u9519\u8bef\u90e8\u5206\u4ece\u7b2c {0} \u884c\u5f00\u59cb\u3002
#EXPLANATION None.
#USERACTION None.

APPCLIENT_DD_PARSE_NOINFO=CHKJ1007E\uff1a\u7531\u4e8e\u5b58\u5728\u672a\u77e5\u7684\u8bed\u6cd5\u9519\u8bef\u800c\u4e0d\u80fd\u88c5\u5165\u90e8\u7f72\u63cf\u8ff0\u7b26\u3002\u6ca1\u6709\u4efb\u4f55\u4fe1\u606f\u53ef\u7528\u4e8e\u5e2e\u52a9\u786e\u5b9a\u9519\u8bef\u90e8\u5206\u3002
#EXPLANATION None.
#USERACTION None.

APPCLIENT_DD_CANNOT_OPEN_DD=CHKJ1008E\uff1a\u9a8c\u8bc1\u672a\u80fd\u5b8c\u6210\uff0c\u539f\u56e0\u662f\u65e0\u6cd5\u6253\u5f00\u90e8\u7f72\u63cf\u8ff0\u7b26\u3002
#EXPLANATION None.
#USERACTION None.

APPCLIENT_DUP_RES_ENV_REF_ERROR_=IWAE0002E application-client.xml \u4e2d\u5b58\u5728\u91cd\u590d\u7684\u8d44\u6e90\u73af\u5883\u5f15\u7528\u201c{0}\u201d\u3002
#EXPLANATION None.
#USERACTION None.

APPCLIENT_INVALID_DOC_TYPE_ERROR_=IWAE0003E \u9879\u76ee\u201c{1}\u201d\u4e2d application-client.xml \u7684\u6587\u6863\u7c7b\u578b\u7248\u672c\u201c{0}\u201d\u5fc5\u987b\u4e3a\u7248\u672c\u201c{2}\u201d\u3002
#EXPLANATION None.
#USERACTION None.

APPCLIENT_DUP_EJB_REF_ERROR_=IWAE0004E application-client.xml \u4e2d\u5b58\u5728\u91cd\u590d\u7684\u4f01\u4e1a bean \u5f15\u7528\u201c{0}\u201d\u3002
APPCLIENT_MAIN_CLASS_ERROR_=IWAE0035E \u5fc5\u987b\u5728\u5e94\u7528\u7a0b\u5e8f\u5ba2\u6237\u673a\u6a21\u5757\u4e2d\u5b9a\u4e49 main \u7c7b\u5c5e\u6027\u3002
