public override void OnInspectorGUI() { EditorGUILayout.Separator(); if (m_IDs == null) { m_IDs = AssetUtils.GetFirstOrCreate <SimpleLocalizationLanguagesAsset>("LocalizationLanguages"); } if (m_IDs == null) { return; } SimpleTextLocalizer obj = (SimpleTextLocalizer)target; // Default text if (SimpleLocalizationLanguagesAsset.m_CurrentLanguageID == "" && obj.GetComponent <Text> ().text != obj.m_OriginalText) { obj.Save(); } EditorGUILayout.LabelField("Default (" + m_IDs.m_DefaultLanguage + "): " + obj.m_OriginalText); // Localizations if (m_IDs.m_Languages.Count == 0) { EditorGUILayout.HelpBox("Languages list is empty. Please add languages in the global localization settings.", MessageType.Warning); } foreach (string id in m_IDs.m_Languages) { // Init localization value if needed if (!obj.m_Localisations.ContainsKey(id)) { obj.m_Localisations [id] = ""; EditorUtility.SetDirty(obj); } // Localization edit field EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(id, GUILayout.MaxWidth(50)); string newLoc = EditorGUILayout.TextField(obj.m_Localisations [id]); EditorGUILayout.EndHorizontal(); // Set new localization if needed if (newLoc != obj.m_Localisations [id]) { obj.m_Localisations [id] = newLoc; EditorUtility.SetDirty(obj); } } // Global LanguagesDrawer.DrawGUI(m_IDs); }
public static void DrawGUI(SimpleLocalizationLanguagesAsset id) { // GENERAL EditorGUILayout.Separator(); EditorGUILayout.Separator(); EditorGUILayout.LabelField("Global localization settings", EditorStyles.boldLabel); SerializedObject asset = new SerializedObject(id); asset.Update(); EditorGUILayout.PropertyField(asset.FindProperty("m_DefaultLanguage")); EditorGUILayout.PropertyField(asset.FindProperty("m_Languages"), true); asset.ApplyModifiedProperties(); // Current EditorGUILayout.HelpBox("Current active language: " + (SimpleLocalizationLanguagesAsset.m_CurrentLanguageID == "" ? "default (" + id.m_DefaultLanguage + ")" : SimpleLocalizationLanguagesAsset.m_CurrentLanguageID), MessageType.Info); }
public void Set(string id) { SimpleLocalizationLanguagesAsset.SetLanguage(id); }
public override void OnInspectorGUI() { EditorGUILayout.Separator(); if (m_IDs == null) { SimpleLocalizationLanguagesAsset[] l = Resources.LoadAll <SimpleLocalizationLanguagesAsset> (""); if (l.Length > 0) { m_IDs = l [0]; } else { m_IDs = ScriptableObjectUtils.CreateAsset <SimpleLocalizationLanguagesAsset> ("LocalizationLanguages"); } } if (m_IDs == null) { return; } SimpleImageLocalizer obj = (SimpleImageLocalizer)target; // Default text if (SimpleLocalizationLanguagesAsset.m_CurrentLanguageID == "" && obj.GetComponent <RawImage> ().texture != obj.m_OriginalTexture) { obj.Save(); } EditorGUILayout.LabelField("Default (" + m_IDs.m_DefaultLanguage + ") "); EditorGUILayout.ObjectField(obj.m_OriginalTexture, typeof(Texture), false); // Localizations if (m_IDs.m_Languages.Count == 0) { EditorGUILayout.HelpBox("Languages list is empty. Please add languages in the global localization settings.", MessageType.Warning); } foreach (string id in m_IDs.m_Languages) { // Init localization value if needed if (!obj.m_Localisations.ContainsKey(id)) { obj.m_Localisations [id] = null; EditorUtility.SetDirty(obj); } // Localization edit field EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(id, GUILayout.MaxWidth(50)); Texture newLoc = (Texture)EditorGUILayout.ObjectField(obj.m_Localisations [id], typeof(Texture), false); EditorGUILayout.EndHorizontal(); // Set new localization if needed if (newLoc != obj.m_Localisations [id]) { obj.m_Localisations [id] = newLoc; EditorUtility.SetDirty(obj); } } // Global LanguagesDrawer.DrawGUI(m_IDs); }