###############################################################################
# Copyright (c) 2004, 2016 IBM Corporation and others.
# All rights reserved. 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
###############################################################################
A_name_must_be_specified_1=A name must be specified
New_Category_Title=New Category
New_Item_Title=New Item
Delete_1=Delete
Unnamed_Template_1=Unnamed Template
Insert_Template___1=Insert Template:
Insert_Template_2=Insert Template
Edit_Instruction=Edit the values for the variables in the table below.  The text that will be inserted is previewed in the Source pane below
Variables__4=Variables:
Description_of_variable__5=Description of variable:
Variable_Name_6=Variable Name
Value_7=Value
Preview__9=Source:
Insert_14=Insert
Variable_Name_3=Variable Name
Value_4=Value
##
Name_5=Name
NameCannotBeEmpty=The name cannot be empty
Description_6=Description
Default_Value_7=Default Value
Remove_15=Remove
Template_Pattern__16=Template:
Insert_Variable_17=Insert &Variable Placeholder...
#
Insert___=Insert...
New_1=New
Cut_2=Cut
Copy_2=Copy
Paste_4=Paste
##
new_category_name=new category
category=category
item=item
Unnamed_Category=Unnamed Category
Add_to_Snippets____3=Add to Snipp&ets...
##
Cant_add_to_this=You can not add items to this category.  Please choose or create another.
choose_or_create=Please choose a category or enter a name for a new one.
force_create=You must create a new category for this snippet.  Please enter a name.
## snippets import/export
SnippetCustomizerDialog_0=Import
SnippetCustomizerDialog_1=Export
SnippetCustomizerDialog_2=Overwrite Existing Drawer Entry
SnippetCustomizerDialog_3=An entry for snippet drawer "{0}" already exists in workspace. Overwrite existing drawer entry?
SnippetCustomizerDialog_4=An entry for snippet drawer "{0}" already exists in export file. Overwrite existing drawer entry?
SnippetDrawerEntryPage_0=Show/Hide Drawer
SnippetDrawerEntryPage_1=Always show
SnippetDrawerEntryPage_2=Always hide
SnippetDrawerEntryPage_3=Custom:
SnippetDrawerEntryPage_4=Bro&wse...
SnippetDrawerEntryPage_5=Content Type Selection
SnippetDrawerEntryPage_6=Choose content types this drawer is for:
Import_Snippets=Import Snippets
Export_Snippets=Export Snippets

#
Paste_as_Snippet=Paste as Snippet...
