###############################################################################
# Copyright (c) 2001, 2004 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 Corporation - initial API and implementation
###############################################################################
# To avoid name collisions, each extension point should preface their property names with an identifier.
#
#     *************************************************************************
#     * Code oriented instructions:
#     *
#     * In the string, you may see the following special sequences:
#     * a) {n}  where n is a number. These are replaceable parameters.
#     * b) ''  In .properties files, in order to see one apostrophe (') in the final
#     *    string, sometimes two apostrophes must be entered in the string. In the translated
#     *    string, if there is at least one {n} in the string, then to show one apostrophe
#     *    to the user, put two apostrophes in the string. If there are no {n} in the string,
#     *    then put one apostrophe.
#     *    For example, say that you want the user to read "George's file". 
#     *        GEORGE=George's file was on the desk.
#     *        GEORGE2=George''s file and {0} were on the desk.
#     *    GEORGE uses one apostrophe because there are no {n} and GEORGE2
#     *    uses two apostrophes because there is a {n}.
#     * c) '' text '' where text can be any word(s). The text between the double
#     *    apostrophes should not be translated. 
#     * d) <text> where text can be any word(s). The text between the angle
#     *    brackets should NOT be translated.
#     * e) "text" where text can be any word(s). The text between the quotation 
#     *    marks should NOT be translated.
#     *    
#     *************************************************************************
#     * Other instructions
#     * a) Do not translate any text that is on a line which begins with a comment 
#     *    symbol (#).
#     * b) Do not translate these words: 
#     *        schema, EJB, RDB, JAR, RMI, BMP, CMP, OOSQL
#     * c) Please return the .properties files using the same directory structure.
#     *    This is necessary because two of the files have the same name.
#     *
#     *************************************************************************
# Any other comments to the translators are on lines which start like this:  # 2TC:
#
# Version 1.14
#
#
# ID:
#    VBF - Validation Builder Framework
#       VBF_EXC=Exception or error text
#       VBF_STATUS=Status message
#       VBF_TASK=Task list message
#

# 
# Begin Validation Builder Framework Strings
#
# IDs:
#    VBF_EXC=Exception or error text
#    VBF_STATUS=Status message
#    VBF_TASK=Task list message
#
VBF_EXC_CANNOT_ADD_MARKER=IWAE0001E The marker cannot be added to resource {0} in the task list.
VBF_EXC_CANNOT_REMOVE_MARKER=IWAE0002E The marker cannot be removed from resource {0} in the task list.

VBF_EXC_HELPER_MISSING=IWAE0003E Unable to load {0} because it did not specify a <helper>. Each validator must identify the helper class that loads its MOF model.
VBF_EXC_HELPER_CANNOTLOAD=IWAE0004E Unable to load {0} because its <helper>, {1}, could not be loaded. Ensure that the case-sensitive file name is spelled correctly.

VBF_EXC_INTERNAL=IWAE0005E An internal error occurred during validation. Validation was being run on project {0} with validator {1}. The message thrown was {2}.

# 2TC: In the following string, "type" is a noun
VBF_EXC_INVALID_TYPE_FILTER=IWAE0006E Invalid type filter; {0} must be an instance of {1}.
VBF_EXC_INVALID_RESOURCE=IWAE0007E Cannot add message "{0}" with target object "{1}" because no file, folder, or project can be found with which to associate the message.

VBF_EXC_MISSING_VALIDATOR_EP=IWAE0008E The validator framework could not be started. The extension point named \"{0}\" could not be found. Save all log files and contact your IBM representative.
VBF_EXC_MISSING_PROJECTNATURE_ID=IWAE0009E A projectNature must have an associated ID. Validation is ignoring this tag and continuing.

VBF_EXC_RUNTIME=IWAE0010E Run-time exception {0} occurred during validation. The validator being run was {1} and the message thrown was {2}.

VBF_EXC_SYNTAX_NULL_NAME=IWAE0011E Resource {0} cannot be added to file list because IWorkbenchContext.getPortableName() returns null. This resource will not be validated by the validator named {1}.
VBF_EXC_SYNTAX_NO_HELPER=IWAE0012E No <helper> element is specified in the plugin.xml file for validator {0}. Since the helper cannot be created, the validator will not be loaded.
VBF_EXC_SYNTAX_NO_HELPER_CLASS=IWAE0013E No "class" attribute in the <helper> element is specified in the plugin.xml file for validator {0}. The helper cannot be created without the name of the class that implements it. Since the helper cannot be created, the validator will not be loaded.
VBF_EXC_SYNTAX_NO_HELPER_THROWABLE=IWAE0014E The helper {0} cannot be created because a Throwable was caught.
VBF_EXC_SYNTAX_NO_VAL_RUN=IWAE0015E Validator cannot be created because no <run> element is specified in the plugin.xml file for the validator named {0}. Cannot create a validator unless a <run> element exists that specifies the "class" attribute. The value of the "class" attribute should be the name of the class that implements the IWorkbenchHelper interface.
VBF_EXC_SYNTAX_NO_VAL_CLASS=IWAE0016E Validator cannot be created because no "class" attribute is specified in the <run> element of the plugin.xml file for the validator named {0}. Cannot create a validator unless a <run> element exists that specifies the "class" attribute. The value of the "class" attribute should be the name of the class that implements the IWorkbenchHelper interface.
VBF_EXC_SYNTAX_NO_VAL_THROWABLE=IWAE0017E Cannot create validator {0} because a Throwable was caught.
VBF_EXC_SYNTAX_NO_VAL_NULL=IWAE0018E Validator class {0} could not be created. IConfigurationElement.createExecutableExtension(String) returned null.

