public static void Open(string key) { TextLocalizerEditWindow window = CreateInstance <TextLocalizerEditWindow>(); window.titleContent = new GUIContent("Localizer Window"); window.ShowUtility(); IsOpen = true; Key = key; for (int i = 0; i < Values.Length; i++) { Values[i] = LocalizationManager.GetLocalizedValue(key, (LocalizedLanguage)System.Enum.GetValues(typeof(LocalizedLanguage)).GetValue(i)); } }
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { EditorGUI.BeginProperty(position, label, property); position = EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Passive), label); position.width -= 34; position.height = 18; Rect valueRect = new Rect(position); valueRect.x += 15; valueRect.y += 20; valueRect.width -= 15; Rect foldButtonRectRect = new Rect(position); foldButtonRectRect.width = 15; dropdown = EditorGUI.Foldout(foldButtonRectRect, dropdown, ""); position.x += 15; position.width -= 15; SerializedProperty key = property.FindPropertyRelative("key"); key.stringValue = EditorGUI.TextField(position, key.stringValue); position.x += position.width + 2; position.width = 17; position.height = 17; Texture searchIcon = (Texture)Resources.Load("Localization/search"); GUIContent searchContent = new GUIContent(searchIcon); if (GUI.Button(position, searchContent)) { if (!TextLocalizerSearchWindow.IsOpen) { TextLocalizerSearchWindow.Open(); } } position.x += position.width + 2; Texture addIcon = (Texture)Resources.Load("Localization/add"); GUIContent addContent = new GUIContent(addIcon); if (GUI.Button(position, addContent)) { if (!TextLocalizerEditWindow.IsOpen) { TextLocalizerEditWindow.Open(key.stringValue); } } if (dropdown) { for (int i = 0; i < System.Enum.GetNames(typeof(LocalizedLanguage)).Length; i++) { var value = LocalizationManager.GetLocalizedValue(key.stringValue, (LocalizedLanguage)System.Enum.GetValues(typeof(LocalizedLanguage)).GetValue(i)); GUIStyle style = GUI.skin.box; height = style.CalcHeight(new GUIContent(value), valueRect.width); valueRect.height = height; valueRect.width += 21; valueRect.y = 20 * (i + 2) + 5; EditorGUI.LabelField(valueRect, value, EditorStyles.wordWrappedLabel); } } EditorGUI.EndProperty(); }