#-------------------------------------------------------------------------------
# Copyright (c) 2005, 2006 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

unknown_text=\u4e0d\u660e

# Error Reasons
emptyLibraryPathError_reason=\u65b9\u6cd5\u7a0b\u5f0f\u5eab\u8def\u5f91\u7a7a\u767d\u3002
missingLibraryFileError_reason=\u907a\u6f0f\u65b9\u6cd5\u7a0b\u5f0f\u5eab\u6a21\u578b\u6a94\u3002
unresolvedProxyError_reason=\u9078\u53d6\u7684\u65b9\u6cd5\u7a0b\u5f0f\u5eab\u5305\u542b\u672a\u89e3\u6790\u7684\u5143\u7d20\u53c3\u7167\u3002\u9019\u901a\u5e38\u662f\u56e0\u70ba\u7a0b\u5f0f\u5eab\u8cc7\u6599\u593e\u4e2d\u907a\u6f0f\u6216\u79fb\u9664 XMI \u6a94\u6848\u3002\n\n\u8acb\u95dc\u9589\u6b64\u5c0d\u8a71\u6846\u4f86\u986f\u793a\u300c\u554f\u984c\u300d\u8996\u5716\uff0c\u627e\u51fa\u672a\u89e3\u6790\u7684\u53c3\u7167\u3002\u70ba\u4e86\u907f\u514d\u7a0b\u5f0f\u5eab\u6bc0\u640d\uff0c\u5728\u7a0b\u5f0f\u5eab\u4e2d\u52a0\u5165\u66f4\u591a\u8b8a\u66f4\u4e4b\u524d\uff0c\u5efa\u8b70\u60a8\u4e00\u5b9a\u8981\u5148\u89e3\u6790\u9019\u4e9b\u53c3\u7167\u3002

# Warning Messages
configClosureWarning_msg1=IUPL0007W: \u4e00\u6216\u591a\u500b\u5b50\u5143\u7d20\u5305\u542b\u907a\u6f0f\u7684\u53c3\u7167
configClosureWarning_msg2=IUPL0008W: \u61c9\u8a72\u9078\u53d6\u6b64\u5143\u7d20\u4f86\u89e3\u6790\u4e00\u6216\u591a\u500b\u907a\u6f0f\u7684\u53c3\u7167
configClosureWarning_msg3=IUPL0009W: \u6b64\u5143\u7d20\u53c3\u7167\u672a\u9078\u53d6\u7684\u5957\u4ef6\u4e2d\u7684\u4e00\u6216\u591a\u500b\u5143\u7d20

# Error Messages
loadResourcesError_msg=IUPL0000E: \u5df2\u8f09\u5165\u65b9\u6cd5\u7a0b\u5f0f\u5eab\uff0c\u4f46\u5075\u6e2c\u5230\u4e00\u4e9b\u932f\u8aa4\u3002
unsupportedGuidanceTypeError_msg=IUPL0001E: \u6b64\u6307\u5f15\u7121\u6cd5\u8f49\u63db\u70ba\u53e6\u4e00\u7a2e\u985e\u578b\u3002
convertGuidanceError_msg=IUPL0002E: \u6b64\u6307\u5f15\u7121\u6cd5\u8f49\u63db\u70ba\u76ee\u6a19\u985e\u578b\u3002
saveConvertedGuidanceError_msg=IUPL0003E: \u7121\u6cd5\u5132\u5b58\u5df2\u8f49\u63db\u7684\u6307\u5f15 ''{0}''\u3002

# Convert activity
convertActivityError_title=\u8f49\u63db\u6d3b\u52d5\u985e\u578b\u932f\u8aa4
convertActivityError_msg=IUPL0006E: \u6b64\u6d3b\u52d5\u7121\u6cd5\u8f49\u63db\u70ba\u76ee\u6a19\u985e\u578b\u3002
saveConvertedActivityError_msg=IUPL0007E: \u7121\u6cd5\u5132\u5b58\u5df2\u8f49\u63db\u7684\u6d3b\u52d5 ''{0}''\u3002

# Error Reasons
error_reason=IUPL0004E: \u767c\u751f\u932f\u8aa4\u3002\u5982\u9700\u76f8\u95dc\u8cc7\u8a0a\uff0c\u8acb\u6309\u4e00\u4e0b\u300c\u78ba\u5b9a\u300d\u3002
unsupportedGuidanceTypeError_reason={0} \u6c92\u6709\u76f8\u5bb9\u7684\u6307\u5f15\u985e\u578b\u3002
invalidLibraryPathError_reason=\u7a0b\u5f0f\u5eab\u8def\u5f91\u7121\u6548\u3002\u7121\u6cd5\u5efa\u7acb .project \u6a94\u6848\u3002
couldNotLockLibrary_reason=\u7121\u6cd5\u9396\u5b9a\u7a0b\u5f0f\u5eab\u3002

# Progress Messages
copyingAttachmentsTask_name=\u6b63\u5728\u8907\u88fd\u9644\u4ef6...

# Convert Guidance Dialog
convertGuidanceDialog_title=\u8f49\u63db\u6307\u5f15\u985e\u578b
convertGuidanceDialog_text=\u9078\u53d6\u76ee\u6a19\u6307\u5f15\u985e\u578b\u3002

