###############################################################################
# Copyright (c) 2005, 2014 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v2.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v20.html
#
# Contributors:
#     IBM Corporation - initial API and implementation
#     Zeligsoft - Bug 254297
#     E.D.Willink - Bug 289761
###############################################################################

# NLS_MESSAGEFORMAT_VAR

# ==============================================================================
# Do not change the properties between this line and the last line containing:
# %%% END OF TRANSLATED PROPERTIES %%%
# Instead, either redefine an existing property, or create a new property,
# append it to the end of the file, and change the code to use the new name.
# ==============================================================================

Plugin.name=OCL Examples and Editors
Plugin.providerName=Eclipse OCL

# ==============================================================================
# %%% END OF TRANSLATED PROPERTIES %%%
# The above properties have been shipped for translation.
# ==============================================================================

OCL_category=OCL (Object Constraint Language) Plug-ins

OCL_Interpreter_name=OCL Interpreter
OCL_Interpreter_description=Example project defining an interactive OCL interpreter console
_UI_LibraryModelProject_desc = This project contains the extended library model and the implementation generated from it.  
_UI_LibraryEditProject_desc = This project contains the item providers generated to support viewing and editing instances of the extended library model.
_UI_LibraryEditorProjector_desc = This project contains the sample editor generated from the extended library model.

CompleteOCL_Tutorial_name=Complete OCL Tutorial
CompleteOCL_Tutorial_description=Tutorial example demonstrating use of independent OCL to complement Ecore or UML models or Xtext grammars

OCLinEcore_Tutorial_name=OCLinEcore Tutorial
OCLinEcore_Tutorial_description=Tutorial example demonstrating use of embedded OCL to enrich an Ecore model 

EmptyOCL_name=Empty OCL Project
EmptyOCL_description=Empty OCL project

Royal_and_Loyal_name=Royal and Loyal Example
Royal_and_Loyal_description=Example project containing the Royal and Loyal Example
