using System.Collections.Generic; using I2.Loc; using UnityEngine; public class LanguageManager : MonoBehaviour { private static LanguageManager instance; public List languagesList; public string currentLanguage; public static LanguageManager Instance => instance; private void Awake() { if (instance == null) { instance = this; Object.DontDestroyOnLoad(base.gameObject); } else if (instance != this) { Object.Destroy(base.gameObject); } } private void Start() { languagesList = new List(); languagesList = LocalizationManager.GetAllLanguages(); currentLanguage = LocalizationManager.CurrentLanguage; if (!PlayerPrefs.HasKey("IsSetLanguageManual")) { switch (Application.systemLanguage) { case SystemLanguage.Polish: SetLanguage(0); break; case SystemLanguage.English: SetLanguage(1); break; case SystemLanguage.Ukrainian: SetLanguage(2); break; case SystemLanguage.Russian: SetLanguage(3); break; case SystemLanguage.German: SetLanguage(4); break; case SystemLanguage.French: SetLanguage(5); break; case SystemLanguage.Italian: SetLanguage(6); break; case SystemLanguage.Portuguese: SetLanguage(7); break; case SystemLanguage.Spanish: SetLanguage(8); break; case SystemLanguage.Chinese: case SystemLanguage.ChineseSimplified: case SystemLanguage.ChineseTraditional: SetLanguage(9); break; case SystemLanguage.Japanese: SetLanguage(10); break; case SystemLanguage.Turkish: SetLanguage(11); break; case SystemLanguage.Dutch: SetLanguage(12); break; case SystemLanguage.Korean: SetLanguage(13); break; default: SetLanguage(1); break; } } } public void SetLanguage(int languageIndex) { LocalizationManager.CurrentLanguage = languagesList[languageIndex]; currentLanguage = languagesList[languageIndex]; Debug.Log("Set language: " + currentLanguage); } public string GetText(string key) { List list = new List(); list = LocalizationManager.GetCategories(); for (int i = 0; i < list.Count; i++) { string text = ""; text = ((!(list[i] == "Default")) ? LocalizationManager.GetTranslation(list[i] + "/" + key) : LocalizationManager.GetTranslation(key)); if (!string.IsNullOrEmpty(text)) { return text; } } return ""; } public string GetMonthName(int nr) { return nr switch { 1 => GetText("JANUARY"), 2 => GetText("FEBRUARY"), 3 => GetText("MARCH"), 4 => GetText("APRIL"), 5 => GetText("MAY"), 6 => GetText("JUNE"), 7 => GetText("JULY"), 8 => GetText("AUGUST"), 9 => GetText("SEPTEMBER"), 10 => GetText("OCTOBER"), 11 => GetText("NOVEMBER"), 12 => GetText("DECEMBER"), _ => nr.ToString(), }; } }