# Copyright (c) 2011 Formal Mind GmbH and University of Dusseldorf.
# 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:
#     Michael Jastram - initial API and implementation
pluginName = RMF ProR Linewrap Presentation (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_Unknown_type = Object
_UI_Unknown_datatype= Value
_UI_Unknown_feature = Unspecified

_UI_LinewrapConfiguration_type = Linewrapping for: {0}
_UI_LinewrapConfiguration_type_not_configured = Linewrapping for: (PLEASE SET TYPE)
_UI_LinewrapConfiguration_type_incorrect_type = Linewrapping WARNING: Incorrect type, must be String
