#-------------------------------------------------------------------------------
# Copyright (c) 2000, 2007 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

# Plug-in
pluginName=EPF \uc791\uc131 UI
providerName=Eclipse.org

# Category
methodCategoryName=\uba54\uc18c\ub4dc

# Perspective
authoringPerspectiveName=\uc791\uc131
browsingPerspectiveName=\ube0c\ub77c\uc6b0\uc9d5

# Views
libraryViewName=\ub77c\uc774\ube0c\ub7ec\ub9ac
configurationViewName=\uad6c\uc131
contentViewName=\ucee8\ud150\uce20
configurationErrorLogViewName=\uad6c\uc131 \uc624\ub958 \ub85c\uadf8

# Editors
methodElementEditorName=\uba54\uc18c\ub4dc \uc694\uc18c \ud3b8\uc9d1\uae30
configurationEditorName=\uad6c\uc131 \ud3b8\uc9d1\uae30
processEditorName=\ud504\ub85c\uc138\uc2a4 \ud3b8\uc9d1\uae30
activityDiagramEditorName=\ud65c\ub3d9 \ub2e4\uc774\uc5b4\uadf8\ub7a8 \ud3b8\uc9d1\uae30
activityDetailDiagramEditorName=\ud65c\ub3d9 \uc138\ubd80\uc0ac\ud56d \ub2e4\uc774\uc5b4\uadf8\ub7a8 \ud3b8\uc9d1\uae30
workProductDepedencyDiagramEditorName=\uc911\uac04 \uc0b0\ucd9c\ubb3c \uc885\uc18d\uc131 \ub2e4\uc774\uc5b4\uadf8\ub7a8 \ud3b8\uc9d1\uae30

# Wizards
newMethodLibraryWizardName=\uba54\uc18c\ub4dc \ub77c\uc774\ube0c\ub7ec\ub9ac
newMethodLibraryWizardDescription=\uc0c8 \uba54\uc18c\ub4dc \ub77c\uc774\ube0c\ub7ec\ub9ac \uc791\uc131
newMethodPluginWizardName=\uba54\uc18c\ub4dc \ud50c\ub7ec\uadf8\uc778
newMethodPluginWizardDescription=\uc0c8 \uba54\uc18c\ub4dc \ud50c\ub7ec\uadf8\uc778 \uc791\uc131
newConfigurationWizardName=\uba54\uc18c\ub4dc \uad6c\uc131
newConfigurationWizardDescription=\uc0c8 \uba54\uc18c\ub4dc \uad6c\uc131 \uc791\uc131

# Cheat Sheets
methodAuthoringCheatSheetsName=\uba54\uc18c\ub4dc \uc791\uc131 \uce58\ud2b8 \uc2dc\ud2b8
CheatsheetGetstartedCategoryText=\uc2dc\uc791\ud558\uae30
CheatsheetReusableContentCategoryText=\uc7ac\uc0ac\uc6a9\uac00\ub2a5 \uba54\uc18c\ub4dc \ucee8\ud150\uce20 \uc791\uc131
CheatsheetWriteContentCategoryText=\uba54\uc18c\ub4dc \ucee8\ud150\uce20 \uc4f0\uae30
CheatsheetProcessesCategoryText=\ud504\ub85c\uc138\uc2a4 \uc791\uc5c5
CheatsheetNavigateMethodContent=\uba54\uc18c\ub4dc \ucee8\ud150\uce20 \ud0d0\uc0c9
CheatsheetCreateMethodConfiguration=\uace0\uc720\ud55c \uba54\uc18c\ub4dc \uad6c\uc131 \uc791\uc131
CheatsheetCreateMethodPlugin=\uace0\uc720\ud55c \uba54\uc18c\ub4dc \ud50c\ub7ec\uadf8\uc778 \uc791\uc131
CheatsheetAddMethodContent=\uc5ed\ud560, \ud0c0\uc2a4\ud06c, \uc911\uac04 \uc0b0\ucd9c\ubb3c \ub610\ub294 \uc548\ub0b4\uc640 \uac19\uc740 \uc0c8\ub85c\uc6b4 \uba54\uc18c\ub4dc \ucee8\ud150\uce20 \ucd94\uac00
CheatsheetTailorMethodElements=\ucee8\ud2b8\ub9ac\ubdf0\uc158\uc744 \uc0ac\uc6a9\ud558\uc5ec \uae30\uc874 \uba54\uc18c\ub4dc \uc694\uc18c(\uc5ed\ud560, \ud0c0\uc2a4\ud06c, \uc911\uac04 \uc0b0\ucd9c\ubb3c \ub610\ub294 \uc548\ub0b4) \uc0ac\uc6a9\uc790 \uc870\uc815
CheatsheetReplaceMehtodElements=\uae30\uc874 \uba54\uc18c\ub4dc \uc694\uc18c(\uc5ed\ud560, \ud0c0\uc2a4\ud06c, \uc911\uac04 \uc0b0\ucd9c\ubb3c \ub610\ub294 \uc548\ub0b4) \ubc14\uafb8\uae30
CheatsheetAddMethodRefOrHyperlink=\uba54\uc18c\ub4dc \ucc38\uc870 \ub610\ub294 \ud558\uc774\ud37c\ub9c1\ud06c(URL) \ucd94\uac00
CheatsheetApplyCapabilityPattern=\uae30\ub2a5 \ud328\ud134 \uc801\uc6a9
CheatsheetCreateProcess=\ud504\ub85c\uc138\uc2a4(\uae30\ub2a5 \ud328\ud134 \ub610\ub294 \uc804\ub2ec \ud504\ub85c\uc138\uc2a4) \uc791\uc131

