###############################################################################
# Copyright (c) 2000, 2013 IBM Corporation and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# 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_remove_imports=Add or remove package imports for {0}
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.imports_heading=&Imports:
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
