###############################################################################
# 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
###############################################################################
PasswordManagementPreferencePage.2=The following CVS repository locations have saved passwords:
PasswordManagementPreferencePage.3=Location
PasswordManagementPreferencePage.4=Username
PasswordManagementPreferencePage.5=&Remove
PasswordManagementPreferencePage.6=Remove &All
UserValidationDialog.5=CVS Repository:
UserValidationDialog.6=Sa&ve Password
UserValidationDialog.7=Rememered passwords are unsafe. They are not encrypted when saved to disk.
details=Press the details button for more information.
simpleInternal=Internal error
internal=An internal error has occurred, consult the error log for details.
yes=Yes
no=No
information=Server Information
exception=Server Exception
confirmOverwriteTitle=Confirm Overwrite Project
confirmOverwrite=The project already exists in the workspace. Its contents will be overwritten.
question=Question
localChanges=You have local changes which you are about to overwrite. Do you wish to continue?
error=Error
cvs=CVS
notAvailable=Not Available
buildError=A build error occurred after the CVS operation completed.
ok=OK
separator=/

nameAndRevision={0} {1}
currentRevision=*{0}

AddAction.addFailed=Error occurred during Add
AddAction.adding=Adding...
AddAction.addIgnoredTitle=Add Ignored Resource?
AddAction.addIgnoredQuestion=You have explicitly asked to version control one or more resources that otherwise would have been ignored. Continue?

AddToVersionControlDialog.title=Add to CVS Version Control
AddToVersionControlDialog.thereIsAnUnaddedResource=There is {0} resource that is not under CVS version control. Do you want to add it?
AddToVersionControlDialog.thereAreUnaddedResources=There are {0} resources that are not under CVS version control. Do you want to add them?

CheckoutAction.overlappingModuleExpansions=You have attempted to check out multiple remote modules that expand to the same local resource ''{0}''.

AutoDefineTagsAction.defineTags = Auto-discover tags

AvoidableMessageDialog.dontShowAgain=Don't show this again

BranchWizard.title=Create a new CVS Branch
BranchWizard.errorBranching=Error Branching Resources
BranchWizardPage.pageDescription=Creates a new branch and a starting point version.
BranchWizardPage.pageDescriptionVersion=Creates a new branch based on the version in the workspace.
BranchWizardPage.specifyVersion=The version will provide a starting point for merging the branch back to the source branch.
BranchWizardPage.branchName=Branch Name:
BranchWizardPage.versionName=Version Name:
BranchWizardPage.startWorking=Start working in the branch
BranchWizardPage.versionPrefix=Root_
BranchWizard.versionNameWarning=Version name: {0}
BranchWizard.branchNameWarning=Branch name: {0}
BranchWizard.branchAndVersionMustBeDifferent=The branch name and version name must be different.
BranchWizard.branchNameAlreadyExists=Branch name already exists.
BranchWizard.versionNameAlreadyExists=Version name already exists.
BranchWizardPage.existingVersionsAndBranches=Existing Versions and Branches:

ConsolePreferencePage.consoleColorSettings=Console text color settings.
ConsolePreferencePage.commandColor=Command &Line:
ConsolePreferencePage.messageColor=&Message:
ConsolePreferencePage.errorColor=E&rror:
ConsolePreferencePage.font=Console font setting:

CVSAction.errorTitle=Errors occurred
CVSAction.warningTitle=Warnings occurred
CVSAction.multipleProblemsMessage=Multiple problems occurred:
CVSAction.mixingTagsTitle=Confirm Mixing Tags
CVSAction.mixingTags=You are mixing tags within a project. Beware that synchronization uses the tag information associated with each resource to determine the remote resource with which the local resource is compared. \n\nThis means that the part(s) of your project that you are replacing with another tag will be synchronized with the tag ''{0}'' while other resources in the project will be synchronized with another tag. \n\nDo you wish to continue?

CVSAnnotateView.showFileAnnotation=CVS Annotate - {0}
CVSAnnotateView.viewInstructions=This view shows annotations for a file in CVS.  Select a file and then choose \"Team->Show Annotation\" from the context menu.
ShowAnnotationAction.noSyncInfo=Cannot display annotation for {0} because it doesn't have a remote revision.

CVSCatchupReleaseViewer.commit=&Commit...
CVSCatchupReleaseViewer.update=&Update from Repository
CVSCatchupReleaseViewer.forceCommit=Override and Co&mmit...
CVSCatchupReleaseViewer.forceUpdate=Override and U&pdate
CVSCatchupReleaseViewer.ignore=A&dd to .cvsignore
CVSCatchupReleaseViewer.mergeUpdate=&Merge Changes into Local Copy
CVSCatchupReleaseViewer.commonFile=Common file: {0}
CVSCatchupReleaseViewer.commonFileRevision=Common file: {0} {1}
CVSCatchupReleaseViewer.noCommonFile=No common file
CVSCatchupReleaseViewer.noRepositoryFile=No repository file
CVSCatchupReleaseViewer.repositoryFile=Repository file: {0}
CVSCatchupReleaseViewer.repositoryFileRevision=Repository file: {0} {1} [{2}]
CVSCatchupReleaseViewer.workspaceFile=Workspace file: {0}
CVSCatchupReleaseViewer.showInHistory=Show in &Resource History
CVSCatchupReleaseViewer.fileDecoration={0} ({1})
CVSCatchupReleaseViewer.folderDecoration={0} {1}
CVSCatchupReleaseViewer.confirmMerge=Mark as Mer&ged
CVSCatchupReleaseViewer.addAction=&Add to Version Control
CVSCatchupReleaseViewer.labelWithSyncKind={0} {1}

CVSCompareEditorInput.branchLabel=<branch-{0}>
CVSCompareEditorInput.headLabel=<HEAD>
CVSCompareEditorInput.comparing=Comparing... 
CVSCompareEditorInput.different=Cannot compare resources of different kind.
CVSCompareEditorInput.inBranch={0} in {1}
CVSCompareEditorInput.inHead={0} in HEAD
CVSCompareEditorInput.repository=Repository: {0} {1}
CVSCompareEditorInput.titleAncestor=Compare {0} {1}-{2} and {3}
CVSCompareEditorInput.titleNoAncestor=Compare {0} {1} and {2}
CVSCompareEditorInput.titleNoAncestorDifferent=Compare {0} {1} and {2} {3}
CVSCompareEditorInput.workspace=Workspace: {0}
CVSCompareEditorInput.workspaceLabel=<workspace>
CVSCompareEditorInput.noWorkspaceFile=No workspace file
CVSCompareEditorInput.noRepositoryFile=No repository file

CVSCompareRevisionsInput.addToWorkspace=Get
CVSCompareRevisionsInput.compareResourceAndVersions=Revisions of ''{0}''
CVSCompareRevisionsInput.errorReplacingTitle=Unable to Replace
CVSCompareRevisionsInput.errorReplacingMessage=Resource(s) could not be loaded.  A communication error may have occurred, or \
    the resource(s) may not exist on the server, or you may \
	not have permission to access them.
CVSCompareRevisionsInput.repository=Repository file: {0}
CVSCompareRevisionsInput.structureCompare=Structure Compare
CVSCompareRevisionsInput.workspace=Workspace file: {0}
CVSCompareRevisionsInput.truncate={0}[...]

CVSDecorator.projectDecoration={0} [{1}] 
CVSDecorator.projectDecorationWithTag={0} [{1} {2}]
CVSDecorator.fileDecorationWithTag={0} [{1}:{2}] 
CVSDecorator.fileDecorationNoTag={0} [{1}]
CVSDecorator.folderDecoration={0} [{1}]

CVSDecoratorPreferencesPage.description=CVS Decorator settings:
CVSDecoratorPreferencesPage.iconDescription=Choose which CVS resource states should be indicated using an icon decorator:
CVSDecoratorPreferencesPage.generalDescription=Set general properties of CVS decorators:
CVSDecoratorPreferencesPage.generalTabFolder=&General
CVSDecoratorPreferencesPage.newResources=Indicate is &new resource
CVSDecoratorPreferencesPage.synchronizeTabFolder=S&ynchronize View
CVSDecoratorPreferencesPage.synchronizeDescription=Set the properties of CVS decorators for the Synchronize view:
CVSDecoratorPreferencesPage.showSyncInfoInLabel=Show all synchronization information in a resource's text label

