###############################################################################
# Copyright (c) 2000, 2009 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#     IBM Corporation - initial API and implementation
#     Sebastian Davids <sdavids@gmx.de> - bug 38919
###############################################################################

CompletionProcessor.errorMessage=Cannot access the snippet page
CompletionProcessor.errorTitle=Problem Accessing Page

JavaSnippetEditor._is_not_a_Java_Project._n_1=\ is not a Java Project.\n
JavaSnippetEditor.Problems_During_Save_As..._3=Problems During Save As...
JavaSnippetEditor.Save_could_not_be_completed.__4=Save could not be completed. 
JavaSnippetEditor.Unable_to_perform_evaluation_outside_of_a_Java_Project_2=Unable to perform evaluation outside of a Java Project

ScrapbookLauncher.error.pagenotfound=Could not find a scrapbook page to launch
ScrapbookLauncher.error.title=Java Scrapbook Launcher
ScrapbookLauncher.17=[Scrapbook] {0}
SelectImports.description=Sets the Import Declarations with which Code is Run
SelectImports.label=Set Impo&rts...
SelectImports.tooltip=Sets the Import Declarations for Running Code

SelectImportsDialog.&Remove_5=&Remove
SelectImportsDialog.&Select_a_package_to_add_as_an_Import_10=&Select the packages to add as imports:
SelectImportsDialog.&Select_a_type_to_add_to_add_as_an_import_15=&Select a type to add as an import:
SelectImportsDialog.Add_&Package_3=Add &Packages...
SelectImportsDialog.Add_&Type_1=Add &Type...
SelectImportsDialog.Add_package_as_import_7=Add Packages as Imports
SelectImportsDialog.Add_Type_as_Import_12=Add Type as Import
SelectImportsDialog.Choose_a_Package_to_Add_as_an_Import_4=Choose the Packages to Add as Imports
SelectImportsDialog.Choose_a_Type_to_Add_as_an_Import_2=Choose a Type to Add as an Import
SelectImportsDialog.Could_not_open_class_selection_dialog_13=Could not open class selection dialog
SelectImportsDialog.Could_not_open_package_selection_dialog_8=Could not open package selection dialog
SelectImportsDialog.Java_Snippet_Imports_18=Java Snippet Imports
SelectImportsDialog.Manage_the_Java_Snippet_Editor_Imports_for___{0}__1=Manage the Java Snippet Editor Imports for \"{0}\"
SelectImportsDialog.Remove_All_Selected_Imports_6=Remove All Selected Imports

SnippetActionContributor.evalMsg=Evaluating...
SnippetEditor.ellipsis=...
SnippetEditor.error.evaluating=Problems evaluating expression
SnippetEditor.error.evaluating2=Error during evaluation
SnippetEditor.error.imports=Error setting imports for page
SnippetEditor.error.interrupted=\ (Evaluation interrupted)
SnippetEditor.error.shutdown=Cannot shutdown VM
SnippetEditor.error.toString=Problems evaluating toString of expression
SnippetEditor.evaluating=Evaluating...
SnippetEditor.exception=An exception occurred during evaluation:  {0}
SnippetEditor.noreturnvalue=\ (No explicit return value)
SnippetEditor.typename= ({0}) 
SnippetEditor.warning.cpchange=The class path of the Project has changed. Restarting the evaluation context.
SnippetEditor.warning=Warning
SnippetEditor.Warning_1=Warning
SnippetEditor.The_working_directory_has_changed._Restarting_the_evaluation_context._2=The working directory has changed. Restarting the evaluation context.
SnippetEditor.The_JRE_has_changed._Restarting_the_evaluation_context._2=The JRE has changed. Restarting the evaluation context.
SnippetEditor.1=VM arguments have changed. Restarting the evaluation context.

SnippetOpenHierarchyOnSelectionAction.description=Show the type hierarchy of the selected element
SnippetOpenHierarchyOnSelectionAction.label=Open Type Hie&rarchy
SnippetOpenHierarchyOnSelectionAction.tooltip=Show the type hierarchy of the selected element
SnippetOpenHierarchyOnSelectionDialog.message=&Select the type to open:
SnippetOpenHierarchyOnSelectionDialog.title=Open Type Hierarchy

SnippetOpenOnSelectionAction.description=Open an editor on the selected element
SnippetOpenOnSelectionAction.label=&Open Declaration
SnippetOpenOnSelectionAction.tooltip=Open an editor on the selected element
SnippetOpenOnSelectionDialog.message=&Select or enter the element to open:
SnippetOpenOnSelectionDialog.title=Open on Selection

StopAction.description=Stop the evaluation and terminate the evaluation context
StopAction.label=St&op Evaluation
StopAction.tooltip=Stop the Evaluation

ShowInPackageViewAction.label=Show in Pac&kage Explorer
ShowInPackageViewAction.description=Show the selected element in Package Explorer
ShowInPackageViewAction.tooltip=Show in Package Explorer
ShowInPackageViewAction.dialog.title=Show In Package Explorer
ShowInPackageViewAction.not_found=Cannot reveal the selected element in Package Explorer. The element may be filtered out.

NewSnippetFileCreationWizard.title=New Scrapbook Page

NewSnippetFileWizardPage.description=Create a new Java scrapbook page
NewSnippetFileWizardPage.title=Scrapbook Page
NewSnippetFileWizardPage.error.AlreadyExists=A resource with the specified path already exists.
NewSnippetFileWizardPage.error.OnlyInJavaProject=The scrapbook page can only be created in a Java project.
NewSnippetFileWizardPage.open_error.message=Error in NewScrapbookPage
