diff --git a/src/net/sf/briar/api/plugins/Plugin.java b/src/net/sf/briar/api/plugins/Plugin.java
index da396d4f22579c00cf75ae13f99649e970d41139..319f58148b070124a911b119258bec5db2885aa5 100644
--- a/src/net/sf/briar/api/plugins/Plugin.java
+++ b/src/net/sf/briar/api/plugins/Plugin.java
@@ -11,6 +11,9 @@ public interface Plugin {
 	/** Returns the plugin's transport identifier. */
 	TransportId getId();
 
+	/** Returns a label for looking up the plugin's translated name. */
+	String getName();
+
 	/** Starts the plugin. */
 	void start() throws IOException;
 
diff --git a/src/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java b/src/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java
index ecb7b940d84c3dbde0049914e5c7078088dd7205..839471aeb65cdc9ba59625373d6481755a464f20 100644
--- a/src/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java
+++ b/src/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java
@@ -73,6 +73,10 @@ class BluetoothPlugin implements DuplexPlugin {
 		return ID;
 	}
 
+	public String getName() {
+		return "BLUETOOTH_PLUGIN_NAME";
+	}
+
 	public void start() throws IOException {
 		// Initialise the Bluetooth stack
 		try {
diff --git a/src/net/sf/briar/plugins/droidtooth/DroidtoothPlugin.java b/src/net/sf/briar/plugins/droidtooth/DroidtoothPlugin.java
index 3d53d5595d574a7e223f526c7a7330e679802888..1c8b196c88d961ed8f7979e7e01721a7808505a3 100644
--- a/src/net/sf/briar/plugins/droidtooth/DroidtoothPlugin.java
+++ b/src/net/sf/briar/plugins/droidtooth/DroidtoothPlugin.java
@@ -85,6 +85,11 @@ class DroidtoothPlugin implements DuplexPlugin {
 		return ID;
 	}
 
+	public String getName() {
+		// Share a name with the J2SE Bluetooth plugin
+		return "BLUETOOTH_PLUGIN_NAME";
+	}
+
 	public void start() throws IOException {
 		// BluetoothAdapter.getDefaultAdapter() must be called on a thread
 		// with a message queue, so submit it to the AndroidExecutor
diff --git a/src/net/sf/briar/plugins/email/GmailPlugin.java b/src/net/sf/briar/plugins/email/GmailPlugin.java
index c6bf807ad1b2f6fcfd9c5d66c36f4732ca769b83..3b346f64abb8e626011aa94f88952aa9de5cd361 100644
--- a/src/net/sf/briar/plugins/email/GmailPlugin.java
+++ b/src/net/sf/briar/plugins/email/GmailPlugin.java
@@ -66,6 +66,10 @@ class GmailPlugin implements SimplexPlugin {
 		return ID;
 	}
 
+	public String getName() {
+		return "GMAIL_PLUGIN_NAME";
+	}
+
 	public void start() throws IOException {
 		pluginExecutor.execute(new Runnable() {
 			public void run() {
@@ -148,11 +152,11 @@ class GmailPlugin implements SimplexPlugin {
 				Session session;
 				session = Session.getInstance(props,
 						new Authenticator() {
-							protected PasswordAuthentication getPasswordAuthentication() {
-								return new PasswordAuthentication(
-										userPass.get(0), userPass.get(1));
-							}
-						});
+					protected PasswordAuthentication getPasswordAuthentication() {
+						return new PasswordAuthentication(
+								userPass.get(0), userPass.get(1));
+					}
+				});
 				sent = sendMessage(session, cid);
 			}
 		}
diff --git a/src/net/sf/briar/plugins/file/RemovableDrivePlugin.java b/src/net/sf/briar/plugins/file/RemovableDrivePlugin.java
index 59a5cb5327c176ace5bee4e645b4a93ca1dde6de..5281909ffa8669310492a2978808a15081b61cf6 100644
--- a/src/net/sf/briar/plugins/file/RemovableDrivePlugin.java
+++ b/src/net/sf/briar/plugins/file/RemovableDrivePlugin.java
@@ -21,13 +21,13 @@ class RemovableDrivePlugin extends FilePlugin
 implements RemovableDriveMonitor.Callback {
 
 	public static final byte[] TRANSPORT_ID =
-		StringUtils.fromHexString("7c81bf5c9b1cd557685548c85f976bbd"
-				+ "e633d2418ea2e230e5710fb43c6f8cc0"
-				+ "68abca3a9d0edb13bcea13b851725c5d");
+			StringUtils.fromHexString("7c81bf5c9b1cd557685548c85f976bbd"
+					+ "e633d2418ea2e230e5710fb43c6f8cc0"
+					+ "68abca3a9d0edb13bcea13b851725c5d");
 
 	private static final TransportId ID = new TransportId(TRANSPORT_ID);
 	private static final Logger LOG =
-		Logger.getLogger(RemovableDrivePlugin.class.getName());
+			Logger.getLogger(RemovableDrivePlugin.class.getName());
 
 	private final RemovableDriveFinder finder;
 	private final RemovableDriveMonitor monitor;
@@ -44,6 +44,10 @@ implements RemovableDriveMonitor.Callback {
 		return ID;
 	}
 
+	public String getName() {
+		return "REMOVABLE_DRIVE_PLUGIN_NAME";
+	}
+
 	public void start() throws IOException {
 		running = true;
 		monitor.start(this);
@@ -70,7 +74,7 @@ implements RemovableDriveMonitor.Callback {
 	protected File chooseOutputDirectory() {
 		try {
 			List<File> drives =
-				new ArrayList<File>(finder.findRemovableDrives());
+					new ArrayList<File>(finder.findRemovableDrives());
 			if(drives.isEmpty()) return null;
 			String[] paths = new String[drives.size()];
 			for(int i = 0; i < paths.length; i++) {
diff --git a/src/net/sf/briar/plugins/tcp/LanTcpPlugin.java b/src/net/sf/briar/plugins/tcp/LanTcpPlugin.java
index 8f57a679f036f845b335e4b4c02c0a789ee493bd..110cdda3304545888ac7d68c9d88a48179e47b43 100644
--- a/src/net/sf/briar/plugins/tcp/LanTcpPlugin.java
+++ b/src/net/sf/briar/plugins/tcp/LanTcpPlugin.java
@@ -51,6 +51,10 @@ class LanTcpPlugin extends TcpPlugin {
 		return ID;
 	}
 
+	public String getName() {
+		return "LAN_TCP_PLUGIN_NAME";
+	}
+
 	@Override
 	protected List<SocketAddress> getLocalSocketAddresses() {
 		List<SocketAddress> addrs = new ArrayList<SocketAddress>();
diff --git a/src/net/sf/briar/plugins/tcp/WanTcpPlugin.java b/src/net/sf/briar/plugins/tcp/WanTcpPlugin.java
index 471b03d29f04b2a8eb926cbe4700429c319c48c9..37f76849fd7dc48991cba0dedef1f79a3a4d27dc 100644
--- a/src/net/sf/briar/plugins/tcp/WanTcpPlugin.java
+++ b/src/net/sf/briar/plugins/tcp/WanTcpPlugin.java
@@ -48,6 +48,10 @@ class WanTcpPlugin extends TcpPlugin {
 		return ID;
 	}
 
+	public String getName() {
+		return "WAN_TCP_PLUGIN_NAME";
+	}
+
 	@Override
 	protected List<SocketAddress> getLocalSocketAddresses() {
 		List<SocketAddress> addrs = new ArrayList<SocketAddress>();
diff --git a/src/net/sf/briar/plugins/tor/TorPlugin.java b/src/net/sf/briar/plugins/tor/TorPlugin.java
index 7c6d1922adcecb5e9fb998a817b2f0ffd600bf1d..8141b14f558fe0e5a37ab223cab5c5e2bd20ef04 100644
--- a/src/net/sf/briar/plugins/tor/TorPlugin.java
+++ b/src/net/sf/briar/plugins/tor/TorPlugin.java
@@ -63,6 +63,10 @@ class TorPlugin implements DuplexPlugin {
 		return ID;
 	}
 
+	public String getName() {
+		return "TOR_PLUGIN_NAME";
+	}
+
 	public void start() throws IOException {
 		synchronized(this) {
 			running = true;