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

# SimulationManager
SimMgr.Deserialization_Error=\u5728\u4e00\u4e2a\u5e8f\u5217\u5316\u7684\u65b9\u6848\u4eceURI \\u201c{0} \\u201d\u8bfb\u53d6\u95ee\u9898
SimMgr.Start_Sim=\u5f00\u59cb\u6a21\u62df
SimMgr.CrtSim=\u521b\u5efa\u6a21\u62df
SimMgr.Run=\u8fd0\u884c\u4eff\u771f

# Simulation
Sim.Time_Error=\u65f6\u95f4\u505c\u6b62\uff0c\u7136\u540e\u518d\u542f\u52a8\u3002\u5f53\u524d\u65f6\u95f4\u4e3a\uff1a{0}\uff0c\u505c\u6b62\u65f6\u95f4\u4e3a\uff1a{1}
Sim.IErr=\u5f53\u8fd0\u884c"{0}"\u53d1\u751f\u7684\u5185\u90e8\u9519\u8bef
Sim.MissingSeq=\u8be5\u65b9\u6848\u201c{0}\u201d\u65e0\u6cd5\u8fd0\u884c\uff0c\u56e0\u4e3a\u5b83\u6ca1\u6709\u4e00\u4e2a\u5e8f\u5217\u5668\u3002
Sim.MissingModel=\u8be5\u65b9\u6848\u201c{0}\u201d\u65e0\u6cd5\u8fd0\u884c\uff0c\u56e0\u4e3a\u5b83\u6ca1\u6709\u4e00\u4e2a\u6a21\u578b\u3002
