mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-12 07:35:31 +01:00
Completes customizable language keys, now with savings
This commit is contained in:
@@ -46,6 +46,14 @@
|
||||
for(var/prefix in pref.language_prefixes)
|
||||
if(prefix in forbidden_prefixes)
|
||||
pref.language_prefixes -= prefix
|
||||
if(isnull(pref.language_custom_keys))
|
||||
pref.language_custom_keys = list()
|
||||
var/datum/species/S = GLOB.all_species[pref.species]
|
||||
for(var/key in pref.language_custom_keys)
|
||||
if(!pref.language_custom_keys[key])
|
||||
pref.language_custom_keys.Remove(key)
|
||||
if(!((pref.language_custom_keys[key] == S.language) || (pref.language_custom_keys[key] == S.default_language && S.default_language != S.language) || (pref.language_custom_keys[key] in pref.alternate_languages)))
|
||||
pref.language_custom_keys.Remove(key)
|
||||
|
||||
/datum/category_item/player_setup_item/general/language/content()
|
||||
. += "<b>Languages</b><br>"
|
||||
@@ -54,14 +62,14 @@
|
||||
testing("LANGSANI: Truncated [pref.client]'s character [pref.real_name || "-name not yet loaded-"] language list because it was too long (len: [pref.alternate_languages.len], allowed: [S.num_alternate_languages])")
|
||||
pref.alternate_languages.len = (S.num_alternate_languages + pref.extra_languages) // Truncate to allowed length
|
||||
if(S.language)
|
||||
. += "- [S.language]<br>"
|
||||
. += "- [S.language] - <a href='?src=\ref[src];set_custom_key=[S.language]'>Set Custom Key</a><br>"
|
||||
if(S.default_language && S.default_language != S.language)
|
||||
. += "- [S.default_language]<br>"
|
||||
. += "- [S.default_language] - <a href='?src=\ref[src];set_custom_key=[S.default_language]'>Set Custom Key</a><br>"
|
||||
if(S.num_alternate_languages + pref.extra_languages)
|
||||
if(pref.alternate_languages.len)
|
||||
for(var/i = 1 to pref.alternate_languages.len)
|
||||
var/lang = pref.alternate_languages[i]
|
||||
. += "- [lang] - <a href='?src=\ref[src];remove_language=[i]'>remove</a><br>"
|
||||
. += "- [lang] - <a href='?src=\ref[src];remove_language=[i]'>remove</a> - <a href='?src=\ref[src];set_custom_key=[lang]'>Set Custom Key</a><br>"
|
||||
|
||||
if(pref.alternate_languages.len < (S.num_alternate_languages + pref.extra_languages))
|
||||
. += "- <a href='?src=\ref[src];add_language=1'>add</a> ([(S.num_alternate_languages + pref.extra_languages) - pref.alternate_languages.len] remaining)<br>"
|
||||
@@ -129,4 +137,32 @@
|
||||
pref.language_prefixes = config.language_prefixes.Copy()
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["set_custom_key"])
|
||||
var/lang = href_list["set_custom_key"]
|
||||
if(!lang in GLOB.all_languages)
|
||||
return TOPIC_REFRESH
|
||||
|
||||
var/oldkey = ""
|
||||
for(var/key in pref.language_custom_keys)
|
||||
if(pref.language_custom_keys[key] == lang)
|
||||
oldkey = key
|
||||
break
|
||||
|
||||
var/char = tgui_input_text(user, "Input a language key for [lang]. Input a single space to reset.", "Language Custom Key", oldkey)
|
||||
if(length(char) != 1)
|
||||
return TOPIC_REFRESH
|
||||
else if(char == " ")
|
||||
for(var/key in pref.language_custom_keys)
|
||||
if(pref.language_custom_keys[key] == lang)
|
||||
pref.language_custom_keys -= key
|
||||
break
|
||||
else if(contains_az09(char))
|
||||
if(!char in pref.language_custom_keys)
|
||||
pref.language_custom_keys += char
|
||||
pref.language_custom_keys[char] = lang
|
||||
else
|
||||
tgui_alert_async(user, "Improper language key. Rejected.", "Error")
|
||||
|
||||
return TOPIC_REFRESH
|
||||
|
||||
return ..()
|
||||
|
||||
Reference in New Issue
Block a user