public override void OnInspectorGUI() { base.OnInspectorGUI(); LocalizationInitializer.Startup(); Target = target as LocalizationService; if (Application.isPlaying) { return; } EditorGUILayout.LabelField("Default Language"); var di = Array.IndexOf(Target.Languages, Target.DefaultLanguage); var di2 = EditorGUILayout.Popup(di, Target.Languages.Select(o => o.Name).ToArray()); if (di != di2) { Target.DefaultLanguage = Target.Languages[di2]; EditorUtility.SetDirty(target); } EditorGUILayout.LabelField("Cached Language"); EditorGUILayout.LabelField(Target.Language.Name, EditorStyles.boldLabel); GUILayout.Space(16); if (GUILayout.Button("Reset Cached Language")) { Target.Language = Target.DefaultLanguage; EditorUtility.SetDirty(target); } if (GUILayout.Button("Reset Language List")) { Target.Languages = LanguageInfo.All; EditorUtility.SetDirty(target); } }
public override void OnInspectorGUI() { base.OnInspectorGUI(); LocalizationInitializer.Startup(); Target = target as LocalizedText; if (Application.isPlaying) { return; } var service = LocalizationService.Instance; if (service == null || service.Strings == null) { var p = EditorGUILayout.TextField("Key", Target.Key); if (p != Target.Key) { Target.Key = p; EditorUtility.SetDirty(target); } EditorGUILayout.LabelField("Error ", "LocalizationService Not Found"); } else { var files = service.StringsByFile.Select(o => o.Key).ToArray(); var findex = Array.IndexOf(files, Target.File); var fi = EditorGUILayout.Popup("File", findex, files); if (fi != findex) { Target.File = files[fi]; EditorUtility.SetDirty(target); } // if (!string.IsNullOrEmpty(Target.File)) { //filter Target.Filter = EditorGUILayout.TextField("Filter ", Target.Filter); string[] words; if (!string.IsNullOrEmpty(Target.Filter)) { words = service.StringsByFile[Target.File].Select(o => o.Key).Where(o => o.Contains(Target.Filter)).ToArray(); } else { words = service.StringsByFile[Target.File].Select(o => o.Key).ToArray(); } var index = Array.IndexOf(words, Target.Key); var i = EditorGUILayout.Popup("Keys", index, words); if (i != index) { Target.Key = words[i]; Target.Value = service.Get(Target.Key, string.Empty); EditorUtility.SetDirty(target); } } } if (!string.IsNullOrEmpty(Target.Value)) { EditorGUILayout.LabelField("Value ", Target.Value); Target.GetComponent <UnityEngine.UI.Text>().text = Target.Value; } }
public static void ShowWindow() { LocalizationInitializer.Startup(); Selection.activeObject = LocalizationService.Instance; EditorGUIUtility.PingObject(LocalizationService.Instance); }