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

RefreshTab.0=Recursively &include sub-folders
RefreshTab.1=&Refresh resources after running tool
RefreshTab.2=Choose scope v&ariable: 
RefreshTab.6=Refresh
RefreshTab.7=Refresh resources...
RefreshTab.8=Exception(s) occurred during refresh.
RefreshTab.9=Invalid refresh scope variable format {0}.
RefreshTab.10=Could not find refresh launch variable {1}.
DefaultVariableComponent.0=Problem displaying UI component of selected variable.
ResourceComponent.0=Use &selected resource
ResourceComponent.1=Us&e specific resource:
ResourceComponent.2=A specific resource must be selected from the list.
WorkingSetComponent.1=&Specify Resources...
WorkingSetComponent.2=workingSet
WorkingSetComponent.4=A working set must be specified.
PromptExpanderBase.0=Please input a value for {0}
PromptExpanderBase.1=Please input a value
StringPromptExpander.0=Variable input
WorkingSetExpander.2=Unable to restore working set - no factory ID.
WorkingSetExpander.3=Unable to restore working set - cannot instantiate factory: 
WorkingSetExpander.4=Unable to restore working set - cannot instantiate working set: 
WorkingSetExpander.5=Unable to restore working set - element is not an IWorkingSet: 
WorkingSetExpander.6=No working set specified.
WorkingSetExpander.7=No working set could be constructed named {0}.
VariableSelectionDialog.0=Select variable
VariableSelectionDialog.1=&Context variables
VariableSelectionDialog.2=&Simple variables
VariableSelectionDialog.3=Choose a &variable:
VariableSelectionDialog.4=Invalid selection
