# /**
#  * 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 v2.0
#  * which accompanies this distribution, and is available at
#  * http://www.eclipse.org/legal/epl-v20.html
#  *
#  * Contributors:
#  *   IBM - Initial API and implementation
#  */

# NLS_MESSAGEFORMAT_VAR

pluginName = EMF Code Generation
providerName = Eclipse Modeling Project
jetBuilder = JET Builder
jetNature = JET
jetProblem = JET Problem

_UI_JET_TEMPLATE = Java Emitter Template File

jet.mark.file.line.column = ''{0}'' at line {1} column {2}
jet.mark.file.line = ''{0}'' at line {1}

jet.error.unknown = The specific problem cause is uncategorized
jet.error.not.on.source.path = The file is not on the template source path in {0}
jet.error.not.a.template = The file is not a root template in {0}
jet.error.bad.attribute.value = The value ''{1}'' for the attribute named ''{0}'' is invalid; {2} in {3}
jet.error.bad.attribute.duplicate = The attribute named ''{0}'' is duplicated in {2}
jet.error.bad.attribute = The unrecognized attribute named ''{0}'' will be ignored in {1}
jet.error.missing.attribute = The required attribute named ''{0}'' is absent in {1}
jet.error.bad.directive = The unrecognized directive named ''{0}'' will be ignored in {1}

jet.error.attr.novalue = The attribute named ''{0}'' is missing an ''='' in {1}
jet.error.attr.quoted = A quoted attribute value is expected in {1}
jet.error.file.cannot.read = The file ''{0}'' cannot be read in {1}
jet.error.quotes.unterminated = The quote is unterminated in {0}
jet.error.tag.attr.unterminated = The tag attribute is unterminated in {0}
jet.error.unterminated = The JET element ''{0}'' is unterminated in {0}
jet.error.missing.jet.directive =  The ''jet'' directive is missing in {0}

_UI_MalformedJETPropertiesFile_exception = Malformed JET Properties file

_UI_ExaminingProject_message = Examining project ''{0}''
_UI_CompilingTemplate_message = Compiling template ''{0}''
_UI_ParsingTemplate_message = Parsing template ''{0}''
_UI_GeneratingJava_message = Generating Java ''{0}''
_UI_Updating_message = Updating ''{0}''
_UI_BadURL_message = Bad URL ''{0}''
_UI_UsageArguments_message = Usage arguments: <jet-template-file> <target-root-directory> [<j-control-model-file>]
_UI_AddJETNature_message = Add JET Nature
_UI_AddJETNatureTo_message = Add JET Nature to ''{0}''
_UI_JETCompilingTemplates_message = JET compiling templates
_UI_JETCompile_message = JET compile ''{0}''
_UI_JETUpdate_message = JET update ''{0}''
_UI_JETJavaCompileProject_message = JET Java compile project ''{0}''
_UI_GeneratingJETEmitterFor_message = Generating JET emitter for ''{0}''
_UI_JETParsing_message = JET parsing ''{0}''
_UI_JETPreparingProject_message = JET preparing project ''{0}''
_UI_JETCreatingProject_message = JET creating project ''{0}''
_UI_JETInitializingProject_message = JET initializing project ''{0}''
_UI_JETOpeningJavaProject_message = JET opening Java project ''{0}''
_UI_CreateTargetFile_message = Create target file
_UI_JETCreating_message = JET creating ''{0}''
_UI_JETUpdating_message = JET updating ''{0}''
_UI_JETBuilding_message = JET building ''{0}''
_UI_JETLoadingClass_message = JET loading class ''{0}''

jet.error.unmatched.directive =  There is no matching ''{0}'' directive for the ''{1}'' directive in {2}
jet.error.section.noinclude =  There is no preceding alternative ''include'' directive for section in {0}
jet.error.duplicate.jet.directive = There is a duplicate ''jet'' directive in {0}
jet.error.jet.skeleton = There is well-formed skeleton found in {0}
jet.error.jet.builder = There is no builder name found in {0}

_UI_FacadeHelpers_extensionpoint = Merger Facade Helpers

_UI_JDOMInvalidSourceCompatibility_message = Using the JDOM API when the source compatibility is not set to '1.4' or lower can cause unpredictable results.

_UI_ParsingProblem_message = A problem was detected while parsing a Java file
_UI_LineNumber_message = Line {0}
_UI_LineNumberAndText_message = Line {0}: {1}
