#-------------------------------------------------------------------------------
# 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

# Error Messages
invalidNameError_msg=\u540d\u7a31 ''{0}'' \u7121\u6548\u3002\u65b9\u6cd5\u5143\u7d20\u540d\u7a31\u4e0d\u80fd\u5305\u542b\u4e0b\u5217\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}''
marker_err_cannotResolveProxy=\u7121\u6cd5\u89e3\u6790 Proxy {0}
modifyFileError_msg=\u7121\u6cd5\u4fee\u6539\u6a94\u6848 ''{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}'' \u7684\u6a19\u6e96\u5316 URI
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}

# 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...
migrateContentDescriptionsTask_name=\u6b63\u5728\u79fb\u8f49\u7a0b\u5e8f\u5167\u5bb9\u8aaa\u660e...
fixPresentationNameTask_name=\u6b63\u5728\u5c07\u6bcf\u4e00\u500b\u5206\u89e3\u5143\u7d20\u7684\u7a7a\u503c/\u7a7a\u767d\u5448\u73fe\u540d\u7a31\u8a2d\u5b9a\u70ba\u5176\u540d\u7a31...
UnresolvedProxyMarkerManager_couldNotResolveProxy=\u7121\u6cd5\u89e3\u6790 Proxy ''{0}''
refreshLibraryFilesTask_name=\u91cd\u65b0\u6574\u7406\u5de5\u4f5c\u5340\u7684\u7a0b\u5f0f\u5eab\u6a94\u6848
versionMismatch_oldTool=\u4e0d\u652f\u63f4\u9078\u53d6\u7684\u6a94\u6848 - \u8acb\u5347\u7d1a\u81f3\u8f03\u65b0\u7684 {0} \u7248\u672c\u3002