CVSFilePropertiesPage.ignored=The file is ignored by CVS.
CVSFilePropertiesPage.notManaged=The file is not managed by CVS.
CVSFilePropertiesPage.isAdded=This file has been added to CVS control but has not been committed
CVSFilePropertiesPage.baseRevision=Base revision:
CVSFilePropertiesPage.baseTimestamp=Base timestamp:
CVSFilePropertiesPage.dirty=Dirty:
CVSFilePropertiesPage.modified=Modified:
CVSFilePropertiesPage.keywordMode=Keyword mode:
CVSFilePropertiesPage.tag=Tag:
CVSFilePropertiesPage.none=HEAD
CVSFilePropertiesPage.version={0} (Version)
CVSFilePropertiesPage.branch={0} (Branch)
CVSFilePropertiesPage.date={0} (Date)
CVSFilePropertiesPage.error=An error occurred while creating this page.
CVSFilePropertiesPage.permissions=Permissions:
CVSFilePropertiesPage.notAvailable=Not Available

CVSFolderPropertiesPage.ignored=The folder is ignored by CVS.
CVSFolderPropertiesPage.notManaged=The folder is not managed by CVS.
CVSFolderPropertiesPage.notCVSFolder=This folder has lost its CVS sharing information.
CVSFolderPropertiesPage.root=Repository root:
CVSFolderPropertiesPage.repository=Repository path:
CVSFolderPropertiesPage.static=Static:
CVSFolderPropertiesPage.disconnect=&Disconnect...
CVSFolderPropertiesPage.disconnectTitle=Disconnect folder?
CVSFolderPropertiesPage.disconnectQuestion=Disconnecting the folder from CVS control will delete the CVS synchronization information for the folder. Are you sure you want to disconnect?

CVSLocalCompareEditorInput.title=CVS Compare [{0}]
				
CVSOperationCancelledException.operationCancelled=Operation Cancelled

CVSPropertiesPage.connectionType=&Connection type:
CVSPropertiesPage.user=&User:
CVSPropertiesPage.password=&Password:
CVSPropertiesPage.host=Host:
CVSPropertiesPage.port=Port:
CVSPropertiesPage.path=Repository path:
CVSPropertiesPage.module=Module:
CVSPropertiesPage.defaultPort=Default
CVSPropertiesPage.tag=Tag:
CVSPropertiesPage.update=Change &Tag...
CVSPropertiesPage.virtualModule=<no corresponding remote folder>

CVSPreferencePage.description=General CVS settings:
CVSPreferencePage.debugProtocol=&Display detailed protocol output to stdout (for debugging purposes)
CVSPreferencePage.pruneEmptyDirectories=&Prune empty directories
CVSPreferencePage.timeoutValue=&Communication timeout (in seconds):
CVSPreferencePage.quietness=&Quietness level:
CVSPreferencePage.notquiet=Verbose
CVSPreferencePage.somewhatquiet=Somewhat quiet
CVSPreferencePage.reallyquiet=Very quiet
CVSPreferencePage.silentWarningTitle="Very Quiet" mode is dangerous
CVSPreferencePage.silentWarningMessage= In "Very Quiet" mode, some cvs servers may not communicate important information about errors that have occurred. You may want to consider using "Somewhat quiet" mode instead.
CVSPreferencePage.considerContentsInCompare=Con&sider file contents in comparisons
CVSPreferencePage.showAddRemoveMarkers=Show deleted file &markers
CVSPreferencePage.replaceUnmanaged=&Delete unmanaged resources on replace
CVSPreferencePage.defaultTextKSubst=Default &keyword substitution:
CVSPreferencePage.compressionLevel=Compression &level:
CVSPreferencePage.level0=0 (disabled)
CVSPreferencePage.level1=1 (lowest compression)
CVSPreferencePage.level2=2
CVSPreferencePage.level3=3
CVSPreferencePage.level4=4
CVSPreferencePage.level5=5
CVSPreferencePage.level6=6
CVSPreferencePage.level7=7
CVSPreferencePage.level8=8
CVSPreferencePage.level9=9 (highest compression)
CVSPreferencePage.lineend=Con&vert text files to use platform line ending
CVSPreferencePage.Save_dirty_editors_before_CVS_operations_1=Save dirty editors before CVS operations
CVSPreferencePage.&Never_2=&Never
CVSPreferencePage.&Prompt_3=P&rompt
CVSPreferencePage.Auto-&save_4=&Auto-save
CVSPreferencePage.repositoriesAreBinary=&Treat all new files as binary
CVSPreferencePage.determineVersionEnabled=&Validate server version compatibility on first connection
CVSPreferencePage.confirmMoveTag=Confirm &move tag on tag operation

CVSRemoteFilePropertySource.name=Name
CVSRemoteFilePropertySource.revision=Revision
CVSRemoteFilePropertySource.date=Date
CVSRemoteFilePropertySource.author=Author
CVSRemoteFilePropertySource.comment=Comment
CVSRemoteFilePropertySource.tag=Tag

CVSRemoteFolderPropertySource.name=Name
CVSRemoteFolderPropertySource.tag=Tag
CVSRemoteFolderPropertySource.none=(none)

CVSRepositoryLocationPropertySource.default=Default
CVSRepositoryLocationPropertySource.host=Host
CVSRepositoryLocationPropertySource.user=User
CVSRepositoryLocationPropertySource.port=Port
CVSRepositoryLocationPropertySource.root=Root
CVSRepositoryLocationPropertySource.method=Connection Method

CVSSyncCompareInput.confirmMergeMessageTitle=Information
CVSSyncCompareInput.confirmMergeMessage=Your changes have been saved. When you are finished, \
					select 'Mark as Merged' to make this file an outgoing change. 
CVSSyncCompareInput.projectDeleted=Project ''{0}'' has been deleted locally and cannot be synchronized.
CVSSyncCompareInput.filteringOutgoingChanges=Accumulating resources with outgoing changes

CVSSyncSet.conflicts={0} conflicts, 
CVSSyncSet.incomings={0} incoming change(s), 
CVSSyncSet.noConflicts=No conflicts, 
CVSSyncSet.noIncomings=no incoming changes, 
CVSSyncSet.noOutgoings=no outgoing changes, 
CVSSyncSet.outgoings={0} outgoing change(s), 
CVSSyncSet.noNew=no new resources.
CVSSyncSet.new={0} new resource(s).

CVSUIPlugin.refreshTitle=Refresh Resource?
CVSUIPlugin.refreshQuestion={0} Would you like to refresh resource ''{1}''?
CVSUIPlugin.refreshMultipleQuestion={0} Would you like to refresh the selected resources?

CVSAction.disabledTitle=Information
CVSAction.disabledMessage=The chosen operation is not enabled.
CVSAction.refreshTitle=Refresh Project?
CVSAction.refreshQuestion={0} Would you like to refresh project ''{1}''?
CVSAction.refreshMultipleQuestion={0} Would you like to refresh the projects of the selected resources?

CommitAction.commitFailed=Problems encountered performing commit

CommitSyncAction.questionRelease=You have changes that conflict with the server. Release those changes?
CommitSyncAction.titleRelease=Confirm Overwrite
CommitSyncAction.releaseAll=Release all changes, overriding any conflicting changes on the server.
CommitSyncAction.releasePart=Only release the changes that don't conflict with changes on the server.
CommitSyncAction.cancelRelease=Cancel the release operation.
CommitSyncAction.errorCommitting=An error occurred while committing changes.

CompareWithRemoteAction.compare=Error Comparing with Latest
CompareWithRemoteAction.noRemote=No Remote Resource
CompareWithRemoteAction.noRemoteLong=The selected resource has no remote resource to compare with.
CompareWithRemoteAction.fetching=Comparing with latest from repository...

CompareWithRevisionAction.compare=Error Comparing with Revision
CompareWithRevisionAction.noRevisions=No Revisions
CompareWithRevisionAction.noRevisionsLong=The selected resource has no revisions to compare with.
CompareWithRevisionAction.fetching=Fetching revisions from repository...

CompareWithTagAction.message=Compare With Branch or Version
CompareWithTagAction.replace=Error Comparing With Branch or Version
CompareWithTagAction.noRemote=No Remote Resource
CompareWithTagAction.noRemoteLong=The selected tag has no remote resource to compare with.
CompareWithTagAction.fetching=Fetching resources with tag {0}...

CompareEditorInput.fileProgress=Comparing CVS file: {0}

ConfigurationWizardAutoconnectPage.description=Your project already has CVS/ directories. It was probably previously shared, or checked out using another tool. It will be automatically shared using the following information.
ConfigurationWizardAutoconnectPage.user=User:
ConfigurationWizardAutoconnectPage.host=Host:
ConfigurationWizardAutoconnectPage.port=Port:
ConfigurationWizardAutoconnectPage.default=Default
ConfigurationWizardAutoconnectPage.connectionType=Connection type:
ConfigurationWizardAutoconnectPage.repositoryPath=Repository path:
ConfigurationWizardAutoconnectPage.module=Module:
ConfigurationWizardAutoconnectPage.validate=&Validate Connection on Finish
ConfigurationWizardAutoconnectPage.noSyncInfo=Could not get folder information
ConfigurationWizardAutoconnectPage.noCVSDirectory=Could not find CVS/ directory

