###############################################################################
# Copyright (c) 2013 RCP Vision (http://www.rcp-vision.com) and others.
# 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
###############################################################################
# /**
#  * <copyright>
#  *
#  * Copyright (c) 2002-2008 IBM Corporation and others.
#  * 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:
#  *   IBM - Initial API and implementation
#  *
#  * </copyright>
#  *
#  * $Id: plugin.properties,v 1.4 2009/04/07 18:58:52 davidms Exp $
#  */

# NLS_MESSAGEFORMAT_VAR

pluginName = EMF Extended Library Edit Example
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_Book_type = Book
_UI_Library_type = Library
_UI_Writer_type = Writer
_UI_Item_type = Item
_UI_Lendable_type = Lendable
_UI_CirculatingItem_type = Circulating Item
_UI_Periodical_type = Periodical
_UI_AudioVisualItem_type = Audio Visual Item
_UI_BookOnTape_type = Book On Tape
_UI_VideoCassette_type = Video Cassette
_UI_Borrower_type = Borrower
_UI_Person_type = Person
_UI_Employee_type = Employee
_UI_Addressable_type = Addressable
_UI_Unknown_type = Object

_UI_Unknown_datatype= Value

_UI_Book_title_feature = Title
_UI_Book_pages_feature = Pages
_UI_Book_category_feature = Category
_UI_Book_author_feature = Author
_UI_Library_name_feature = Name
_UI_Library_writers_feature = Writers
_UI_Library_employees_feature = Employees
_UI_Library_borrowers_feature = Borrowers
_UI_Library_stock_feature = Stock
_UI_Library_books_feature = Books
_UI_Library_branches_feature = Branches
_UI_Library_parentBranch_feature = Parent Branch
_UI_Library_people_feature = People
_UI_Writer_name_feature = Name
_UI_Writer_books_feature = Books
_UI_Item_publicationDate_feature = Publication Date
_UI_Lendable_copies_feature = Copies
_UI_Lendable_borrowers_feature = Borrowers
_UI_Periodical_title_feature = Title
_UI_Periodical_issuesPerYear_feature = Issues Per Year
_UI_AudioVisualItem_title_feature = Title
_UI_AudioVisualItem_minutesLength_feature = Minutes Length
_UI_AudioVisualItem_damaged_feature = Damaged
_UI_BookOnTape_reader_feature = Reader
_UI_BookOnTape_author_feature = Author
_UI_VideoCassette_cast_feature = Cast
_UI_Borrower_borrowed_feature = Borrowed
_UI_Person_firstName_feature = First Name
_UI_Person_lastName_feature = Last Name
_UI_Employee_manager_feature = Manager
_UI_Addressable_address_feature = Address
_UI_Unknown_feature = Unspecified

_UI_BookCategory_Mystery_literal = Mystery
_UI_BookCategory_ScienceFiction_literal = ScienceFiction
_UI_BookCategory_Biography_literal = Biography
