###############################################################################
# Copyright (c) 2000, 2003 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
###############################################################################

# package: org.eclipse.ui.wizards.newresource


# ==============================================================================
# New Resource Wizards
# ==============================================================================
FileResource.shellTitle = New File
FileResource.pageTitle = File
FileResource.description = Create a new file resource.
FileResource.errorMessage = Problems Opening Editor

NewFolder.title = New Folder
NewFolder.text = Folder

NewProject.windowTitle = New Project
NewProject.title = Project
NewProject.description = Create a new project resource.
NewProject.referenceTitle = Project References
NewProject.referenceDescription = Select referenced projects.
NewProject.errorOpeningPage = Problems Opening Page
NewProject.errorOpeningWindow = Problems Opening Window
NewProject.errorMessage = Creation Problems
NewProject.internalError = Internal error: {0}
NewProject.caseVariantExistsError = The underlying file system is case insensitive. There is an existing project which conflicts with ''{0}''.
NewProject.perspSwitchTitle = Confirm Perspective Switch
NewProject.perspSwitchMessage = This kind of project is associated with the {0} Perspective.  Do you want to switch to this perspective now?

NewLink.pageTitle = Link
NewLink.fileDescription = Link the new file to a file on the file system.
NewLink.folderDescription = Link the new folder to a folder on the file system. The contents of the file system folder will appear in the workspace.