# Hebrew
#
# /*******************************************************************
#  * 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
_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





