#                                                                           
#  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
#                                                                            
#  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:                                                      
# 	   Florian Pirchner - Initial implementation
#

pluginName = CxGrid Editor
providerName = www.example.org

_UI_CxGridEditor_menu = &CxGrid Editor
_UI_CxGridRendererEditor_menu = &CxGridRenderer Editor
_UI_CxGridMementoEditor_menu = &CxGridMemento 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_CxGridModelWizard_label = CxGrid Model
_UI_CxGridModelWizard_description = Create a new CxGrid model

_UI_CxGridEditor_label = CxGrid Model Editor

_UI_CxGridEditorFilenameDefaultBase = My
_UI_CxGridEditorFilenameExtensions = cxgrid

_UI_CxGridRendererModelWizard_label = CxGridRenderer Model
_UI_CxGridRendererModelWizard_description = Create a new CxGridRenderer model

_UI_CxGridRendererEditor_label = CxGridRenderer Model Editor

_UI_CxGridRendererEditorFilenameDefaultBase = My
_UI_CxGridRendererEditorFilenameExtensions = cxgridrenderer

_UI_CxGridMementoModelWizard_label = CxGridMemento Model
_UI_CxGridMementoModelWizard_description = Create a new CxGridMemento model

_UI_CxGridMementoEditor_label = CxGridMemento Model Editor

_UI_CxGridMementoEditorFilenameDefaultBase = My
_UI_CxGridMementoEditorFilenameExtensions = cxgridmemento

_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?