# Guidance type names for Convert Guidance Dialog - should be refactored into library.ui
checklist_text=\u6838\u5c0d\u6e05\u55ae
concept_text=\u6982\u5ff5
example_text=\u7bc4\u4f8b
guideline_text=\u6e96\u5247
estimate_text=\u9810\u4f30
estimatingMetric_text=\u9810\u4f30\u6e2c\u91cf\u503c
estimationConsiderations_text=\u9810\u4f30\u8003\u91cf
report_text=\u5831\u544a
template_text=\u7bc4\u672c
supportingMaterial_text=\u652f\u63f4\u8cc7\u6599
toolMentor_text=\u5de5\u5177\u8f14\u52a9
whitepaper_text=\u767d\u76ae\u66f8
termDefinition_text=\u8a5e\u5f59\u5b9a\u7fa9
practice_text=\u7df4\u7fd2
reusableAsset_text=\u53ef\u91cd\u8907\u4f7f\u7528\u7684\u8cc7\u7522

#activity breakdown info strings
ActivityLayout_primaryTasks_text=\u4ee5\u64c1\u6709\u8005\u8eab\u5206\u4f86\u57f7\u884c
ActivityLayout_additionalTasks_text=\u4ee5\u5176\u4ed6\u8eab\u5206\u4f86\u57f7\u884c


# Convert Guidance Error Messages
convertGuidanceError_title=\u8f49\u63db\u6307\u5f15\u985e\u578b\u932f\u8aa4

# Load Resources Error Dialog
loadResourcesError_title=\u958b\u555f\u65b9\u6cd5\u7a0b\u5f0f\u5eab\u932f\u8aa4
loadResourcesError_reason=\u7121\u6cd5\u8f09\u5165\u4e00\u4e9b\u7a0b\u5f0f\u5eab\u8cc7\u6e90\u3002\n\n\u8acb\u6309\u4e00\u4e0b\u300c\u8a73\u7d30\u8cc7\u6599\u300d\u4f86\u6aa2\u8996\u932f\u8aa4\uff0c\u4e26\u65bc\u7a0b\u5f0f\u5eab\u4e2d\u52a0\u5165\u66f4\u591a\u8b8a\u66f4\u4e4b\u524d\u89e3\u6c7a\u932f\u8aa4\u3002

# Role Diagrams
roleDiagramPerforms_text=\u57f7\u884c
roleDiagramResponsibleFor_text=\u8ca0\u8cac

DefaultContentValidator_MSG0=\u53c3\u7167\u7684\u5143\u7d20\uff1a{0}
DefaultContentValidator_MSG1=\u8cc7\u8a0a\uff1a{0}
DefaultContentValidator_MSG4=\u8b66\u544a\uff1a{0}
DefaultContentValidator_MSG7=\u932f\u8aa4\uff1a{0}
DefaultContentValidator_MSG10=\u907a\u6f0f\u53c3\u7167\u7684\u5143\u7d20 {0}
DefaultContentValidator_MSG11=\u627e\u4e0d\u5230 guid {0} \u7684\u5143\u7d20
DefaultContentValidator_MSG12=\u6a94\u6848 ''{0}'' \u53c3\u7167\u5230\u907a\u6f0f\u7684\u8cc7\u6e90 ''{1}''
DefaultContentValidator_MSG15=\u907a\u6f0f\u8cc7\u6e90\u6a94 ''{0}''
DefaultContentValidator_MSG17=\u7121\u6cd5\u9023\u63a5 url ''{0}''
DefaultContentValidator_MSG19=\u7121\u6cd5\u9023\u63a5 url ''{0}''\uff1a{1}
ImportExportUtil_MSG8=\u627e\u4e0d\u5230\u6a94\u6848 ''{0}''\u3002
ImportExportUtil_MSG9=\u7121\u6cd5\u5efa\u7acb\u66ab\u6642\u76ee\u9304 ''{0}''\u3002
unknownGuidance_text=\u4e0d\u660e

CopyAttachmentsToNewLocation_log_noContentPath=CopyAttachmentsToNewLocation.HandleAttachmentsPlugin: {0} \u6c92\u6709 contentPath
LibraryModificationHelper_cannotUpdate=IUPL0006W: \u7121\u6cd5\u66f4\u65b0{0} {1}
warningDlg_title=\u8b66\u544a
errorDlg_title=\u932f\u8aa4
errorDlg_saveError=IUPL0005E: \u5132\u5b58\u6a94\u6848 ''{0}'' \u7684\u8b8a\u66f4\u6642\u767c\u751f\u932f\u8aa4

# activity diagram names
activityDiagramName=\u6d3b\u52d5\u5716\uff1a{0}
activityDetailDiagramName=\u6d3b\u52d5\u660e\u7d30\u5716\uff1a{0}
wpDependencyDiagramName=\u5de5\u4f5c\u6210\u679c\u76f8\u4f9d\u95dc\u4fc2\u5716\uff1a{0}

################################################################################
# THE FOLLOWING PROPERTIES SHOULD NOT BE TRANSLATED!!!
################################################################################

# Role diagram fonts and layout
roleDiagramFont_name=Dialog
roleDiagramFont_name_win32=\u7d30\u660e\u9ad4
roleDiagramFont_size=10
roleDiagramFont_size_win32=10
roleDiagram_xMargin=200
roleDiagram_xSpacing=70
roleDiagram_ySpacing=30

# localize the value based on locale.  for example, 
# for English, the value is ". "
#colon_with_space=: 
# for french, the value is " . ", you need to use a \ to preserve the leading space
#colon_with_space=\ : 
# for chinese, the colon should be double bytes
# Dont trim the spaces after the colon.
colon_with_space=\uff1a 
