diff --git a/org.eclipse.mylyn.builds.ui/src/org/eclipse/mylyn/internal/builds/ui/editor/Messages.java b/org.eclipse.mylyn.builds.ui/src/org/eclipse/mylyn/internal/builds/ui/editor/Messages.java
index 8d57582..6795221 100644
--- a/org.eclipse.mylyn.builds.ui/src/org/eclipse/mylyn/internal/builds/ui/editor/Messages.java
+++ b/org.eclipse.mylyn.builds.ui/src/org/eclipse/mylyn/internal/builds/ui/editor/Messages.java
@@ -27,6 +27,11 @@
 	public static String BuildEditor_X_Failed_Retrieve_Build_Information;
 
 	public static String BuildEditor_X_Retrieving_Build;
+	public static String SummaryPart_Cause;
+
+	public static String SummaryPart_StartedOn;
+
+	public static String SummaryPart_Summary;
 	static {
 		// initialize resource bundle
 		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
diff --git a/org.eclipse.mylyn.builds.ui/src/org/eclipse/mylyn/internal/builds/ui/editor/SummaryPart.java b/org.eclipse.mylyn.builds.ui/src/org/eclipse/mylyn/internal/builds/ui/editor/SummaryPart.java
index bf72c65..27a87e9 100644
--- a/org.eclipse.mylyn.builds.ui/src/org/eclipse/mylyn/internal/builds/ui/editor/SummaryPart.java
+++ b/org.eclipse.mylyn.builds.ui/src/org/eclipse/mylyn/internal/builds/ui/editor/SummaryPart.java
@@ -34,13 +34,13 @@
 
 	public SummaryPart() {
 		super(ExpandableComposite.TITLE_BAR | ExpandableComposite.EXPANDED);
-		setPartName("Summary");
+		setPartName(Messages.SummaryPart_Summary);
 	}
 
 	private void append(StringBuilder sb, String text) {
 		if (text != null) {
 			if (sb.length() > 0) {
-				sb.append(". ");
+				sb.append(". "); //$NON-NLS-1$
 			}
 			sb.append(text);
 		}
@@ -55,10 +55,8 @@
 
 		Text text;
 
-		createLabel(composite, toolkit, "Completed on: ");
-//		GridDataFactory.defaultsFor(label).indent(0, 0).applyTo(label);
-		text = createTextReadOnly(composite, toolkit, "");
-//		GridDataFactory.fillDefaults().span(5, 1).applyTo(text);
+		createLabel(composite, toolkit, Messages.SummaryPart_StartedOn);
+		text = createTextReadOnly(composite, toolkit, ""); //$NON-NLS-1$
 		bind(text, IBuild.class, BuildPackage.Literals.BUILD__TIMESTAMP);
 
 		IBuild build = getInput(IBuild.class);
@@ -75,13 +73,11 @@
 				append(sb, string);
 			}
 			if (sb.length() > 0) {
-				sb.append(".");
+				sb.append("."); //$NON-NLS-1$
 			}
 
-			createLabel(composite, toolkit, "Cause: ");
-//			GridDataFactory.defaultsFor(label).indent(0, 0).applyTo(label);
-			text = createTextReadOnly(composite, toolkit, "", SWT.WRAP);
-//			GridDataFactory.fillDefaults().indent(0, 0).span(5, 1).align(SWT.BEGINNING, SWT.TOP).applyTo(text);
+			createLabel(composite, toolkit, Messages.SummaryPart_Cause);
+			text = createTextReadOnly(composite, toolkit, "", SWT.WRAP); //$NON-NLS-1$
 			text.setText(sb.toString());
 		}
 
diff --git a/org.eclipse.mylyn.builds.ui/src/org/eclipse/mylyn/internal/builds/ui/editor/messages.properties b/org.eclipse.mylyn.builds.ui/src/org/eclipse/mylyn/internal/builds/ui/editor/messages.properties
index ddc7d3b..148522c 100644
--- a/org.eclipse.mylyn.builds.ui/src/org/eclipse/mylyn/internal/builds/ui/editor/messages.properties
+++ b/org.eclipse.mylyn.builds.ui/src/org/eclipse/mylyn/internal/builds/ui/editor/messages.properties
@@ -14,3 +14,6 @@
 BuildEditor_Open_with_Web_Browser=Open with Web Browser
 BuildEditor_X_Failed_Retrieve_Build_Information={0} - Failed to Retrieve Build Information
 BuildEditor_X_Retrieving_Build={0} - Retrieving Build
+SummaryPart_Cause=Cause: 
+SummaryPart_StartedOn=Started on: 
+SummaryPart_Summary=Summary
