################################################################################
# Copyright (c) 2008, 2012 Obeo.
# 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:
#     Obeo - initial API and implementation
################################################################################
pluginName = Acceleo Profiler model 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_ProfileEntry_type = Profile Entry
_UI_LoopProfileEntry_type = Loop Profile Entry
_UI_ProfileResource_type = Profile Resource
_UI_Unknown_type = Object

_UI_Unknown_datatype= Value

_UI_ProfileEntry_duration_feature = Duration
_UI_ProfileEntry_callees_feature = Callees
_UI_ProfileEntry_caller_feature = Caller
_UI_ProfileEntry_count_feature = Count
_UI_ProfileEntry_percentage_feature = Percentage
_UI_ProfileEntry_textBegin_feature = Text Begin
_UI_ProfileEntry_textEnd_feature = Text End
_UI_ProfileEntry_createTime_feature = Create Time
_UI_ProfileEntry_monitored_feature = Monitored
_UI_LoopProfileEntry_loopElements_feature = Loop Elements
_UI_ProfileResource_entries_feature = Entries
_UI_Unknown_feature = Unspecified

_UI_Internal_type = Internal
