From d7fb251a8a356839919a62db18b6cac23687c91b Mon Sep 17 00:00:00 2001 From: Richard Maw Date: Tue, 3 Dec 2024 19:27:09 +0000 Subject: [PATCH 1/6] Turn Server into a sealed interface Sealed interfaces are useful in switch exprs to enumerate possible values so that it becomes a compile error to introduce a new server type without implementing an appropriate arm for the switch block. --- .../net/rptools/clientserver/simple/server/AbstractServer.java | 2 +- .../java/net/rptools/clientserver/simple/server/NilServer.java | 2 +- .../java/net/rptools/clientserver/simple/server/Server.java | 2 +- .../net/rptools/clientserver/simple/server/SocketServer.java | 2 +- .../net/rptools/clientserver/simple/server/WebRTCServer.java | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/clientserver/src/main/java/net/rptools/clientserver/simple/server/AbstractServer.java b/clientserver/src/main/java/net/rptools/clientserver/simple/server/AbstractServer.java index 7186d6c0ef..2f45ec8389 100644 --- a/clientserver/src/main/java/net/rptools/clientserver/simple/server/AbstractServer.java +++ b/clientserver/src/main/java/net/rptools/clientserver/simple/server/AbstractServer.java @@ -20,7 +20,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -public abstract class AbstractServer implements Server { +public abstract class AbstractServer { private static final Logger log = LogManager.getLogger(AbstractServer.class); diff --git a/clientserver/src/main/java/net/rptools/clientserver/simple/server/NilServer.java b/clientserver/src/main/java/net/rptools/clientserver/simple/server/NilServer.java index ad9b76bec3..9aacaaa8b0 100644 --- a/clientserver/src/main/java/net/rptools/clientserver/simple/server/NilServer.java +++ b/clientserver/src/main/java/net/rptools/clientserver/simple/server/NilServer.java @@ -15,7 +15,7 @@ package net.rptools.clientserver.simple.server; /** A server implementation that never receives connections */ -public class NilServer extends AbstractServer { +public final class NilServer extends AbstractServer implements Server { @Override public void start() {} diff --git a/clientserver/src/main/java/net/rptools/clientserver/simple/server/Server.java b/clientserver/src/main/java/net/rptools/clientserver/simple/server/Server.java index 00b379a7d9..9f92b9926e 100644 --- a/clientserver/src/main/java/net/rptools/clientserver/simple/server/Server.java +++ b/clientserver/src/main/java/net/rptools/clientserver/simple/server/Server.java @@ -16,7 +16,7 @@ import java.io.IOException; -public interface Server extends AutoCloseable { +public sealed interface Server extends AutoCloseable permits NilServer, SocketServer, WebRTCServer { void start() throws IOException; void close(); diff --git a/clientserver/src/main/java/net/rptools/clientserver/simple/server/SocketServer.java b/clientserver/src/main/java/net/rptools/clientserver/simple/server/SocketServer.java index 2b4c0ac9c5..c7341d169f 100644 --- a/clientserver/src/main/java/net/rptools/clientserver/simple/server/SocketServer.java +++ b/clientserver/src/main/java/net/rptools/clientserver/simple/server/SocketServer.java @@ -25,7 +25,7 @@ /** * @author drice */ -public class SocketServer extends AbstractServer { +public final class SocketServer extends AbstractServer implements Server { private static final Logger log = LogManager.getLogger(SocketServer.class); private final int port; diff --git a/clientserver/src/main/java/net/rptools/clientserver/simple/server/WebRTCServer.java b/clientserver/src/main/java/net/rptools/clientserver/simple/server/WebRTCServer.java index 32ad0b8c7b..880424ef2a 100644 --- a/clientserver/src/main/java/net/rptools/clientserver/simple/server/WebRTCServer.java +++ b/clientserver/src/main/java/net/rptools/clientserver/simple/server/WebRTCServer.java @@ -29,7 +29,7 @@ import org.java_websocket.client.WebSocketClient; import org.java_websocket.handshake.ServerHandshake; -public class WebRTCServer extends AbstractServer { +public final class WebRTCServer extends AbstractServer implements Server { private static final Logger log = LogManager.getLogger(WebRTCServer.class); public interface Listener { From 24b1dda4e1fd81afd32e0405604885cfff6d96a8 Mon Sep 17 00:00:00 2001 From: Richard Maw Date: Fri, 20 Dec 2024 18:14:52 +0000 Subject: [PATCH 2/6] Make MapToolServer's ID explicitly nullable ServiceAnnouncer requires a non-null String, but an empty server ID is not well-formed so a ServiceAnnouncer shouldn't be created. This was previously handled by MapToolServer being passed null config and the absence of a port to give was sufficient to prevent creating a ServiceAnnouncer with an empty ID, but we can be more defensive about this and check for a null pointer. --- src/main/java/net/rptools/maptool/client/MapTool.java | 2 +- src/main/java/net/rptools/maptool/server/MapToolServer.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/rptools/maptool/client/MapTool.java b/src/main/java/net/rptools/maptool/client/MapTool.java index 68e3cd98f3..b0f17de4c6 100644 --- a/src/main/java/net/rptools/maptool/client/MapTool.java +++ b/src/main/java/net/rptools/maptool/client/MapTool.java @@ -185,7 +185,7 @@ public class MapTool { var campaign = CampaignFactory.createBasicCampaign(); var policy = new ServerPolicy(); - server = new MapToolServer("", new Campaign(campaign), null, false, policy, playerDB); + server = new MapToolServer(null, new Campaign(campaign), null, false, policy, playerDB); client = new MapToolClient(server, campaign, playerDB.getPlayer(), connections.clientSide()); } catch (NoSuchAlgorithmException | InvalidKeySpecException e) { throw new RuntimeException("Unable to create default personal server", e); diff --git a/src/main/java/net/rptools/maptool/server/MapToolServer.java b/src/main/java/net/rptools/maptool/server/MapToolServer.java index 9c7556a022..a3458fbabe 100644 --- a/src/main/java/net/rptools/maptool/server/MapToolServer.java +++ b/src/main/java/net/rptools/maptool/server/MapToolServer.java @@ -93,7 +93,7 @@ public enum State { private State currentState; public MapToolServer( - String id, + @Nullable String id, Campaign campaign, @Nullable ServerConfig config, boolean useUPnP, @@ -106,7 +106,7 @@ public MapToolServer( this.playerDatabase = playerDb; this.announcer = - config == null + config == null || id == null ? null : new ServiceAnnouncer(id, config.getPort(), AppConstants.SERVICE_GROUP); From 536346cfd8f82cd14ed360fb12d29b04d68b5874 Mon Sep 17 00:00:00 2001 From: Richard Maw Date: Fri, 20 Dec 2024 18:59:28 +0000 Subject: [PATCH 3/6] Defer creation of ServiceAnnouncer until start This adds extra complexity from the ServiceAnnouncer not always existing but enables later flexibility in supporting binding to an emphemeral port instead of having to preconfigure it. --- .../net/rptools/maptool/server/MapToolServer.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/main/java/net/rptools/maptool/server/MapToolServer.java b/src/main/java/net/rptools/maptool/server/MapToolServer.java index a3458fbabe..36a4a82990 100644 --- a/src/main/java/net/rptools/maptool/server/MapToolServer.java +++ b/src/main/java/net/rptools/maptool/server/MapToolServer.java @@ -83,7 +83,7 @@ public enum State { private final AssetProducerThread assetProducerThread; private final boolean useUPnP; - private final ServiceAnnouncer announcer; + @Nullable private ServiceAnnouncer announcer; private Campaign campaign; private ServerPolicy policy; private HeartbeatThread heartbeatThread; @@ -105,11 +105,6 @@ public MapToolServer( this.policy = new ServerPolicy(policy); this.playerDatabase = playerDb; - this.announcer = - config == null || id == null - ? null - : new ServiceAnnouncer(id, config.getPort(), AppConstants.SERVICE_GROUP); - server = ConnectionFactory.getInstance().createServer(this.config); messageHandler = new ServerMessageHandler(this); this.router = new Router(); @@ -370,6 +365,7 @@ public void stop() { if (announcer != null) { announcer.stop(); + announcer = null; } // Unregister ourselves @@ -434,7 +430,8 @@ public void start() throws IOException { } } - if (announcer != null) { + if (serviceIdentifier != null && config != null) { + announcer = new ServiceAnnouncer(serviceIdentifier, config.getPort(), AppConstants.SERVICE_GROUP); announcer.start(); } From 0a4f3161b09dd93acd38836b553279457d3849a6 Mon Sep 17 00:00:00 2001 From: Richard Maw Date: Fri, 20 Dec 2024 19:04:26 +0000 Subject: [PATCH 4/6] Make server teardown the reverse of setup It is neater to stop announcement, deregister and close UPnP before stopping the server so that discovering clients can't try to connect to an already stopped server though this is mostly just being picky because the human interaction time scales dominate and shut down and deregister are nearly the same time. --- .../rptools/maptool/server/MapToolServer.java | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/main/java/net/rptools/maptool/server/MapToolServer.java b/src/main/java/net/rptools/maptool/server/MapToolServer.java index 36a4a82990..ef4729fb9b 100644 --- a/src/main/java/net/rptools/maptool/server/MapToolServer.java +++ b/src/main/java/net/rptools/maptool/server/MapToolServer.java @@ -348,21 +348,6 @@ public void stop() { return; } - server.close(); - for (var connection : router.removeAll()) { - connection.removeDisconnectHandler(onConnectionDisconnected); - connection.close(); - } - - assetManagerMap.clear(); - - if (heartbeatThread != null) { - heartbeatThread.shutdown(); - } - if (assetProducerThread != null) { - assetProducerThread.shutdown(); - } - if (announcer != null) { announcer.stop(); announcer = null; @@ -382,6 +367,21 @@ public void stop() { int port = config.getPort(); UPnPUtil.closePort(port); } + + server.close(); + for (var connection : router.removeAll()) { + connection.removeDisconnectHandler(onConnectionDisconnected); + connection.close(); + } + + assetManagerMap.clear(); + + if (heartbeatThread != null) { + heartbeatThread.shutdown(); + } + if (assetProducerThread != null) { + assetProducerThread.shutdown(); + } } public void start() throws IOException { From 2174852eaf1ccc3be50b2393f41a5ce9d9755c9d Mon Sep 17 00:00:00 2001 From: Richard Maw Date: Fri, 20 Dec 2024 19:13:13 +0000 Subject: [PATCH 5/6] Announce bound instead of configured server port If a port number of 0 is chosen then bind() will open a random port in an ephemeral range instead of the provided port number and this port can then be retrieved using getLocalPort(). This enables starting servers on arbitrary ports instead of preconfigured ones. Since only direct connections need to know the port number connections using the registry or LAN can use an ephemeral port number and the connection information tab can display the port direct connections should use. This requires a router with functioning UPnP instead of port forwarding though so is not univerally useful. --- .../simple/server/SocketServer.java | 13 +++++++++ .../clientserver/ConnectionFactory.java | 2 ++ .../rptools/maptool/server/MapToolServer.java | 28 ++++++++++++------- 3 files changed, 33 insertions(+), 10 deletions(-) diff --git a/clientserver/src/main/java/net/rptools/clientserver/simple/server/SocketServer.java b/clientserver/src/main/java/net/rptools/clientserver/simple/server/SocketServer.java index c7341d169f..4ed70b9dbb 100644 --- a/clientserver/src/main/java/net/rptools/clientserver/simple/server/SocketServer.java +++ b/clientserver/src/main/java/net/rptools/clientserver/simple/server/SocketServer.java @@ -39,6 +39,9 @@ public SocketServer(int port) { @Override public void start() throws IOException { var serverSocket = new ServerSocket(port); + if (serverSocket.getLocalPort() == -1) { + throw new AssertionError("Socket not bound yet"); + } // If the above throws, it will be as though we never started. socket = serverSocket; @@ -70,6 +73,16 @@ public String getError() { return null; } + /** Get the port of the socket the server is running on or -1. */ + public int getPort() { + // NOTE: We do not use this.port because the socket's bound port can be different + if (socket == null || socket.isClosed()) { + return -1; + } + + return socket.getLocalPort(); + } + //// // Threads private static class ListeningThread extends Thread { diff --git a/src/main/java/net/rptools/clientserver/ConnectionFactory.java b/src/main/java/net/rptools/clientserver/ConnectionFactory.java index ff9518ba7c..8cedbe399b 100644 --- a/src/main/java/net/rptools/clientserver/ConnectionFactory.java +++ b/src/main/java/net/rptools/clientserver/ConnectionFactory.java @@ -15,6 +15,7 @@ package net.rptools.clientserver; import java.awt.EventQueue; +import javax.annotation.Nonnull; import javax.annotation.Nullable; import net.rptools.clientserver.simple.connection.Connection; import net.rptools.clientserver.simple.connection.SocketConnection; @@ -49,6 +50,7 @@ public void onLoginError() { }); } + @Nonnull public Server createServer(@Nullable ServerConfig config) { if (config == null) { return new NilServer(); diff --git a/src/main/java/net/rptools/maptool/server/MapToolServer.java b/src/main/java/net/rptools/maptool/server/MapToolServer.java index ef4729fb9b..dfa073c3ad 100644 --- a/src/main/java/net/rptools/maptool/server/MapToolServer.java +++ b/src/main/java/net/rptools/maptool/server/MapToolServer.java @@ -28,9 +28,12 @@ import net.rptools.clientserver.simple.DisconnectHandler; import net.rptools.clientserver.simple.MessageHandler; import net.rptools.clientserver.simple.connection.Connection; +import net.rptools.clientserver.simple.server.NilServer; import net.rptools.clientserver.simple.server.Router; import net.rptools.clientserver.simple.server.Server; import net.rptools.clientserver.simple.server.ServerObserver; +import net.rptools.clientserver.simple.server.SocketServer; +import net.rptools.clientserver.simple.server.WebRTCServer; import net.rptools.maptool.client.AppConstants; import net.rptools.maptool.client.MapTool; import net.rptools.maptool.client.MapToolRegistry; @@ -69,7 +72,7 @@ public enum State { } @Nonnull private final String serviceIdentifier; - private final Server server; + @Nonnull private final Server server; private final MessageHandler messageHandler; private final Router router; private final ServerConfig config; @@ -199,7 +202,11 @@ public String getName() { } public int getPort() { - return config == null ? -1 : config.getPort(); + return switch (server) { + case NilServer s -> -1; + case SocketServer s -> s.getPort(); + case WebRTCServer s -> -1; + }; } /** @@ -363,8 +370,8 @@ public void stop() { } // Close UPnP port mapping if used - if (useUPnP && config != null) { - int port = config.getPort(); + int port; + if (useUPnP && (port = getPort()) != -1) { UPnPUtil.closePort(port); } @@ -401,12 +408,13 @@ public void start() throws IOException { } // Use UPnP to open port in router - if (useUPnP && config != null) { + int port = getPort(); + if (useUPnP && port != -1) { MapTool.getFrame() .showFilledGlassPane( new StaticMessageDialog(I18N.getText("msg.info.server.upnp.discovering"))); try { - UPnPUtil.openPort(config.getPort()); + UPnPUtil.openPort(port); } finally { MapTool.getFrame().hideGlassPane(); } @@ -417,11 +425,11 @@ public void start() throws IOException { try { MapToolRegistry.RegisterResponse result = MapToolRegistry.getInstance() - .registerInstance(config.getServerName(), config.getPort(), config.getUseWebRTC()); + .registerInstance(config.getServerName(), port, config.getUseWebRTC()); if (result == MapToolRegistry.RegisterResponse.NAME_EXISTS) { MapTool.showError("msg.error.alreadyRegistered"); } else { - heartbeatThread = new HeartbeatThread(config.getPort()); + heartbeatThread = new HeartbeatThread(port); heartbeatThread.start(); } // TODO: I don't like this @@ -430,8 +438,8 @@ public void start() throws IOException { } } - if (serviceIdentifier != null && config != null) { - announcer = new ServiceAnnouncer(serviceIdentifier, config.getPort(), AppConstants.SERVICE_GROUP); + if (serviceIdentifier != null && port != -1) { + announcer = new ServiceAnnouncer(serviceIdentifier, port, AppConstants.SERVICE_GROUP); announcer.start(); } From a7f5f065b1cb62d80df58302f8d432a4cb06a179 Mon Sep 17 00:00:00 2001 From: Richard Maw Date: Fri, 27 Dec 2024 19:22:33 +0000 Subject: [PATCH 6/6] Allow serving on ephemeral ports by using port 0 --- src/main/java/net/rptools/maptool/client/AppActions.java | 2 +- .../resources/net/rptools/maptool/language/i18n.properties | 2 +- .../resources/net/rptools/maptool/language/i18n_cs.properties | 2 +- .../net/rptools/maptool/language/i18n_cs_CZ.properties | 2 +- .../resources/net/rptools/maptool/language/i18n_da.properties | 2 +- .../net/rptools/maptool/language/i18n_da_DK.properties | 2 +- .../resources/net/rptools/maptool/language/i18n_de.properties | 2 +- .../net/rptools/maptool/language/i18n_de_DE.properties | 2 +- .../resources/net/rptools/maptool/language/i18n_en.properties | 2 +- .../net/rptools/maptool/language/i18n_en_AU.properties | 2 +- .../net/rptools/maptool/language/i18n_en_GB.properties | 2 +- .../resources/net/rptools/maptool/language/i18n_es.properties | 2 +- .../net/rptools/maptool/language/i18n_es_ES.properties | 2 +- .../resources/net/rptools/maptool/language/i18n_fr.properties | 2 +- .../net/rptools/maptool/language/i18n_fr_FR.properties | 2 +- .../resources/net/rptools/maptool/language/i18n_it.properties | 2 +- .../net/rptools/maptool/language/i18n_it_IT.properties | 2 +- .../resources/net/rptools/maptool/language/i18n_ja.properties | 2 +- .../net/rptools/maptool/language/i18n_ja_JP.properties | 2 +- .../resources/net/rptools/maptool/language/i18n_nl.properties | 2 +- .../net/rptools/maptool/language/i18n_nl_NL.properties | 4 ++-- .../resources/net/rptools/maptool/language/i18n_pl.properties | 2 +- .../net/rptools/maptool/language/i18n_pl_PL.properties | 2 +- .../resources/net/rptools/maptool/language/i18n_pt.properties | 2 +- .../net/rptools/maptool/language/i18n_pt_BR.properties | 2 +- .../resources/net/rptools/maptool/language/i18n_ru.properties | 2 +- .../net/rptools/maptool/language/i18n_ru_RU.properties | 2 +- .../resources/net/rptools/maptool/language/i18n_si.properties | 2 +- .../net/rptools/maptool/language/i18n_si_LK.properties | 2 +- .../resources/net/rptools/maptool/language/i18n_sv.properties | 2 +- .../net/rptools/maptool/language/i18n_sv_SE.properties | 2 +- .../resources/net/rptools/maptool/language/i18n_uk.properties | 2 +- .../net/rptools/maptool/language/i18n_uk_UA.properties | 2 +- .../resources/net/rptools/maptool/language/i18n_zh.properties | 2 +- .../net/rptools/maptool/language/i18n_zh_CN.properties | 2 +- 35 files changed, 36 insertions(+), 36 deletions(-) diff --git a/src/main/java/net/rptools/maptool/client/AppActions.java b/src/main/java/net/rptools/maptool/client/AppActions.java index b4c9bb3f26..e64770cfc2 100644 --- a/src/main/java/net/rptools/maptool/client/AppActions.java +++ b/src/main/java/net/rptools/maptool/client/AppActions.java @@ -2209,7 +2209,7 @@ protected void executeAction() { StartServerDialogPreferences serverProps = new StartServerDialogPreferences(); // data retrieved from // Preferences.userRoot() - if (serverProps.getPort() == 0 || serverProps.getPort() > 65535) { + if (serverProps.getPort() > 65535) { MapTool.showError("ServerDialog.error.port.outOfRange"); return; } diff --git a/src/main/resources/net/rptools/maptool/language/i18n.properties b/src/main/resources/net/rptools/maptool/language/i18n.properties index 93e87b6dde..9d25a11103 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = You must enter a numeric port. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Port from RPTools registry is not numeric?! Web server bug? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Server "{0}" not found. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_cs.properties b/src/main/resources/net/rptools/maptool/language/i18n_cs.properties index 649beb40ca..dd25c827ac 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_cs.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_cs.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = You must enter a numeric port. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Port from RPTools registry is not numeric?\! Web server bug? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Server "{0}" not found. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_cs_CZ.properties b/src/main/resources/net/rptools/maptool/language/i18n_cs_CZ.properties index 59bab4cd95..0f309aec0c 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_cs_CZ.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_cs_CZ.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = You must enter a numeric port. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Port from RPTools registry is not numeric?\! Web server bug? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Server "{0}" not found. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_da.properties b/src/main/resources/net/rptools/maptool/language/i18n_da.properties index ae876d3184..f63f8c41ed 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_da.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_da.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = Du skal angive en numerisk port. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Port from RPTools registry is not numeric?\! Web server bug? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Serveren "{0}" blev ikke fundet. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_da_DK.properties b/src/main/resources/net/rptools/maptool/language/i18n_da_DK.properties index 3a244c69fb..2e656f9502 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_da_DK.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_da_DK.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = Du skal angive en numerisk port. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Port from RPTools registry is not numeric?\! Web server bug? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Serveren "{0}" blev ikke fundet. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_de.properties b/src/main/resources/net/rptools/maptool/language/i18n_de.properties index ca6af29ab6..e85ecfe6fb 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_de.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_de.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dunkel Preferences.combo.themes.filter.light = Hell ServerDialog.error.port = Du musst eine Zahl als Port angeben. -ServerDialog.error.port.outOfRange = Der Port-Bereich muss zwischen 1 und 65535 liegen. +ServerDialog.error.port.outOfRange = Der Port-Bereich muss zwischen 0 und 65535 liegen. ServerDialog.error.portNumberException = Port aus der RPTools Registrierung ist keine Zahl?\! Webserver Fehler? ServerDialog.error.server = Servernamen oder IP-Adresse eingeben. ServerDialog.error.serverNotFound = Server "{0}" nicht gefunden. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_de_DE.properties b/src/main/resources/net/rptools/maptool/language/i18n_de_DE.properties index 3fae5942fe..149dde1540 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_de_DE.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_de_DE.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Letzte Kampagne beim Start l Preferences.label.loadMRU.tooltip = Starte MapTool mit letzter verwendeter Kampagne ServerDialog.error.port = Du musst eine Zahl als Port angeben. -ServerDialog.error.port.outOfRange = Der Port-Bereich muss zwischen 1 und 65535 liegen. +ServerDialog.error.port.outOfRange = Der Port-Bereich muss zwischen 0 und 65535 liegen. ServerDialog.error.portNumberException = Port aus der RPTools Registrierung ist keine Zahl?\! Webserver Fehler? ServerDialog.error.server = Servernamen oder IP-Adresse eingeben. ServerDialog.error.serverNotFound = Server "{0}" nicht gefunden. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_en.properties b/src/main/resources/net/rptools/maptool/language/i18n_en.properties index 00142e12aa..c4057faf71 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_en.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_en.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = You must enter a numeric port. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Port from RPTools registry is not numeric?\! Web server bug? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Server "{0}" not found. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_en_AU.properties b/src/main/resources/net/rptools/maptool/language/i18n_en_AU.properties index 0d2f4aa346..9a3bbaf3ca 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_en_AU.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_en_AU.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = You must enter a numeric port. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Port from RPTools registry is not numeric?\! Web server bug? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Server "{0}" not found. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_en_GB.properties b/src/main/resources/net/rptools/maptool/language/i18n_en_GB.properties index b0c8953e93..3066bed3c9 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_en_GB.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_en_GB.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = You must enter a numeric port. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Port from RPTools registry is not numeric?\! Web server bug? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Server "{0}" not found. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_es.properties b/src/main/resources/net/rptools/maptool/language/i18n_es.properties index 73978e60ee..45e4b340b1 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_es.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_es.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = Debes ingresar un puerto numérico. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = El puerto desde el registro de RPTools no es numérico?\! Error de servidor web? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Servidor "{0}" no se encuentra. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_es_ES.properties b/src/main/resources/net/rptools/maptool/language/i18n_es_ES.properties index 129a1f29d0..8217129241 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_es_ES.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_es_ES.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = Debes ingresar un puerto numérico. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = El puerto desde el registro de RPTools no es numérico?\! Error de servidor web? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Servidor "{0}" no se encuentra. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_fr.properties b/src/main/resources/net/rptools/maptool/language/i18n_fr.properties index 4c3f041e2b..b41fc9c93e 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_fr.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_fr.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = Vous devez entrer un port numérique. -ServerDialog.error.port.outOfRange = Le numéro de port doit être compris entre 1 et 65535. +ServerDialog.error.port.outOfRange = Le numéro de port doit être compris entre 0 et 65535. ServerDialog.error.portNumberException = Le port issu du registre RPTools n'est pas numérique?\! Un bug du serveur Web? ServerDialog.error.server = Vous devez entrer un serveur ou une adresse IP. ServerDialog.error.serverNotFound = Serveur\: {0} introuvable. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_fr_FR.properties b/src/main/resources/net/rptools/maptool/language/i18n_fr_FR.properties index 0d7f68b00b..18d02555a5 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_fr_FR.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_fr_FR.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = Vous devez entrer un port numérique. -ServerDialog.error.port.outOfRange = Le numéro de port doit être compris entre 1 et 65535. +ServerDialog.error.port.outOfRange = Le numéro de port doit être compris entre 0 et 65535. ServerDialog.error.portNumberException = Le port issu du registre RPTools n'est pas numérique?\! Un bug du serveur Web? ServerDialog.error.server = Vous devez entrer un serveur ou une adresse IP. ServerDialog.error.serverNotFound = Serveur\: {0} introuvable. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_it.properties b/src/main/resources/net/rptools/maptool/language/i18n_it.properties index 4414534677..a5432e679c 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_it.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_it.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Scuro Preferences.combo.themes.filter.light = Chiaro ServerDialog.error.port = Devi inserire il numero di una porta. -ServerDialog.error.port.outOfRange = L'intervallo delle porte deve essere compreso tra 1 e 65535. +ServerDialog.error.port.outOfRange = L'intervallo delle porte deve essere compreso tra 0 e 65535. ServerDialog.error.portNumberException = La porta dal registro di RPTools non è numerica?\! Bug del server web? ServerDialog.error.server = Devi inserire un nome server o un indirizzo IP. ServerDialog.error.serverNotFound = Server "{0}" non trovato. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_it_IT.properties b/src/main/resources/net/rptools/maptool/language/i18n_it_IT.properties index 2d2890e523..0f305b203a 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_it_IT.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_it_IT.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = Devi inserire il numero di una porta. -ServerDialog.error.port.outOfRange = L'intervallo delle porte deve essere compreso tra 1 e 65535. +ServerDialog.error.port.outOfRange = L'intervallo delle porte deve essere compreso tra 0 e 65535. ServerDialog.error.portNumberException = La porta dal registro di RPTools non è numerica?\! Bug del server web? ServerDialog.error.server = Devi inserire un nome server o un indirizzo IP. ServerDialog.error.serverNotFound = Server "{0}" non trovato. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_ja.properties b/src/main/resources/net/rptools/maptool/language/i18n_ja.properties index fa96826cc0..4634c94656 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_ja.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_ja.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = 暗いテーマ Preferences.combo.themes.filter.light = 明るいテーマ ServerDialog.error.port = ポート番号を入力する必要があります。 -ServerDialog.error.port.outOfRange = ポート番号は1から65535の間でなければなりません。 +ServerDialog.error.port.outOfRange = ポート番号は0から65535の間でなければなりません。 ServerDialog.error.portNumberException = RPTools 登録所より取得したポート番号が数字ではない?!WEBサーバーのバグかもしれません。 ServerDialog.error.server = サーバー名またはIPアドレスを入力する必要があります。 ServerDialog.error.serverNotFound = サーバー『{0}』が見つかりません。 diff --git a/src/main/resources/net/rptools/maptool/language/i18n_ja_JP.properties b/src/main/resources/net/rptools/maptool/language/i18n_ja_JP.properties index c3888d0fb2..33826551ae 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_ja_JP.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_ja_JP.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = 起動時に最後のキャ Preferences.label.loadMRU.tooltip = 最後に使用したキャンペーンと共に MapTool を起動する ServerDialog.error.port = ポート番号を入力する必要があります。 -ServerDialog.error.port.outOfRange = ポート番号は1から65535の間でなければなりません。 +ServerDialog.error.port.outOfRange = ポート番号は0から65535の間でなければなりません。 ServerDialog.error.portNumberException = RPTools 登録所より取得したポート番号が数字ではない?!WEBサーバーのバグかもしれません。 ServerDialog.error.server = サーバー名またはIPアドレスを入力する必要があります。 ServerDialog.error.serverNotFound = サーバー『{0}』が見つかりません。 diff --git a/src/main/resources/net/rptools/maptool/language/i18n_nl.properties b/src/main/resources/net/rptools/maptool/language/i18n_nl.properties index 887c95b3f3..61b63a0303 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_nl.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_nl.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = U moet een getal invullen voor deze poort. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Poort van RPTools register is niet numeriek?\! Webserver bug? ServerDialog.error.server = U moet een servernaam of IP-adres invoeren. ServerDialog.error.serverNotFound = Server "{0}" niet gevonden. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_nl_NL.properties b/src/main/resources/net/rptools/maptool/language/i18n_nl_NL.properties index c320e127a1..1a55537b22 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_nl_NL.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_nl_NL.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Laad vorige campagne bij ops Preferences.label.loadMRU.tooltip = Start MapTool met de campagne die u het laatst gebruikte ServerDialog.error.port = U moet een getal invullen voor deze poort. -ServerDialog.error.port.outOfRange = Poort moet tussen 1 en 65535 liggen. +ServerDialog.error.port.outOfRange = Poort moet tussen 0 en 65535 liggen. ServerDialog.error.portNumberException = Poort van RPTools register is niet numeriek?\! Webserver bug? ServerDialog.error.server = U moet een servernaam of IP-adres invoeren. ServerDialog.error.serverNotFound = Server "{0}" niet gevonden. @@ -2836,4 +2836,4 @@ advanced.roll.propertyNotNumber = Property {0} is not a number. advanced.roll.noTokenInContext = No token in context. advanced.roll.inputNotNumber = Input {0} is not a number. Preferences.label.tokens.stack.hide=Hide Token stack indicator -Preferences.label.tokens.stack.hide.tooltip=Token Layer stack inidicator will be hidden \ No newline at end of file +Preferences.label.tokens.stack.hide.tooltip=Token Layer stack inidicator will be hidden diff --git a/src/main/resources/net/rptools/maptool/language/i18n_pl.properties b/src/main/resources/net/rptools/maptool/language/i18n_pl.properties index 3526e92446..ad00ba14de 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_pl.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_pl.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Ciemny Preferences.combo.themes.filter.light = Jasny ServerDialog.error.port = Musisz wprowadzić wartość numeryczną portu. -ServerDialog.error.port.outOfRange = Zakres portów musi wynosić od 1 do 65535. +ServerDialog.error.port.outOfRange = Zakres portów musi wynosić od 0 do 65535. ServerDialog.error.portNumberException = Port z rejestru RPTools nie jest liczbą?\! Błąd serwera? ServerDialog.error.server = Musisz wprowadzić nazwę serwera lub adres IP. ServerDialog.error.serverNotFound = Serwer „{0}” nie odnaleziony. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_pl_PL.properties b/src/main/resources/net/rptools/maptool/language/i18n_pl_PL.properties index a291b0b959..17ecf99e6c 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_pl_PL.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_pl_PL.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = Musisz wprowadzić wartość numeryczną portu. -ServerDialog.error.port.outOfRange = Zakres portów musi wynosić od 1 do 65535. +ServerDialog.error.port.outOfRange = Zakres portów musi wynosić od 0 do 65535. ServerDialog.error.portNumberException = Port z rejestru RPTools nie jest liczbą?\! Błąd serwera? ServerDialog.error.server = Musisz wprowadzić nazwę serwera lub adres IP. ServerDialog.error.serverNotFound = Serwer „{0}” nie odnaleziony. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_pt.properties b/src/main/resources/net/rptools/maptool/language/i18n_pt.properties index fd4b60ce42..4f4af1213b 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_pt.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_pt.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = Você deve digitar uma porta numérica. -ServerDialog.error.port.outOfRange = O intervalo de portas deve estar entre 1 e 65535. +ServerDialog.error.port.outOfRange = O intervalo de portas deve estar entre 0 e 65535. ServerDialog.error.portNumberException = Porta do registro RPTools não é numérico?\! Erro no servidor web? ServerDialog.error.server = Você deve digitar um nome de servidor ou endereço IP. ServerDialog.error.serverNotFound = Servidor "{0}" não encontrado. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_pt_BR.properties b/src/main/resources/net/rptools/maptool/language/i18n_pt_BR.properties index f7fa41e74f..0c905944ff 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_pt_BR.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_pt_BR.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = Você deve digitar uma porta numérica. -ServerDialog.error.port.outOfRange = O intervalo de portas deve estar entre 1 e 65535. +ServerDialog.error.port.outOfRange = O intervalo de portas deve estar entre 0 e 65535. ServerDialog.error.portNumberException = Porta do registro RPTools não é numérico?\! Erro no servidor web? ServerDialog.error.server = Você deve digitar um nome de servidor ou endereço IP. ServerDialog.error.serverNotFound = Servidor "{0}" não encontrado. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_ru.properties b/src/main/resources/net/rptools/maptool/language/i18n_ru.properties index 55a4c68fdc..5272efff6d 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_ru.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_ru.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = Вы должны ввести номер порта. -ServerDialog.error.port.outOfRange = Диапазон портов должен быть от 1 до 65535. +ServerDialog.error.port.outOfRange = Диапазон портов должен быть от 0 до 65535. ServerDialog.error.portNumberException = Порт из реестра RPTools не числовой? Ошибка веб-сервера? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Сервер\: {0} не найден. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_ru_RU.properties b/src/main/resources/net/rptools/maptool/language/i18n_ru_RU.properties index 5f566f0951..2f0c9db0ff 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_ru_RU.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_ru_RU.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = Вы должны ввести номер порта. -ServerDialog.error.port.outOfRange = Диапазон портов должен быть от 1 до 65535. +ServerDialog.error.port.outOfRange = Диапазон портов должен быть от 0 до 65535. ServerDialog.error.portNumberException = Порт из реестра RPTools не числовой? Ошибка веб-сервера? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Сервер\: {0} не найден. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_si.properties b/src/main/resources/net/rptools/maptool/language/i18n_si.properties index 756327bba4..f6505863cc 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_si.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_si.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = You must enter a numeric port. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Port from RPTools registry is not numeric?\! Web server bug? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Server "{0}" not found. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_si_LK.properties b/src/main/resources/net/rptools/maptool/language/i18n_si_LK.properties index 04b94040f0..d321fbbacc 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_si_LK.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_si_LK.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = You must enter a numeric port. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Port from RPTools registry is not numeric?\! Web server bug? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Server "{0}" not found. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_sv.properties b/src/main/resources/net/rptools/maptool/language/i18n_sv.properties index cfb14cf531..0f6315bb23 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_sv.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_sv.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = Du måste ange en numerisk port. -ServerDialog.error.port.outOfRange = Port måste vara mellan 1 och 65535. +ServerDialog.error.port.outOfRange = Port måste vara mellan 0 och 65535. ServerDialog.error.portNumberException = Port från RPTools register är inte numerisk ?\! Webbserver bugg? ServerDialog.error.server = Du måste ange ett servernamn eller en IP-adress. ServerDialog.error.serverNotFound = Server "{0}" hittades inte. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_sv_SE.properties b/src/main/resources/net/rptools/maptool/language/i18n_sv_SE.properties index 640d0c6d96..9a78dc3550 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_sv_SE.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_sv_SE.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = Du måste ange en numerisk port. -ServerDialog.error.port.outOfRange = Port måste vara mellan 1 och 65535. +ServerDialog.error.port.outOfRange = Port måste vara mellan 0 och 65535. ServerDialog.error.portNumberException = Port från RPTools register är inte numerisk ?\! Webbserver bugg? ServerDialog.error.server = Du måste ange ett servernamn eller en IP-adress. ServerDialog.error.serverNotFound = Server "{0}" hittades inte. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_uk.properties b/src/main/resources/net/rptools/maptool/language/i18n_uk.properties index 9ce4d742f2..f18d166ce4 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_uk.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_uk.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = Необхідно ввести номер порту. -ServerDialog.error.port.outOfRange = Порт має бути у діапазоні від 1 до 65535. +ServerDialog.error.port.outOfRange = Порт має бути у діапазоні від 0 до 65535. ServerDialog.error.portNumberException = Порт з реєстру RPTools не є цифровим?\! Помилка веб-сервера? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Сервер "{0}" не знайдено. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_uk_UA.properties b/src/main/resources/net/rptools/maptool/language/i18n_uk_UA.properties index 02b5b061b1..82af07c480 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_uk_UA.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_uk_UA.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = Необхідно ввести номер порту. -ServerDialog.error.port.outOfRange = Порт має бути у діапазоні від 1 до 65535. +ServerDialog.error.port.outOfRange = Порт має бути у діапазоні від 0 до 65535. ServerDialog.error.portNumberException = Порт з реєстру RPTools не є цифровим?\! Помилка веб-сервера? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Сервер "{0}" не знайдено. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_zh.properties b/src/main/resources/net/rptools/maptool/language/i18n_zh.properties index 7ad427eff6..8dbc9852e1 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_zh.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_zh.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = 你必须输入端口数值。 -ServerDialog.error.port.outOfRange = 端口范围必须介于 1 到 65535 之间。 +ServerDialog.error.port.outOfRange = 端口范围必须介于 0 到 65535 之间。 ServerDialog.error.portNumberException = RPTools注册端口不是数值?!网络服务器bug? ServerDialog.error.server = 您必须输入服务器名称或IP地址。 ServerDialog.error.serverNotFound = 服务器"{0}"未找到。 diff --git a/src/main/resources/net/rptools/maptool/language/i18n_zh_CN.properties b/src/main/resources/net/rptools/maptool/language/i18n_zh_CN.properties index 9626aa8a08..60f22bdebf 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_zh_CN.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_zh_CN.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = 你必须输入端口数值。 -ServerDialog.error.port.outOfRange = 端口范围必须介于 1 到 65535 之间。 +ServerDialog.error.port.outOfRange = 端口范围必须介于 0 到 65535 之间。 ServerDialog.error.portNumberException = RPTools注册端口不是数值?!网络服务器bug? ServerDialog.error.server = 您必须输入服务器名称或IP地址。 ServerDialog.error.serverNotFound = 服务器"{0}"未找到。