/// <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); }