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);
            }
        }
Exemplo n.º 2
0
        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);
 }