###############################################################################
# Copyright (c) 2000, 2010 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 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
preferenceKeywords.wizards.java=Java

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

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