###############################################
# Message catalog for org.eclipse.team.ui
###############################################

CatchupReleaseViewer.expand=&Expand All
CatchupReleaseViewer.ignoreWhiteSpace=&Ignore White Space
CatchupReleaseViewer.refreshAction=&Refresh With Remote
CatchupReleaseViewer.showIncomingAction=Show Incoming
CatchupReleaseViewer.showInNavigator=&Show in Navigator
CatchupReleaseViewer.showOnlyConflictsAction=Show Only Conflicts
CatchupReleaseViewer.showOutgoingAction=Show Outgoing
CatchupReleaseViewer.removeFromView=Remove &From View
CatchupReleaseViewer.copyAllRightToLeft=Copy &All Changes From Right To Left
CatchupReleaseViewer.Compare_File_Contents_1=Compare File Contents
CatchupReleaseViewer.Copying_right_contents_into_workspace_2=Copying right contents into workspace

ConfigureProjectAction.configureProject=Configure Project
ConfigureProjectWizard.configureProject=Share Project
ConfigureProjectWizard.description=Select the repository plug-in that will be used to share the selected project.
ConfigureProjectWizard.title=Share Project
ConfigureProjectWizardMainPage.selectRepository=Select a repository type:

ConfigurationWizard.exceptionCreatingWizard=Exception creating wizard.

DeconfigureProjectAction.deconfigureProject=Deconfigure Project

IgnorePreferencePage.description=Use this page to specify a list of resource name patterns to exclude from version control.
IgnorePreferencePage.add=&Add...
IgnorePreferencePage.enterPatternLong=Please enter a pattern:
IgnorePreferencePage.enterPatternShort=Enter Ignore Pattern
IgnorePreferencePage.ignorePatterns=&Ignore Patterns:
IgnorePreferencePage.patternExistsLong=The entered pattern already exists.
IgnorePreferencePage.patternExistsShort=Pattern Already Exists
IgnorePreferencePage.remove=&Remove

MergeResource.commonFile=Common file: {0}
MergeResource.noCommonFile=No common file
MergeResource.noRepositoryFile=No remote file
MergeResource.repositoryFile=Remote file: {0}
MergeResource.workspaceFile=Workspace file: {0}

nothingToSynchronize=Nothing to Synchronize
simpleInternal=Internal error
exception=An exception occured

SyncCompareInput.nothingText=Workspace resources are the same as remote.
SyncCompareInput.refresh=Error During Refresh with Remote
SyncCompareInput.synchronize=Synchronize
SyncCompareInput.taskTitle=Synchronizing with Remote...

SyncSet.conflicts={0} conflicts, 
SyncSet.incomings={0} incoming change(s), 
SyncSet.noConflicts=No conflicts, 
SyncSet.noIncomings=no incoming changes, 
SyncSet.noOutgoings=no outgoing changes.
SyncSet.outgoings={0} outgoing change(s).

SyncView.freeModeAction=Incoming/Outgoing Mode
SyncView.freeModeTitle=Synchronize - Incoming/Outgoing Mode
SyncView.freeModeToolTip=Incoming/Outgoing Mode
SyncView.incomingModeAction=Incoming Mode
SyncView.incomingModeTitle=Synchronize - Incoming Mode
SyncView.incomingModeToolTip=Incoming Mode
SyncView.outgoingModeAction=Outgoing Mode
SyncView.outgoingModeTitle=Synchronize - Outgoing Mode
SyncView.outgoingModeToolTip=Outgoing Mode
SyncView.same=Workspace resources are the same as remote.
SyncView.text=Synchronize resources with their remote to display them here.
SyncView.unableSynchronize=Unable to Synchronize
SyncView.saveTitle=Save Resource
SyncView.saveMessage=Resource has been modified. Save changes?
SyncView.errorSaving=Error while saving modified resources

TeamAction.internal=Internal error occured.
TeamFile.saveChanges=Unable to save changes to file: {0}
TeamFile.modified={0}*

