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/LeanLanguageNameAttribute.cs | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 Assets/Packages/Lean/Localization/Scripts/LeanLanguageNameAttribute.cs (limited to 'Assets/Packages/Lean/Localization/Scripts/LeanLanguageNameAttribute.cs') diff --git a/Assets/Packages/Lean/Localization/Scripts/LeanLanguageNameAttribute.cs b/Assets/Packages/Lean/Localization/Scripts/LeanLanguageNameAttribute.cs new file mode 100644 index 0000000..e613d38 --- /dev/null +++ b/Assets/Packages/Lean/Localization/Scripts/LeanLanguageNameAttribute.cs @@ -0,0 +1,46 @@ +using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; + +namespace Lean.Localization +{ + [CustomPropertyDrawer(typeof(LeanLanguageNameAttribute))] + public class LeanLanguageNameDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + var rectA = position; rectA.xMax -= 37.0f; + var rectB = position; rectB.xMin = rectB.xMax - 35.0f; + + EditorGUI.PropertyField(rectA, property); + + if (GUI.Button(rectB, "List") == true) + { + var menu = new GenericMenu(); + + foreach (var languageName in LeanLocalization.CurrentLanguages.Keys) + { + menu.AddItem(new GUIContent(languageName), property.stringValue == languageName, () => { property.stringValue = languageName; property.serializedObject.ApplyModifiedProperties(); }); + } + + if (menu.GetItemCount() > 0) + { + menu.DropDown(rectB); + } + else + { + Debug.LogWarning("Your scene doesn't contain any languages, so the language name list couldn't be created."); + } + } + } + } +} +#endif + +namespace Lean.Localization +{ + /// This attribute allows you to modify a normal string field into one that has a dropdown list that allows you to pick a language. + public class LeanLanguageNameAttribute : PropertyAttribute + { + } +} \ No newline at end of file -- cgit v1.2.3