###############################################################################
# Copyright (c) 2000, 2015 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
#     Benjamin Muskalla <bmuskalla@eclipsesource.com> - [templates] new SWT templates - ToolBar and ToolItem - https://bugs.eclipse.org/bugs/show_bug.cgi?id=264052
#     Robert Roth <robert.roth.off@gmail.com> - [templates] 2 new code templates: finally & lock - https://bugs.eclipse.org/184222
###############################################################################

Templates.for_array=iterate over array
Templates.for_temp=iterate over array with temporary variable
Templates.for_collection=iterate over collection
Templates.for_iterable=iterate over an array or Iterable
Templates.while_enumeration=iterate with enumeration
Templates.while_iterator=iterate with iterator
Templates.do=do while statement
Templates.switch=switch case statement
Templates.if=if statement
Templates.ifelse=if else statement
Templates.elseif=else if block
Templates.else=else block
Templates.try=try catch block
Templates.tryfinally=try finally block
Templates.catch=catch block
Templates.finally=finally block
Templates.main=main method
Templates.public_method=public method
Templates.public_static_method=public static method
Templates.protected_method=protected method
Templates.private_method=private method
Templates.private_static_method=private static method
Templates.instanceof=dynamic type test and cast
Templates.cast=dynamic cast
Templates.toarray=convert collection to array
Templates.test=test method (JUnit 3)
Templates.test_junit4=test method (JUnit 4)
Templates.systrace=print current method to standard out
Templates.sysout=print to standard out
Templates.syserr=print to standard error
Templates.code_tag=<code></code>
Templates.code_tag_null=<code>null</code>
Templates.code_tag_true=<code>true</code>
Templates.code_tag_false=<code>false</code>
Templates.pre_tag=<pre></pre>
Templates.b_tag=<b></b>
Templates.i_tag=<i></i>
Templates.author=author name
Templates.new=create new object
Templates.lazy=lazy creation
Templates.while_condition=while loop with condition
Templates.non-nls= non-externalized string marker
Templates.fall-through= $FALL-THROUGH$ marker
Templates.synchronized= synchronized block
Templates.lock=explicit lock aquisition
Templates.runnable= runnable
Templates.arraymerge= merge two arrays into one
Templates.arrayadd= add an element to an array
Templates.static_final=static final field

# Java Only stuff
CompilationUnitContextType.variable.description.file=Filename of compilation unit
CompilationUnitContextType.variable.description.primary.type.name=Filename without extension
CompilationUnitContextType.variable.description.enclosing.method=Enclosing method name
CompilationUnitContextType.variable.description.enclosing.type=Enclosing type name
CompilationUnitContextType.variable.description.enclosing.package=Enclosing package name
CompilationUnitContextType.variable.description.enclosing.project=Enclosing project name
CompilationUnitContextType.variable.description.enclosing.method.arguments=Argument names of enclosing method
CompilationUnitContextType.variable.description.return.type=Enclosing method return type

JavaContextType.variable.description.array=A proposal for an array
JavaContextType.variable.description.array.type=A proposal for the element type of an array
JavaContextType.variable.description.array.element=A proposal for the element name of an array
JavaContextType.variable.description.index=A proposal for an index (int)
JavaContextType.variable.description.collection=A proposal for a collection (java.util.Collection)
JavaContextType.variable.description.iterator=A proposal for an iterator (java.util.Iterator)
JavaContextType.variable.description.todo=Todo task tag

JavaContext.error.title=Template Error
JavaContext.error.message=Template file incomplete or has errors.  You can load the default templates from the template preference page (Java>Templates).

