##
#  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
##

pluginName = EGF Factory Production Model Edit (Incubation)
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_ProductionPlan_type = Production Plan
_UI_ProductionPlanInvocation_type = Production Plan Invocation
_UI_Unknown_type = Object
_UI_Unknown_datatype= Value
_UI_ProductionPlan_invocations_feature = Invocations
_UI_ProductionPlanInvocation_productionPlan_feature = Production Plan
_UI_Unknown_feature = Unspecified

