# Canadian English
#
# /*******************************************************************
#  * 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
#  ******************************************************************/

# ====================================================================
# To code developer:
#   Do NOT change the properties between this line and the
#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
#   Make a new property name, append to the end of the file and change
#   the code to use the new property.
# ====================================================================
# ====================================================================
# %%% END OF TRANSLATED PROPERTIES %%%
# ====================================================================

pluginName = STEM UI

# Common Keys
_UI_Common_STEM = STEM

# STEM New Project Wizard
_UI_New_STEM_Project_Wizard = STEM Project

# Views
_UI_Graphs_View = Graphs
_UI_Models_View = Models
_UI_Scenarios_View = Scenarios eh?
_UI_Observers_View = Observers
_UI_Sequencers_View = Sequencers
_UI_Decorators_View = Decorators
_UI_STEM_Project_Explorer = STEM Project Explorer
_UI_Active_Simulations_View = Active Simulations

# Menu
_UI_STEM_WorkBench_Menu = STEM
_UI_STEM_Action_Run = Run
_UI_STEM_Action_Run_TT = Start execution of the simulation
_UI_STEM_Action_Stop = Stop
_UI_STEM_Action_Stop_TT = Stop the simulation and make it inactive
_UI_STEM_Action_Pause = Pause
_UI_STEM_Action_Pause_TT = Pause the simulation
_UI_STEM_Action_Step = Step 
_UI_STEM_Action_Step_TT = Advance the simulation by one time step
_UI_STEM_Action_Reset = Reset
_UI_STEM_Action_Reset_TT = Restore the simulation to its starting state





