diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaConnectTab.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaConnectTab.java
index 978ff91..0c73fed 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaConnectTab.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaConnectTab.java
@@ -23,6 +23,7 @@
 import org.eclipse.debug.internal.ui.SWTFactory;
 import org.eclipse.debug.ui.DebugUITools;
 import org.eclipse.debug.ui.IDebugUIConstants;
+import org.eclipse.jdi.internal.connect.ConnectMessages;
 import org.eclipse.jdt.core.IJavaElement;
 import org.eclipse.jdt.core.JavaModelException;
 import org.eclipse.jdt.internal.debug.ui.IJavaDebugHelpContextIds;
@@ -364,7 +365,7 @@
 				String value = ((StringFieldEditor)editor).getStringValue();
 				if (!arg.isValid(value)) {
 					StringBuffer label = new StringBuffer(LegacyActionTools.removeMnemonics(arg.label()));
-					if (label.lastIndexOf(":") == label.length() - 1) { //$NON-NLS-1$
+					if (label.lastIndexOf(ConnectMessages.SocketConnectionLabelSeparator) == label.length() - 1) {
 						label = label.deleteCharAt(label.length() - 1);
 					}
 					setErrorMessage(label.toString() + LauncherMessages.JavaConnectTab__is_invalid__5);
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/ConnectMessages.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/ConnectMessages.java
index d8307c0..71a4b3e 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/ConnectMessages.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/ConnectMessages.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2016 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 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
@@ -76,6 +76,7 @@
 	public static String PacketReceiveManager_0;
 	public static String SocketTransportService_0;
 	public static String SocketTransportService_1;
+	public static String SocketConnectionLabelSeparator;
 
 	static {
 		// load message values from bundle file
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/ConnectMessages.properties b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/ConnectMessages.properties
index d3ecf1e..99f9ec8 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/ConnectMessages.properties
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/connect/ConnectMessages.properties
@@ -14,10 +14,15 @@
 PacketReceiveManager_Got_IOException_from_Virtual_Machine_2=Got IOException from Virtual Machine
 PacketSendManager_Got_IOException_from_Virtual_Machine_1=Got IOException from Virtual Machine
 SocketAttachingConnectorImpl_Machine_name_to_which_to_attach_for_VM_connections_1=Machine name to which to attach for VM connections
+#Separator for Remote Java application socket attach and listen arguments
+SocketConnectionLabelSeparator=:
+#For translation of separator ":" it should be consistent to the translated value of SocketConnectionLabelSeparator
 SocketAttachingConnectorImpl_Host_2=&Host:
 SocketAttachingConnectorImpl_Port_number_to_which_to_attach_for_VM_connections_3=Port number to which to attach for VM connections
+#For translation of separator ":" it should be consistent to the translated value of SocketConnectionLabelSeparator
 SocketAttachingConnectorImpl_Port_4=Po&rt:
 SocketAttachingConnectorImpl_1=Connection Timeout
+#For translation of separator ":" it should be consistent to the translated value of SocketConnectionLabelSeparator
 SocketAttachingConnectorImpl_2=Connection Timeout:
 SocketAttachingConnectorImpl_Attaches_by_socket_to_other_VMs_5=Attaches by socket to other VMs
 SocketAttachingConnectorImpl_Connection_argument_is_not_of_the_right_type_6=Connection argument is not of the right type
@@ -40,13 +45,16 @@
 SocketLaunchingConnectorImpl_Necessary_connection_argument_is_null_15=Necessary connection argument is null
 SocketLaunchingConnectorImpl_Connection_argument_is_not_a_number_16=Connection argument is not a number
 SocketListeningConnectorImpl_Port_number_at_which_to_listen_for_VM_connections_1=Port number at which to listen for VM connections
+#For translation of separator ":" it should be consistent to the translated value of SocketConnectionLabelSeparator
 SocketListeningConnectorImpl_Port_2=Po&rt:
 SocketListeningConnectorImpl_Timeout_before_accept_returns_3=Timeout before accept returns
+#For translation of separator ":" it should be consistent to the translated value of SocketConnectionLabelSeparator
 SocketListeningConnectorImpl_Timeout_4=Timeout:
 SocketListeningConnectorImpl_Accepts_socket_connections_initiated_by_other_VMs_5=Accepts socket connections initiated by other VMs
 SocketListeningConnectorImpl_Connection_argument_is_not_of_the_right_type_6=Connection argument is not of the right type
 SocketListeningConnectorImpl_Necessary_connection_argument_is_null_7=Necessary connection argument is null
 SocketListeningConnectorImpl_Connection_argument_is_not_a_number_8=Connection argument is not a number
+#For translation of separator ":" it should be consistent to the translated value of SocketConnectionLabelSeparator
 SocketListeningConnectorImpl_Limit=Connection &limit:
 SocketListeningConnectorImpl_Limit_incoming_connections=Limit incoming connections (0 = no limit)
 SocketListeningConnectorImpl_ListeningConnector_Socket_Port=ListeningConnector Socket Port=
@@ -67,4 +75,4 @@
 PacketReceiveManager_Got__0__from_Virtual_Machine___1__1=Got {0} from Virtual Machine: {1}
 PacketReceiveManager_0=Timeout occurred while waiting for packet {0}.
 SocketTransportService_0=Attach Thread
-SocketTransportService_1=Handshake Thread
+SocketTransportService_1=Handshake Thread
\ No newline at end of file
