diff options
Diffstat (limited to 'client')
| -rw-r--r-- | client/global.gd | 29 | 
1 files changed, 19 insertions, 10 deletions
| diff --git a/client/global.gd b/client/global.gd index c7c9d906..d6d9973f 100644 --- a/client/global.gd +++ b/client/global.gd @@ -42,7 +42,7 @@ var using_joypad := false  var using_touch := false  var default_settings := { -	"language": DropdownSetting.new(tr("Language"), 0, languages), +	"language": DropdownSetting.new(tr("Language"), 0, languages.map(func (e): return e[1])),  	"master_volume": RangeSetting.new(tr("Master Volume"), 0, -30, 0),  	"music_volume": RangeSetting.new(tr("Music Volume"), 0, -30, 0),  	"sfx_volume": RangeSetting.new(tr("SFX Volume"), 0, -30, 0), @@ -195,13 +195,9 @@ func apply_settings():  	emit_signal("settings_changed")  func update_language(): -	var lang_idx: int = get_setting("language") -	var lang = languages[lang_idx] - -	if lang_idx != 0: # 0 is system language -		TranslationServer.set_locale(lang) -	else: -		TranslationServer.set_locale(OS.get_locale_language()) +	var language = languages[get_setting("language")][0] +	if language == "system": language = OS.get_locale_language() +	TranslationServer.set_locale(language)  func update_fullscreen():  	match get_setting("fullscreen"): @@ -340,7 +336,20 @@ func find_menu(node: Node) -> Menu:  	if node is Menu: return node  	else: return find_menu(node.get_parent()) +const NATIVE_LANGUAGE_NAMES = { +	"en": "English", +	"de": "Deutsch", +	"fr": "Français", +	"es": "Español", +	"ja": "日本語", +	"he": "עִברִית", +	"tr": "Türkçe", +	"fi": "suomen", +} + +func language_display(l: String): return "%s (%s)" % [NATIVE_LANGUAGE_NAMES[l], l]  func language_array() -> Array: -	var lang: Array = [tr("System default"), "en"] -	lang.append_array(TranslationServer.get_loaded_locales()) +	var lang: Array = [["system", tr("System default")], ["en", language_display("en")]] +	for l in TranslationServer.get_loaded_locales(): +		lang.append([l, language_display(l)])  	return lang | 
