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

# Error Messages
invalidNameError_msg=\u540d\u7a31 ''{0}'' \u7121\u6548\u3002\u65b9\u6cd5\u5143\u7d20\u540d\u7a31\u4e0d\u80fd\u5305\u542b\u9019\u4e9b\u5b57\u5143\uff1a\\ / : * ? " < > |
objNotFoundError_msg=\u627e\u4e0d\u5230 ID \u70ba ''{0}'' \u7684\u7269\u4ef6
loadLibraryError_msg=\u5728\u8f09\u5165\u65b9\u6cd5\u7a0b\u5f0f\u5eab\u6642\u767c\u73fe\u932f\u8aa4\uff1a
loadLibraryError_details=\ \ \u884c\uff1a{0}\uff0c\u76f4\u6b04\uff1a{1}\uff0c\u8a0a\u606f\uff1a{2}
restoreResourceError_msg=\u7121\u6cd5\u9084\u539f\u8cc7\u6e90 ''{0}''
FileManager_fileReadOnly=\u6a94\u6848 ''{0}'' \u662f\u552f\u8b80\u7684
ErrMsg_CouldNotDelete=\u7121\u6cd5\u522a\u9664 {0}\u3002{1}
renameError_msg=\u7121\u6cd5\u5c07 ''{0}'' \u91cd\u65b0\u547d\u540d\u70ba ''{1}''
backupError_msg=\u7121\u6cd5\u5099\u4efd\u8cc7\u6e90 ''{0}''
modifyFileError_msg=\u7121\u6cd5\u4fee\u6539\u6a94\u6848 ''{0}''
filePathNameTooLong_msg=\u7121\u6cd5\u5132\u5b58\u8cc7\u6e90\u3002\u6a94\u6848\u8def\u5f91\u540d\u7a31\u592a\u9577\uff08\u8d85\u904e 255\uff09''{0}''
loadResourceError_msg=\u7121\u6cd5\u8f09\u5165\u8cc7\u6e90 ''{0}''
loadResourceErrorWithReason_msg=\u7121\u6cd5\u8f09\u5165\u8cc7\u6e90 ''{0}''\u3002\u539f\u56e0\uff1a{1}
invalidLibraryFileError_msg=\u7121\u6548\u7684\u65b9\u6cd5\u7a0b\u5f0f\u5eab\u6a94\uff1a
fileNotFoundError_msg=\u5728\u5de5\u4f5c\u5340 ''{0}'' \u4e2d\u627e\u4e0d\u5230\u4efb\u4f55\u65b9\u6cd5\u7a0b\u5f0f\u5eab\u6a94\u6848
normalizeURIError_msg=\u627e\u4e0d\u5230 ''{0}'' \u6240\u8b58\u5225\u7684\u5143\u7d20\u7684\u8cc7\u6e90
moveError_msg=\u7121\u6cd5\u5c07 ''{0}'' \u79fb\u81f3 ''{1}''\u3002\u76ee\u7684\u5730\u5df2\u5b58\u5728\u3002
modifyReadOnlyFileError_msg=\u7121\u6cd5\u4fee\u6539\u552f\u8b80\u6a94\uff1a{0}
moveResourceError_msg=\u8cc7\u6e90 ''{0}'' \u6d89\u53ca\u5c1a\u672a\u78ba\u5b9a\u7684\u6301\u7e8c\u6027\u4f5c\u696d\u3002
modifyFilesError_msg=\u7121\u6cd5\u4fee\u6539\u4e00\u6216\u591a\u500b\u6a94\u6848
resourceOutOfSynch_msg=\u8cc7\u6e90\u4e0d\u540c\u6b65\uff0c\u5fc5\u9808\u91cd\u65b0\u8f09\u5165\uff1a{0}
resourceAutoRefreshJob_name=\u81ea\u52d5\u91cd\u65b0\u6574\u7406\u8cc7\u6e90
loadConfiguration_couldNotLoad_logMsg=\u7121\u6cd5\u8f09\u5165 {0} \u6a94\u3002\u9019\u500b\u6a94\u6848\u7684\u65b9\u6cd5\u914d\u7f6e\u5177\u6709\u91cd\u8907\u7684 GUID\u3002
loadConfiguration_notConfigFile_logMsg=\u4e0d\u662f\u65b9\u6cd5\u914d\u7f6e\u6a94\uff1a{0}

# Progress Messages
loadLibraryTask_name=\u6b63\u5728\u8f09\u5165\u65b9\u6cd5\u7a0b\u5f0f\u5eab...
moveDataTask_name=\u6b63\u5728\u79fb\u52d5\u8cc7\u6599...
saveLibraryTask_name=\u6b63\u5728\u5132\u5b58\u65b9\u6cd5\u7a0b\u5f0f\u5eab...
loadResourcesTask_name=\u6b63\u5728\u5c07\u6240\u6709\u7684\u8cc7\u6e90\u8f09\u5165\u5230\u8a18\u61b6\u9ad4\u4e2d...
migratingDiagram_name=\u6b63\u5728\u79fb\u8f49\u5716\u578b...
migrateContentDescriptionsTask_name=\u6b63\u5728\u79fb\u8f49\u6d41\u7a0b\u5167\u5bb9\u8aaa\u660e...
fixPresentationNameTask_name=\u6b63\u5728\u4fee\u6b63\u7a7a\u5448\u73fe\u540d\u7a31...
UnresolvedProxyMarkerManager_couldNotResolveProxy=\u627e\u4e0d\u5230 ''{0}'' \u6240\u8b58\u5225\u7684\u5143\u7d20
refreshLibraryFilesTask_name=\u91cd\u65b0\u6574\u7406\u5de5\u4f5c\u5340\u7684\u7a0b\u5f0f\u5eab\u6a94\u6848
cannot_create_dir_msg=\u7121\u6cd5\u5efa\u7acb ''{0}'' \u76ee\u9304\u3002
unresolvedProxyLoggerJob_name=\u6b63\u5728\u5efa\u7acb\u8f09\u5165\u932f\u8aa4\u6a19\u8a18
