Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class LanguageManager : MonoBehaviour
- {
- public delegate void LanguageHandler(LanguageItem newLanguage);
- public static event LanguageHandler OnLanguageChanged;
- public static LanguageItem currentLanguage { get; private set; }
- private static LanguageManager instance = null;
- public SystemLanguage defaultLanguage = SystemLanguage.English;
- public Font defaultFont;
- public List<LanguageItem> listItems;
- public static LanguageManager GetInstance()
- {
- if (instance == null)
- {
- instance = FindObjectOfType<LanguageManager>();
- }
- return instance;
- }
- public LanguageItem GetLanguageBySysName(SystemLanguage sysName)
- {
- //1. search selected language
- for (int i = 0; i < listItems.Count; i++)
- if (listItems[i].menuProfile.sysLanguage == sysName)
- return listItems[i];
- //2. no available profile - use default
- for (int i = 0; i < listItems.Count; i++)
- if (listItems[i].menuProfile.sysLanguage == defaultLanguage)
- return listItems[i];
- return null;
- }
- public void SetLanguage(SystemLanguage sysName)
- {
- currentLanguage = GetLanguageBySysName(sysName);
- OnLanguageChanged?.Invoke(currentLanguage);
- }
- private void OnDestroy()
- {
- if (instance == this)
- instance = null;
- }
- }
- [System.Serializable]
- public class LanguageItem
- {
- public LanguageProfileMenu menuProfile;
- //additional profiles
- //public LanguageProfileForge forgeProfile;
- //public LanguageProfileGame gameProfile;
- //public LanguageProfileTips tipsProfile;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement