###############################################################################
# Copyright (c) 2008, 2018 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
###############################################################################
ApiMarkerResolutionGenerator_api_problem_filters=API Problem Filters
CreateApiFilterOperation_0=Create new API problem filter
CreateApiFilterOperation_add_filter_comment=Add Filter Comment
CreateApiFilterOperation_filter_comment=&Filter comment:
DefaultApiProfileResolution_0=Navigate to the baselines preference page to select or create an API baseline
DefaultApiProfileResolution_1=Select or create an API baseline
DefaultApiProfileResolution_2=Fixing API baseline
DuplicateAnnotationResolution_remove_duplicate_annotation=Remove duplicate ''{0}'' annotation
DuplicateTagResolution_remove_dupe_tag_resolution_label=Remove duplicate ''{0}'' tag
FilterProblemResolution_0=Create a {1} problem filter for ''{0}''
FilterProblemResolution_0_desc=Creates a {1} problem filter without comment for API tools problem:<br> <br> {0}
ConfigureProblemSeverity_desc=Open the Plug-in Development > API Errors/Warnings preference page and highlight the problem to configure its severity.<br> <br> {0}
ConfigureProblemSeverity_label=Configure {0} problem severity
FilterProblemResolution_compatible=compatibility
FilterProblemResolution_create_filters_for_problems=Create filters for the selected problems
ExplainProblemResolution_explain_incompatibility=Explain incompatibility
ExplainProblemResolution_explain_incompatibility_desc=Opens help to explain incompatibility for API tool problem:<br> <br> {0}
FilterProblemResolution_default_profile=API baseline
FilterProblemResolution_api_component=API component
FilterProblemResolution_since_tag=since tag
FilterProblemResolution_usage=usage
FilterProblemResolution_version_number=version number
FilterProblemWithCommentResolution_create_commented_filter=Create a commented {1} problem filter for ''{0}''
FilterProblemWithCommentResolution_create_commented_filter_desc=Creates a {1} problem filter with comment for API tools problem:<br> <br> {0}
FilterProblemWithCommentResolution_create_commented_filters=Create commented filters for the selected problems
InstallEEDescriptionProblemResolution_0=Install execution environment descriptions
InstallEEDescriptionProblemResolution_1=Navigate to the install software dialog to install execution environment descriptions

OpenPropertyPageResolution_element_cannot_be_null=The given element cannot be null
OpenPropertyPageResolution_open_the_property_page=Open the {0} property page
OpenPropertyPageResolution_opening_property_page_job_name=Opening property page
OpenPropertyPageResolution_opens_the_property_page=Opens the {0} property page
OpenPropertyPageResolution_page_id_cannot_be_null=The given page id cannot be null
OpenPropertyPageResolution_the_page_name_cannot_be_null=The name for the page cannot be null
OptionalMessageDialog_0=Do not show this &message again
PDEConfigureProblemSeverityAction_0=The project ''{0}'' does not have any project specific problem severity settings yet.\n\n Do you want to create and configure the project settings or do you want to configure the workspace settings?
PDEConfigureProblemSeverityAction_1=Configure &Project
PDEConfigureProblemSeverityAction_2=Configure &Workspace
PDEConfigureProblemSeverityAction_3=Configure Problem Severity
PDEConfigureProblemSeverityAction_4=&Always configure the workspace settings
RemoveFilterProblemResolution_remove_unused_filter=Remove unused problem filter
RemoveFilterProblemResolution_remove_unused_filters=Remove unused problem filters
RemoveFilterProblemResolution_removes_selected_problem_filter=Removes the unused API problem filter for: {0}
RemoveUnsupportedAnnotationOperation_remove_unsupported_annotations=Remove unsupported annotations
RemoveUnsupportedTagOperation_removeing_unsupported_tag=Removing Unsupported API Javadoc tag
SinceTagResolution_add_since_tag=Add the missing @since tag with version {0}
SinceTagResolution_change_since_tag=Change @since tag value to be {0}
UnknownAnnotationResolution_0=Corrects missing imports and adds a build-time reference to API Tools annotations on the build path so that they are visible at compile time, but avoids a bundle dependency on 'org.eclipse.pde.api.tools.annotations' at run time.<br><br>Adds this entry to 'build.properties':<br><code>additional.bundles = org.eclipse.pde.api.tools.annotations</code>
UnknownAnnotationResolution_1=Fix project setup and import {0} ({1})
UnknownAnnotationResolution_2=Update the build.properties file
UnknownAnnotationResolution_3=Changes to enable API Tools annotation use
UnknownAnnotationResolution_4=Import ''{0}'' ({1})
UnsupportedAnnotationResolution_remove_unsupported_annotation=Remove unsupported annotation
UnsupportedAnnotationResolution_remove_unsupported_named_annotation=Remove unsupported ''{0}'' annotation.
UnsupportedTagResolution_remove_unsupported_tag=Remove unsupported ''{0}'' tag.
UnsupportedTagResolution_remove_unsupported_tags=Remove unsupported Javadoc tags
UpdateSinceTagOperation_title=Update @since tag

VersionNumberingResolution_major0=List of breaking changes:<br>{0}
VersionNumberingResolution_minor0=List of compatible changes:<br>{0}
VersionNumberingResolution_major1=Correct the major version to {0}
VersionNumberingResolution_minor1=Correct the minor version to {0}
VersionNumberingResolution_major2=Correct the major version to {0}
VersionNumberingResolution_minor2=Correct the minor version to {0}
VersionNumberingResolution_minorNoNewAPI0=The minor version should be reverted
VersionNumberingResolution_minorNoNewAPI1=Correct the version to {0}
VersionNumberingResolution_minorNoNewAPI2=Correct the version to {0}
UpdateVersionNumberingOperation_title=Update bundle version

VersionNumberingResolution_reexportedMajor0=A major version change in a reexported bundle requires the major version of this bundle to be incremented
VersionNumberingResolution_reexportedMajor1=Correct the major version to {0}
VersionNumberingResolution_reexportedMajor2=Correct the major version to {0}
VersionNumberingResolution_reexportedMinor0=A minor version change in a reexported bundle requires the minor version of this bundle to be incremented
VersionNumberingResolution_reexportedMinor1=Correct the minor version to {0}
VersionNumberingResolution_reexportedMinor2=Correct the minor version to {0}
