# Copyright (c) 2011-2014 EclipseSource Muenchen GmbH 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:
# Johannes Faltermeier - initial API and implementation

pluginName = Viewproxy Edit Support
providerName = Eclipse Modeling Project

_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_ViewProxy_type = View Proxy
_UI_ProxyDomainModelReference_type = Proxy Domain Model Reference
_UI_Unknown_type = Object

_UI_Unknown_datatype= Value

_UI_ViewProxy_bundleName_feature = Bundle Name
_UI_ViewProxy_filePath_feature = File Path
_UI_ViewProxy_domainModelReference_feature = Domain Model Reference
_UI_ProxyDomainModelReference_proxyDomainModelReference_feature = Proxy Domain Model Reference
_UI_ProxyDomainModelReference_viewDomainModelReference_feature = View Domain Model Reference
_UI_Unknown_feature = Unspecified

_UI_ViewProxy_id_feature = Id
