# messages_es.properties
# Spanish
# /*******************************************************************************
# * 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=Problem reading in a serialized Scenario from URI \"{0}\"
SimMgr.Start_Sim=Starting simulation

# Simulation
Sim.Time_Error=Time to stop before starting.  Current time is: {0}, Stopping time is: {1}
