38277 TVT2.1- Description text not translated in code Generation option
diff --git a/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/CodeTemplates.java b/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/CodeTemplates.java
index 652e8e5..7c43fc4 100644
--- a/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/CodeTemplates.java
+++ b/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/CodeTemplates.java
@@ -64,7 +64,7 @@
private void create() {
try {
- addFromStream(getDefaultsAsStream(), false);
+ addFromStream(getDefaultsAsStream(), false, true);
File templateFile= getTemplateFile();
if (templateFile.exists()) {
addFromFile(templateFile, false);
@@ -95,7 +95,7 @@
*/
public void restoreDefaults() throws CoreException {
clear();
- addFromStream(getDefaultsAsStream(), false);
+ addFromStream(getDefaultsAsStream(), false, true);
}
/**
diff --git a/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/TemplateMessages.properties b/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/TemplateMessages.properties
index 576811a..5cebd2d 100644
--- a/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/TemplateMessages.properties
+++ b/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/TemplateMessages.properties
@@ -145,3 +145,61 @@
TemplateSet.error.missing.attribute=Missing required attribute
CodeTemplates.error.title=Error accessing code templates.
+
+# strings in default templates (default-codetemplates.xml & default-templates.xml)
+CodeTemplates.constructorcomment=Comment for created constructors
+CodeTemplates.typecomment=Comment for created types
+CodeTemplates.nonoverridingcomment=Comment for non-overriding methods
+CodeTemplates.overridecomment=Comment for overriding methods
+CodeTemplates.newfile=Newly created files
+CodeTemplates.catchblock=Code in new catch blocks
+CodeTemplates.methodstub=Code in created method stubs
+CodeTemplates.constructorstub=Code in created constructor stubs
+
+CodeTemplates.typecomment.content1=To change the template for this generated type comment go to
+CodeTemplates.typecomment.content2=Window>Preferences>Java>Code Generation>Code and Comments
+
+CodeTemplates.overridecomment.nonjd=(non-Javadoc)
+
+CodeTemplates.newfile.content1=Created on ${date}
+CodeTemplates.newfile.content2=To change the template for this generated file go to
+CodeTemplates.newfile.content3=Window>Preferences>Java>Code Generation>Code and Comments
+
+CodeTemplates.catchblock.tododesc=Auto-generated catch block
+CodeTemplates.methodstub.tododesc=Auto-generated method stub
+CodeTemplates.constructorstub.tododesc=Auto-generated constructor stub
+
+Templates.for_array=iterate over array
+Templates.for_temp=iterate over array with temporary variable
+Templates.for_collection=iterate over collection
+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.catch=catch block
+Templates.main=main method
+Templates.public_method=public 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
+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.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
diff --git a/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/TemplateSet.java b/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/TemplateSet.java
index 2cc61d9..142d926 100644
--- a/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/TemplateSet.java
+++ b/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/TemplateSet.java
@@ -27,10 +27,6 @@
import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.Serializer;
import org.apache.xml.serialize.SerializerFactory;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
@@ -40,6 +36,9 @@
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+
import org.eclipse.jdt.internal.ui.IJavaStatusConstants;
import org.eclipse.jdt.internal.ui.JavaPlugin;
import org.eclipse.jdt.internal.ui.JavaUIException;
@@ -73,7 +72,7 @@
try {
stream= new FileInputStream(file);
- addFromStream(stream, allowDuplicates);
+ addFromStream(stream, allowDuplicates, false);
} catch (IOException e) {
throwReadException(e);
@@ -94,7 +93,7 @@
/**
* Reads templates from a XML stream and adds them to the templates
*/
- public void addFromStream(InputStream stream, boolean allowDuplicates) throws CoreException {
+ public void addFromStream(InputStream stream, boolean allowDuplicates, boolean doTranslations) throws CoreException {
try {
DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance();
DocumentBuilder parser= factory.newDocumentBuilder();
@@ -128,6 +127,11 @@
buffer.append(value);
}
String pattern= buffer.toString().trim();
+
+ if (doTranslations) {
+ pattern= translateString(pattern);
+ description= translateString(description);
+ }
Template template= new Template(name, description, context, pattern);
@@ -154,6 +158,26 @@
}
}
+ private String translateString(String str) {
+ int idx= str.indexOf('%');
+ if (idx == -1) {
+ return str;
+ }
+ StringBuffer buf= new StringBuffer();
+ int k= 0;
+ while (idx != -1) {
+ buf.append(str.substring(k, idx));
+ for (k= idx + 1; k < str.length() && !Character.isWhitespace(str.charAt(k)); k++) {
+ // loop
+ }
+ String key= str.substring(idx + 1, k);
+ buf.append(TemplateMessages.getString(key));
+ idx= str.indexOf('%', k);
+ }
+ buf.append(str.substring(k));
+ return buf.toString();
+ }
+
protected String validateTemplate(Template template) throws CoreException {
ContextType type= ContextTypeRegistry.getInstance().getContextType(template.getContextTypeName());
if (type == null) {
@@ -162,8 +186,6 @@
return type.validate(template.getPattern());
}
-
-
private String getAttributeValue(NamedNodeMap attributes, String name) {
Node node= attributes.getNamedItem(name);
diff --git a/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/Templates.java b/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/Templates.java
index 8447308..3ba0dd9 100644
--- a/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/Templates.java
+++ b/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/Templates.java
@@ -51,7 +51,7 @@
if (templateFile.exists()) {
addFromFile(templateFile, true);
} else {
- addFromStream(getDefaultsAsStream(), true);
+ addFromStream(getDefaultsAsStream(), true, true);
saveToFile(templateFile);
}
@@ -79,7 +79,7 @@
*/
public void restoreDefaults() throws CoreException {
clear();
- addFromStream(getDefaultsAsStream(), true);
+ addFromStream(getDefaultsAsStream(), true, true);
}
/**
diff --git a/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/default-codetemplates.xml b/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/default-codetemplates.xml
index c39b887..65825f2 100644
--- a/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/default-codetemplates.xml
+++ b/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/default-codetemplates.xml
@@ -1,33 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<templates>
-<codetemplate name="constructorcomment" description="Comment for created constructors" context="constructorcomment_context" enabled="true">/**
+<codetemplate name="constructorcomment" description="%CodeTemplates.constructorcomment" context="constructorcomment_context" enabled="true">/**
* ${tags}
*/</codetemplate>
- <codetemplate name="typecomment" description="Comment for created types" context="typecomment_context" enabled="true">/**
+ <codetemplate name="typecomment" description="%CodeTemplates.typecomment" context="typecomment_context" enabled="true">/**
* @author ${user}
*
- * To change the template for this generated type comment go to
- * Window>Preferences>Java>Code Generation>Code and Comments
+ * %CodeTemplates.typecomment.content1
+ * %CodeTemplates.typecomment.content2
*/</codetemplate>
- <codetemplate name="methodcomment" description="Comment for non-overriding methods" context="methodcomment_context" enabled="true">/**
+ <codetemplate name="methodcomment" description="%CodeTemplates.nonoverridingcomment" context="methodcomment_context" enabled="true">/**
* ${tags}
*/</codetemplate>
-<codetemplate name="overridecomment" description="Comment for overriding methods" context="overridecomment_context" enabled="true">/* (non-Javadoc)
+<codetemplate name="overridecomment" description="%CodeTemplates.overridecomment" context="overridecomment_context" enabled="true">/* %CodeTemplates.overridecomment.nonjd
* ${see_to_overridden}
*/</codetemplate>
- <codetemplate name="newtype" description="New classes and interfaces" context="newtype_context" enabled="true">/*
- * Created on ${date}
+ <codetemplate name="newtype" description="%CodeTemplates.newfile" context="newtype_context" enabled="true">/*
+ * %CodeTemplates.newfile.content1
*
- * To change the template for this generated file go to
- * Window>Preferences>Java>Code Generation>Code and Comments
+ * %CodeTemplates.newfile.content2
+ * %CodeTemplates.newfile.content3
*/
${package_declaration}
${typecomment}
${type_declaration}</codetemplate>
-<codetemplate name="catchblock" description="Code in new catch blocks" context="catchblock_context" enabled="true">// ${todo} Auto-generated catch block
-${exception_var}.printStackTrace();</codetemplate><codetemplate name="methodbody" description="Code in created method stubs" context="methodbody_context" enabled="true">// ${todo} Auto-generated method stub
+<codetemplate name="catchblock" description="%CodeTemplates.catchblock" context="catchblock_context" enabled="true">// ${todo} %CodeTemplates.catchblock.tododesc
+${exception_var}.printStackTrace();</codetemplate><codetemplate name="methodbody" description="%CodeTemplates.methodstub" context="methodbody_context" enabled="true">// ${todo} %CodeTemplates.methodstub.tododesc
${body_statement}</codetemplate>
-<codetemplate name="constructorbody" description="Code in created constructor stubs" context="constructorbody_context" enabled="true">${body_statement}
-// ${todo} Auto-generated constructor stub</codetemplate>
+<codetemplate name="constructorbody" description="%CodeTemplates.constructorstub" context="constructorbody_context" enabled="true">${body_statement}
+// ${todo} %CodeTemplates.constructorstub.tododesc</codetemplate>
</templates>
\ No newline at end of file
diff --git a/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/default-templates.xml b/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/default-templates.xml
index 48fbdac..7064a25 100644
--- a/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/default-templates.xml
+++ b/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/template/default-templates.xml
@@ -5,67 +5,99 @@
All Rights Reserved.
-->
-<templates><template name="for" description="iterate over array" context="java" enabled="true">for (int ${index} = 0; ${index} < ${array}.length; ${index}++) {
+<templates><template name="for" description="%Templates.for_array" context="java" enabled="true">for (int ${index} = 0; ${index} < ${array}.length; ${index}++) {
${line_selection}${cursor}
-}</template><template name="for" description="iterate over array w/ temporary variable" context="java" enabled="true">for (int ${index} = 0; ${index} < ${array}.length; ${index}++) {
+}</template>
+<template name="for" description="%Templates.for_temp" context="java" enabled="true">for (int ${index} = 0; ${index} < ${array}.length; ${index}++) {
${array_type} ${array_element} = ${array}[${index}];
${cursor}
-}</template><template name="for" description="iterate over collection" context="java" enabled="true">for (Iterator ${iterator} = ${collection}.iterator(); ${iterator}.hasNext(); ) {
+}</template>
+<template name="for" description="%Templates.for_collection" context="java" enabled="true">for (Iterator ${iterator} = ${collection}.iterator(); ${iterator}.hasNext(); ) {
${type} ${element} = (${type}) ${iterator}.next();
${cursor}
-}</template><template name="while" description="iterate with enumeration" context="java" enabled="true">while (${enumeration}.hasMoreElements()) {
+}</template>
+<template name="while" description="%Templates.while_enumeration" context="java" enabled="true">while (${enumeration}.hasMoreElements()) {
${type} ${element} = (${type}) ${enumeration}.nextElement();
${cursor}
-}</template><template name="while" description="iterate with iterator" context="java" enabled="true">while (${iterator}.hasNext()) {
+}</template>
+<template name="while" description="%Templates.while_iterator" context="java" enabled="true">while (${iterator}.hasNext()) {
${type} ${element} = (${type}) ${iterator}.next();
${cursor}
-}</template><template name="do" description="do while statement" context="java" enabled="true">do {
+}</template>
+<template name="do" description="%Templates.do" context="java" enabled="true">do {
${line_selection}${cursor}
-} while (${condition});</template><template name="switch" description="switch case statement" context="java" enabled="true">switch (${key}) {
+} while (${condition});</template>
+<template name="switch" description="%Templates.switch" context="java" enabled="true">switch (${key}) {
case ${value}:
${cursor}
break;
default:
break;
-}</template><template name="if" description="if statement" context="java" enabled="true">if (${condition}) {
+}</template>
+<template name="if" description="%Templates.if" context="java" enabled="true">if (${condition}) {
${line_selection}${cursor}
-}</template><template name="ifelse" description="if else statement" context="java" enabled="true">if (${condition}) {
+}</template>
+<template name="ifelse" description="%Templates.ifelse" context="java" enabled="true">if (${condition}) {
${cursor}
} else {
-}</template><template name="elseif" description="else if block" context="java" enabled="true">else if (${condition}) {
+}</template>
+<template name="elseif" description="%Templates.elseif" context="java" enabled="true">else if (${condition}) {
${cursor}
-}</template><template name="else" description="else block" context="java" enabled="true">else {
+}</template>
+<template name="else" description="%Templates.else" context="java" enabled="true">else {
${cursor}
-}</template><template name="try" description="try catch block" context="java" enabled="true">try {
+}</template>
+<template name="try" description="%Templates.try" context="java" enabled="true">try {
${line_selection}${cursor}
} catch (${Exception} e) {
// ${todo}: handle exception
-}</template><template name="catch" description="catch block" context="java" enabled="true">catch (${Exception} e) {
+}</template>
+<template name="catch" description="%Templates.catch" context="java" enabled="true">catch (${Exception} e) {
${cursor}// ${todo}: handle exception
-}</template><template name="main" description="main method" context="java" enabled="true">public static void main(String[] args) {
+}</template>
+<template name="main" description="%Templates.main" context="java" enabled="true">public static void main(String[] args) {
${cursor}
-}</template><template name="public_method" description="public method" context="java" enabled="true">public ${return_type} ${name}(${arguments}) {
+}</template>
+<template name="public_method" description="%Templates.public_method" context="java" enabled="true">public ${return_type} ${name}(${arguments}) {
${cursor}
-}</template><template name="protected_method" description="protected method" context="java" enabled="true">protected ${return_type} ${name}(${arguments}) {
+}</template>
+<template name="protected_method" description="%Templates.protected_method" context="java" enabled="true">protected ${return_type} ${name}(${arguments}) {
${cursor}
-}</template><template name="private_method" description="private method" context="java" enabled="true">private ${return_type} ${name}(${arguments}) {
+}</template>
+<template name="private_method" description="%Templates.private_method" context="java" enabled="true">private ${return_type} ${name}(${arguments}) {
${cursor}
-}</template><template name="private_static_method" description="private static method" context="java" enabled="true">private static ${return_type} ${name}(${arguments}) {
+}</template>
+<template name="private_static_method" description="%Templates.private_static_method" context="java" enabled="true">private static ${return_type} ${name}(${arguments}) {
${cursor}
-}</template><template name="instanceof" description="dynamic type test and cast" context="java" enabled="true">if (${name} instanceof ${type}) {
+}</template>
+<template name="instanceof" description="%Templates.instanceof" context="java" enabled="true">if (${name} instanceof ${type}) {
${type} ${new_name} = (${type})${name};
${cursor}
-}</template><template name="cast" description="dynamic cast" context="java" enabled="true">${type} ${new_name} = (${type}) ${name};</template><template name="new" description="create new object" context="java" enabled="true">${type} ${name} = new ${type}(${arguments});</template><template name="lazy" description="lazy creation" context="java" enabled="true">if (${name} == null) {
+}</template>
+<template name="cast" description="%Templates.cast" context="java" enabled="true">${type} ${new_name} = (${type}) ${name};</template>
+<template name="new" description="%Templates.new" context="java" enabled="true">${type} ${name} = new ${type}(${arguments});</template>
+<template name="lazy" description="%Templates.lazy" context="java" enabled="true">if (${name} == null) {
${name} = new ${type}(${arguments});
${cursor}
}
-return ${name};</template><template name="toarray" description="convert collection to array" context="java" enabled="true">(${type}[]) ${collection}.toArray(new ${type}[${collection}.size()]);</template><template name="sysout" description="print to standard out" context="java" enabled="true">System.out.println(${word_selection}${cursor});</template><template name="syserr" description="print to standard error" context="java" enabled="true">System.err.println(${word_selection}${cursor});</template><template name="<code>" description="<code></code>" context="javadoc" enabled="true"><code>${word_selection}${cursor}</code></template><template name="<code>" description="<code>null</code>" context="javadoc" enabled="true"><code>null</code></template><template name="<pre>" description="<pre></pre>" context="javadoc" enabled="true"><pre>${word_selection}${cursor}</pre></template><template name="<b>" description="<b></b>" context="javadoc" enabled="true"><b>${word_selection}${cursor}</b></template><template name="<i>" description="<i></i>" context="javadoc" enabled="true"><i>${word_selection}${cursor}</i></template><template name="@author" description="author name" context="javadoc" enabled="true">@author ${user}</template><template name="while" description="while loop with condition" context="java" enabled="true">while (${condition}) {
+return ${name};</template>
+<template name="toarray" description="%Templates.toarray" context="java" enabled="true">(${type}[]) ${collection}.toArray(new ${type}[${collection}.size()]);</template>
+<template name="sysout" description="%Templates.sysout" context="java" enabled="true">System.out.println(${word_selection}${cursor});</template>
+<template name="syserr" description="%Templates.syserr" context="java" enabled="true">System.err.println(${word_selection}${cursor});</template>
+<template name="<code>" description="%Templates.code_tag" context="javadoc" enabled="true"><code>${word_selection}${cursor}</code></template>
+<template name="<code>" description="%Templates.code_tag_null" context="javadoc" enabled="true"><code>null</code></template>
+<template name="<pre>" description="%Templates.pre_tag" context="javadoc" enabled="true"><pre>${word_selection}${cursor}</pre></template>
+<template name="<b>" description="%Templates.b_tag" context="javadoc" enabled="true"><b>${word_selection}${cursor}</b></template>
+<template name="<i>" description="%Templates.i_tag" context="javadoc" enabled="true"><i>${word_selection}${cursor}</i></template>
+<template name="@author" description="%Templates.author" context="javadoc" enabled="true">@author ${user}</template>
+<template name="while" description="%Templates.while_condition" context="java" enabled="true">while (${condition}) {
${line_selection}${cursor}
-}</template><template name="test" description="test method" context="java" enabled="true">public void test${name}() {
+}</template>
+<template name="test" description="%Templates.test" context="java" enabled="true">public void test${name}() {
${cursor}
}</template>
-<template name="systrace" description="print current method to standard out" context="java" enabled="true">System.out.println("${enclosing_type}.${enclosing_method}()");</template>
+<template name="systrace" description="%Templates.systrace" context="java" enabled="true">System.out.println("${enclosing_type}.${enclosing_method}()");</template>
</templates>
\ No newline at end of file