# Copyright (c) 2004 - 2008 Eike Stepper, Germany.
# 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:
#    Eike Stepper - initial API and implementation
#
# $Id: plugin.properties,v 1.1 2008-08-08 10:10:41 estepper Exp $

pluginName = Product Model
providerName = www.example.org

_UI_Product_content_type = Product File
_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_PopProduct_type = Pop Product
_UI_WorkingSet_type = Working Set
_UI_WorkspaceProject_type = Workspace Project
_UI_WorkspaceConfigurator_type = Workspace Configurator
_UI_Artifact_type = Artifact
_UI_File_type = File
_UI_Folder_type = Folder
_UI_Archive_type = Archive
_UI_ArchiveContent_type = Archive Content
_UI_Unknown_type = Object
_UI_Unknown_datatype= Value
_UI_PopProduct_popProject_feature = Pop Project
_UI_PopProduct_projects_feature = Projects
_UI_PopProduct_workingSets_feature = Working Sets
_UI_PopProduct_configurators_feature = Configurators
_UI_WorkingSet_name_feature = Name
_UI_WorkingSet_projects_feature = Projects
_UI_WorkingSet_workspaceSpec_feature = Workspace Spec
_UI_WorkspaceProject_name_feature = Name
_UI_WorkspaceProject_workingSets_feature = Working Sets
_UI_WorkspaceProject_workspaceSpec_feature = Workspace Spec
_UI_WorkspaceProject_codeRoot_feature = Code Root
_UI_WorkspaceProject_codePath_feature = Code Path
_UI_WorkspaceConfigurator_workspaceSpec_feature = Workspace Spec
_UI_Artifact_parent_feature = Parent
_UI_Folder_members_feature = Members
_UI_Archive_content_feature = Content
_UI_ArchiveContent_archive_feature = Archive
_UI_Unknown_feature = Unspecified

_UI_WorkspaceProject_repositoryModule_feature = Repository Module
_UI_WorkspaceProject_repositoryPath_feature = Repository Path
_UI_WorkspaceProject_module_feature = Module
_UI_SecondaryModule_type = Secondary Module
_UI_PopProduct_name_feature = Name
_UI_PopProduct_secondaryModules_feature = Secondary Modules
_UI_SecondaryModule_popProduct_feature = Pop Product
_UI_WorkingSet_popProduct_feature = Pop Product
_UI_WorkspaceProject_popProduct_feature = Pop Product
_UI_WorkspaceProject_modulePath_feature = Module Path
_UI_WorkspaceConfigurator_popProject_feature = Pop Project
_UI_WorkspaceConfigurator_name_feature = Name