VBF_EXC_DISABLEV=IWAE0019E Cannot instantiate validator {0}. Disabling the validator; read the log for details.
VBF_EXC_DISABLEH=IWAE0020E Cannot instantiate helper {0}. Disabling validator {1}; read the log for details.
VBF_EXC_ORPHAN_IVALIDATOR=IWAE0021E Cannot locate meta-data for validator {0}.

VBF_EXC_VALIDATORNAME_IS_NULL=IWAE0022E The plugin with ID {0} has been disabled because its getName() method returns null. The method must return a value.

VBF_EXC_NULLCREATE=IWAE0023E Cannot create a validation configuration on a null resource.
VBF_EXC_NULLSAVE=IWAE0024E Cannot save a validation configuration on a null resource.
VBF_EXC_SAVE=IWAE0025E Could not save the validation configuration on resource {0}.
VBF_EXC_NULLRETRIEVE=IWAE0026E Cannot retrieve the validation configuration because resource is null.
VBF_EXC_RETRIEVE=IWAE0027E Could not retrieve the validation configuration for resource {0}.

VBF_EXC_BADVMD=IWAE0028E ValidatorMetaData[] must not be null or empty.
VBF_EXC_OPENPRJ=IWAE0029E Project {0} must be open.
VBF_EXC_EXISTPRJ=IWAE0030E Project {0} must exist.
VBF_EXC_BADPRJ=IWAE0031E Project {0} must be the project that contains the resources in the IResource[].
VBF_EXC_MULTIPRJ=IWAE0032E All IResource instances in the IResource[] must be part of the same IProject instance. The resources come from the following projects: {0}.
VBF_EXC_BADVAL=IWAE0033E Validator {0} must be configured on {1};

VBF_STATUS_INITIALIZING=Initializing {0}.

VBF_STATUS_VALIDATOR_CLEANUP=Performing cleanup on {0} before termination.

VBF_STATUS_PROGRESSMONITOR_TITLE=Validating
VBF_STATUS_NULL_DELTA=Last build state of {0} could not be retrieved. Performing a full validation.

VBF_STATUS_VALIDATOR_TERMINATED=Validation of {0} using {1} was cancelled.

VBF_STATUS_START_REMOVING_OLD_MESSAGES=Removing {0} messages on {1} has started...
VBF_STATUS_FINISH_REMOVING_OLD_MESSAGES=Messages removed.

VBF_STATUS_STARTING_VALIDATION=Validation of {0} by {1} has started...
VBF_STATUS_ENDING_VALIDATION=Validation of {0} by {1} is complete. All known problems have been reported.
VBF_STATUS_ENDING_VALIDATION_ABNORMALLY=Validation of {0} by {1} ended abnormally. The list of problems may be incomplete. Please check the information messages for the cause of the abnormal termination.

VBF_STATUS_LOOKING=Looking for validation messages owned by uninstalled validators...
VBF_STATUS_LOOKINGDONE=Looking for validation messages owned by uninstalled validators...done.
VBF_STATUS_REMOVING=Removing validation messages owned by uninstalled validators...
VBF_STATUS_REMOVINGDONE=Removing validation messages owned by uninstalled validators...done.

VBF_WRONG_CONTEXT_FOR_DELEGATE=The validator {0} is a being invoked with a wrong context. Please use an IProjectValidationContext.
VBF_NO_DELEGATE=The validator {0} is a delegating validator but no delegate can found for it.
VBF_CANNOT_INSTANTIATE_DELEGATE=The validator delegate {0} registered for {1} cannot be instantiated.

# The following message will be deleted soon.
VBF_TASK_WARN_MESSAGE_LIMIT_ABORT=IWAE0034W IWAD3000I: {1} terminated validation of {0} because the maximum number of messages were reported. Some messages may be missing.

VBF_TASK_WARN_MESSAGE_LIMIT_VAL=IWAE0035W IWAD3000I: Some messages may be missing because the maximum number of messages has been reported. Increase the maximum number of messages and try again.

#
# End Validation Builder Framework Strings
#

