# messages.properties
#
# /*******************************************************************************
# * Copyright (c) 2008 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 API and implementation
# *******************************************************************************/

# BatchManager
BatchMgr.Deserialization_Error=\u5728\u4e00\u4e2a\u5e8f\u5217\u5316\u7684\u5b9e\u9a8c\u4e2d\u4eceURI \\u201c{0} \\u201d\u8bfb\u53d6\u95ee\u9898
BatchMgr.StartBatch=\u5f00\u59cb\u6279\u5904\u7406
BatchMgr.CrtSim=\u521b\u5efa\u4e00\u6279
BatchMgr.Run=\u8fd0\u884c\u6279\u5904\u7406


# Experiment
Exp.IErr=\u5f53\u8fd0\u884c\u5b9e\u9a8c"{0}"\u53d1\u751f\u7684\u5185\u90e8\u9519\u8bef
Exp.MissingScenario=\u8be5\u5b9e\u9a8c\u201c{0}\u201d\u65e0\u6cd5\u8fd0\u884c\uff0c\u56e0\u4e3a\u5b83\u6ca1\u6709\u4e00\u4e2a\u57fa\u672c\u65b9\u6848\u3002
Exp.MissingSeq=\u5b9e\u9a8c\u201c{0}\u201d\u65e0\u6cd5\u8fd0\u884c\uff0c\u56e0\u4e3a\u5b83\u7684\u57fa\u7840\u65b9\u6848\u6ca1\u6709\u4e00\u4e2a\u5e8f\u5217\u53d1\u751f\u5668\u3002
Exp.MissingModel=\u8be5\u5b9e\u9a8c\u201c{0}\u201d\u65e0\u6cd5\u8fd0\u884c\uff0c\u56e0\u4e3a\u5b83\u7684\u57fa\u7840\u65b9\u6848\u6ca1\u6709\u4e00\u4e2a\u6a21\u578b\u3002
