diff options
author | George L. Albany <Megacake1234@gmail.com> | 2023-07-09 02:14:54 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-09 02:14:54 +0200 |
commit | 1d8accc1ca6b30120732c56233e5d74e860de1bb (patch) | |
tree | 97c167b06a8b2f2b868107414b5676ccb5fcb53b /game/src/Game/GlobalClass/Localisation.gd | |
parent | d05bff0c40a482a9bb44877fe76b1e0efb2e1a68 (diff) | |
parent | 86bee7b44c7cc7adaef8cdf441667a99223dd98a (diff) |
Merge pull request #135 from Spartan322/generalize/loading-and-events
Diffstat (limited to 'game/src/Game/GlobalClass/Localisation.gd')
-rw-r--r-- | game/src/Game/GlobalClass/Localisation.gd | 34 |
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)) |