|
@@ -1282,9 +1282,8 @@ bool Game::createSingleplayerServer(const std::string &map_dir,
|
|
|
}
|
|
|
|
|
|
if (bind_addr.isIPv6() && !g_settings->getBool("enable_ipv6")) {
|
|
|
- *error_message = "Unable to listen on " +
|
|
|
- bind_addr.serializeString() +
|
|
|
- " because IPv6 is disabled";
|
|
|
+ *error_message = fmtgettext("Unable to listen on %s because IPv6 is disabled",
|
|
|
+ bind_addr.serializeString().c_str());
|
|
|
errorstream << *error_message << std::endl;
|
|
|
return false;
|
|
|
}
|
|
@@ -1317,7 +1316,7 @@ bool Game::createClient(const GameStartData &start_data)
|
|
|
if (!could_connect) {
|
|
|
if (error_message->empty() && !connect_aborted) {
|
|
|
// Should not happen if error messages are set properly
|
|
|
- *error_message = "Connection failed for unknown reason";
|
|
|
+ *error_message = gettext("Connection failed for unknown reason");
|
|
|
errorstream << *error_message << std::endl;
|
|
|
}
|
|
|
return false;
|
|
@@ -1326,7 +1325,7 @@ bool Game::createClient(const GameStartData &start_data)
|
|
|
if (!getServerContent(&connect_aborted)) {
|
|
|
if (error_message->empty() && !connect_aborted) {
|
|
|
// Should not happen if error messages are set properly
|
|
|
- *error_message = "Connection failed for unknown reason";
|
|
|
+ *error_message = gettext("Connection failed for unknown reason");
|
|
|
errorstream << *error_message << std::endl;
|
|
|
}
|
|
|
return false;
|
|
@@ -1342,8 +1341,8 @@ bool Game::createClient(const GameStartData &start_data)
|
|
|
/* Camera
|
|
|
*/
|
|
|
camera = new Camera(*draw_control, client, m_rendering_engine);
|
|
|
- if (!camera->successfullyCreated(*error_message))
|
|
|
- return false;
|
|
|
+ if (client->modsLoaded())
|
|
|
+ client->getScript()->on_camera_ready(camera);
|
|
|
client->setCamera(camera);
|
|
|
|
|
|
/* Clouds
|
|
@@ -1456,15 +1455,14 @@ bool Game::connectToServer(const GameStartData &start_data,
|
|
|
local_server_mode = true;
|
|
|
}
|
|
|
} catch (ResolveError &e) {
|
|
|
- *error_message = std::string("Couldn't resolve address: ") + e.what();
|
|
|
+ *error_message = fmtgettext("Couldn't resolve address: %s", e.what());
|
|
|
+
|
|
|
errorstream << *error_message << std::endl;
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
if (connect_address.isIPv6() && !g_settings->getBool("enable_ipv6")) {
|
|
|
- *error_message = "Unable to connect to " +
|
|
|
- connect_address.serializeString() +
|
|
|
- " because IPv6 is disabled";
|
|
|
+ *error_message = fmtgettext("Unable to connect to %s because IPv6 is disabled", connect_address.serializeString().c_str());
|
|
|
errorstream << *error_message << std::endl;
|
|
|
return false;
|
|
|
}
|
|
@@ -1518,8 +1516,7 @@ bool Game::connectToServer(const GameStartData &start_data,
|
|
|
break;
|
|
|
|
|
|
if (client->accessDenied()) {
|
|
|
- *error_message = "Access denied. Reason: "
|
|
|
- + client->accessDeniedReason();
|
|
|
+ *error_message = fmtgettext("Access denied. Reason: %s", client->accessDeniedReason().c_str());
|
|
|
*reconnect_requested = client->reconnectRequested();
|
|
|
errorstream << *error_message << std::endl;
|
|
|
break;
|
|
@@ -1545,7 +1542,7 @@ bool Game::connectToServer(const GameStartData &start_data,
|
|
|
wait_time += dtime;
|
|
|
// Only time out if we aren't waiting for the server we started
|
|
|
if (!start_data.address.empty() && wait_time > 10) {
|
|
|
- *error_message = "Connection timed out.";
|
|
|
+ *error_message = gettext("Connection timed out.");
|
|
|
errorstream << *error_message << std::endl;
|
|
|
break;
|
|
|
}
|
|
@@ -1593,7 +1590,7 @@ bool Game::getServerContent(bool *aborted)
|
|
|
return false;
|
|
|
|
|
|
if (client->getState() < LC_Init) {
|
|
|
- *error_message = "Client disconnected";
|
|
|
+ *error_message = gettext("Client disconnected");
|
|
|
errorstream << *error_message << std::endl;
|
|
|
return false;
|
|
|
}
|
|
@@ -1675,8 +1672,7 @@ inline void Game::updateInteractTimers(f32 dtime)
|
|
|
inline bool Game::checkConnection()
|
|
|
{
|
|
|
if (client->accessDenied()) {
|
|
|
- *error_message = "Access denied. Reason: "
|
|
|
- + client->accessDeniedReason();
|
|
|
+ *error_message = fmtgettext("Access denied. Reason: %s", client->accessDeniedReason().c_str());
|
|
|
*reconnect_requested = client->reconnectRequested();
|
|
|
errorstream << *error_message << std::endl;
|
|
|
return false;
|
|
@@ -4351,14 +4347,15 @@ void the_game(bool *kill,
|
|
|
}
|
|
|
|
|
|
} catch (SerializationError &e) {
|
|
|
- error_message = std::string("A serialization error occurred:\n")
|
|
|
- + e.what() + "\n\nThe server is probably "
|
|
|
- " running a different version of " PROJECT_NAME_C ".";
|
|
|
+ const std::string ver_err = fmtgettext("The server is probably running a different version of %s.", PROJECT_NAME_C);
|
|
|
+ error_message = strgettext("A serialization error occurred:") +"\n"
|
|
|
+ + e.what() + "\n\n" + ver_err;
|
|
|
errorstream << error_message << std::endl;
|
|
|
} catch (ServerError &e) {
|
|
|
error_message = e.what();
|
|
|
errorstream << "ServerError: " << error_message << std::endl;
|
|
|
} catch (ModError &e) {
|
|
|
+ // DO NOT TRANSLATE the `ModError`, it's used by ui.lua
|
|
|
error_message = std::string("ModError: ") + e.what() +
|
|
|
strgettext("\nCheck debug.txt for details.");
|
|
|
errorstream << error_message << std::endl;
|