Untitled
unknown
plain_text
2 years ago
1.9 kB
7
Indexable
using System.Collections; using System.Collections.Generic; using UnityEngine; using GP_Utilities.Console; using System.Runtime.InteropServices; using System; using UnityEngine.Events; public class LanguageTest : MonoBehaviour { public static event UnityAction<Language> OnChangeLanguage; public static event Action<Language> _onChangeLanguage; private static string English = "en"; private static string Russian = "ru"; [DllImport("__Internal")] private static extern string GP_Current_Language(); public static Language Current() { #if !UNITY_EDITOR && UNITY_WEBGL return ConvertToEnum(GP_Current_Language()); #else if (GP_ConsoleController.Instance.LanguageConsoleLogs) Debug.Log("LANGUAGE CURRENT: "); return Language.English; #endif } [DllImport("__Internal")] private static extern void GP_ChangeLanguage(string lang); public static void Change(Language lang, Action<Language> onLanguageChange = null) { _onChangeLanguage = onLanguageChange; #if !UNITY_EDITOR && UNITY_WEBGL GP_ChangeLanguage(ConvertToString(lang)); #else if (GP_ConsoleController.Instance.LanguageConsoleLogs) Debug.Log("LANGUAGE CHANGE: "); OnChangeLanguage?.Invoke(lang); _onChangeLanguage?.Invoke(lang); #endif } private void CallChangeLanguage(string lang) { _onChangeLanguage?.Invoke(ConvertToEnum(lang)); OnChangeLanguage?.Invoke(ConvertToEnum(lang)); } private static Language ConvertToEnum(string lang) { if (lang == English) return Language.English; if (lang == Russian) return Language.Russian; return Language.English; } private static string ConvertToString(Language lang) { if (lang == Language.English) return English; if (lang == Language.Russian) return Russian; return English; } public enum Language : byte { English, Russian, } }
Editor is loading...
Leave a Comment