#-------------------------------------------------------------------------------
# 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

# Method Search Page
searchStringLabel_text=\u6587\u5b57\uff08* = \u4efb\u4f55\u5b57\u4e32\uff0c? = \u4efb\u4f55\u5b57\u5143\uff09\uff1a
caseSensitiveCheckbox_text=\u5340\u5206\u5927\u5c0f\u5beb
elementNameLabel_text=\u65b9\u6cd5\u5143\u7d20\u540d\u7a31\u6216\u5448\u73fe\u540d\u7a31\u578b\u6a23\uff1a
scopeGroup_text=\u7bc4\u570d
roleCheckbox_text=\u89d2\u8272
taskCheckbox_text=\u4f5c\u696d
workProductCheckbox_text=\u5de5\u4f5c\u6210\u679c

# Method Search Query
searchQuery_text=\u65b9\u6cd5\u641c\u5c0b

# Method Search Progress Dialog
scanLibraryTask_name=\u6b63\u5728\u6383\u63cf\u65b9\u6cd5\u7a0b\u5f0f\u5eab...
scanElementTask_name=\u6b63\u5728\u6383\u63cf\u65b9\u6cd5\u5143\u7d20 ''{0}''...

# Method Search Error Dialog
searchError_title=\u65b9\u6cd5\u641c\u5c0b
searchError_msg=IUPS0100E: \u7121\u6cd5\u7e7c\u7e8c\u641c\u5c0b\u4f5c\u696d\u3002
searchError_reason=\u76ee\u524d\u672a\u958b\u555f\u4efb\u4f55\u65b9\u6cd5\u7a0b\u5f0f\u5eab\u3002\n\n\u8acb\u958b\u555f\u4e00\u500b\u65b9\u6cd5\u7a0b\u5f0f\u5eab\uff0c\u7136\u5f8c\u518d\u8a66\u4e00\u6b21\u3002

# Method Search Result
searchResult_methodContent=\u65b9\u6cd5\u5167\u5bb9
searchResult_contentPackages=\u5167\u5bb9\u5957\u4ef6
searchResult_standardCategories=\u6a19\u6e96\u7a2e\u985e
searchResult_disciplines=\u898f\u7bc4
searchResult_domains=\u9818\u57df
searchResult_workProductTypes=\u5de5\u4f5c\u6210\u679c\u985e\u578b
searchResult_roleSets=\u89d2\u8272\u96c6
searchResult_tools=\u5de5\u5177
searchResult_customCategories=\u81ea\u8a02\u7a2e\u985e
searchResult_processes=\u6d41\u7a0b
searchResult_capabilityPatterns=\u529f\u80fd\u578b\u6a23
searchResult_deliveryProcesses=\u4ea4\u4ed8\u6d41\u7a0b
searchResult_match=''{0}'' - 1 \u500b\u76f8\u7b26
searchResult_matches=''{0}'' - {1} \u500b\u76f8\u7b26
