# Copyright (c) 2004 - 2008 Eike Stepper, 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:
#    Eike Stepper - initial API and implementation
#
# $Id: plugin.properties,v 1.1 2008-08-08 10:10:39 estepper Exp $

pluginName = Base Model
providerName = www.example.org

_UI_Base_content_type = Base File
_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_Identifiable_type = Identifiable
_UI_Displayable_type = Displayable
_UI_PopElement_type = Pop Element
_UI_Unknown_type = Object
_UI_Unknown_datatype= Value
_UI_Unknown_feature = Unspecified

_UI_Identifiable_id_feature = Id
_UI_PopElement_class_feature = Class
