private void DrawAddNewLanguageButton() { GUILayout.Space(8); EditorGUILayout.LabelField("Input new Language name:"); EditorGUI.BeginChangeCheck(); m_newLanguageName = EditorGUILayout.TextField(m_newLanguageName); if (EditorGUI.EndChangeCheck()) { m_showSureToDelete = false; m_languageToDelete = Languages.English; } if (showAddFeedback) { EditorGUILayout.HelpBox(m_newLanguageName + " added", MessageType.Info); framesFeedbackShown++; if (framesFeedbackShown >= 15) { framesFeedbackShown = 0; showAddFeedback = false; } } m_canAddNewLanguage = !string.IsNullOrEmpty(m_newLanguageName) && !Enum.IsDefined(typeof(Languages), m_newLanguageName) && TextFieldCheck(ref m_newLanguageName, true); string addButtonText = "Add new language"; if (Enum.IsDefined(typeof(Languages), m_newLanguageName)) { addButtonText = "Language already exists"; } if (!TextFieldCheck(ref m_newLanguageName, true)) { addButtonText = "Illegal characters detected"; } GUI.enabled = m_canAddNewLanguage; if (GUILayout.Button(addButtonText)) { List <string> possibleLanguage = Enum.GetNames(typeof(Languages)).ToList(); possibleLanguage.Add(m_newLanguageName); EnumGenerator.GenerateEnumFromList(Application.dataPath + LANGUAGES_ENUM_PATH, "Languages", possibleLanguage); showAddFeedback = true; } GUI.enabled = true; if (!TextFieldCheck(ref m_newLanguageName, true)) { EditorGUILayout.HelpBox("Languages are only allowed to consist of characters and numbers. \nNo numbers in the first position.", MessageType.Warning); } }
private void DeleteLanguage() { GUILayout.Space(5); EditorGUILayout.LabelField("Select Language to delete:"); EditorGUI.BeginChangeCheck(); m_languageToDelete = (Languages)EditorGUILayout.EnumPopup(m_languageToDelete); if (EditorGUI.EndChangeCheck()) { m_showSureToDelete = false; } GUI.enabled = m_languageToDelete != Languages.English && !m_showSureToDelete; if (GUILayout.Button("Delete Language")) { m_showSureToDelete = true; } GUI.enabled = true; GUILayout.BeginHorizontal(); GUILayout.Space(position.width / 4); if (m_showSureToDelete) { if (GUILayout.Button("Are you sure?", GUILayout.Width(position.width / 2))) { m_showSureToDelete = false; showRemoveFeedback = true; if (m_loadedLanguage == m_languageToDelete) { m_secondLanguageFile = new LanguageFile(); } List <string> currentEnum = Enum.GetNames(typeof(Languages)).ToList(); currentEnum.RemoveAt((int)m_languageToDelete); languageRemoved = m_languageToDelete.ToString(); LocalizationManager.RemoveLanguageFile(m_languageToDelete); EnumGenerator.GenerateEnumFromList(Application.dataPath + LANGUAGES_ENUM_PATH, "Languages", currentEnum); m_languageToDelete = Languages.English; AssetDatabase.Refresh(); } } GUILayout.EndHorizontal(); if (showRemoveFeedback) { EditorGUILayout.HelpBox(languageRemoved + " removed", MessageType.Info); framesFeedbackShown++; if (framesFeedbackShown >= 15) { framesFeedbackShown = 0; showRemoveFeedback = false; languageRemoved = ""; } } }