##
#  Copyright (c) 2009-2010 Thales Corporate Services S.A.S.
#  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:
#      Thales Corporate Services S.A.S - initial API and implementation
##

ExceptionDialog_seeErrorLogMessage= See error log for more details.

_UI_FcoreSelection_label= EGF Fcore Selection
_UI_SelectRegisteredFcore= &Select a registered EGF Fcore:

_UI_TypeSelection_label= Type Selection
_UI_SelectType= &Select an existing ''{0}'' Type subclass
_UI_FilteredTypesSelectionDialog_library_name_format= [{0}]
_UI_FilteredTypesSelectionDialog_dialogMessage= Type ''{0}'' could not be found in ''{1}''. Make sure all workspace resources are refreshed.
_UI_FilteredItemsSelectionDialog_separatorLabel= ''{0}'' matches
_UI_FilteredItemsSelectionDialog_platformSeparatorLabel= 'Platform' matches
_UI_Reset_Label= Reset

# EGF General preference page.
EGFGeneralPreferencePage_Title= EGF
EGFGeneralPreferencePage_Description= Preferences related to Eclipse Generation Factories.

# EGF Model preference page.
EGFModelPreferencePage_Title= Model
EGFModelPreferencePage_Description= EGF Model Settings.
EGFModelPreferencePage_Validate= Validate
EGFModelPreferencePage_Validate_Types= Always load and instantiate Types

# EGF Production preference page.
EGFProductionPreferencePage_Title= Production
EGFProductionPreferencePage_Description= EGF Production Settings.
EGFProductionPreferencePage_Validate= Validate Model instances before launching
EGFProductionPreferencePage_Validate_Always= Always
EGFProductionPreferencePage_Validate_Never= Never
EGFProductionPreferencePage_Validate_Prompt= Prompt

AbstractCheckboxSelectionDialog_Select= &Select All
AbstractCheckboxSelectionDialog_Deselect= &Deselect All

TypeSelectionDialog_findTypeHierarchy= Find Type Hierarchy ''{0}''

_UI_DiagnosisOfNObject_message= Diagnosis of ''{0}''
_UI_DiagnosisOfNObjects_message= Diagnosis of {0} objects

MenuContributor_newChildGroup_label = &New Child
MenuContributor_siblingChildGroup_label = &New Sibling

