Browse Source

Main: Load translations and remaps before scene types

This ensures that settings like `gui/theme/custom_font` handle resource
remappings properly, as they load resources in `register_scene_types()`.

Path remaps used to be done before loading scene types in early Godot
versions (as hinted by the "Load Remaps" comment just before "Load Scene
Types") but this was broken when developing new localization features.

Fixes #17640.
Rémi Verschelde 4 years ago
parent
commit
bb5dcb6892
1 changed files with 11 additions and 14 deletions
  1. 11 14
      main/main.cpp

+ 11 - 14
main/main.cpp

@@ -1634,7 +1634,7 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
 
 
 	register_server_types();
 	register_server_types();
 
 
-	MAIN_PRINT("Main: Load Remaps");
+	MAIN_PRINT("Main: Load Boot Image");
 
 
 	Color clear = GLOBAL_DEF("rendering/environment/default_clear_color", Color(0.3, 0.3, 0.3));
 	Color clear = GLOBAL_DEF("rendering/environment/default_clear_color", Color(0.3, 0.3, 0.3));
 	RenderingServer::get_singleton()->set_default_clear_color(clear);
 	RenderingServer::get_singleton()->set_default_clear_color(clear);
@@ -1690,7 +1690,6 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
 	MAIN_PRINT("Main: DCC");
 	MAIN_PRINT("Main: DCC");
 	RenderingServer::get_singleton()->set_default_clear_color(
 	RenderingServer::get_singleton()->set_default_clear_color(
 			GLOBAL_DEF("rendering/environment/default_clear_color", Color(0.3, 0.3, 0.3)));
 			GLOBAL_DEF("rendering/environment/default_clear_color", Color(0.3, 0.3, 0.3)));
-	MAIN_PRINT("Main: END");
 
 
 	GLOBAL_DEF("application/config/icon", String());
 	GLOBAL_DEF("application/config/icon", String());
 	ProjectSettings::get_singleton()->set_custom_property_info("application/config/icon",
 	ProjectSettings::get_singleton()->set_custom_property_info("application/config/icon",
@@ -1728,7 +1727,16 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
 		id->set_emulate_mouse_from_touch(bool(GLOBAL_DEF("input_devices/pointing/emulate_mouse_from_touch", true)));
 		id->set_emulate_mouse_from_touch(bool(GLOBAL_DEF("input_devices/pointing/emulate_mouse_from_touch", true)));
 	}
 	}
 
 
-	MAIN_PRINT("Main: Load Remaps");
+	MAIN_PRINT("Main: Load Translations and Remaps");
+
+	translation_server->setup(); //register translations, load them, etc.
+	if (locale != "") {
+		translation_server->set_locale(locale);
+	}
+	translation_server->load_translations();
+	ResourceLoader::load_translation_remaps(); //load remaps for resources
+
+	ResourceLoader::load_path_remaps();
 
 
 	MAIN_PRINT("Main: Load Scene Types");
 	MAIN_PRINT("Main: Load Scene Types");
 
 
@@ -1774,17 +1782,6 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
 	// This loads global classes, so it must happen before custom loaders and savers are registered
 	// This loads global classes, so it must happen before custom loaders and savers are registered
 	ScriptServer::init_languages();
 	ScriptServer::init_languages();
 
 
-	MAIN_PRINT("Main: Load Translations");
-
-	translation_server->setup(); //register translations, load them, etc.
-	if (locale != "") {
-		translation_server->set_locale(locale);
-	}
-	translation_server->load_translations();
-	ResourceLoader::load_translation_remaps(); //load remaps for resources
-
-	ResourceLoader::load_path_remaps();
-
 	audio_server->load_default_bus_layout();
 	audio_server->load_default_bus_layout();
 
 
 	if (use_debug_profiler && EngineDebugger::is_active()) {
 	if (use_debug_profiler && EngineDebugger::is_active()) {