/// <summary>
        /// Adding a language with the given string parameter as name.
        /// </summary>
        /// <param name="languageName"></param>
        public static void AddLang(string languageName)
        {
            Language newLanguage = (Language)ScriptableObject.CreateInstance("Language");// new Language();

            newLanguage.LanguageName = languageName;
            Debug.Log(languagesList + " -- " + newLanguage.LanguageName);
            languagesList.Add(newLanguage);
            foreach (BaseDialog dia in dialogsList)
            {
                //dia.dialogWrapper.Add("");
                BaseDialogWrapper newDialogWrapper = new BaseDialogWrapper
                {
                    content  = "",
                    language = newLanguage
                };
                dia.dialogWrapper.Add(newDialogWrapper);
            }
            AssetDatabase.CreateAsset(newLanguage, languagesPath + "/Language_" + languageName + ".asset");
            //languageOptions.Add(languageName);
            selectedLanguage       = newLanguage;
            SelectedLanguage.text  = languageName;
            SelectedLanguage.index = languagesList.Count - 1; //SelectedLanguage.index = languageOptions.Count - 1;
            translatedText         = GetDialog();
            AddDialog("", "");
            Debug.Log("Localization Manager: Added new language: " + languageName);
        }
        /// <summary>
        /// Adding a language with the given string parameter as name.
        /// </summary>
        /// <param name="languageName"></param>
        public static void AddDialog(string dialogName, string dialogText)
        {
            if (translatedText != "" || dialogsList.Count == 0)
            {
                BaseDialog newDialog = (BaseDialog)ScriptableObject.CreateInstance("BaseDialog");
                if (newDialog.dialogWrapper == null)
                {
                    newDialog.dialogWrapper = new List <BaseDialogWrapper>();
                }
                foreach (Language lang in languagesList)
                {
                    if (lang.LanguageName == selectedLanguage.LanguageName)
                    {
                        BaseDialogWrapper newDialogWrapper = new BaseDialogWrapper
                        {
                            content  = dialogText,
                            language = lang
                        };
                        Debug.Log(dialogText + " -- " + newDialogWrapper);
                        newDialog.dialogWrapper.Add(newDialogWrapper);
                    }
                    else
                    {
                        BaseDialogWrapper newDialogWrapper = new BaseDialogWrapper
                        {
                            content  = "",
                            language = lang
                        };
                        Debug.Log(lang + " -- " + selectedLanguage);
                        newDialog.dialogWrapper.Add(newDialogWrapper);
                    }
                }

                dialogsList.Add(newDialog);
                AssetDatabase.CreateAsset(newDialog, dialogsPath + "/Dialog_" + (dialogsList.Count - 1) + ".asset");
                Debug.Log(dialogText + " -- " + newDialog);

                dialogName     = "Dialog_" + (dialogsList.Count - 1);
                selectedDialog = newDialog;
                //dialogOptions.Add(dialogName);
                SelectedDialog.text  = dialogName;
                SelectedDialog.index = dialogsList.Count - 1;
                //totalDialog += 1;
                Debug.Log("Localization Manager: Added new dialog: " + dialogName + " - " + SelectedDialog.index);
            }
        }
        public static List <BaseDialog> LoadDictionary(SystemOptions options)
        {
            //DataContainer languages = new DataContainer();

            //foreach (BaseDialogWrapper language in dialogsList[0].dialogWrapper)
            //{
            //    DoubleDictionaryContainer languageData = new DoubleDictionaryContainer
            //    {
            //        Language = language.language.LanguageName
            //    };


            //    foreach (BaseDialog dialog in dialogsList)
            //    {
            //        DictionaryContainer dialogData = new DictionaryContainer
            //        {
            //            DialogName = dialog.name,
            //            DialogContent = dialog.dialogWrapper.Find(l => l.language.LanguageName == language.language.LanguageName).content
            //        };
            //        languageData.Dialogs.Add(dialogData);
            //    }
            //    languages.AvailableLanguages.Add(languageData);
            //}



            //Finally write the json string to a file
            string filePath = Application.dataPath + "/Resources/Localization/LocalizationData.json";
            string jsonData = File.ReadAllText(filePath);
            //Convert object to JSON
            DataContainer languages = JsonUtility.FromJson <DataContainer>(jsonData);

            List <BaseDialog> dialogsList = new List <BaseDialog>();

            //foreach(DictionaryContainer dia in languages.AvailableLanguages[0].Dialogs)
            //{
            //    BaseDialog dialog = new BaseDialog();
            //    foreach (DoubleDictionaryContainer lang in languages.AvailableLanguages)
            //    {
            //        BaseDialogWrapper wrapper = new BaseDialogWrapper();
            //        wrapper.language.LanguageName = lang.Language;
            //        wrapper.content = lang.Dialogs[0].DialogContent;
            //    }
            //    dialogsList.Add(dialog);
            //}

            for (int i = 0; i < languages.AvailableLanguages[0].Dialogs.Count; i++)
            {
                BaseDialog dialog = (BaseDialog)ScriptableObject.CreateInstance("BaseDialog");
                dialog.Init(options);
                //Debug.LogWarning("Options is: " + dialog.gameOptions);
                dialog.name          = languages.AvailableLanguages[0].Dialogs[i].DialogName;
                dialog.dialogWrapper = new List <BaseDialogWrapper>();
                foreach (DoubleDictionaryContainer lang in languages.AvailableLanguages)
                {
                    BaseDialogWrapper wrapper = new BaseDialogWrapper();
                    wrapper.language              = (Language)ScriptableObject.CreateInstance("Language");
                    wrapper.language.name         = "Language_" + lang.Language;
                    wrapper.language.LanguageName = lang.Language;
                    wrapper.content = lang.Dialogs[i].DialogContent;
                    dialog.dialogWrapper.Add(wrapper);
                    Debug.LogWarning("Languages is: " + wrapper.language);
                    Debug.LogWarning("Dialog is: " + wrapper.content);
                }
                dialogsList.Add(dialog);
            }
            Debug.LogError("Languages is: " + dialogsList[0].dialogWrapper[0].language);
            Debug.LogError("Dialog is: " + dialogsList[0].dialogWrapper[0].content);
            Debug.LogError(dialogsList[0].Content());
            Debug.Log("JSONSaver: Text loaded from JSON!");

            return(dialogsList);
        }