using System.IO; using UnityEngine; namespace Crowdin.Plugin.ScriptableObjects { using Helpers.PluginLocalization; using Models; [CreateAssetMenu(fileName = "CrowdinPluginLocalization", menuName = "Crowdin/Plugin Localization", order = 0)] public class CrowdinPluginLocalization : ScriptableObject { public string jsonFilePath; public CrowdinLocalization localizationStrings; private void Awake() { ParseFile(); } private void OnDestroy() { LocalizationHelper.ResetLocalizations(); } private void SetupJsonFilePath() { var directoryPath = new System.Diagnostics.StackTrace(true).GetFrame(0).GetFileName(); var directory = Path.GetDirectoryName(directoryPath)?.Replace(@"\Plugin\ScriptableObjects", ""); if (File.Exists($"{directory}/PluginLocalization.json")) { jsonFilePath = $"{directory}/PluginLocalization.json"; } else { directory = Path.GetDirectoryName(directoryPath)?.Replace(@"/Plugin/ScriptableObjects", ""); jsonFilePath = $"{directory}/PluginLocalization.json"; } } private void ParseFile() { SetupJsonFilePath(); var reader = new StreamReader(jsonFilePath); var jsonString = reader.ReadToEnd(); reader.Close(); var localization = JsonUtility.FromJson(jsonString); if (localization != null) { localizationStrings = localization; } } } }