###############################################################################
# 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.datatransfer


# ==============================================================================
# Data Transfer Wizards
# ==============================================================================
DataTransfer.fileSystemTitle = File system
ZipExport.exportTitle = Zip file

DataTransfer.browse = B&rowse...
DataTransfer.selectTypes = Filter &Types...
DataTransfer.selectAll = &Select All
DataTransfer.deselectAll = &Deselect All

DataTransfer.typeDelimiter = ,
DataTransfer.allFiles = All files matching this criteria
DataTransfer.oneSelected = 1 file selected
DataTransfer.details = Details...
DataTransfer.allTypes = All types

DataTransfer.cannotOverwrite = Cannot overwrite file: {0}
DataTransfer.emptyString = 
DataTransfer.scanningChildren = Scanning for children...
DataTransfer.scanningMatching = Scanning for matching files...
DataTransfer.information = Information

# --- Import Wizards ---
DataTransfer.importTitle = Import

DataTransfer.importTask = Importing:
ImportOperation.creatingFolder = Creating folder:
ImportOperation.cannotCopy = Cannot copy root file system.
ImportOperation.importProblems = Problems were encountered during import:
ImportOperation.openStreamError = Error opening input stream for {0}
ImportOperation.closeStreamError = Could not close input stream for {0}
ImportOperation.coreImportError = Unable to import {0}.  Reason: {1}
ImportOperation.targetSameAsSourceError = Unable to import {0}. The file cannot be copied onto itself
ImportPage.oneSelected = 1 entry selected
ImportPage.filterSelections = Filtering selection

FileImport.selectSource = Select a directory to import from.
FileImport.selectSourceTitle = Import from directory
FileImport.sourceTitle = Directory:
FileImport.fromDirectory = From director&y:
FileImport.selectResources = Select the resources to import.
FileImport.importFileSystem = Import resources from the local file system.
FileImport.overwriteExisting = &Overwrite existing resources without warning
FileImport.createComplete = &Create complete folder structure
FileImport.createSelectedFolders = Create s&elected folders only
FileImport.selectTypes = Select the types to import.
FileImport.typeSelectionTitle = Type Selection
FileImport.noneSelected = There are no resources currently selected for import.
FileImport.filesofType = Files of type:
FileImport.edit = Edit...
FileImport.filesSelected = {0} files selected
FileImport.invalidSource = Source directory is not valid or has not been specified.
FileImport.sourceEmpty = Source must not be empty.
FileImport.importProblems = Import Problems
FileImport.whichTypesImport = What types of files do you wish to import?

ZipImport.description = Import the contents of a Zip file from the local file system.
ZipImport.entriesSelected = {0} entries selected
ZipImport.couldNotClose = Could not close file {0}
ZipImport.badFormat = Source file is not of proper format.
ZipImport.couldNotRead = Source file could not be read.
ZipImport.fromFile = From &zip file:
ZipImportSource.title = Import From Zip File

WizardExternalProjectImportPage.locationError = Invalid project contents directory
WizardExternalProjectImportPage.projectNameEmpty = A valid project name must be specified in the .project file at the Project contents location.
WizardExternalProjectImportPage.projectLocationEmpty = Project contents directory must be specified
WizardExternalProjectImportPage.projectExistsMessage = Project already exists.
WizardExternalProjectImportPage.projectContentsLabel = Project &contents:
WizardExternalProjectImportPage.nameLabel = &Project name:
WizardExternalProjectImportPage.browseLabel = B&rowse...
WizardExternalProjectImportPage.title = Import Project From File System
WizardExternalProjectImportPage.description = Create a new Project from an Eclipse project in the file system. This does not copy the project to the workspace.
WizardExternalProjectImportPage.notAProject = {0} does not have a .project file.
WizardExternalProjectImportPage.errorMessage = Creation Problems
WizardExternalProjectImportPage.internalError = Internal error: {0}
WizardExternalProjectImportPage.caseVariantExistsError = The project contents directory specified is being used by another project. Please enter a new project contents directory.
WizardExternalProjectImportPage.directoryLabel = Select the Project location.
WizardExternalProjectImportPage.defaultLocationError = Projects under the workspace root must have a matching name and location


# --- Export Wizards ---
DataTransfer.export = Export

DataTransfer.exportingTitle = Exporting:
DataTransfer.selectDestination = Select the destination directory.
DataTransfer.directory = Director&y:
DataTransfer.createTargetDirectory = Target directory does not exist.  Would you like to create it?
DataTransfer.directoryCreationError = Target directory could not be created.
DataTransfer.errorExporting = Error exporting {0}: {1}
DataTransfer.exportProblems = Export Problems

ExportFile.overwriteExisting = &Overwrite existing files without warning
ExportFile.createDirectoriesForSelected = Create directories for selected folders
ExportFile.createDirectoryStructure = &Create directory structure

FileExport.selectDestinationTitle= Export To Directory
FileExport.selectDestinationMessage=Select a directory to export to.
FileExport.exportLocalFileSystem = Export resources to the local file system.
FileExport.destinationEmpty = Please enter a destination directory.
FileExport.createDirectoryStructure = &Create directory structure for files
FileExport.createSelectedDirectories = Create on&ly selected directories
FileExport.noneSelected = There are no resources currently selected for export.
FileExport.directoryExists = Target directory already exists as a file.
FileExport.conflictingContainer = Destination directory conflicts with location of {0}.
FileExport.rootName = workspace root
FileSystemExportOperation.problemsExporting = Problems were encountered during export:
FileExport.toDirectory = To director&y:

ZipExport.overwriteFile = &Overwrite existing file without warning
ZipExport.compressContents = Co&mpress the contents of the file
ZipExport.description = Export resources to a Zip file on the local file system.
ZipExport.destinationLabel = To &zip file:
ZipExport.mustBeFile = Export destination must be a file, not a directory.
ZipExport.alreadyExists = Target file already exists.  Would you like to overwrite it?
ZipExport.alreadyExistsError = Export destination already exists and cannot be overwritten.
ZipExport.cannotOpen = Unable to open destination file: {0}
ZipExport.cannotClose = Unable to close destination file: {0}
ZipExport.selectDestinationTitle= Export To Zip File
ZipExport.destinationEmpty = Please enter a destination zip file.
