diff --git a/org.eclipse.jdt.ui/templates/default-postfixtemplates.xml b/org.eclipse.jdt.ui/templates/default-postfixtemplates.xml
index 671d560..fe563d7 100644
--- a/org.eclipse.jdt.ui/templates/default-postfixtemplates.xml
+++ b/org.eclipse.jdt.ui/templates/default-postfixtemplates.xml
@@ -2,7 +2,7 @@
 
 <!--
 /*******************************************************************************
- * Copyright (c) 2019 Nicolaj Hoess.
+ * Copyright (c) 2019, 2020 Nicolaj Hoess.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -18,70 +18,70 @@
 
 <templates>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.beg" context="postfix" deleted="false" description="Sets the cursor to the begin of the expression" enabled="true" name="beg">${}${inner_expression}${cursor}</template>
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.beg" context="postfix" deleted="false" description="%PostfixTemplates.beg" enabled="true" name="beg">${}${inner_expression}${cursor}</template>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.cast" context="postfix" deleted="false" description="Casts the expression to a new type" enabled="true" name="cast">((${})${inner_expression})${cursor}</template>
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.cast" context="postfix" deleted="false" description="%PostfixTemplates.cast" enabled="true" name="cast">((${})${inner_expression})${cursor}</template>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.dowhile" context="postfix" deleted="false" description="Creates a do-while loop" enabled="true" name="dowhile">do {&#13;
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.dowhile" context="postfix" deleted="false" description="%PostfixTemplates.dowhile" enabled="true" name="dowhile">do {&#13;
 	${cursor}&#13;
 } while (${i:inner_expression(boolean)});</template>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.else" context="postfix" deleted="false" description="Creates a negated if statement" enabled="true" name="else">if (!${i:inner_expression(boolean)}${}) {&#13;
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.else" context="postfix" deleted="false" description="%PostfixTemplates.else" enabled="true" name="else">if (!${i:inner_expression(boolean)}${}) {&#13;
 	${cursor}&#13;
 }</template>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.for" context="postfix" deleted="false" description="Creates a for statement" enabled="true" name="for">for (${type:newActualType(i)} ${n:newName(i)} : ${i:inner_expression(java.util.Collection,array)}) {&#13;
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.for" context="postfix" deleted="false" description="%PostfixTemplates.for" enabled="true" name="for">for (${type:newActualType(i)} ${n:newName(i)} : ${i:inner_expression(java.util.Collection,array)}) {&#13;
 	${cursor}&#13;
 }</template>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.fori" context="postfix" deleted="false" description="Creates a for statement which iterates over an array" enabled="true" name="fori">for (int ${index} = 0; i &lt; ${i:inner_expression(array)}.length; ${index}++) {&#13;
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.fori" context="postfix" deleted="false" description="%PostfixTemplates.fori" enabled="true" name="fori">for (int ${index} = 0; i &lt; ${i:inner_expression(array)}.length; ${index}++) {&#13;
 	${cursor}&#13;
 }</template>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.foriub" context="postfix" deleted="false" description="Creates an indexed for statement which uses the given integer as upper bound" enabled="true" name="fori">for (int ${index} = 0; i &lt; ${i:inner_expression(int)}; ${index}++) {&#13;
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.foriub" context="postfix" deleted="false" description="%PostfixTemplates.foriub" enabled="true" name="foriub">for (int ${index} = 0; i &lt; ${i:inner_expression(int)}; ${index}++) {&#13;
 	${cursor}&#13;
 }</template>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.forrlb" context="postfix" deleted="false" description="Creates an indexed for statement which uses the given integer - 1 as starting value (counting backwards)" enabled="true" name="forr">for (int ${index} = ${i:inner_expression(int)} - 1; i &gt;= 0 ; ${index}--) {&#13;
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.forrlb" context="postfix" deleted="false" description="%PostfixTemplates.forrlb" enabled="true" name="forrlb">for (int ${index} = ${i:inner_expression(int)} - 1; i &gt;= 0 ; ${index}--) {&#13;
 	${cursor}&#13;
 }</template>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.forr" context="postfix" deleted="false" description="Creates a for statement which iterates over an array in reverse order" enabled="true" name="forr">for (int ${index} = ${i:inner_expression(array)}.length - 1; i &gt;= 0; ${index}--) {&#13;
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.forr" context="postfix" deleted="false" description="%PostfixTemplates.forr" enabled="true" name="forr">for (int ${index} = ${i:inner_expression(array)}.length - 1; i &gt;= 0; ${index}--) {&#13;
 	${cursor}&#13;
 }</template>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.nnull" context="postfix" deleted="false" description="Creates an if statement and checks it the expression does not resolve to null" enabled="true" name="nnull">if (${i:inner_expression(java.lang.Object,array)} != null) {&#13;
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.nnull" context="postfix" deleted="false" description="%PostfixTemplates.nnull" enabled="true" name="nnull">if (${i:inner_expression(java.lang.Object,array)} != null) {&#13;
 	${cursor}&#13;
 }</template>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.null" context="postfix" deleted="false" description="Creates an if statement which checks the expression if it resolves to null" enabled="true" name="null">if (${i:inner_expression(java.lang.Object,array)} == null) {&#13;
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.null" context="postfix" deleted="false" description="%PostfixTemplates.null" enabled="true" name="null">if (${i:inner_expression(java.lang.Object,array)} == null) {&#13;
 	${cursor}&#13;
 }</template>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.sif" context="postfix" deleted="false" description="Creates a short if statement" enabled="true" name="sif">((${i:inner_expression(boolean)}) ? ${} : ${cursor})</template>
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.sif" context="postfix" deleted="false" description="%PostfixTemplates.sif" enabled="true" name="sif">((${i:inner_expression(boolean)}) ? ${} : ${cursor})</template>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.snnull" context="postfix" deleted="false" description="Creates an if statement which checks if the expression resolves not to null" enabled="true" name="snnull">(${i:inner_expression(java.lang.Object,array)} != null) ? ${inner_expression}${} : ${cursor}</template>
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.snnull" context="postfix" deleted="false" description="%PostfixTemplates.snnull" enabled="true" name="snnull">(${i:inner_expression(java.lang.Object,array)} != null) ? ${inner_expression}${} : ${cursor}</template>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.snull" context="postfix" deleted="false" description="Creates a short if statement which checks for null" enabled="true" name="snull">(${i:inner_expression(java.lang.Object,array)} == null) ? ${} : ${inner_expression}${cursor}</template>
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.snull" context="postfix" deleted="false" description="%PostfixTemplates.snull" enabled="true" name="snull">(${i:inner_expression(java.lang.Object,array)} == null) ? ${} : ${inner_expression}${cursor}</template>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.sysout" context="postfix" deleted="false" description="Sends the affected string to a System.out.println(..) call" enabled="true" name="sysout">System.out.println(${i:inner_expression(java.lang.String)}${});${cursor}</template>
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.sysout" context="postfix" deleted="false" description="%PostfixTemplates.sysout" enabled="true" name="sysout">System.out.println(${i:inner_expression(java.lang.String)}${});${cursor}</template>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.throw" context="postfix" deleted="false" description="Throws the given Exception" enabled="true" name="throw">throw ${true:inner_expression(java.lang.Throwable)};</template>
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.throw" context="postfix" deleted="false" description="%PostfixTemplates.throw" enabled="true" name="throw">throw ${true:inner_expression(java.lang.Throwable)};</template>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.var" context="postfix" deleted="false" description="Creates a new variable" enabled="true" name="var">${field:newType(inner_expression)} ${var:newName(inner_expression)} = ${inner_expression};${cursor}</template>
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.var" context="postfix" deleted="false" description="%PostfixTemplates.var" enabled="true" name="var">${field:newType(inner_expression)} ${var:newName(inner_expression)} = ${inner_expression};${cursor}</template>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.while" context="postfix" deleted="false" description="Creates a while loop" enabled="true" name="while">while (${i:inner_expression(boolean)}) {&#13;
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.while" context="postfix" deleted="false" description="%PostfixTemplates.while" enabled="true" name="while">while (${i:inner_expression(boolean)}) {&#13;
 	${cursor}&#13;
 }</template>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.withinregion" context="postfix" deleted="false" description="Creates an if statement which checks if a given numeric variable is within a region" enabled="true" name="withinregion">if (${i:inner_expression(float,int,double,long)} &gt;= ${lower_bound} &amp;&amp; ${inner_expression} &lt;= ${upper_bound}) {&#13;
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.withinregion" context="postfix" deleted="false" description="%PostfixTemplates.withinregion" enabled="true" name="withinregion">if (${i:inner_expression(float,int,double,long)} &gt;= ${lower_bound} &amp;&amp; ${inner_expression} &lt;= ${upper_bound}) {&#13;
 	${cursor}&#13;
 }</template>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.field" context="postfix" deleted="false" description="Creates a new field" enabled="true" name="field">${field:newField(i)} = ${i:inner_expression};${cursor}</template>
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.field" context="postfix" deleted="false" description="%PostfixTemplates.field" enabled="true" name="field">${field:newField(i)} = ${i:inner_expression};${cursor}</template>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.constpriv" context="postfix" deleted="false" description="Creates a new private constant" enabled="true" name="constpriv">${n:newField(i, false, true, true, true)}${i:inner_expression(novalue)}${cursor}</template>
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.constpriv" context="postfix" deleted="false" description="%PostfixTemplates.constpriv" enabled="true" name="constpriv">${n:newField(i, false, true, true, true)}${i:inner_expression(novalue)}${cursor}</template>
 
-	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.constpub" context="postfix" deleted="false" description="Creates a new public constant" enabled="true" name="constpub">${n:newField(i, true, true, true, true)}${i:inner_expression(novalue)}${cursor}</template>
+	<template autoinsert="true" id="org.eclipse.jdt.postfixcompletion.constpub" context="postfix" deleted="false" description="%PostfixTemplates.constpub" enabled="true" name="constpub">${n:newField(i, true, true, true, true)}${i:inner_expression(novalue)}${cursor}</template>
 
-</templates>
\ No newline at end of file
+</templates>
diff --git a/org.eclipse.jdt.ui/templates/default-templates.properties b/org.eclipse.jdt.ui/templates/default-templates.properties
index 0485f3f..efbea8b 100644
--- a/org.eclipse.jdt.ui/templates/default-templates.properties
+++ b/org.eclipse.jdt.ui/templates/default-templates.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000, 2019 IBM Corporation and others.
+# Copyright (c) 2000, 2020 IBM Corporation and others.
 #
 # This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License 2.0
@@ -125,6 +125,28 @@
 CodeTemplateContextType.validate.missingvariable=Variable ''{0}'' is required.
 CodeTemplateContextType.validate.invalidcomment=Pattern is not a valid Java comment.
 
+PostfixTemplates.beg=Sets the cursor to the begin of the expression
+PostfixTemplates.cast=Casts the expression to a new type
+PostfixTemplates.dowhile=Creates a do-while loop
+PostfixTemplates.else=Creates a negated if statement
+PostfixTemplates.for=Creates a for statement
+PostfixTemplates.fori=Creates a for statement which iterates over an array
+PostfixTemplates.foriub=Creates an indexed for statement which uses the given integer as upper bound
+PostfixTemplates.forrlb=Creates an indexed for statement which uses the given integer - 1 as starting value (counting backwards)
+PostfixTemplates.forr=Creates a for statement which iterates over an array in reverse order
+PostfixTemplates.nnull=Creates an if statement and checks if the expression does not resolve to null
+PostfixTemplates.null=Creates an if statement which checks if expression resolves to null
+PostfixTemplates.sif=Creates a short if statement
+PostfixTemplates.snnull=Creates an if statement which checks if the expression does not resolve to null
+PostfixTemplates.snull=Creates a short if statement which checks for null
+PostfixTemplates.sysout=Sends the affected string to a System.out.println(..) call
+PostfixTemplates.throw=Throws the given Exception
+PostfixTemplates.var=Creates a new variable
+PostfixTemplates.while=Creates a while loop
+PostfixTemplates.withinregion=Creates an if statement which checks if a given numeric variable is within a region
+PostfixTemplates.field=Creates a new field
+PostfixTemplates.constpriv=Creates a new private constant
+PostfixTemplates.constpub=Creates a new public constant
 
 # strings in default templates
 CodeTemplates.constructorcomment=Comment for created constructors
