#/*******************************************************************************
# * 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
# *******************************************************************************/

pluginName = STEM Global Influenza Disease Model
providerName = Eclipse.org
_UI_CreateChild_text = {0}
_UI_CreateChild_text2 = {1} {0}
_UI_CreateChild_text3 = {1}
_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
_UI_PropertyDescriptor_description = The {0} of the {1}
_UI_GlobalInfluenzaModel_type = Global Influenza Model
_UI_Unknown_type = Object
_UI_Unknown_datatype= Value
_UI_GlobalInfluenzaModel_latitudeSigmoidWidth_feature = Latitude Sigmoid Width
_UI_GlobalInfluenzaModel_seasonalModulationExponent_feature = Seasonal Modulation Exponent
_UI_GlobalInfluenzaModel_modulationPeriod_feature = Modulation Period
_UI_GlobalInfluenzaModel_modulationPhaseShift_feature = Modulation Phase Shift
_UI_GlobalInfluenzaModel_seasonalModulationFloor_feature = Seasonal Modulation Floor
_UI_GlobalInfluenzaModel_attenuation_feature = Attenuation
_UI_Unknown_feature = Unspecified

_UI_GlobalinfluenzamodelEditor_menu = &Globalinfluenzamodel 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_GlobalinfluenzamodelModelWizard_label = Globalinfluenzamodel Model
_UI_GlobalinfluenzamodelModelWizard_description = Create a new Globalinfluenzamodel model
_UI_GlobalinfluenzamodelEditor_label = Globalinfluenzamodel Model Editor
_UI_GlobalinfluenzamodelEditorFilenameDefaultBase = My
_UI_GlobalinfluenzamodelEditorFilenameExtensions = globalinfluenzamodel
_UI_Wizard_label = New
_WARN_FilenameExtension = The file name must end in ''.{0}''
_WARN_FilenameExtensions = The file name must have one of the following extensions: {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?

