public override void OnInspectorGUI()
        {
            if (!string.IsNullOrEmpty(_error))
            {
                EditorGUILayout.HelpBox(_error, MessageType.Error);
                return;
            }


            serializedObject.Update();
            bool find = keys.Contains(keyProperty.stringValue);

            if (find)
            {
                GUI.color = Color.green;
            }
            else
            {
                GUI.color   = Color.red;
                description = "没有找到";
            }
            EditorGUILayout.PropertyField(keyProperty);
            GUI.color = Color.white;

            language = (LanguageEnum)EditorGUILayout.EnumPopup("选择语言:", language);
            if (GUILayout.Button("显示翻译"))
            {
                Localization.Language = language;
                LocalizedDict.UnLoad();

                var keysType = typeof(TextLocalizedHelper).Assembly.GetType("LString");
                if (keysType == null)
                {
                    Debug.LogError("没有找到自动生成的常量Key类 LString");
                }
                else
                {
                    //找到类中所有static函数,执行一遍
                    var methods = keysType.GetMethods(BindingFlags.Static | BindingFlags.Public);
                    foreach (var methodInfo in methods)
                    {
                        methodInfo.Invoke(null, null);
                    }
                }
                description = keyProperty.stringValue.ToLocalized();
            }
            EditorGUILayout.TextArea(description);

            if (helper.GetComponent <Text>() == null)
            {
                EditorGUILayout.HelpBox("这个组件需要和UnityEngine.UI.Text一起使用", MessageType.Error);
            }

            serializedObject.ApplyModifiedProperties();
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 将字符串本地化(扩展方法)
 /// </summary>
 /// <param name="str"></param>
 /// <returns></returns>
 public static string ToLocalized(this string str)
 {
     return(LocalizedDict.Localized(str));
 }
Ejemplo n.º 3
0
 public static string t(this string str, params object[] p)
 {
     return(LocalizedDict.Localized(str, p));
 }