###############################################################################
# Copyright (c) 2000, 2016 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
###############################################################################
pluginName=Java Development Tools JUnit core support
providerName=Eclipse.org

testRunListeners.name= Test Run Listeners
junitQuickFixProcessor= JUnit Quick Fix Processor
junitClasspathFixProcessor= JUnit Classpath Fix Processor

junitLaunchConfigs.name= JUnit Launch Configurations
testKinds.name= JUnit Test Kinds

JUnitLaunchDelegate.name=Eclipse JUnit Launcher
JUnitLaunchDelegate.description=The Eclipse JUnit Launcher supports running and debugging JUnit tests and test suites.

RunJUnitLaunchShortcut.description=Runs a set of JUnit tests
DebugJUnitLaunchShortcut.description=Debugs a set of JUnit tests

preferenceKeywords.general=Java JUnit filter stack trace stacktrace

View.label= JUnit
Launch.label= JUnit
PreferencePage.label= JUnit

TestWizard.description= Create a JUnit Test Case
SuiteWizard.description= Create a JUnit Test Suite
UpdateSuiteAction.label= Recreate Test Suite...
UpdateSuiteAction.tooltip= Recreate JUnit TestSuite with New Test Classes
Task.name= JUnit Task
WizardCategory.name= JUnit
TestCaseWizard.name= JUnit Test Case
TestSuiteWizard.name= JUnit Test Suite

JUnitShortcut.label= JUnit Test
JUnitShortcut.description.run= Run JUnit Test
JUnitShortcut.description.debug= Debug JUnit Test
JUnitShortcut.description.rerunLast= Rerun JUnit Test
JUnitShortcut.description.rerunFailedFirst= Rerun JUnit Test - Failures First


searchMenu.label= Se&arch

JUnitTabGroupDescription.debug=Create a configuration that will launch a JUnit test in debug mode.
JUnitTabGroupDescription.run=Create a configuration that will launch a JUnit test.

JUnitActionSet.label= JUnit

GotoTestAction.label= Referring &Tests...
GotoTestAction.tooltip= Go to Test Referring to Selection

GotoTestCommand.name= Referring Tests
GotoTestCommand.description= Referring Tests

ViewCommand.junitView.name= JUnit
ViewCommand.junitView.description= JUnit

RenameTypeParticipant.name=JUnit Launch configuration participant
junitRenameParticipant= JUnit Project Rename Participant

testKind.junit3 = JUnit 3
testKind.junit4 = JUnit 4
testKind.junit5 = JUnit 5

JUnitContainerName = JUnit

classpathVariableInitializer.deprecated.JUNIT_HOME=Use the JUnit library instead
classpathVariableInitializer.deprecated.JUNIT_SRC_HOME=Use the JUnit library instead

JUnitView.editor.name = JUnit View
JUnitTestResult.content-type.name = JUnit Test Result