#-------------------------------------------------------------------------------
# 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

# File Menu
fileMenuItem_text=\ud30c\uc77c(&F)
fileNewMenuItem_text=\uc0c8\ub85c \uc791\uc131(&N)
fileOpenMenuItem_text=\uc5f4\uae30(&P)

# Edit Menu
editMenuItem_text=\ud3b8\uc9d1(&E)

# Navigate Menu
navigateMenuItem_text=\ud0d0\uc0c9(&N)

# Search Menu
searchMenuItem_text=\uac80\uc0c9(&S)

# Configuration Menu
configurationMenuItem_text=\uad6c\uc131(&C)

# Window Menu
windowMenuItem_text=\ucc3d(&W)
windowOpenPerspectiveMenuItem_text=Perspective \uc5f4\uae30(&O)
windowShowViewMenuItem_text=\ubcf4\uae30 \ud45c\uc2dc(&V)

# Help Menu
helpMenuItem_text=\ub3c4\uc6c0\ub9d0(&H)

# New Drop Down Menu
newDropDown_tooltip_text=\uc0c8\ub85c \uc791\uc131
otherMenuItem_text=\uae30\ud0c0...

# Open Perspective Actions
openAuthoringPerspectiveAction_text=\uc791\uc131
openBrowsingPerspectiveAction_text=\ube0c\ub77c\uc6b0\uc9d5

# Misc Actions
editAction_text=\ud3b8\uc9d1(&E)
upgradeLibraryAction_text=I1\uc5d0\uc11c I2\ub85c \uba54\uc18c\ub4dc \ub77c\uc774\ube0c\ub7ec\ub9ac \uc5c5\uadf8\ub808\uc774\ub4dc...

startup_dir_log_info_text=\uc815\ubcf4: \uc751\uc6a9\ud504\ub85c\uadf8\ub7a8 \uc2dc\uc791 \ub514\ub809\ud1a0\ub9ac =
menu_help_software_updates_manage_software_config_text=\uc18c\ud504\ud2b8\uc6e8\uc5b4 \uad6c\uc131 \uad00\ub9ac(&M)...

workspaceCannotLockTitle={0}\uc744(\ub97c) \uc2dc\uc791\ud560 \uc218 \uc5c6\uc74c
workspaceCannotLockMessage=\ub2e4\ub978 \uc778\uc2a4\ud134\uc2a4\uac00 \uc2e4\ud589 \uc911\uc774\uba74 {0}\uc740(\ub294) \uc2dc\uc791\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc2e4\ud589 \uc778\uc2a4\ud134\uc2a4\ub85c \uc804\ud658\ud558\uac70\ub098 \uc778\uc2a4\ud134\uc2a4\ub97c \ub2eb\uace0 \uc751\uc6a9\ud504\ub85c\uadf8\ub7a8\uc744 \ub2e4\uc2dc \uc2dc\uc791\ud558\uc2ed\uc2dc\uc624.
mainActionBarAdvisor_Diagnosis=\uc9c4\ub2e8 \ubc0f \ubcf5\uad6c \ub3c4\uad6c
mainActionBarAdvisor_HealthCheck=\ub77c\uc774\ube0c\ub7ec\ub9ac\uc758 \uc0c1\ud0dc \uac80\uc0ac \uc218\ud589...
mainActionBarAdvisor_RemoveReference=\uc62c\ubc14\ub974\uc9c0 \uc54a\uc740 \uc624\ube0c\uc81d\ud2b8\uc5d0 \ub300\ud55c \ucc38\uc870 \uc81c\uac70...
