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(); }
/// <summary> /// 将字符串本地化(扩展方法) /// </summary> /// <param name="str"></param> /// <returns></returns> public static string ToLocalized(this string str) { return(LocalizedDict.Localized(str)); }
public static string t(this string str, params object[] p) { return(LocalizedDict.Localized(str, p)); }