# Copyright (c) 2010, 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 = Java Bridge for Intent (Edit)
providerName = Eclipse Mylyn

_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_Javadoc_type = Javadoc
_UI_DocumentedElement_type = Documented Element
_UI_NamedElement_type = Named Element
_UI_VisibleElement_type = Visible Element
_UI_AbstractCapableElement_type = Abstract Capable Element
_UI_Field_type = Field
_UI_Classifier_type = Classifier
_UI_Method_type = Method
_UI_Constructor_type = Constructor
_UI_Parameter_type = Parameter
_UI_Unknown_type = Object

_UI_Unknown_datatype= Value

_UI_Javadoc_content_feature = Content
_UI_DocumentedElement_javadoc_feature = Javadoc
_UI_NamedElement_name_feature = Name
_UI_VisibleElement_visibility_feature = Visibility
_UI_VisibleElement_static_feature = Static
_UI_VisibleElement_final_feature = Final
_UI_AbstractCapableElement_abstract_feature = Abstract
_UI_Field_type_feature = Type
_UI_Classifier_fields_feature = Fields
_UI_Classifier_methods_feature = Methods
_UI_Method_returnType_feature = Return Type
_UI_Method_parameters_feature = Parameters
_UI_Parameter_type_feature = Type
_UI_Unknown_feature = Unspecified

_UI_VisibilityKind_PUBLIC_literal = PUBLIC
_UI_VisibilityKind_PROTECTED_literal = PROTECTED
_UI_VisibilityKind_PACKAGE_literal = PACKAGE
_UI_VisibilityKind_PRIVATE_literal = PRIVATE
_UI_ClassifierKind_CLASS_literal = CLASS
_UI_ClassifierKind_INTERFACE_literal = INTERFACE
_UI_Classifier_extends_feature = Extends
_UI_Classifier_implements_feature = Implements
_UI_Method_content_feature = Content
_UI_Classifier_kind_feature = Kind
_UI_Method_exceptions_feature = Exceptions
_UI_ClassifierKind_ENUM_literal = ENUM
_UI_Method_signature_feature = Signature
_UI_Method_simpleName_feature = Simple Name
_UI_Method_classQualifiedName_feature = Class Qualified Name
_UI_VisibleElement_elementPath_feature = Element Path
_UI_VisibleElement_classifierPath_feature = Classifier Path
_UI_Field_qualifiedType_feature = Qualified Type
