#-------------------------------------------------------------------------------
# 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=\u6a94\u6848(&F)
fileNewMenuItem_text=\u65b0\u5efa(&N)
fileOpenMenuItem_text=\u958b\u555f(&P)

# Edit Menu
editMenuItem_text=\u7de8\u8f2f(&E)

# Navigate Menu
navigateMenuItem_text=\u5c0e\u89bd(&N)

# Search Menu
searchMenuItem_text=\u641c\u5c0b(&S)

# Configuration Menu
configurationMenuItem_text=\u914d\u7f6e(&C)

# Window Menu
windowMenuItem_text=\u8996\u7a97(&W)
windowOpenPerspectiveMenuItem_text=\u958b\u555f\u8996\u666f(&O)
windowShowViewMenuItem_text=\u986f\u793a\u8996\u5716(&V)

# Help Menu
helpMenuItem_text=\u8aaa\u660e(&H)

# New Drop Down Menu
newDropDown_tooltip_text=\u65b0\u5efa
otherMenuItem_text=\u5176\u4ed6...

# Open Perspective Actions
openAuthoringPerspectiveAction_text=\u7de8\u5beb
openBrowsingPerspectiveAction_text=\u700f\u89bd

# Misc Actions
editAction_text=\u7de8\u8f2f(&E)
upgradeLibraryAction_text=\u5c07\u65b9\u6cd5\u7a0b\u5f0f\u5eab\u5f9e I1 \u5347\u7d1a\u81f3 I2...

startup_dir_log_info_text=\u8cc7\u8a0a\uff1a\u61c9\u7528\u7a0b\u5f0f\u8d77\u59cb\u76ee\u9304 =
menu_help_software_updates_manage_software_config_text=\u7ba1\u7406\u8edf\u9ad4\u914d\u7f6e(&M)...

workspaceCannotLockTitle=\u7121\u6cd5\u555f\u52d5 {0}
workspaceCannotLockMessage=\u53e6\u4e00\u500b\u5be6\u4f8b\u57f7\u884c\u6642\uff0c\u7121\u6cd5\u555f\u52d5 {0}\u3002\u8acb\u5207\u63db\u81f3\u57f7\u884c\u4e2d\u7684\u5be6\u4f8b\uff0c\u6216\u95dc\u9589\u5be6\u4f8b\uff0c\u7136\u5f8c\u518d\u6b21\u91cd\u65b0\u555f\u52d5\u61c9\u7528\u7a0b\u5f0f\u3002
mainActionBarAdvisor_Diagnosis=\u8a3a\u65b7\u548c\u4fee\u5fa9\u5de5\u5177
mainActionBarAdvisor_HealthCheck=\u6b63\u5728\u6aa2\u67e5\u7a0b\u5f0f\u5eab\u7684\u5065\u5168\u72c0\u614b...
mainActionBarAdvisor_RemoveReference=\u79fb\u9664\u7121\u6548\u7269\u4ef6\u7684\u53c3\u7167...
