#-------------------------------------------------------------------------------
# Copyright (c) 2005, 2006 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 implementation.
#-------------------------------------------------------------------------------
# NLS_MESSAGEFORMAT_VAR
#
# Message ID Range: IUPP0000E - IUPP0099E
#

# Progress Messages
publishingConfigurationTask_name=\uad6c\uc131\uc744 \uacf5\uac1c\ud558\ub294 \uc911...
initializingDirTask_name=\ub300\uc0c1 \ub514\ub809\ud1a0\ub9ac\ub97c \ucd08\uae30\ud654\ud558\ub294 \uc911...
copyingFilesTask_name=\ud30c\uc77c\uc744 \ubcf5\uc0ac\ud558\ub294 \uc911...
generatingBookmarksTask_name=\ucc45\uac08\ud53c\ub97c \uc0dd\uc131\ud558\ub294 \uc911...
generatingBookmarkTask_name=''{0}'' \ucc45\uac08\ud53c\ub97c \uc0dd\uc131\ud558\ub294 \uc911...
generatingBookmarkIndexTask_name=\ucc45\uac08\ud53c \uc0c9\uc778\uc744 \uc0dd\uc131\ud558\ub294 \uc911...
publishingLinkedElementTask_name=\uba54\uc18c\ub4dc \uc694\uc18c\ub97c \uacf5\uac1c\ud558\ub294 \uc911: {0} \uacf5\uac1c \uc644\ub8cc, {1} \ub0a8\uc74c
publishingElementTask_name=\uba54\uc18c\ub4dc \uc694\uc18c\ub97c \uacf5\uac1c\ud558\ub294 \uc911: {0}:{1}
generatingGlossaryTask_name=\uc6a9\uc5b4\uc9d1\uc744 \uc0dd\uc131\ud558\ub294 \uc911...
generatingSearchIndexTask_name=\uac80\uc0c9 \uc0c9\uc778\uc744 \uc0dd\uc131\ud558\ub294 \uc911...
buildingProcessClosureTask_name=\ud504\ub85c\uc138\uc2a4 \ub2eb\uae30\ub97c \ube4c\ub4dc\ud558\ub294 \uc911...
buildingElementClosureTask_name=''{0}''\uc5d0 \ub300\ud55c \uc694\uc18c \ub2eb\uae30\ub97c \ube4c\ub4dc\ud558\ub294 \uc911...
loadLibraryTask_name=\ub77c\uc774\ube0c\ub7ec\ub9ac \ucee8\ud150\uce20\ub97c \ub85c\ub4dc\ud558\ub294 \uc911...

# Error Messages logged in the Publishing Report
publishElementError_msg=IUPP0000E: \uc694\uc18c\ub97c \uacf5\uac1c\ud558\ub294 \uc911\uc5d0 \uc624\ub958 \ubc1c\uc0dd: {0}
serverError_msg=IUPP0001E: \uc11c\ubc84\uc5d0\uc11c \ub9ac\ud134\ub41c \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.
invalidHttpResponseError_msg=IUPP0002E: \uc62c\ubc14\ub974\uc9c0 \uc54a\uc740 \uc751\ub2f5(http://{0}:{1}:{2})

# Warning Messages logged in the Publishing Report
invalidElementWarning_msg=IUPP0003W: \uc694\uc18c\uac00 \uad6c\uc131\uc758 \uc62c\ubc14\ub978 \uc694\uc18c\uac00 \uc544\ub2c8\uae30 \ub54c\ubb38\uc5d0 \uacf5\uac1c\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
invalidMethodElementWarning_msg=IUPP0004W: \uba54\uc18c\ub4dc \uc694\uc18c\uac00 \uc544\ub2c8\uae30 \ub54c\ubb38\uc5d0 {0} \uc694\uc18c\uac00 \uacf5\uac1c\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
copyFileWarning_msg=IUPP0005W: ''{0}''\uc5d0\uc11c ''{1}''(\uc73c)\ub85c \ud30c\uc77c\uc744 \ubcf5\uc0ac\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
missingIconFileWarning_msg=IUPP0006W: \ub178\ub4dc \uc544\uc774\ucf58 \ud30c\uc77c ''{0}''\uc774(\uac00) \uc5c6\uc2b5\ub2c8\ub2e4.
missingIconNameWarning_msg=IUPP0007W: \ub178\ub4dc \uc544\uc774\ucf58\uc758 \uc774\ub984\uc744 \uac80\uc0c9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
externalUrl_msg=\ucc38\uc870\ud558\ub294 \uc678\ubd80 URL: {0}
discaredCategoryWarning_msg=\ube44\uc5b4 \uc788\ub294 \ucee8\ud150\uce20 \uce74\ud14c\uace0\ub9ac \uc694\uc18c\ub294 \uacf5\uac1c\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.

# Error Details
createSearchIndexError_msg=IUPP0008E: \uac80\uc0c9 \uc0c9\uc778 \ud30c\uc77c\uc774 \uc791\uc131\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.

# Process Tree Nodes
referenceWorkflowsNode_text=\ucc38\uc870 \uc6cc\ud06c\ud50c\ub85c\uc6b0
taskNode_text=\ud0c0\uc2a4\ud06c
primarilyPerformsNode_text=\uae30\ubcf8 \uc218\ud589
additionallyPerformsNode_text=\ucd94\uac00 \uc218\ud589
performingRolesNode_text=\uc218\ud589 \uc5ed\ud560
inputWorkProductsNode_text=\uc785\ub825 \uc911\uac04 \uc0b0\ucd9c\ubb3c
outputWorkProductsNode_text=\ucd9c\ub825 \uc911\uac04 \uc0b0\ucd9c\ubb3c
responsibleForNode_text=\ucc45\uc784 \uc0ac\ud56d:
modifiesNode_text=\uc218\uc815
responsibleRoleNode_text=\ucc45\uc784\uc744 \ub9e1\uc740 \uc5ed\ud560
containingWorkProductNode_text=\ud3ec\ud568\ud558\ub294 \uc911\uac04 \uc0b0\ucd9c\ubb3c
containedWorkProductsNode_text=\ud3ec\ud568\ub418\ub294 \uc911\uac04 \uc0b0\ucd9c\ubb3c
guidanceNode_text=\uc548\ub0b4
inputToNode_text=\uc785\ub825 \ub300\uc0c1
outputFromNode_text=\uc0b0\ucd9c \uc9c0\uc810

# HTML Title for Index Page
indexLabel_text=\uc0c9\uc778
