###############################################################################
# Copyright (c) 2002, 2005 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:
#    Andre Weinand - Initial implementation
###############################################################################
		
MacBundleWizard.title=Application Bundle Export
			
page1.title=Basic Properties and Location
page1.message=Message1
page1.description= Specify basic properties and location
page1.launchConfig.label=Use this launch configuration:
page1.mainClass.label=Main class:
page1.mainClass.chooseButton.label=Search...
page1.mainClass.dialog.title=Choose Main Type
page1.mainClass.dialog.message=Not yet implemented
page1.arguments.label=Arguments:
page1.appName.label=Application name:
page1.appFolder.label=Folder:
page1.appFolder.browseButton.label=Browse...
page1.appFolder.browseDialog.message=Choose the folder in which to create the application
page1.appFolder.browseDialog.title=Choose Folder
page1.jvm.label=JVM version:
page1.useSWT.label=Use SWT:
page1.appIcon.label=Icon:
page1.appIcon.chooseButton.label=Choose...
page1.appIcon.chooseDialog.title=Choose a *.icns file

page2.title= Classpath and Libraries
page2.message=Message2
page2.description= Specify files to copy into application bundle
page2.workingDirectory.label=Working directory:
page2.addToClasspath.group.label=Add to classpath
page2.addToBundle.group.label=Add to bundle
page2.addFile.button.label=Add file...
page2.chooseFileDialog.title=Choose a file
page2.addFolder.button.label=Add folder...
page2.chooseFolder.dialog.title=Choose a folder
page2.remove.button.label=Remove

page3.title= Properties and Options
page3.message=Message3
page3.description= Specify properties and options
page3.identifier.label=Identifier:
page3.signature.label=Signature:
page3.vmOptions.label=VM options:
page3.propertiesGroup.label=Properties
page3.keys.column.label=Keys
page3.values.column.label=Values

BundleDescription.copyright.format=1.0, Copyright {user} 2004. All rights reserved.
