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

# ====================================================================
# 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 Disease Model UI
providerName = Eclipse.org

# Common Keys
_UI_STEM = STEM
_UI_Builtin = Built-in

_UI_Disease = Disease
_UI_Infector = Infector

# New Disease Wizard
_UI_DiseaseModelWizard_label = New Disease
_UI_ModelModelWizard_description = Define a new Disease 

# New Infector Wizard
_UI_InfectorWizard_label = New Infector
_UI_InfectorWizard_description = Define a new Infector

# Disease Model View
_UI_DView_Name = Diseases

# Project Explorer Content
_UI_Disease_Models = Disease Models
_UI_DM_Instances = Disease Model Instances
_UI_Recorded_CSV = Recorded CSV Simulations

_UI_StandardEditor_menu = &Standard Editor

_UI_CreateChild_menu_item = &New Child
_UI_CreateSibling_menu_item = N&ew Sibling

_UI_ShowPropertiesView_menu_item = Show &Properties View
_UI_RefreshViewer_menu_item = &Refresh

_UI_SelectionPage_label = Selection
_UI_ParentPage_label = Parent
_UI_ListPage_label = List
_UI_TreePage_label = Tree
_UI_TablePage_label = Table
_UI_TreeWithColumnsPage_label = Tree with Columns
_UI_ObjectColumn_label = Object
_UI_SelfColumn_label = Self

_UI_NoObjectSelected = Selected Nothing
_UI_SingleObjectSelected = Selected Object: {0}
_UI_MultiObjectSelected = Selected {0} Objects

_UI_OpenEditorError_label = Open Editor

_UI_Wizard_category = Example EMF Model Creation Wizards

_UI_CreateModelError_message = Problems encountered in file "{0}"

_UI_StandardModelWizard_label = Standard Model
_UI_StandardModelWizard_description = Create a new Standard model

_UI_StandardEditor_label = Standard Model Editor

_UI_StandardEditorFilenameDefaultBase = My
_UI_StandardEditorFilenameExtension = standard

_UI_Wizard_label = New

_WARN_FilenameExtension = The file name must end in ".{0}"

_UI_ModelObject = Model Object
_UI_XMLEncoding = XML Encoding
_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1
_UI_Wizard_initial_object_description = Select a model object to create

_UI_FileConflict_label = File Conflict
_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor.  Do you wish to discard this editor's changes?

_UI_DiseasemodelsEditorAdvisor_ActionSet_label = Diseasemodels Action Set
_UI_Perspective_label = Diseasemodels
_UI_Browse_label = &Browse...
_UI_File_label = &File
_UI_Question_title = Question
_UI_Error_title = Error
_WARN_No_Editor = There is no editor registered for the file "{0}".
_UI_Application_title = Diseasemodels Application
_UI_Menu_File_label = &File
_UI_Menu_New_label = &New
_UI_Menu_Open_label = &Open...
_UI_Menu_Open_description = Opens a model object file
_UI_Menu_OpenURI_label = &Open URI...
_UI_Menu_OpenURI_description = Opens a model object loading it from a URI
_UI_Menu_Edit_label = &Edit
_UI_Menu_Window_label = &Window
_UI_Menu_Help_label = &Help
_UI_Menu_About_label = Diseasemodels &About...
_UI_About_title = Diseasemodels Application
_UI_About_text = Diseasemodels Application about box goes here.
_UI_StandardModelWizard_ActionSet_label = Standard Model Action Set

_UI_StandardEditorFilenameExtensions = standard
_WARN_FilenameExtensions = The file name must have one of the following extensions: {0}

