aboutsummaryrefslogtreecommitdiff
path: root/game/src/Game/GlobalClass/Localisation.gd
diff options
context:
space:
mode:
author Spartan322 <Megacake1234@gmail.com>2023-07-06 22:28:55 +0200
committer Spartan322 <Megacake1234@gmail.com>2023-07-09 01:24:10 +0200
commit86bee7b44c7cc7adaef8cdf441667a99223dd98a (patch)
tree5004d04dbe607dedf273afdee7dff783f4d980ed /game/src/Game/GlobalClass/Localisation.gd
parent5838c2508682bc3f6e35e44056f9ba229bca4571 (diff)
Add GameLoader Autoload to handle global loading data
Remove GameDebug, Localization, and ShaderManager from Events.gd Renamed OptionsSingleton class_name to OptionsEventsObject Add Events.Loader to handle Loader events (which are global signals) Make GameDebug singleton with static functions and property Make Localization functions static Move ShaderManager variable to GameLoader Move Events._define_filepaths_dict to GameLoader.define_filepaths_dict Move game initialization from LoadingScreen.gd and Events.gd to GameStart.gd Attach GameStart.gd to GameStart.tscn root Make LoadingScreen generalized and so it is reusable Remove class_name from LoaderingScreen.gd
Diffstat (limited to 'game/src/Game/GlobalClass/Localisation.gd')
-rw-r--r--game/src/Game/GlobalClass/Localisation.gd34
1 files changed, 34 insertions, 0 deletions
diff --git a/game/src/Game/GlobalClass/Localisation.gd b/game/src/Game/GlobalClass/Localisation.gd
new file mode 100644
index 0000000..946dc50
--- /dev/null
+++ b/game/src/Game/GlobalClass/Localisation.gd
@@ -0,0 +1,34 @@
+class_name Localisation
+extends RefCounted
+
+# REQUIREMENTS
+# * SS-59, SS-60, SS-61
+static func get_default_locale() -> String:
+ var locales := TranslationServer.get_loaded_locales()
+ var default_locale := OS.get_locale()
+ if default_locale in locales:
+ return default_locale
+ var default_language := OS.get_locale_language()
+ for locale in locales:
+ if locale.begins_with(default_language):
+ return default_language
+ return ProjectSettings.get_setting("internationalization/locale/fallback", "en_GB")
+
+static func load_localisation(dir_path : String) -> void:
+ if LoadLocalisation.load_localisation_dir(dir_path) != OK:
+ push_error("Error loading localisation directory: ", dir_path)
+ var loaded_locales : PackedStringArray = TranslationServer.get_loaded_locales()
+ print("Loaded ", loaded_locales.size(), " locales: ", loaded_locales)
+
+# REQUIREMENTS
+# * SS-57
+# * FS-17
+static func initialize():
+ var localisation_dir_path : String = ProjectSettings.get_setting("internationalization/locale/localisation_path", "")
+ if localisation_dir_path.is_empty():
+ push_error("internationalization/locale/localisation_path setting is empty!")
+ else:
+ Localisation.load_localisation(localisation_dir_path)
+
+static func tr_number(num) -> String:
+ return TextServerManager.get_primary_interface().format_number(str(num))