CodeTemplateContextType.variable.description.todo=Todo task tag
CodeTemplateContextType.variable.description.packdeclaration=Package declaration of the new type
CodeTemplateContextType.variable.description.typedeclaration=Generated type declaration
CodeTemplateContextType.variable.description.getterfieldname=The name of field to set or get
CodeTemplateContextType.variable.description.getterfieldtype=The type of the field to set or get
CodeTemplateContextType.variable.description.fieldname=The name of field
CodeTemplateContextType.variable.description.fieldtype=The type of the field
CodeTemplateContextType.variable.description.barefieldname=The name of field to set or get without prefix or suffix
CodeTemplateContextType.variable.description.param=The parameter passed into the setter method
CodeTemplateContextType.variable.description.typecomment=Content of code template 'typecomment'
CodeTemplateContextType.variable.description.exceptiontype=The type of the caught exception
CodeTemplateContextType.variable.description.exceptionvar=The variable name of the caught exception
CodeTemplateContextType.variable.description.enclosingtype=The type enclosing this method
CodeTemplateContextType.variable.description.typename=Name of the current type
CodeTemplateContextType.variable.description.enclosingmethod=The enclosing method
CodeTemplateContextType.variable.description.bodystatement=Return statement or super call
CodeTemplateContextType.variable.description.returntype=Return type of the enclosing method
CodeTemplateContextType.variable.description.tags=Generated Javadoc tags (@param, @return...)
CodeTemplateContextType.variable.description.seetag=See tag pointing to the overridden method (@see T#m())

CodeTemplateContextType.variable.description.filename=Name of the enclosing compilation unit
CodeTemplateContextType.variable.description.packagename=Name of the enclosing package
CodeTemplateContextType.variable.description.projectname=Name of the enclosing project

CodeTemplateContextType.validate.unknownvariable=Variable ''{0}'' is unknown.
CodeTemplateContextType.validate.missingvariable=Variable ''{0}'' is required.
CodeTemplateContextType.validate.invalidcomment=Pattern is not a valid Java comment.


# strings in default templates
CodeTemplates.constructorcomment=Comment for created constructors
CodeTemplates.filecomment=Comment for created Java files
CodeTemplates.typecomment=Comment for created types
CodeTemplates.fieldcomment=Comment for fields
CodeTemplates.nonoverridingcomment=Comment for non-overriding methods
CodeTemplates.overridecomment=Comment for overriding methods
CodeTemplates.delegatecomment=Comment for delegate methods
CodeTemplates.gettercomment=Comment for getter method
# ! Do not translate ${bare_field_name} !
CodeTemplates.gettercomment.returntagcontent=the ${bare_field_name}
CodeTemplates.settercomment=Comment for setter method
# ! Do not translate ${bare_field_name} !
CodeTemplates.settercomment.paramtagcontent=the ${bare_field_name} to set

CodeTemplates.newfile=Newly created files
CodeTemplates.classbody=Code in new class type bodies
CodeTemplates.interfacebody=Code in new interface type bodies
CodeTemplates.enumbody=Code in new enum type bodies
CodeTemplates.annotationbody=Code in new annotation type bodies
CodeTemplates.catchblock=Code in new catch blocks
CodeTemplates.methodstub=Code in created method stubs
CodeTemplates.constructorstub=Code in created constructor stubs
CodeTemplates.getterstub=Code in created getters
CodeTemplates.setterstub=Code in created setters

CodeTemplates.overridecomment.nonjd=(non-Javadoc)
CodeTemplates.delegatecomment.nonjd=(non-Javadoc)

CodeTemplates.catchblock.tododesc=Auto-generated catch block
CodeTemplates.methodstub.tododesc=Auto-generated method stub
CodeTemplates.constructorstub.tododesc=Auto-generated constructor stub

SWTTemplates.label=new Label
SWTTemplates.image=new Image
SWTTemplates.button=new Button
SWTTemplates.link=new Link
SWTTemplates.combo=new Combo
SWTTemplates.scale=new Scale
SWTTemplates.spinner=new Spinner
SWTTemplates.browser=new Browser
SWTTemplates.datetime=new DateTime
SWTTemplates.composite=new Composite with GridLayout
SWTTemplates.scrolledcomposite=new ScrolledComposite
SWTTemplates.group=new Group with GridLayout
SWTTemplates.sashform=new SashForm
SWTTemplates.expandbar=new ExpandBar
SWTTemplates.expanditem=new ExpandItem for an ExpandBar
SWTTemplates.tabfolder=new TabFolder
SWTTemplates.tabitem=new TabItem for a TabFolder
SWTTemplates.text=new Text
SWTTemplates.styledtext=new StyledText 
SWTTemplates.stylerange=new StyleRange for a StyledText
SWTTemplates.list=new List
SWTTemplates.table=new Table
SWTTemplates.tablecolumn=new TableColumn for a Table 
SWTTemplates.tableitem=new TableItem for a Table
SWTTemplates.tree=new Tree
SWTTemplates.treecolumn=new TreeColumn for a Tree 
SWTTemplates.treeitem=new TreeItem for a Tree
SWTTemplates.shell=new Shell
SWTTemplates.mainloop=new top level Shell with event loop
SWTTemplates.execute=execute a runnable in the UI thread
SWTTemplates.addlistener=add a listener to a Widget 
SWTTemplates.gridlayout=new GridLayout for a Composites
SWTTemplates.griddata=new GridData for a Control
SWTTemplates.toolbar=new ToolBar
SWTTemplates.toolitem=new ToolItem for a ToolBar