###############################################################################
# Copyright (c) 2000, 2004 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials 
# are made available under the terms of the Common Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-v10.html
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################

AbstractJavaCommandTab.1=Java executable:
AbstractJavaCommandTab.2=D&efault ({0})
AbstractJavaCommandTab.3=Standard VM Java Command
AbstractJavaCommandTab.4=&Alternate
AbstractJavaCommandTab.Java_executable_must_be_specified_5=Java executable must be specified

BuildJREDescriptor.0=Workspace &default JRE ({0})

InstalledJREsBlock.0=Name
InstalledJREsBlock.1=Location
InstalledJREsBlock.2=Type
InstalledJREsBlock.3=&Add...
InstalledJREsBlock.4=&Edit...
InstalledJREsBlock.5=&Remove
InstalledJREsBlock.6=&Search...
InstalledJREsBlock.7=Add JRE
InstalledJREsBlock.8=Edit JRE
InstalledJREsBlock.9=Select a directory to search in:
InstalledJREsBlock.10=Directory Selection
InstalledJREsBlock.11=Searching...
InstalledJREsBlock.12=Information
InstalledJREsBlock.13=No JREs found in {0}
InstalledJREsBlock.14=Found {0} - Searching {1}
InstalledJREsBlock.15=Installed &JREs:

JREsComboBlock.1=Alternate &JRE:
JREsComboBlock.2=&Installed JREs...
JREsComboBlock.3=Runtime JRE:

JREContainerWizardPage.JRE_System_Library_1=JRE System Library
JREContainerWizardPage.Select_the_JRE_used_to_build_this_project._4=Select a JRE to add to the classpath.
JREContainerWizardPage.3=System library

JREsPreferencePage.1=Installed JREs
JREsPreferencePage.2=Add, remove or edit JRE definitions.\nThe checked JRE will be used by default to build and run Java programs.
JREsPreferencePage.4=JRE Settings Changed
JREsPreferencePage.5=The JRE settings have changed. A full build is required to make the changes effective. Do the full build now?
JREsPreferencePage.6=&Yes
JREsPreferencePage.7=&No
JREsPreferencePage.8=&Cancel
JREsPreferencePage.10=Installed JRE location no longer exists.  JRE will be removed.
JREsPreferencePage.11=JRE removed
JREsPreferencePage.12=Installed Java Runtime Environments
JREsPreferencePage.13=Select a default JRE

addVMDialog.browse1=&Browse...
addVMDialog.duplicateName=The name is already used.
addVMDialog.enterLocation=Enter the location of the JRE.
addVMDialog.enterName=Enter a name for the JRE.
addVMDialog.jreHome=&JRE home directory:
addVMDialog.jreName=JRE &name:
addVMDialog.jreType=JRE &type:
addVMDialog.locationNotExists=The location does not exist.
addVMDialog.pickJRERootDialog.message=Select the root directory of the JRE installation:
AddVMDialog.JRE_system_libraries__1=JRE system libraries:
AddVMDialog.Java&doc_URL__1=Ja&vadoc URL:
AddVMDialog.Bro&wse..._2=Bro&wse...
AddVMDialog.Select_Javadoc_location__3=Select Javadoc location:
AddVMDialog.JRE_name_must_be_a_valid_file_name__{0}_1=JRE name must be a valid file name: {0}
AddVMDialog.Invalid_URL_syntax_specified_for_Javadoc_location._1=Invalid URL syntax specified for Javadoc location.

VMLibraryBlock.Use_default_system_libraries_1=&Use default system libraries
VMLibraryBlock.Libraries_cannot_be_empty._1=Libraries cannot be empty.
VMLibraryBlock.Default_libraries_do_not_exist._1=Default libraries do not exist.

AddVMDialog.23=Default VM &Arguments:
JREsUpdater.0=&OK
JREsUpdater.1=Rebuilding
JREsUpdater.2=Build all...