TextPreferencePage.add=&Add...
TextPreferencePage.binary=Binary
TextPreferencePage.change=&Change
TextPreferencePage.contents=Contents
TextPreferencePage.description=&File extensions with known content:
TextPreferencePage.enterExtensionLong=Please enter a file extension:
TextPreferencePage.enterExtensionShort=Enter File Extension
TextPreferencePage.extension=Extension
TextPreferencePage.extensionExistsLong=The entered extension already exists.
TextPreferencePage.extensionExistsShort=Extension Already Exists
TextPreferencePage.remove=&Remove
TextPreferencePage.text=Text

TextPreferencePage.columnExtension=extension
TextPreferencePage.columnContents=contents

ExportProjectSetMainPage.Select_the_projects_to_include_in_the_project_set__2=&Select the projects to include in the Team Project Set:
ExportProjectSetMainPage.Project_Set_File_Name__3=Select the export destination:
ExportProjectSetMainPage.Browse_4=&Browse...
ExportProjectSetMainPage.You_have_specified_a_folder_5=You have specified a folder

ImportProjectSetMainPage.Project_Set_File_Name__2=&File name:
ImportProjectSetMainPage.Browse_3=&Browse...
ImportProjectSetMainPage.The_specified_file_does_not_exist_4=The specified file does not exist
ImportProjectSetMainPage.You_have_specified_a_folder_5=You have specified a folder

ProjectSetContentHandler.Element_provider_must_be_contained_in_element_psf_4=Element provider must be contained in element psf
ProjectSetContentHandler.Element_project_must_be_contained_in_element_provider_7=Element project must be contained in element provider

ProjectSetExportWizard.Project_Set_1=Team Project Set
ProjectSetExportWizard.Export_a_Project_Set_3=Export a Team Project Set
ProjectSetExportWizard.Question_4=Question
ProjectSetExportWizard.Target_directory_does_not_exist._Would_you_like_to_create_it__5=Target directory does not exist. Would you like to create it?
ProjectSetExportWizard.Export_Problems_6=Export Problems
ProjectSetExportWizard.An_error_occurred_creating_the_target_directory_7=An error occurred creating the target directory
ProjectSetExportWizard.Question_8=Question
ProjectSetExportWizard.Target_already_exists._Would_you_like_to_overwrite_it__9=Target already exists. Would you like to overwrite it?
ProjectSetImportWizard.Project_Set_1=Team Project Set
ProjectSetImportWizard.Import_a_Project_Set_3=Import a Team Project Set

ExportProjectSetMainPage.*.psf_2=*.psf
ExportProjectSetMainPage.Project_Set_Files_3=Team Project Set Files

ImportProjectSetMainPage.*.psf_1=*.psf
ImportProjectSetMainPage.Project_Set_Files_2=Team Project Set Files
ExportProjectSetMainPage.&File_name__1=&File name:
TeamPreferencePage.General_settings_for_Team_support_1=General settings for Team support
TeamPreferencePage.&Use_Incoming/Outgoing_mode_when_synchronizing_2=&Use Incoming/Outgoing mode when synchronizing

NatureToPropertyAction.label=Convert Nature

###############################################
# Target Management Messages
###############################################

TargetSiteCreationWizard.windowTitleProject=Target a Site
TargetSiteCreationWizard.windowTitleNoProject=New Site
TargetSiteCreationWizard.label=Create a site connection
TargetSiteCreationWizard.description=Select the type of site you want to target.

TargetSiteCreationWizard.mappingPageTitle=Specify the location on the site
TargetSiteCreationWizard.siteSelectionPage=Select or create a site

SiteSelectionPage.description=Select an existing site or create a new site where you want to upload your resources to.
SiteSelectionPage.label=Select an existing site or create a new one:
SiteSelectionPage.useExisting=&Use Existing Site
SiteSelectionPage.createNew=&Create a new Site
SiteSelectionPage.disconnectTarget=&Disconnect from Site

GetAsProject.thisResourceExists=The resource ''{0}'' already exists in the workspace.  Overwrite?
GetAsProject.thisExternalFileExists=The folder ''{0}'' exists in the local file system.  Overwrite?
GetAsProject.confirmOverwrite=Confirm Overwrite
GetAsProject.taskName1=Downloading ''{0}''
GetAsProject.taskNameN=Downloading {0} folders
GetAsProject.errorCreatingProject=Error creating project: {0}
GetAsProject.errorGettingResources=Error getting resources