# Action Set
authoringActionSet=\uc791\uc131
cheatSheetsActionSet=\uce58\ud2b8 \uc2dc\ud2b8

# Global Actions
newLibraryAction=\uba54\uc18c\ub4dc \ub77c\uc774\ube0c\ub7ec\ub9ac(&L)
newLibraryActionTooltip=\uc0c8 \uba54\uc18c\ub4dc \ub77c\uc774\ube0c\ub7ec\ub9ac \uc791\uc131
newPluginAction=\uba54\uc18c\ub4dc \ud50c\ub7ec\uadf8\uc778(&P)
newPluginActionTooltip=\uc0c8 \uba54\uc18c\ub4dc \ud50c\ub7ec\uadf8\uc778 \uc791\uc131
newConfigAction=\uba54\uc18c\ub4dc \uad6c\uc131(&C)
newConfigActionTooltip=\uc0c8 \uba54\uc18c\ub4dc \uad6c\uc131 \uc791\uc131
openLibraryAction=\uba54\uc18c\ub4dc \ub77c\uc774\ube0c\ub7ec\ub9ac(&L)
openLibraryActionTooltip=\uae30\uc874 \uba54\uc18c\ub4dc \ub77c\uc774\ube0c\ub7ec\ub9ac \uc5f4\uae30
openConfigAction=\uba54\uc18c\ub4dc \uad6c\uc131(&C)
openConfigActionTooltip=\uae30\uc874 \uba54\uc18c\ub4dc \uad6c\uc131 \uc5f4\uae30
openCheatSheets=\uce58\ud2b8 \uc2dc\ud2b8(&C)...

# Library View Actions
linkWithEditor=\ud3b8\uc9d1\uae30\uc640 \ub9c1\ud06c
linkWithEditorTooltip=\ud3b8\uc9d1\uae30\uc640 \ub9c1\ud06c
showPresentationNames=\ud504\ub9ac\uc820\ud14c\uc774\uc158 \uc774\ub984 \ud45c\uc2dc
showPresentationNamesTooltip=\ud504\ub9ac\uc820\ud14c\uc774\uc158 \uc774\ub984 \ud45c\uc2dc

# Configuration View Actions
refreshConfig=\uc0c8\ub85c \uace0\uce58\uae30
refreshConfigTooltip=\uc0c8\ub85c \uace0\uce58\uae30 \uad6c\uc131

# Preference Page
authoringPreferencePage=\uc791\uc131
processEditor=\ud504\ub85c\uc138\uc2a4 \ud3b8\uc9d1\uae30
libraryOptions=\ub77c\uc774\ube0c\ub7ec\ub9ac \uc635\uc158
startupAndShutdown=\uc2dc\uc791 \ubc0f \uc2dc\uc2a4\ud15c \uc885\ub8cc
debug=\ub514\ubc84\uadf8
modelingOptions=\ubaa8\ub378\ub9c1 \uc635\uc158
diagramAppearance=\ub2e4\uc774\uc5b4\uadf8\ub7a8 \ubaa8\uc591
breakdownElementAttributes=\uc791\uc5c5\ubd84\ub958 \uc694\uc18c \uc18d\uc131
libraryViewOptions=\ub77c\uc774\ube0c\ub7ec\ub9ac \ubcf4\uae30 \uc635\uc158

# Command Handler
selectAll=\ubaa8\ub450 \uc120\ud0dd

# Properties View
_UI_ProcessEditor_menu=\ud504\ub85c\uc138\uc2a4
_UI_CreateChild_menu_item=\uc0c8 \ud558\uc704(&N)
_UI_CreateSibling_menu_item=\uc0c8 \ub3d9\uc704(&E)
_UI_ShowPropertiesView_menu_item=\ud2b9\uc131 \ubcf4\uae30 \ud45c\uc2dc(&V)
_UI_RefreshViewer_menu_item=\uc0c8\ub85c \uace0\uce58\uae30(&F)
_UI_Properties_General=\uc77c\ubc18
_UI_Properties_Documentation=\ubb38\uc11c
_UI_Properties_Guidance=\uc548\ub0b4
_UI_Properties_Work_Rollup=\uc791\uc5c5 \ub864\uc5c5
_UI_Properties_Team_Rollup=\ud300 \ub864\uc5c5
_UI_Properties_WP_Rollup=\uc911\uac04 \uc0b0\ucd9c\ubb3c \ub864\uc5c5
_UI_Properties_Roles=\uc5ed\ud560
_UI_Properties_WorkProducts=\uc911\uac04 \uc0b0\ucd9c\ubb3c
_UI_Properties_Steps=\ub2e8\uacc4
_UI_Properties_Teams=\ud300

RichTextMarkerTypeName=HTML \ubb38\uc81c\uc810
ConfigurationMarkerTypeName=\uad6c\uc131 \ubb38\uc81c\uc810
ExplanationText=\uc124\uba85

