###############################################################################
# Copyright (c) 2010, 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
#     E.D.Willink - rework of LPG OCL Console for Xtext
###############################################################################

CloseAction_Label = Close
CloseAction_Tip = Close Console
Console_Title = Interactive Xtext OCL
Console_TitleWithContext = Xtext OCL for ''{0}'' : {1}
ContextSource_Title = Source model for 'self' type
ContextSource_ToolTip = Determine the type of 'self' using the metamodel type,\nor a model capability such as UML's InstanceSpecification::classifier.
Debug_FailCreate = Failed to create Complete OCL document
Debug_FailLaunch = Failed to launch OCL Debugger
Debug_FailLoad = Failed to load Complete OCL document
Debug_FailStart = Failed to start the OCL Console Debugger
Debug_FailStart_NoOCL = No OCL expression available to debug
Debug_FailStart_NoShell = No shell available to start the OCL Console Debugger
Debug_ProgressCreate = Creating Complete OCL document
Debug_ProgressLaunch = Launching OCL Debugger
Debug_ProgressLoad = Loading Complete OCL document
Debug_Starter = OCL Console Debug launcher
Debug_Title = Debug OCL expression
Debug_ToolTip = Debug execution of the the Console input OCL expression on the currently selected EObject
Heading_Evaluating = Evaluating:
Heading_Results = Results:
LoadAction_Label = Load...
LoadAction_Tip = Load an expression from an XMI file
LoadAction_Title = Load OCL Expression
LoadActionError_Title = Error Loading OCL Expression
LoadActionWarning_Title = Warning Loading OCL Expression
LoadActionWarning_NoExpression = No OCL Expression was found in the file.
LoadResourceAction_Tip = Load a resource into the resource set
ModelTypesUsage_Message = You have selected an object that has a model type as well as a metamodel type.\nYou may use an oclAsModelType cast to use the model type e.g.\n\nlet this = self.oclAsModelType(MyModelType) in this...\n\nThis message may be disabled in the OCL Unified Pivot Binding preferences page.
#ModelTypesUsage_Question = Don't show this warning again.\n It may be reactivated from the OCL Unified Pivot Binding preferences.
ModelTypesUsage_Title = OCL Console ModelType Usage
Output_Exception = Exception appending to OCL console output.
Progress_Evaluating = Evaluating
Progress_Extent = Creating Extent Map
Progress_Synchronising = Synchronising
Progress_Title = OCL Evaluation: {0}
Result_EvaluationFailure = Evaluation failure
Result_EvaluationTerminated = Evaluation terminated
Result_MappingFailure = Mapping failure
Result_NoExpression = No expression to evaluate.
Result_Parsed = Successfully parsed.
Result_ParsingFailure = Parsing failure
SaveAction_Label = Save...
SaveAction_Tip = Save last evaluated expression to an XMI file
SaveAction_Title = Save OCL Expression
SaveActionError_Title = Error Saving OCL Expression
SaveActionWarning_Title = Warning Saving OCL Expression
SaveActionWarning_NoExpression = No OCL expression was successfully evaluated; nothing to save.
SelectionError_Message = Failed to set 'self' context
SelectionError_Metamodel = "No Context Classes available in the METAMODEL for a ''{0}''."
SelectionError_Model = "No Context Classes available in the MODEL for a ''{0}'' : try using METAMODEL."
SelectionError_Title = OCL Console Selection Error
ValueFactory_Cancelable = Cancelable