GetAs.checkoutFailed=Problems encountered receiving the remote folder
GetAs.enterProjectTitle=Downloading ''{0}'' As...
GetAs.taskname=Downloading ''{0}'' as ''{1}''

Error=Error

CreateNewFolderAction.errorCreatingFolder=Error creating the remote folder.
CreateNewFolderAction.title=New Remote Folder
CreateNewFolderAction.message=Enter the name for the new remote folder:
CreateNewFolderAction.newFolderName=New Folder

GetAction.title=Download
GetAction.working=Downloading from ''{0}''...

PutAction.title=Upload
PutAction.working=Uploading to ''{0}''...

SiteExplorerView.addSiteAction=Target &Site
SiteExplorerView.addSiteActionTooltip=Add a Site
SiteExplorerView.newFolderAction=Fo&lder...
SiteExplorerView.newMenu=&New
SiteExplorerView.Name_1=Name
SiteExplorerView.Size_2=Size
SiteExplorerView.Modified_3=Modified
SiteExplorerView.URL_4=URL
SiteExplorerView.mappedProjects={0} is mapped to {1}
SiteExplorerView.projectsAlreadyMapped=The selected sites are being used by projects in your workspace. You must disconnect the projects from the Sites before discarding them.
SiteExplorerView.unmapProjectsAndDisconnect=Disconnect projects from these sites then discard the sites
SiteExplorerView.unmapDialogTitle=Warning

CreateNewFolderAction.creatingFolder=Creating Folder
CreateNewFolderAction.suggestedNameProgress=Retrieving existing folder names...
CreateNewFolderAction.suggestedNameConcat={0}_{1}

SiteExplorerView.promptForDeletingSites=Are you sure you want to discard {0} site(s)?
SiteExplorerView.promptForDeletingSitesTitle=Confirm Discarding Sites

SiteExplorerViewLabelProvider.fileSize={0} KB

MappingSelectionPage.description=Specify the location on the site where you want to target your resources.
MappingSelectionPage.label=Select the site or a folder:
MappingSelectionPage.newFolderLabel=&Create Folder...
MappingSelectionPage.mappingTitle=Select the location on the site

ConfigureTargetWizardQuestion_2=Question
ConfigureTargetWizardError_6=Error
ConfigureTargetWizardError_mapping_the_project_with_this_site_7=Error mapping the project with this site
ConfigureTargetWizardURL_doesn__t_exist_on_the_server_8=URL doesn\'t exist on the server
ConfigureTargetWizardValidating_connection_to_Site..._9=Validating connection to Site...
ConfigureTargetWizardConnection_Error_10=Connection Error
ConfigureTargetWizard.alreadyMapped=''{0}'' is already targetted to ''{1}''. Are you sure you want to change this?
ConfigureTargetWizard.errorOccurred=An error occured connecting to ''{0}''.\n\nCode: {1}\nMessage: {2}\n\nDo you still want to keep this target?
ConfigureTargetWizard.errorUnmappingProject=An error occured trying to disconnect this project.

GetAction.Exception_getting_provider_2=Exception getting provider
GetAction.confirmFileOverwrite=You have local changes which you are about to overwrite. Do you wish to continue?
GetAction.confirmFileOverwriteTitle=Confirm Overwrite


GetSyncAction.Getting..._1=Downloading...
PutAction.Exception_getting_provider_2=Exception getting provider
PutSyncAction.Putting..._1=Uploading...

TargetCatchupReleaseViewer.Get_1=&Download
TargetCatchupReleaseViewer.Put_2=&Upload

SiteSelectionPage.siteLabelCurrentWithMapping={0} (currently as {1})
SiteSelectionPage.siteLabelCurrent={0} (current)

UploadAction.Exception_getting_provider=Exception getting provider
UploadAction.working=Uploading to ''{0}''...
UploadAction.noDirtyTitle=No Dirty Resources Found
UploadAction.noDirtyMessage=There were no dirty resources found to upload.
UploadAction.confirmDeletionTitle=Confirm Deletion
UploadAction.confirmFileDeletionMessage=File ''{0}'' has been deleted locally. Do you want to delete it remotely?
UploadAction.problemMessage=Problems occurred uploading.


