131 lines
2.8 KiB
C#
131 lines
2.8 KiB
C#
using System.Collections.Generic;
|
|
using I2.Loc;
|
|
using UnityEngine;
|
|
|
|
public class LanguageManager : MonoBehaviour
|
|
{
|
|
private static LanguageManager instance;
|
|
|
|
public List<string> 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<string>();
|
|
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<string> list = new List<string>();
|
|
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(),
|
|
};
|
|
}
|
|
}
|