###############################################################################
# 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: \uc751\uc6a9\ud504\ub85c\uadf8\ub7a8 \ud074\ub77c\uc774\uc5b8\ud2b8 \ud30c\uc77c\uc774 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc544 \uc720\ud6a8\uc131 \uac80\uc99d\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4. \uc804\uac1c \uc124\uba85\uc790\uac00 \uc62c\ubc14\ub978\uc9c0 \ud655\uc778\ud558\uc2ed\uc2dc\uc624.
#EXPLANATION None.
#USERACTION None.

ERROR_APPCLIENT_VALIDATION_FAILED=CHKJ1001E: \uc720\ud6a8\uc131 \uac80\uc99d \uc2e4\ud328:
#EXPLANATION None.
#USERACTION None.

ERROR_EJB_REFS=CHKJ1002E: {0}\uc5d0\uc11c \ubd84\uc11d\ud560 \uc218 \uc5c6\ub294 EJB \ucc38\uc870;
#EXPLANATION None.
#USERACTION None.

INVALID_DD=CHKJ1003E: \uc751\uc6a9\ud504\ub85c\uadf8\ub7a8 \ud074\ub77c\uc774\uc5b8\ud2b8 \ud504\ub85c\uc81d\ud2b8\uc5d0 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc804\uac1c \uc124\uba85\uc790\uac00 \uc788\uc2b5\ub2c8\ub2e4.
#EXPLANATION None.
#USERACTION None.

MESSAGE_APPCLIENT_MISSING_URI=CHKJ1004E: URI {0}\uc774(\uac00) \uc751\uc6a9\ud504\ub85c\uadf8\ub7a8 \ud074\ub77c\uc774\uc5b8\ud2b8 \ud30c\uc77c \ub0b4\uc758 \uc5b4\ub290 \ud56d\ubaa9\uacfc\ub3c4 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
#EXPLANATION None.
#USERACTION None.

APPCLIENT_DD_PARSE_LINECOL=CHKJ1005E: \uc54c \uc218 \uc5c6\ub294 \uad6c\ubb38 \uc624\ub958\ub85c \uc778\ud574 \uc804\uac1c \uc124\uba85\uc790\ub97c \ub85c\ub4dc\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. {0} \ud589, {1} \uc5f4\uc5d0\uc11c \uc798\ubabb\ub41c \uc139\uc158\uc774 \uc2dc\uc791\ub429\ub2c8\ub2e4.
#EXPLANATION None.
#USERACTION None.

APPCLIENT_DD_PARSE_LINE=CHKJ1006E: \uc54c \uc218 \uc5c6\ub294 \uad6c\ubb38 \uc624\ub958\ub85c \uc778\ud574 \uc804\uac1c \uc124\uba85\uc790\ub97c \ub85c\ub4dc\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. {0} \ud589\uc5d0\uc11c \uc798\ubabb\ub41c \uc139\uc158\uc774 \uc2dc\uc791\ub429\ub2c8\ub2e4.
#EXPLANATION None.
#USERACTION None.

APPCLIENT_DD_PARSE_NOINFO=CHKJ1007E: \uc54c \uc218 \uc5c6\ub294 \uad6c\ubb38 \uc624\ub958\ub85c \uc778\ud574 \uc804\uac1c \uc124\uba85\uc790\ub97c \ub85c\ub4dc\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc798\ubabb\ub41c \uc139\uc158\uc744 \uc2dd\ubcc4\ud558\ub294 \ub370 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \uc815\ubcf4\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.
#EXPLANATION None.
#USERACTION None.

APPCLIENT_DD_CANNOT_OPEN_DD=CHKJ1008E: \uc804\uac1c \uc124\uba85\uc790\ub97c \uc5f4 \uc218 \uc5c6\uc73c\ubbc0\ub85c \uc720\ud6a8\uc131 \uac80\uc99d\uc744 \uc644\ub8cc\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
#EXPLANATION None.
#USERACTION None.

APPCLIENT_DUP_RES_ENV_REF_ERROR_=IWAE0002E application-client.xml\uc5d0\uc11c \uc911\ubcf5\ub41c \uc790\uc6d0 \ud658\uacbd \ucc38\uc870 "{0}"\uc785\ub2c8\ub2e4.
#EXPLANATION None.
#USERACTION None.

APPCLIENT_INVALID_DOC_TYPE_ERROR_="{1}" \ud504\ub85c\uc81d\ud2b8\uc758 application-client.xml\uc5d0 \ub300\ud55c \ubb38\uc11c \uc720\ud615 \ubc84\uc804 "{0}"\uc740(\ub294) "{2}" \ubc84\uc804\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4.
#EXPLANATION None.
#USERACTION None.

APPCLIENT_DUP_EJB_REF_ERROR_=IWAE0004E application-client.xml\uc5d0 "{0}" \uc5d4\ud130\ud504\ub77c\uc774\uc988 Bean \ucc38\uc870\uac00 \uc911\ubcf5\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.
APPCLIENT_MAIN_CLASS_ERROR_=IWAE0035E \uc751\uc6a9\ud504\ub85c\uadf8\ub7a8 \ud074\ub77c\uc774\uc5b8\ud2b8 \ubaa8\ub4c8\uc5d0 Main-Class \uc18d\uc131\uc744 \uc815\uc758\ud574\uc57c \ud569\ub2c8\ub2e4.
