# NLS_ENCODING=UNICODE
#-------------------------------------------------------------------------------
# Copyright (c) 2000, 2008 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 Composer RCP UI
productName=EPF Composer
providerName=Eclipse.org

# About text
aboutText=Eclipse Process Framework Composer\n\
\n\
\ubc84\uc804: {0}\n\
\n\
(c) Copyright Eclipse contributors and others 2000, 2010. All Rights Reserved.\n

# Category
methodCategoryName=\uba54\uc18c\ub4dc

# Views
welcomeViewName=\ud658\uc601

# Actions
globalActionSet=\uae00\ub85c\ubc8c \uc870\uce58 \uc138\ud2b8
newAction=\uc0c8\ub85c \uc791\uc131(&N)
newActionTooltip=\uc0c8\ub85c \uc791\uc131
openAction=\uc5f4\uae30(&O)...
openActionTooltip=\uc5f4\uae30
searchAction=\uac80\uc0c9(&S)...
searchActionTooltip=\uac80\uc0c9
welcomeAction=\ud658\uc601(&W)
welcomeActionToolTip=\ud658\uc601

# Tooltips
shortcut.overview.tooltip=\uac1c\uc694 \ud398\uc774\uc9c0\ub85c \ub3cc\uc544\uac00\uae30
shortcut.tutorials.tooltip=\ud559\uc2b5\uc11c \ud398\uc774\uc9c0\ub85c \ub3cc\uc544\uac00\uae30
shortcut.firststeps.tooltip=\uccab \ubc88\uc9f8 \ub2e8\uacc4 \ud398\uc774\uc9c0\ub85c \ub3cc\uc544\uac00\uae30
shortcut.webresources.tooltip=\uc6f9 \uc790\uc6d0 \ud398\uc774\uc9c0\ub85c \ub3cc\uc544\uac00\uae30

#Action Set
actionSet.description = \ub3c4\uc6c0\ub9d0 \uc2dc\uc2a4\ud15c \ub3c4\uad6c \ubaa8\uc74c \uc870\uce58
actionSet.label = \ub3c4\uc6c0\ub9d0 \uc2dc\uc2a4\ud15c
searchAction.label = \uac80\uc0c9 \ub3c4\uc6c0\ub9d0(&E)
searchAction.tooltip = \ub3c4\uc6c0\ub9d0 \uac80\uc0c9
dynamicHelpAction.label = \ub3d9\uc801 \ub3c4\uc6c0\ub9d0(&D)
dynamicHelpAction.tooltip = \ub3d9\uc801 \ub3c4\uc6c0\ub9d0

#Activities/Capabilities
activity.general=\ud504\ub85c\uc81d\ud2b8\uc640 \uc790\uc6d0 \uac00\uc838\uc624\uae30 \ubc0f \ub0b4\ubcf4\ub0b4\uae30
activity.general.desc=\ud45c\uc900 Eclipse \ud504\ub85c\uc81d\ud2b8/\uc790\uc6d0 \uac00\uc838\uc624\uae30/\ub0b4\ubcf4\ub0b4\uae30 \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.
activity.team.cvs=CVS \uc9c0\uc6d0
activity.team.cvs.desc=\uc790\uc6d0\uc744 \uad00\ub9ac\ud558\uae30 \uc704\ud574 \ub3d9\uc2dc \ubc84\uc804 \uc2dc\uc2a4\ud15c(CVS)\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.
activity.team=\ucf54\uc5b4 \ud300 \uc9c0\uc6d0
activity.team.desc=\uad6c\uc131 \uad00\ub9ac \uc2dc\uc2a4\ud15c\uc744 \uc0ac\uc6a9\ud558\uc5ec \ud504\ub85c\uc81d\ud2b8\ub97c \uacf5\uc720\ud569\ub2c8\ub2e4.

activity.cat.general=\uc77c\ubc18
activity.cat.general.desc=\ud45c\uc900 Eclipse \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.
activity.cat.team=\ud300
activity.cat.team.desc=\uc790\uc6d0\uc744 \uad00\ub9ac\ud558\uae30 \uc704\ud574 \uad6c\uc131 \uad00\ub9ac \uc2dc\uc2a4\ud15c\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.

PreferencePages.Capabilities = \uae30\ub2a5
PreferencePages.Capabilities.activityName = \uae30\ub2a5(&C)
PreferencePages.Capabilities.categoryName = \uae30\ub2a5(&C)
PreferencePages.Capabilities.activityPromptButton = \uae30\ub2a5\uc774 \uc0ac\uc6a9 \uac00\ub2a5\ud560 \ub54c \ud504\ub86c\ud504\ud2b8(&P)
PreferencePages.Capabilities.activityPromptButtonTooltip = \uae30\ub2a5\uc758 \uc0ac\uc6a9 \uac00\ub2a5\ud654\uac00 \ud544\uc694\ud55c \ucd5c\ucd08 \uc0ac\uc6a9 \uc2dc \ud504\ub86c\ud504\ud2b8
PreferencePages.Capabilities.captionMessage = \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc5ec\ub7ec \uc81c\ud488 \ucef4\ud3ec\ub10c\ud2b8\ub97c \uc0ac\uc6a9 \uac00\ub2a5\ud558\uac8c \ud558\uac70\ub098 \uc0ac\uc6a9 \ubd88\uac00\ub2a5\ud558\uac8c \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uae30\ub2a5\uc740 \uc0ac\uc804 \uc815\uc758\ub41c \uce74\ud14c\uace0\ub9ac \uc138\ud2b8\uc5d0 \ub530\ub77c \uadf8\ub8f9\ud654\ub429\ub2c8\ub2e4.