RepositorySelectionPage.description=This wizard will help you to share your files with the CVS repository for the first time. Your project will automatically be imported into the CVS repository, and the Synchronize view will open to allow you to commit your resources.
RepositorySelectionPage.useExisting=&Use existing repository location:
RepositorySelectionPage.useNew=&Create a new repository location

ConfigurationWizardMainPage.connection=&Connection type:
ConfigurationWizardMainPage.userName=&User:
ConfigurationWizardMainPage.password=&Password:
ConfigurationWizardMainPage.host=&Host:
ConfigurationWizardMainPage.useDefaultPort=Use &Default Port
ConfigurationWizardMainPage.usePort=Use Por&t:
ConfigurationWizardMainPage.repositoryPath=&Repository path:
ConfigurationWizardMainPage.invalidUserName=Invalid User Name
ConfigurationWizardMainPage.invalidHostName=Invalid Host Name
ConfigurationWizardMainPage.invalidPort=Invalid Port
ConfigurationWizardMainPage.invalidPathWithSpaces=The repository path cannot have segments with leading or trailing spaces
ConfigurationWizardMainPage.invalidPathWithSlashes=The repository path cannot contain a double slash (//)
ConfigurationWizardMainPage.useNTFormat=Use NT path names for specifying CVSNT repository paths (e.g. C:\\cvs\\root)

Console.copy=Copy
Console.selectAll=Select All
Console.clearOutput=Clear Output
Console.resultServerError={0} {1}
Console.resultWarnings={0} {1}
Console.resultException=failed due to an internal error {0}
Console.resultAborted=operation canceled {0}
Console.resultOk=ok {0}
Console.resultTimeFormat='(took 'm:ss.SSS')'
Console.couldNotFormatTime=An error occurred formatting the output time for the CVS console.
Console.preExecutionDelimiter=***
Console.postExecutionDelimiter=***
Console.info=Info: {0}
Console.warning=Warning: {0}
Console.error=Error: {0}

AddToBranchAction.enterTag=Enter Branch Tag
AddToBranchAction.enterTagLong=Enter the name of the branch:

DiffAction.diff=Diff

FixTypeAction.fix=Fix Types

GenerateCVSDiff.title=Create Patch
GenerateCVSDiff.pageTitle=Run and save CVS diff results in a file
GenerateCVSDiff.pageDescription=The results of the CVS diff command can be used as an input file for the Apply Patch wizard.
GenerateCVSDiff.overwriteTitle=Confirm Overwrite
GenerateCVSDiff.overwriteMsg=A file with that name already exists. Overwrite?
GenerateCVSDiff.error=Error running the CVS diff command
GenerateCVSDiff.working=Running CVS diff...
GenerateCVSDiff.noDiffsFoundMsg=No differences found.
GenerateCVSDiff.noDiffsFoundTitle=CVS diff

GetSyncAction.questionCatchup=You have local changes which you are about to overwrite. Should the conflicting changes be added?
GetSyncAction.titleCatchup=Catch up Over Conflicts?
GetSyncAction.catchupAll=Catch up to all incoming changes, overriding any conflicting local changes.
GetSyncAction.catchupPart=Only catch up to the changes that don't conflict with local changes.
GetSyncAction.cancelCatchup=Cancel the catch up operation.
UpdateSyncAction.errorUpdating=An error occurred while updating changes.

HistoryFilterDialog.title = Filter Resource History
HistoryFilterDialog.showMatching = Show entries matching:
HistoryFilterDialog.matchingAny = a&ny of the provided criteria
HistoryFilterDialog.matchingAll = a&ll of the provided criteria
HistoryFilterDialog.author = &Author:
HistoryFilterDialog.comment = &Comment containing:
HistoryFilterDialog.fromDate = &From date (M/D/Y) : 
HistoryFilterDialog.toDate = &To date (M/D/Y) : 

HistoryView.getAnnotateAction=Show &Annotation
HistoryView.getContentsAction=&Get Contents
HistoryView.getRevisionAction=Get Sticky &Revision
HistoryView.tagWithExistingAction=&Tag with Existing...
HistoryView.copy=&Copy
HistoryView.revision=Revision
HistoryView.tags=Tags
HistoryView.date=Date
HistoryView.author=Author
HistoryView.comment=Comment
HistoryView.refreshLabel=&Refresh View
HistoryView.refresh=Refresh View
HistoryView.linkWithLabel=Link with Editor
HistoryView.selectAll=Select &All
HistoryView.showComment=Show Comment Viewer
HistoryView.showTags=Show Tag Viewer
HistoryView.title=CVS Resource History
HistoryView.titleWithArgument=CVS Resource History ({0})
HistoryView.overwriteTitle=Overwrite local changes?
HistoryView.overwriteMsg=You have local changes. Do you want to overwrite them?
HistoryView.fetchHistoryJob=Fetching CVS revision history
HistoryView.fetchHistoryJobFile=Fetching CVS revision history for: {0}
HistoryView.errorFetchingEntries=Error fetching entries for {0}

IgnoreAction.ignore=Error Ignoring Resource

MergeAction.saveChangesTitle=Save Changes
MergeAction.saveChanges=You have unsaved changes that will be saved before the action is performed.

MergeEditorInput.title=Merge {0} with {1}

MergeWizardEndPage.branches=Branches
MergeWizardEndPage.description=This is the version or branch that contains the work you would like to merge.
MergeWizardEndPage.duplicateTagSelected=Cannot select {0} because it has already been selected as the start tag.

MergeWizardStartPage.description=This is the version you created when you branched.

MergeWizard.title=Merge
MergeWizard.start=Select the merge start point
MergeWizard.end=Select where you want to merge the changes from
MergeWizard.preparing=Preparing merge wizard
MergeWizard.preparingStart=Fetching tags for start page
MergeWizard.preparingEnd=Fetching tags for end page

ModuleSelectionPage.moduleIsProject=Use &project name as module name
ModuleSelectionPage.specifyModule=Use &specified module name:

MoveTagAction.errorMessage=Error Tagging
MoveTagAction.title=Tag with Existing Tag
MoveTagAction.message=&Select the tag to be moved:

NewLocationWizard.title=Add CVS Repository
NewLocationWizard.heading=Add a new CVS Repository
NewLocationWizard.description=Add a new CVS Repository to the CVS Repositories view
NewLocationWizard.validationFailedText=Error validating location: "{0}"\n\nKeep location anyway?
NewLocationWizard.validationFailedTitle=Unable to Validate
NewLocationWizard.exception=Unable to create repository location

OpenLogEntryAction.deletedTitle=Resource is Deleted
OpenLogEntryAction.deleted=The selected revision represents a deletion. It cannot be opened.

ReleaseCommentDialog.title=Commit
ReleaseCommentDialog.choosePrevious=Choose a &previously entered comment:
ReleaseCommentDialog.enterComment=Edit the commit &comment:
ReleaseCommentDialog.unaddedResources=Checked resources will be &added to CVS version control.
ReleaseCommentDialog.selectAll=&Select All
ReleaseCommentDialog.deselectAll=D&eselect All
ReleaseCommentDialog.clearTextArea=&Reset Comment

RemoteFolderElement.nameAndTag={0} {1}
RemoteFolderElement.fetchingRemoteChildren=Fetching remote CVS children for ''{0}''...

RemoveRootAction.removeRoot=Error Discarding Location

ReplaceWithTagAction.message=Replace with Branch or Version
ReplaceWithTagAction.replace=Error Replacing With Tag
ReplaceWithTagAction.replacing=Replacing with tag {0}
ReplaceWithTagAction.mixingTags=You are mixing tags within a project.  This may cause confusion \
	when synchronizing with the repository. Synchronize uses the tag information associated with \
	each resource to determine the remote resource with which the local resource is compared. \
	For example, with version tags, the state of the tagged resources never change so you will \
	not see changes made to the resources in HEAD (or other branches). Do you wish to continue?

ReplaceWithRemoteAction.replacing=Replacing
ReplaceWithRemoteAction.problemMessage=Error Replacing With Latest From Repository

ReplaceWithAction.confirmOverwrite=Confirm Overwrite
ReplaceWithAction.localChanges={0} has local changes which you are about to overwrite. Do you wish to overwrite?
ReplaceWithAction.calculatingDirtyResources=Finding outgoing changes...

ReplaceWithLatestAction.multipleTags=&Latest from Repository
ReplaceWithLatestAction.multipleVersions=&Versions from Repository
ReplaceWithLatestAction.multipleBranches=&Latest from Branches
ReplaceWithLatestAction.singleVersion=&Version {0}
ReplaceWithLatestAction.singleBranch=&Latest from Branch {0}
ReplaceWithLatestAction.singleHEAD=&Latest from {0}

RepositoryDialog.getRepository=Select a repository
RepositoryDialog.description=Select a repository to connect your project to

RepositoryManager.getting=Getting
RepositoryManager.committing=Committing
RepositoryManager.updating=Updating
RepositoryManager.deleting=Deleting
RepositoryManager.adding=Adding
RepositoryManager.rename=An IO Exception occurred while renaming the state file
RepositoryManager.save=An IO Exception occurred while saving the state file
RepositoryManager.ioException=An IO Exception occurred while reading the state file
RepositoryManager.parsingProblem=An error occurred parsing file ''{0}''.
RepositoryManager.fetchingRemoteFolders=Fetching remote CVS folders for ''{0}''...

RepositoriesView.refresh=&Refresh View
RepositoriesView.refreshTooltip=Refresh View
RepositoriesView.new=&Repository Location...
RepositoriesView.newSubmenu=&New
RepositoriesView.newAnonCVS=&Anonymous Repository Location to dev.eclipse.org...
RepositoriesView.newWorkingSet=Select Working Set...
RepositoriesView.deselectWorkingSet=Deselect Working Set
RepositoriesView.editWorkingSet=Edit Active Working Set...
RepositoriesView.workingSetMenuItem={0} {1}
RepositoriesView.collapseAll=Collapse All
RepositoriesView.collapseAllTooltip=Collapse All
RepositoriesView.NItemsSelected={0} items selected
RepositoriesView.OneItemSelected=1 item selected
RepositoriesView.ResourceInRepository={0} in {1}
RepositoriesView.CannotGetRevision=Cannot get revision
RemoteViewPart.workingSetToolTip=Working Set: {0}

ResourcePropertiesPage.status=Status
ResourcePropertiesPage.notManaged=Not managed by CVS
ResourcePropertiesPage.versioned=versioned
ResourcePropertiesPage.notVersioned=not versioned
ResourcePropertiesPage.state=State
ResourcePropertiesPage.checkedOut=Checked Out
ResourcePropertiesPage.checkedIn=Checked In
#ResourcePropertiesPage.baseRevision=Base Revision
#ResourcePropertiesPage.none=none
ResourcePropertiesPage.error=Error

KSubstWizard.title=Set Keyword Substitution
KSubstWizard.working=Setting keyword substitution mode...
KSubstWizard.problemsMessage=Problems encountered setting keyword substitution
KSubstWizard.errorTitle=Errors Occurred
KSubstWizard.warningTitle=Warnings occurred

KSubstWizardSharedFilesPage.pageTitle=Include versioned files
KSubstWizardSharedFilesPage.pageDescription=\
  Choose to include or exclude files that are already in the repository
KSubstWizardSharedFilesPage.contents=\
  Since the keyword substitution mode attribute is not version controlled, the \
  change will be reflected immediately on all branches and in all revisions of \
  any affected files that are already shared in the repository.  You should inform \
  all developers that they must delete and check out fresh copies of project containing the affected \
  files before committing new changes to the repository.  You may also experience \
  side-effects working with earlier revisions of these files.
KSubstWizardSharedFilesPage.includeSharedFiles=&Include files that are already shared in the repository.
KSubstWizardSharedFilesPage.sharedFilesViewer.title=&The following files were selected and are already shared in the repository:

KSubstWizardDirtyFilesPage.pageTitle=Include files with outgoing changes
KSubstWizardDirtyFilesPage.pageDescription=\
  Choose to include or exclude files with outgoing changes
KSubstWizardDirtyFilesPage.contents=\
  This operation may commit changes to files without first providing a chance to resolve \
  conflicts.
KSubstWizardDirtyFilesPage.includeDirtyFiles=&Include files that have outgoing changes.
KSubstWizardDirtyFilesPage.dirtyFilesViewer.title=&The following files were selected and have outgoing changes.

KSubstWizardSelectionPage.pageTitle=Select Keyword Substitution Mode
KSubstWizardSelectionPage.pageDescription=\
  Choose the desired keyword substitution mode for the selected files.
KSubstWizardSelectionPage.automaticButton=&Automatic
KSubstWizardSelectionPage.automaticLabel=\
  Automatically chooses ''{0}'' or ''{1}'' \
  for each file according to the Team file extension preferences.
KSubstWizardSelectionPage.binaryButton=&Binary (-kb)
KSubstWizardSelectionPage.binaryLabel=\
  Binary files are stored in the repository without alteration.\n\
  CVS does not directly support conflict resolution for binary files.
KSubstWizardSelectionPage.textButton=A&SCII without keyword substitution (-ko)
KSubstWizardSelectionPage.textLabel=\
  End of lines are replaced with the appropriate convention for the client system.\n\
  CVS supports conflict resolution and differencing of ASCII files with single line granularity.
KSubstWizardSelectionPage.textWithSubstitutionsButton=ASCII with &keyword substitution
KSubstWizardSelectionPage.textWithSubstitutionsLabel=\
  End of lines are replaced with the appropriate convention for the client system.\n\
  ASCII files may contain keywords that are expanded by the CVS server during file transfers.\n\
  Please consult the CVS documentation for a description of the various supported keywords and modes.

KSubstWizardCommitCommentPage.pageTitle=Enter Commit Comment
KSubstWizardCommitCommentPage.pageDescription=\
  Enter the commit comment to be used for the selected files when they are committed.

KSubstWizardSummaryPage.pageTitle=Summary
KSubstWizardSummaryPage.pageDescription=\
  Summary of keyword substitution changes to be performed.
KSubstWizardSummaryPage.contents=\
  Click on \'Finish\' to change the keyword substitution mode of the checked files indicated below.\n\
  You can change the mode on a per file basis by clicking in the corresponding cell.\n\
  Note: Files that are not checked, or that already have the indicated mode will not be affected in any way.
KSubstWizardSummaryPage.showUnaffectedFiles=&Show files that already have the requested keyword substitution mode.
KSubstWizardSummaryPage.summaryViewer.title=&The following checked files will have their keyword substitution mode changed to the indicated value.
KSubstWizardSummaryPage.summaryViewer.fileHeader=File Location
KSubstWizardSummaryPage.summaryViewer.ksubstHeader=Keyword Substitution Mode

SharingWizard.autoConnectTitle=Connect Project to Repository
SharingWizard.autoConnectOneOTitle=Connect Project from Eclipse 1.0 to Repository
SharingWizard.autoConnectTitleDescription=Project is already configured with CVS repository information.
SharingWizard.couldNotImport=Remote Project Exists
SharingWizard.couldNotImportLong=Module ''{0}'' already exists remotely. Would you like to synchronize your local project with the existing remote module?
SharingWizard.selectTagTitle=Select Tag
SharingWizard.selectTag=&Select the tag to synchronize with:
SharingWizard.description=Configure a Project to Use CVS
SharingWizard.importTitle=Share Project with CVS Repository
SharingWizard.importTitleDescription=Select an existing repository location or create a new location.
SharingWizard.title=Share Project
SharingWizard.heading=Configure a Project to Use CVS
SharingWizard.enterInformation=Enter Repository Location Information
SharingWizard.enterInformationDescription=Define the location and protocol required to connect with an existing CVS repository.
SharingWizard.enterModuleName=Enter Module Name
SharingWizard.enterModuleNameDescription=Select the name of the module in the CVS repository.
SharingWizard.validationFailedText={0}. Set project sharing anyway?
SharingWizard.validationFailedTitle=Unable to Validate

SharingWizardFinishPage.message=The wizard has all the information necessary to share your project with the CVS repository. When you click \"Finish\", the wizard will import your project into the repository and open the Synchronize view to allow you to commit your resources.

ShowHistoryAction.showHistory=Error occurred performing Show History
ShowHistoryAction.noHistory=No History Available
ShowHistoryAction.noHistoryLong=No resource history available for selected resources.

SyncAction.sync=Synchronize
SyncAction.workingSetName=Latest CVS Synchronize

TagAction.tagErrorTitle=Tagging Error
TagAction.tagWarningTitle=Tagging Warning
TagAction.tagProblemsMessage=Problems reported tagging the resource.
TagAction.tagProblemsMessageMultiple=Problems tagging the resources. {0} project(s) successfully tagged and {1} project(s) with errors.
TagAction.tagResources=Tag Resources
TagAction.enterTag=Please enter a version tag:
TagAction.moveTag=&Move tag if it already exists
TagAction.moveTagConfirmTitle=Confirm Move Existing Tag
TagAction.moveTagConfirmMessage=If the tag {0} is already used in this project, it will be moved to the selected revisions.  Are you sure you want to perform the tag operation?
TagAction.uncommittedChangesTitle=Confirm Uncommitted Changes
TagAction.uncommittedChanges=You are tagging ''{0}'' that has uncommitted changes. These changes are not in the repository and will not be included in the version you are creating. Do you still want to tag this resource?
TagAction.tagAlreadyExists=Version tag already exists.
TagAction.existingVersions=Existing Versions:

TagInRepositoryAction.tagProblemsMessage=Problems reported tagging the resource.
TagInRepositoryAction.tagProblemsMessageMultiple=Problems tagging the resources. {0} resource(s) successfully tagged and {1} resource(s) with errors.

UpdateAction.update=Problems encountered performing update
UpdateAction.updating=Updating...
UpdateAction.promptForUpdateSeveral=Are you sure you want to update {0} resources?
UpdateAction.promptForUpdateOne=Are you sure you want to update {0} resource?
UpdateAction.promptForUpdateTitle=Confirm Update

UpdateWizard.title=Update
UpdateWizard.updatePage=Update

UpdateWizardPage.description=&Select a tag to update the project sharing to:
UpdateWizardPage.overwrite=&Overwrite local changes

UserValidationDialog.required=Password Required
UserValidationDialog.labelUser={0}
UserValidationDialog.labelPassword={1}
UserValidationDialog.password=&Password:
UserValidationDialog.user=&User name:

KeyboradInteractiveDialog.message=Keyboard Interactive authentication for {0}
KeyboardInteractiveDialog.labelRepository=Enter values for the following repository: {0}

VersionsElement.versions=Versions

WorkbenchUserAuthenticator.cancelled=Operation cancelled because login cancelled
WorkbenchUserAuthenticator.errorFlushing=Error occurred while flushing password for {0}
WorkbenchUserAuthenticator.errorSaving=Error occurred while saving password for {0}

Unmanage.unmanaging=Disconnecting from CVS...
Unmanage.unmanage=Disconnect from CVS
Unmanage.title=Confirm Disconnect from CVS
Unmanage.titleN=Confirm Multiple Project Disconnect from CVS
Unmanage.message=Are you sure you want to disconnect CVS from ''{0}''?
Unmanage.messageN=Are you sure you want to disconnect CVS from these {0} projects?
Unmanage.option1=Do not delete the CVS meta information (e.g. CVS sub-directories).
Unmanage.option2=Also delete the CVS meta information from the file system.
Unmanage.unmanagingError=Errors occurred while disconnecting

Unmanage.message=Are you sure you want to disconnect CVS from ''{0}''?
Unmanage.messageN=Are you sure you want to disconnect CVS from these {0} projects?

Enter_a_valid_file_name_or_select_the_clipboard_option_1=Enter a valid file name or select the clipboard option
Save_To_Clipboard_2=&Save To Clipboard
Save_In_File_System_3=Sa&ve In File System
Browse..._4=Br&owse...
Save_Patch_As_5=Save Patch As
patch.txt_6=patch.txt
Save_In_Workspace_7=Save In &Workspace
Select_a_folder_then_type_in_the_file_name__8=Select a fol&der then type in the file name:
Fi&le_name__9=Fi&le name:
Do_not_recurse_into_sub-folders_10=&Recurse into sub-folders
Do_not_include_new_files_in_patch_11=&Include new files in patch
Diff_output_format_12=Diff output format
Unified_(format_required_by_Compare_With_Patch_feature)_13=&Unified (format required by the Apply Patch wizard)
Context_14=&Context
Standard_15=&Standard
Advanced_options_19=Advanced options
Configure_the_options_used_for_the_CVS_diff_command_20=Configure the options used for the CVS diff command

After_configuring_the_project__1=After configuring the project:
Open_the_Synchronize_view_on_the_project_2=Open the Synchronize view on the project
Automatically_import_the_local_resources_into_the_repository_3=Automatically import the local resources into the repository
Run_update_4=Run update
Do_nothing_5=Do nothing
Validate_Connection_on_Finish_7=Validate Location on Finish

TagSelectionDialog.Select_a_Tag_1=&Select a branch or version:
TagSelectionDialog.recurseOption=Recurse into sub-&folders

UpdateSyncAction.Conflicting_changes_found_1=Conflicting changes found
UpdateSyncAction.You_have_local_changes_you_are_about_to_overwrite_2=You have local changes you are about to overwrite
UpdateSyncAction.Only_update_resources_that_can_be_automatically_merged_3=Only update resources that can be automatically merged
UpdateSyncAction.Update_all_resources,_overwriting_local_changes_with_remote_contents_4=Update all resources, overwriting local changes with remote contents
UpdateSyncAction.Overwrite_local_changes__5=Overwrite local changes?
UpdateSyncAction.You_have_local_changes_you_are_about_to_overwrite._Do_you_wish_to_continue__6=You have local changes you are about to overwrite. Do you wish to continue?

Example__1=Example:
Text_Labels_12=T&ext
Select_the_format_for_file,_folders,_and_project_text_labels__13=Select the format for file, folders, and project text labels:
&File_Format__14=&File Format:
Add_&Variables_15=Add &Variables...
F&older_Format__16=F&older Format:
Add_Varia&bles_17=Add Varia&bles...
&Project_Format__18=&Project Format:
Add_Variable&s_19=Add Variable&s...
&Label_decoration_for_outgoing__20=Di&rty flag:
Label_decorat&ion_for_added__22=Added f&lag:
Icon_Overlays_24=&Icons
Sho&w_outgoing_25=Indicate is out&going
Show_has_&remote_26=Indicate &has remote
S&how_is_added_27=Indi&cate is added
&Compute_deep_outgoing_state_for_folders_(disabling_this_will_improve_decorator_performance)_28=&Compute deep outgoing state for folders (disabling this will improve decorator performance)
Select_the_&variables_to_add_to_the_decoration_format__30=Select the &variables to add to the decoration format:
Add_Variables_31=Add Variables
name_of_the_resource_being_decorated_34=name of the resource being decorated
the_tag_applied_to_the_resource_(version,_branch,_or_date)_35=the tag applied to the resource (version, branch, or date)
the_repository_location__s_hostname_36=the repository location\'s hostname
the_connection_method_(e.g._pserver,_ssh)_37=the connection method (e.g. pserver, ssh)
user_name_for_the_connection_38=user name for the connection
repository_home_directory_on_server_39=repository home directory on server
root_relative_directory_40=root relative directory
flag_indicating_that_the_folder_has_a_child_resource_with_outgoing_changes_41=flag indicating that the folder has a child resource with outgoing changes
name_of_the_resource_being_decorated_42=name of the resource being decorated
the_tag_applied_to_the_resource_43=the tag applied to the resource
keyword_substitution_rule_for_the_resource_44=keyword subsitution rule for the resource
last_revision_loaded_into_workspace_45=last revision loaded into workspace
flag_indicating_that_the_file_has_outgoing_changes_46=flag indicating that the file has outgoing changes
flag_indicating_that_the_file_has_been_added_to_the_server_47=flag indicating that the file has been added to the server

ExtMethodPreferencePage_message=These variables define the external connection program to use with the \'ext\' connection method. These values should be the same as the \'ext\' CVS command-line environment variable settings.
ExtMethodPreferencePage_CVS_RSH=CVS_&RSH:
ExtMethodPreferencePage_Browse=&Browse...
ExtMethodPreferencePage_Details=Select a program or script
ExtMethodPreferencePage_CVS_RSH_Parameters=&Parameters:
ExtMethodPreferencePage_Add_Variable=&Add Variable...
ExtMethodPreferencePage_CVS_SERVER__7=CVS_&SERVER:
UpdateMergeActionProblems_merging_remote_resources_into_workspace_1=Problems merging remote resources into workspace
UpdateMergeActionProblems_merging_remote_resources_into_workspace_2=Problems merging remote resources into workspace

TagConfigurationDialog.1=Configure Branches and Versions for {0}
TagConfigurationDialog.2=Configure Branches and Versions for {0} projects
TagConfigurationDialog.4=Configure tags you will see in the workbench.
TagConfigurationDialog.5=&Browse files for tags:
TagConfigurationDialog.6=&New tags found in the selected files:
TagConfigurationDialog.7=Remembered &tags for these projects:
TagConfigurationDialog.8=&Add Checked Tags
TagConfigurationDialog.9=&Remove
TagConfigurationDialog.10=Re&move All
TagConfigurationDialog.11=&List of files to be automatically examined when refreshing tags:
TagConfigurationDialog.12=A&dd Selected Files
TagConfigurationDialog.13=Rem&ove
TagConfigurationDialog.14=Error fetching tags from remote CVS files
TagConfigurationDialog.20=&Refresh from Repository
TagConfigurationDialog.21=&Configure Tags...
TagConfigurationDialog.22=Updating Tags

ChangeListener.Deleting_CVS_folders_1=Deleting CVS folders
ChangeListener.Folders_cannot_be_deleted_from_a_CVS_server_from_the_client._To_delete_the_folder_2=Folders cannot be deleted from a CVS server from the client. To delete the folder
ChangeListener.Do_not_ask_me_about_this_again_3=Do not ask me about this again
ConfigureTagsFromRepoViewConfigure_Tag_Error_1=Configure Tag Error
RemoteRootAction.label=Discard location
RemoteRootAction.Unable_to_Discard_Location_1=Unable to Discard Location
RemoteRootAction.Projects_in_the_local_workspace_are_shared_with__2=Projects in the local workspace are shared with {0}. This location cannot be discarded until all local projects are disconnected from it.
RemoveRootAction.removeRoot_3=RemoveRootAction.removeRoot
RemoteRootAction.The_projects_that_are_shared_with_the_above_repository_are__4=The projects that are shared with the above repository are:

BranchCategory.Branches_1=Branches
GroupedByVersionCategory.Versions_1=Versions
VersionCategory.Versions_1=Versions
ModulesCategory.label=Modules
HistoryView.[...]_4=[...]

CVSProjectPropertiesPage.connectionType=Connection type:
CVSProjectPropertiesPage.user=User:
CVSProjectPropertiesPage.Select_a_Repository_1=Select a Repository
CVSProjectPropertiesPage.Select_a_CVS_repository_location_to_share_the_project_with__2=Select a compatible CVS repository location to share the project with:
CVSProjectPropertiesPage.Change_Sharing_5=&Change Sharing...
CVSProjectPropertiesPage.fetchAbsentDirectoriesOnUpdate=&Fetch absent or new directories when updating
CVSProjectPropertiesPage.configureForWatchEdit=Enable watch/edit for this project
CVSProjectPropertiesPage.progressTaskName=Updating project's CVS properties
CVSProjectPropertiesPage.setReadOnly=Setting all files read-only
CVSProjectPropertiesPage.clearReadOnly=Setting all files writable
CVSRepositoryPropertiesPage.Confirm_Project_Sharing_Changes_1=Confirm Project Sharing Changes
CVSRepositoryPropertiesPage.There_are_projects_in_the_workspace_shared_with_this_repository_2=There are projects in the workspace shared with this repository. The projects will be updated with the new information that you have entered
CVSRepositoryPropertiesPage.sharedProject=The projects that are shared with {0} are:
CVSRepositoryPropertiesPage.useDefaultProgramName=Expect the &default program name "cvs" in text message prefixes from this server
CVSRepositoryPropertiesPage.useProgramName=Expect a custom &program name:
CVSRepositoryPropertiesPage.useLocationAsLabel=Use the &repository identification string as the label
CVSRepositoryPropertiesPage.useCustomLabel=Use a custom &label:

CVSProjectSetSerializer.Confirm_Overwrite_Project_8=Confirm Overwrite Project
CVSProjectSetSerializer.The_project_{0}_already_exists._Do_you_wish_to_overwrite_it__9=The project {0} already exists. Do you wish to overwrite it?

IgnoreResourcesDialog.titleSingle=Add {0} to .cvsignore
IgnoreResourcesDialog.titleMany=Add {0} resources to .cvsignore
IgnoreResourcesDialog.prompt=Select what to add to the .cvsignore file(s):
IgnoreResourcesDialog.addNameEntryButton=Resource(s) by name
IgnoreResourcesDialog.addNameEntryExample=Examples: file1.so, file2.so, .rcfile, bin
IgnoreResourcesDialog.addExtensionEntryButton=Wildcard extension
IgnoreResourcesDialog.addExtensionEntryExample=Examples: *.so, *.rcfile, bin
IgnoreResourcesDialog.addCustomEntryButton=Custom pattern
IgnoreResourcesDialog.addCustomEntryExample=The wildcard characters ''*'' and ''?'' are permitted.
IgnoreResourcesDialog.patternMustNotBeEmpty=Pattern must not be empty.
IgnoreResourcesDialog.patternDoesNotMatchFile=Pattern does not match all selected resources: e.g. {0}

ContentAction.Confirm_Long_Operation_1=Confirm Long Operation
ContentAction.Changing_this_setting_will_involve_contacting_the_server_and_may_be_long-running_2=Changing this setting will involve contacting the server and may be long-running

CVSProjectPropertiesPage.You_can_change_the_sharing_of_this_project_to_another_repository_location._However,_this_is_only_possible_if_the_new_location_is___compatible___(on_the_same_host_with_the_same_repository_path)._1=You can change the sharing of this project to another repository location. However, this is only possible if the new location is \"compatible\" (on the same host with the same repository path).

ConfigurationWizardMainPage.Location_1=Location
ConfigurationWizardMainPage.Authentication_2=Authentication
ConfigurationWizardMainPage.Connection_3=Connection
AlternateUserValidationDialog.Enter_Password_2=Enter Password
AlternateUserValidationDialog.OK_6=OK
AlternateUserValidationDialog.Cancel_7=Cancel
AlternateUserValidationDialog.message=Enter the password for {0}:
WorkbenchUserAuthenticator.The_operation_was_canceled_by_the_user_1=The operation was canceled by the user
CVSCatchupReleaseViewer.No_workspace_file_1=No workspace file
CVSPreferencesPage.Timeout_must_not_be_negative_1=Timeout must not be negative
CVSPreferencesPage.Timeout_must_be_a_number_2=Timeout must be a number
CVSCatchupReleaseViewer.Select_&Outgoing_Additions_1=Select New Reso&urces
ForceCommitSyncAction.Outgoing_Changes_Not_Added_1=Outgoing Changes Not Added
ForceCommitSyncAction.You_have_chosen_to_commit_new_resources_which_have_not_been_added_to_version_control._Do_you_wish_to_add_them_to_version_control_now__2=You have chosen to commit new resources which have not been added to version control. Do you wish to add them to version control now?

WorkingSetSelectionArea.workingSetOther=&Other...
ListSelectionArea.selectAll=&Select All
ListSelectionArea.deselectAll=&Deselect All

RestoreFromRepositoryWizard.fileSelectionPageTitle=Restore from Repository
RestoreFromRepositoryWizard.fileSelectionPageDescription=Select the revision of each file that should be restored.
RestoreFromRepositoryFileSelectionPage.fileSelectionPaneTitle={0} - Select file to be restored:
RestoreFromRepositoryFileSelectionPage.revisionSelectionPaneTitle={0} - Check revision to be restored:
RestoreFromRepositoryFileSelectionPage.fileToRestore={0} ({1} to be restored)
RestoreFromRepositoryFileSelectionPage.fileContentPaneTitle={0} {1} in ''{2}''
RestoreFromRepositoryFileSelectionPage.emptyRevisionPane=Remote revisions of selected file:
RestoreFromRepositoryFileSelectionPage.fileExists=File ''{0}'' already exists locally.
RestoreFromRepositoryFileSelectionPage.revisionIsDeletion=Revision {0} of {1} is the deletion and can not be restored.  Select another revision of this file.
RestoreFromRepositoryAction.noFilesTitle=No Deleted Files Found
RestoreFromRepositoryAction.noFilesMessage=There were no deleted files found on the repository in folder ''{0}''.

RepositoryRoot.folderInfoMissing=Local folder ''{0}'' is not properly mapped to a remote folder.

RepositoriesViewContentHandler.unmatchedTag=No matching end tag found for tag ''{0}'' while reading repositories View configuration file.
RepositoriesViewContentHandler.missingAttribute=Required attribute ''{1}'' missing from tag ''{0}'' while reading repositories View configuration file.
RepositoriesViewContentHandler.errorCreatingRoot=An error occurred trying to create repository ''{0}''.

CVSWorkingSetFolderSelectionPage.projectSelectionPageTitle=CVS Working Set
CVSWorkingSetFolderSelectionPage.projectSelectionPageDescription=Enter a working set name and select the working set folders.
CVSWorkingSetFolderSelectionPage.name=&Working set name:
CVSWorkingSetFolderSelectionPage.treeLabel=Working &set contents:
CVSWorkingSetFolderSelectionPage.refresh=&Refresh Contents
CVSWorkingSetFolderSelectionPage.invalidWorkingSetName=The name must contain only letters and digits.
CVSWorkingSetFolderSelectionPage.duplicateWorkingSetName=A working set of the specific name already exists.
CVSWorkingSetFolderSelectionPage.mustSelectFolder=At least one folder must be checked.

WorkingSetSelectionDialog.title= Select CVS Working Set
WorkingSetSelectionDialog.title.multiSelect= Select CVS Working Sets
WorkingSetSelectionDialog.message= &Select a CVS working set:
WorkingSetSelectionDialog.message.multiSelect= &Select CVS working sets:
WorkingSetSelectionDialog.detailsButton.label= &Edit...
WorkingSetSelectionDialog.newButton.label= &New...
WorkingSetSelectionDialog.removeButton.label= &Remove

RefreshTagsAction.title=Refresh Branch and Version Tags?
RefreshTagsAction.message=Repository ''{0}'' has {1} projects to refresh. Continue?

WatchEditPreferencePage.description=Settings for CVS Watch/Edit.
WatchEditPreferencePage.checkoutReadOnly=&Configure projects to use Watch/Edit on checkout
WatchEditPreferencePage.validateEditSaveAction=When read-only files are modified in an editor
WatchEditPreferencePage.edit=Send a CVS &edit notification to the server
WatchEditPreferencePage.highjack=Edit the file &without informing the server
WatchEditPreferencePage.editPrompt=Before a CVS edit notification is sent to the server
WatchEditPreferencePage.neverPrompt=&Never prompt
WatchEditPreferencePage.alwaysPrompt=Always &prompt
WatchEditPreferencePage.onlyPrompt=&Only prompt if there are other editors

Uneditaction.confirmMessage=Overwrite local changes to edited files?
Uneditaction.confirmTitle=Confirm Unedit

FileModificationValidator.promptTitle=CVS Edit Files?
FileModificationValidator.promptMessage=There are read-only files being modified. Should a 'cvs edit' be performed?
FileModificationValidator.vetoMessage=User vetoed file modification

RefreshRemoteProjectWizard.title=Refresh Branches
RefreshRemoteProjectSelectionPage.pageTitle=Select Projects
RefreshRemoteProjectSelectionPage.pageDescription=Select the remote projects whose tags should be refreshed.
RefreshRemoteProjectSelectionPage.selectRemoteProjects=This wizard helps discover the tags associated with one or more remote projects. &Check the projects whose tags you wish to refresh.
RefreshRemoteProjectSelectionPage.noWorkingSet=Do not &use a working set
RefreshRemoteProjectSelectionPage.workingSet=Select a &working set (matching projects will be checked):

EditorsView.file=File name
EditorsView.user=User name
EditorsView.date=Date
EditorsView.computer=Computer name

EditorsDialog.title=Editors
EditorsDialog.question=The resource already has editors. Do you still want to edit the resource and send a CVS edit notification to server?
EditorsAction.classNotInitialized={0} not initialized

TargetLocationSelectionDialog.projectNameLabel=&Project Name:
TargetLocationSelectionDialog.useDefaultLabel=Use default &workspace location
TargetLocationSelectionDialog.locationLabel=&Location:
TargetLocationSelectionDialog.parentDirectoryLabel=&Directory:
TargetLocationSelectionDialog.browseLabel=&Browse...
TargetLocationSelectionDialog.messageForSingle=Select the parent directory for project {0}.
TargetLocationSelectionDialog.messageForMulti=Select the parent directory for the {0} projects.
TagetLocationSelectionDialog.locationEmpty=Project contents directory must be specified.
TagetLocationSelectionDialog.invalidLocation=Invalid location path.
TagetLocationSelectionDialog.alreadyExists=Project {0} already exists.

SynchronizeProjectsDialog.title=Synchronize CVS Projects
SynchronizeProjectsDialog.selectProjects=Projects to be synchronized
SynchronizeProjectsDialog.syncOutgoingChanges=Only synchronize projects with outgoing &changes
SynchronizeProjectsDialog.allSharedProjects=Include &all projects shared with CVS
SynchronizeProjectsDialog.sharedWorkingSetProjects=Include &working set resources shared with CVS:

RemoteFileEditorInput.fullPathAndRevision={0} {1}

CheckoutOperation.thisResourceExists=The resource ''{0}'' already exists in the workspace and will be deleted. Proceed with the check out of ''{1}''?
CheckoutOperation.thisExternalFileExists=The folder ''{0}'' exists in the local file system and will be deleted. Proceed with the check out of ''{1}''?
CheckoutOperation.confirmOverwrite=Confirm Overwrite
CheckoutOperation.scrubbingProject=Scrubbing project ''{0}''.
CheckoutOperation.refreshingProject=Configuring project ''{0}''.

CheckoutSingleProjectOperation.taskname=Checking out ''{0}'' from CVS
CheckoutMultipleProjectsOperation.taskName=Checking out {0} folders from CVS

CheckoutIntoOperation.taskname=Checking out {0} folders from CVS into ''{1}''
CheckoutIntoOperation.targetIsFile=Folder ''{0}'' cannot be checked out because file ''{1}'' is in the way.
CheckoutIntoOperation.targetIsFolder=Folder ''{0}'' cannot be checked out because folder ''{1}'' is in the way.
CheckoutIntoOperation.targetIsPrunedFolder=Folder ''{0}'' cannot be checked out because it conflicts with the pruned folder ''{1}''.
CheckoutIntoOperation.mappingAlreadyExists=Cannot checkout remote folder ''{0}'' into ''{1}'' because local folder ''{2}'' is already mapped to remote folder ''{0}''.
CheckoutIntoOperation.cancelled=Checkout of ''{1}'' cancelled by user.
CheckoutIntoOperation.overwriteMessage=Folder ''{0}'' already exists and will be deleted. Continue?

AddToWorkspace.taskName1=Checking out ''{0}'' from CVS
AddToWorkspace.taskNameN=Checking out {0} folders from CVS

CheckoutAsAction.checkoutFailed=Problems encountered performing checkout

CheckoutAsAction.enterProjectTitle=Check Out {0} As...
CheckoutAsAction.enterLocationTitle=Check Out {0} Projects As...
CheckoutAsAction.taskname=Checking out "{0}" from CVS as "{1}"
CheckoutAsAction.multiCheckout=Checking out {0} projects from CVS

CheckoutAsWizard.title=Check Out As
CheckoutAsWizard.error=Problems encountered performing checkout
CheckoutAsMainPage.title=Check Out As
CheckoutAsMainPage.description=Select the method of check out
CheckoutAsMainPage.singleFolder=Choose how to check out folder ''{0}''
CheckoutAsMainPage.asConfiguredProject=Check out as a project &configured using the New Project Wizard
CheckoutAsMainPage.asSimpleProject=Check out as a &project in the &workspace
CheckoutAsMainPage.projectNameLabel=&Project Name:
CheckoutAsMainPage.multipleFolders=Choose how to check out the {0} folders
CheckoutAsMainPage.asProjects=Check out into the &workspace as projects
CheckoutAsMainPage.intoProject=Check out &into an existing project

CheckoutAsLocationSelectionPage.title=Check Out As
CheckoutAsLocationSelectionPage.description=Select the project location
CheckoutAsLocationSelectionPage.useDefaultLabel=Use default &workspace location
CheckoutAsLocationSelectionPage.locationLabel=&Location:
CheckoutAsLocationSelectionPage.parentDirectoryLabel=&Directory:
CheckoutAsLocationSelectionPage.browseLabel=&Browse...
CheckoutAsLocationSelectionPage.locationEmpty=Project contents directory must be specified.
CheckoutAsLocationSelectionPage.invalidLocation=Invalid location path.
CheckoutAsLocationSelectionPage.messageForSingle=Select the parent directory for project {0}.
CheckoutAsLocationSelectionPage.messageForMulti=Select the parent directory for the {0} projects.

CheckoutAsProjectSelectionPage.title=Check Out Into
CheckoutAsProjectSelectionPage.description=Select the local folder that is the target of the checkout operation.
CheckoutAsProjectSelectionPage.name=Target folder &name:
CheckoutAsProjectSelectionPage.treeLabel=&Parent of target folder:
CheckoutAsProjectSelectionPage.showLabel=&Filter project list:
CheckoutAsProjectSelectionPage.recurse=&Checkout subfolders
CheckoutAsProjectSelectionPage.showAll=Show all valid target projects
CheckoutAsProjectSelectionPage.showUnshared=Show unshared projects
CheckoutAsProjectSelectionPage.showSameRepo=Show projects shared with the same repository
CheckoutAsProjectSelectionPage.invalidFolderName=''{0}'' is not a valid folder name

TargetLocationSelectionDialog.projectNameLabel=&Project Name:
TargetLocationSelectionDialog.useDefaultLabel=Use default &workspace location
TargetLocationSelectionDialog.locationLabel=&Location:
TargetLocationSelectionDialog.parentDirectoryLabel=&Directory:
TargetLocationSelectionDialog.browseLabel=&Browse...
TargetLocationSelectionDialog.messageForSingle=Select the parent directory for project {0}.
TargetLocationSelectionDialog.messageForMulti=Select the parent directory for the {0} projects.
TagetLocationSelectionDialog.locationEmpty=Project contents directory must be specified.
TagetLocationSelectionDialog.invalidLocation=Invalid location path.
TagetLocationSelectionDialog.alreadyExists=Project {0} already exists.
CheckoutIntoWizard.title=Checkout Into
CheckoutIntoWizard.projectSelectionPageTitle=Select local folder
CheckoutIntoWizard.projectSelectionPageDescription=Select the local folder that is the target of the checkout operation.
CheckoutIntoWizard.error=Checkout Error
CheckoutIntoWizard.thisResourceExists=The resource ''{0}'' already exists in the workspace.  Overwrite?
CheckoutIntoWizard.confirmOverwrite=Confirm Overwrite
CheckoutIntoWizard.mappingAlreadyExists=Cannot add remote folder ''{0}'' to project ''{1}'' as ''{2}'' because local folder ''{3}'' is already mapped to that folder.
CheckoutIntoProjectSelectionPage.description=Choose the name and parent folder where ''{0}'' should be checked out to.
CheckoutIntoProjectSelectionPage.name=Target folder &name:
CheckoutIntoProjectSelectionPage.treeLabel=&Parent of target folder:
CheckoutIntoProjectSelectionPage.showLabel=&Filter project list:
CheckoutIntoProjectSelectionPage.showAll=Show all valid target projects
CheckoutIntoProjectSelectionPage.showUnshared=Show unshared projects
CheckoutIntoProjectSelectionPage.showSameRepo=Show projects shared with the same repository
CheckoutIntoProjectSelectionPage.recurse=&Checkout subfolders
CheckoutIntoProjectSelectionPage.invalidFolderName=''{0}'' is not a valid folder name

HasProjectMetaFile.taskName=Looking for a remote meta file
TagFromWorkspace.taskName=Tagging from workspace
TagFromRepository.taskName=Tagging from repository
UpdateOnlyMergeable.taskName=Updating mergeable changes
UpdateDialog.overwriteTitle=Overwrite Local Changes?
UpdateDialog.overwriteMessage=Do you want to overwrite local changes?
ReplaceOperation.taskName=CVS Replace
UpdateOperation.taskName=CVS Update

SafeUpdateAction.warnFilesWithConflictsTitle=Non-mergeable files
SafeUpdateAction.warnFilesWithConflictsDescription=Some conflicting files cannot be merged automatically with the update action. They contain conflicting changes that will have to be merged manually. Use the Synchronize View to find the conflicts then merge the changes in a compare editor.

SafeUpdateAction.warnFilesWithConflictsTitle=Non-mergeable files
SafeUpdateAction.warnFilesWithConflictsDescription=Some conflicting files cannot be merged automatically with the update action. They contain conflicting changes that will have to be merged manually. Use the Synchronize View to find the conflicts then merge the changes in a compare editor.

Error.unableToShowSyncView=Error opening Synchronize View. Please ensure that the Team plugin is installed correctly.
ShowAnnotationAction.1=Unexpected response from CVS Server: {0}

UpdateAction.jobName=CVS Update
MergeUpdateAction.jobName=CVS Merge
MergeUpdateAction.invalidSubscriber=Invalid subscriber: {0}
CommitAction.jobName=CVS Commit
OverrideAndUpdateAction.jobName=Performing CVS Override and Update on {0} resources
WorkInProgressPreferencePage.0=CVS Work In Progress
WorkInProgressPreferencePage.1=Preferences for enabling features that are not complete:
WorkInProgressPreferencePage.2=Enable background fetching of resources in the CVS Repositories view
WorkInProgressPreferencePage.3=Enable operations to be run in the background (e.g. checkout, update, commit)
WorkInProgressPreferencePage.4=Enable the CVS sync actions to open the new sync view
CheckoutProjectOperation.8=Checking out ''{0}'' into project ''{1}''
CheckoutProjectOperation.9=Checking out ''{0}'' into {1} projects
CVSOperation.0=Errors occured in {0} of {1} operations.
CVSDecorator.exceptionMessage=Errors occured while applying CVS decorations to resources.
FetchMembersOperation.0=Fetching members of {0}

RemoteRevisionQuickDiffProvider.readingFile=Error reading remote file
RemoteRevisionQuickDiffProvider.closingFile=Error closing remote file
RemoteRevisionQuickDiffProvider.fetchingFile=CVS QuickDiff: fetching remote contents for ''{0}''
RemoteCompareOperation.0=Comparing tags {0} and {1} of {2}
action.SynchronizeViewCommit.label=Commit
action.SynchronizeViewCommit.tooltip=Commit All Outgoing Changes...
action.SynchronizeViewCommit.description=Commit All Outgoing Changes...
action.SynchronizeViewCommit.image=checkin_action.gif

action.SynchronizeViewUpdate.label=Update
action.SynchronizeViewUpdate.tooltip=Update All Incoming Changes...
action.SynchronizeViewUpdate.description=Update All Incoming Changes...
action.SynchronizeViewUpdate.image=checkout_action.gif

action.SharingWizardIgnore.label=Ignore
action.SharingWizardIgnore.tooltip=Ignore Selected Resources...
action.SharingWizardIgnore.description=Ignore Selected Resources...
action.SharingWizardIgnore.image=ignorefiles.gif

MergeSynchronizeParticipant.8=Missing id initializing cvs merge participant
MergeSynchronizeParticipant.9=Unable to initialize cvs merge subscriber
MergeSynchronizeParticipant.10=Missing root nodes in cvs merge subscriber memento: {0}
MergeSynchronizeParticipant.11=Root resource in cvs merge subscriber is no longer in workspace, ignoring: {0}
MergeSynchronizeParticipant.12=Missing root resources for cvs merge subscriber: {0}
DisconnectOperation.0=Disconnecting
SubscriberConfirmMergedAction.0=Synchronization information is missing for resource {0}
SubscriberConfirmMergedAction.jobName=Performing a CVS Mark as Merged operation on {0} resources.
CVSSubscriberAction.0=Invalid attemp to make unsupervised resource {0} in-sync.
ReleaseCommentDialog.6=Review resources that will be committed:
ReconcileProjectOperation.0=Reconciling project {0} with remote folder {1}
CheckoutToRemoteFolderOperation.0=Downloading folder {0}
CVSRepositoryPropertiesPage.21=Use this location's connection information for all connections
CVSRepositoryPropertiesPage.22=Use the following locations for read and write access
CVSRepositoryPropertiesPage.23=Read:
CVSRepositoryPropertiesPage.24=Write:
CompareRevertAction.0=Reverting {0} resources
FileModificationValidator.3=Perform Edit?
FileModificationValidator.4=A CVS edit notification is required to be sent to the server in order to allow editing of one or more selected files. Continue?
CVSSynchronizeViewPage.0=Show incoming grouped by comment
Participant.comparing=Comparing
Participant.merging=Merging
Participant.synchronizing=Synchronizing
CompareWithRevisionAction.4=Compare With Revision
ReplaceWithRevisionAction.0=&Replace
ReplaceWithRevisionAction.1=Replace With Revision
ConsolePreferencesPage.4=Show CVS output in the Console View.
SharingWizard.23=Share Project Resources
SharingWizard.24=Review and commit the project resources
SharingWizard.25=Module ''{0}'' exists on the server. Select the tag to synchronize with.
SharingWizardSyncPage.0=Sharing
ReconcileProjectOperation.1=Local resource {0} is a file while the corresponding remote {1} is a folder
ReconcileProjectOperation.2=Local resource {0} is a folder while the corresponding remote {1} is a file
ShareProjectOperation.0=Sharing project {0} as {1}
SharingWizard.26=Keep Sharing?
SharingWizard.27=Project {0} has been mapped to a remote module. Should this mapping be kept?
SharingWizardSyncPage.3=The resources of project {0} are in-sync with the repository.
SharingWizardSyncPage.4=An error has occurred populating this view.
SharingWizardSyncPage.5=Show Errors
ShareProjectOperation.1=Calculating synchronization states
CVSProjectPropertiesPage.31=Show only compatible repository locations
CVSProjectPropertiesPage.32=Confirm
CVSProjectPropertiesPage.33=The selected repository location may not be compatible with the current location. Are you sure you want to change sharing to the new location?
RepositoryEncodingPropertyPage.2=Identify the file system encoding used by the server where the repository is located. Setting this will allow file names and commit comments to be properly translated between the client and server in cases where the server encoding differs from the client.
RepositoryEncodingPropertyPage.3=Server Encoding
CheckoutWizard.7=Checkout Project from CVS Repsitory
CheckoutWizard.8=This wizard allows you to checkout projects from a CVS Repository.
CheckoutWizard.10=Select Module
CheckoutWizard.11=Select the module to be checked out from CVS
ModuleSelectionPage.2=Use an exisiting &module
CheckoutAsWizard.3=Select Tag
CheckoutAsWizard.4=Choose the tag to check out from
CheckoutAsWizard.5=&Select tag
CheckoutAsMainPage.10=(Only available when the .project file does not exist in the repository)
