From 85553832ead1a96f88726cd2b35cb6ff1d8b8cc8 Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Sat, 24 Aug 2019 15:24:57 -0400 Subject: Attempt number 2 on localization --- .../Scripts/LeanTranslationNameAttribute.cs | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Assets/Packages/Lean/Localization/Scripts/LeanTranslationNameAttribute.cs (limited to 'Assets/Packages/Lean/Localization/Scripts/LeanTranslationNameAttribute.cs') diff --git a/Assets/Packages/Lean/Localization/Scripts/LeanTranslationNameAttribute.cs b/Assets/Packages/Lean/Localization/Scripts/LeanTranslationNameAttribute.cs new file mode 100644 index 0000000..740d43d --- /dev/null +++ b/Assets/Packages/Lean/Localization/Scripts/LeanTranslationNameAttribute.cs @@ -0,0 +1,54 @@ +using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; + +namespace Lean.Localization +{ + [CustomPropertyDrawer(typeof(LeanTranslationNameAttribute))] + public class LeanTranslationNameDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + var left = position; left.xMax -= 40; + var right = position; right.xMin = left.xMax + 2; + var color = GUI.color; + + if (LeanLocalization.CurrentTranslations.ContainsKey(property.stringValue) == false) + { + GUI.color = Color.red; + } + + EditorGUI.PropertyField(left, property); + + GUI.color = color; + + if (GUI.Button(right, "List") == true) + { + var menu = new GenericMenu(); + + foreach (var translationName in LeanLocalization.CurrentTranslations.Keys) + { + menu.AddItem(new GUIContent(translationName), property.stringValue == translationName, () => { property.stringValue = translationName; property.serializedObject.ApplyModifiedProperties(); }); + } + + if (menu.GetItemCount() > 0) + { + menu.DropDown(right); + } + else + { + Debug.LogWarning("Your scene doesn't contain any phrases, so the phrase name list couldn't be created."); + } + } + } + } +} +#endif + +namespace Lean.Localization +{ + /// This attribute allows you to select a translation from all the localizations in the scene. + public class LeanTranslationNameAttribute : PropertyAttribute + { + } +} \ No newline at end of file -- cgit v1.2.3