###############################################################################
# Copyright (c) 2014 Obeo 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:
#     Obeo - initial API and implementation
###############################################################################
## Application
OCLValidatorApplication_Aborted = Operation aborted
OCLValidatorApplication_ValidationStarting = Starting OCL Evaluation
OCLValidatorApplication_ValidationComplete = Evaluation successfully completed
OCLValidatorApplication_ExportStarting = Starting results export
OCLValidatorApplication_ExportProblem= A problem detected while exporting results
OCLValidatorApplication_ExportedFileGenerated = Results successfully exported
OCLValidatorApplication_ModelLoadProblem = A Problem detected while loading the model {0}
OCLValidatorApplication_OclLoadProblem = A Problem detected while loading the ocl file model {0}
OCLValidatorApplication_OclUriProblem = A Problem detected while initiating the ocl file URI {0}
OCLValidatorApplication_MetamodelsLoadProblem = A Problem detected while loading metamodels by the helper

## Analyzer
## Missing keyword
OCLArgumentAnalyzer_NoDefinedKeyword = The command line requires a keyword. For more details type {0}.

## Mandatory Arguments
OCLArgumentAnalyzer_ModelArg = Argument '-model' is required in the command line
OCLArgumentAnalyzer_RulesArg = Argument '-rules' is required in the command line

## Mandatory Arguments values missing
OCLArgumentAnalyzer_ModelPathMissing = The Model Path after the '-model' argument is required in the command line
OCLArgumentAnalyzer_RulesPathMissing = At least one Rule Path after the '-rules' argument is required in the command line

## Optional Arguments
OCLArgumentAnalyzer_OutputArg = Argument '-output' is missing in the command line. The exported file will be saved in a temporary file.
OCLArgumentAnalyzer_ExporterArg = Argument '-exporter' is missing in the command line. The default 'text' exporter will be used.
OCLArgumentAnalyzer_RestrictionArg = Argument '-using' is missing in the command line. All constraints will be validated.

## Optional Arguments values missing
OCLArgumentAnalyzer_OutputFilePathMissing = The Output Path after the '-output' argument is required in the command line.
OCLArgumentAnalyzer_OutputFileInvalidExtension = The Output File Extension is invalid, it must be '{0}'.
OCLArgumentAnalyzer_OutputFileCreationProblem = A problem detected while creating a temporary file to export results
OCLArgumentAnalyzer_ExporterMissing = A 'text|html' exporter after the '-exporter' argument is required in the command line.
OCLArgumentAnalyzer_RestrictionMissing = A 'all|ocl|java|uml' identifiers after the '-using' argument is required in the command line.

OCLArgumentAnalyzer_FileExt = File extension for resource 
OCLArgumentAnalyzer_OutputDir = Output directory 
OCLArgumentAnalyzer_OutputFile = Output file 
OCLArgumentAnalyzer_OCLFileNotFound = The OCL file {0} does not exist. 
OCLArgumentAnalyzer_NoOCLFiles = No OCL Document to evaluate. Check the command line.
OCLArgumentAnalyzer_CannotBeRead = \ cannot be read.
OCLArgumentAnalyzer_ExtensionPb = \ must be either *.ocl or *.txt
OCLArgumentAnalyzer_found = \ found

OCLArgumentAnalyzer_ignored = \ ignored
OCLArgumentAnalyzer_ModelFile = Model file 
#OCLArgumentAnalyzer_NotDirectory = \ is not a directory
OCLArgumentAnalyzer_AlreadyExists = \ already exists in command line.
OCLArgumentAnalyzer_NotFile = \ is not a file
OCLArgumentAnalyzer_NotExist = \ does not exist.
OCLArgumentAnalyzer_OCLFile = OCL file 
OCLArgumentAnalyzer_OCLResource = OCL resource

Standalone_Help = Standalone OCL usage.

HelpCommand_Bad = Bad help command
HelpCommand_Help = Generate help on the available commands.
HelpText_Optional = Optional
HelpText_Required = Required
HelpText_repeatable = repeatable
HelpText_token = token

ValidateCommand_Help = Validate a model using some or all rules and export the results to an output.

ValidateCommand_Exporter_Help = Specify the exporter to be used. Defaults to a text file.
ValidateCommand_Model_Help = The <file-name> of the model to be validated.
ValidateCommand_Output_Help = Define the output <file-name>. Defaults to stdout.
ValidateCommand_Rules_Help = Define the paths to the OCL documents containing the constraints to evaluate.\n\
Users can specify one or several OCL Documents paths in the command line, separated with a whitespace.\n\
A text file containing a list of OCL Documents paths can be used instead,\n\
in which case all OCL constraints defined in all of these documents will be evaluated sequentially.
ValidateCommand_Using_Help = Specify the kinds of rules to be used during validation\n\
all - all kinds\n\
java - constraints built-in to compiled Java models\n\
ocl - constraints defined as additional rules\n\
uml - constraints defined within UML models\n\
Multiple kinds may be separated as a comma-separated list




