From 050c190237d276ad89db22207728c41266e825f3 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Sun, 15 May 2022 04:16:57 -0500 Subject: [PATCH] Fix a lot of client locale stuff --- scripts/client/locale.js | 40 +++++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/scripts/client/locale.js b/scripts/client/locale.js index d2cd94da..f8218340 100644 --- a/scripts/client/locale.js +++ b/scripts/client/locale.js @@ -8,11 +8,15 @@ // =========================================================================== function getLocaleString(stringName, ...args) { - if(typeof getServerData().localeStrings[stringName] == undefined) { + if(typeof getServerData().localeStrings[localLocaleId][stringName] == undefined) { return ""; } - let tempString = getServerData().localeStrings[stringName]; + let tempString = getServerData().localeStrings[localLocaleId][stringName]; + + if(tempString == "" || tempString == null || tempString == undefined) { + return ""; + } for(let i = 1; i <= args.length; i++) { tempString = tempString.replace(`{${i}}`, args[i-1]); @@ -23,18 +27,36 @@ function getLocaleString(stringName, ...args) { // =========================================================================== -function receiveLocaleStringFromServer(stringName, stringValue) { - logToConsole(LOG_INFO, `[VRR.Locale]: Received locale string "${stringName}" from server (${stringValue})`); - getServerData().localeStrings[stringName] = stringValue; +function getAvailableLocaleOptions() { + return getServerData().localeOptions.filter(localeOption => localeOption.requiresUnicode == false); } // =========================================================================== -function receiveLocaleStringsFromServer(strings) { - for(let i in strings) { - let stringName = strings[i][0]; - getServerData().localeStrings[stringName] = strings[i][1]; +function loadLocaleConfig() { + let configFile = loadTextFile("config/client/locale.json"); + getServerData().localeOptions = JSON.parse(configFile); +} + +// =========================================================================== + +function loadAllLocaleStrings() { + let localeOptions = getServerData().localeOptions; + for(let i in localeOptions) { + logToConsole(LOG_INFO, `[VRR.Locale] Loading locale strings for ${localeOptions[i].englishName} (${i})`); + let localeFile = loadTextFile(`locale/${localeOptions[i].stringsFile}`); + let localeData = JSON.parse(localeFile); + + getServerData().localeStrings[i] = localeData; } } +// =========================================================================== + +function setLocale(tempLocaleId) { + logToConsole(LOG_DEBUG, `[VRR.Locale] Setting locale to ${tempLocaleId} (${getServerData().localeOptions[tempLocaleId].englishName})`); + localLocaleId = tempLocaleId; + resetGUIStrings(); +} + // =========================================================================== \ No newline at end of file