Bug 560305 - Externalize Postfix template completion descriptions.

- Fix some typos in postfix template descriptions
- Ensure postfix template names are unique

Change-Id: I95d04be2240b0abec686a384d2a132b82ab056a9
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