###############################################################################
# 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
###############################################################################
fileSystem.propertyLocation=Location:

FileSystemMainPage.location=Location:
FileSystemMainPage.browseDir=&Browse...
FileSystemMainPage.notValidLocation=Location must be an existing directory

fsMainPage.name=Select a file system location
fsMainPage.description=This location will be used to share resources with a team 

ConfigurationWizard.errorTitle=Error configuring the provider.
ConfigurationWizard.error=File System provider could not be created

ConfigurationWizard.name=File System Repository
ConfigurationWizard.description=File System Repository Properties

DisconnectAction.errorTitle=Error Disconnecting

PutAction.working=Putting resources...
PutAction.problemMessage=A problem occured putting the resources.

GetAction.working=Getting resources...
GetAction.problemMessage=A problem occured getting the resources.

ReplaceAction.working=Replacing resources...
ReplaceAction.problemMessage=A problem occured replacing the resources.

FileSystemProvider.mustBeFolder=Target location ''{0}'' is a file and must be a folder.
RemoteResource.mustBeFolder=Resource ''{0}'' is a file so it cannot have entries