123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- using UnityEditor;
- using UnityEngine;
- namespace I2.Loc
- {
- public abstract partial class LocalizationEditor : Editor
- {
- #region Variables
-
- SerializedProperty mProp_Assets, mProp_Languages,
- mProp_Google_WebServiceURL, mProp_GoogleUpdateFrequency, mProp_GoogleUpdateDelay, mProp_Google_SpreadsheetKey, mProp_Google_SpreadsheetName, mProp_Google_Password,
- mProp_Spreadsheet_LocalFileName, mProp_Spreadsheet_LocalCSVSeparator, mProp_CaseInsensitiveTerms, mProp_Spreadsheet_LocalCSVEncoding,
- mProp_OnMissingTranslation, mProp_AppNameTerm, mProp_IgnoreDeviceLanguage, mProp_Spreadsheet_SpecializationAsRows, mProp_GoogleInEditorCheckFrequency,
- mProp_HighlightLocalizedTargets, mProp_GoogleLiveSyncIsUptoDate, mProp_AllowUnloadingLanguages, mProp_GoogleUpdateSynchronization;
- public static LanguageSourceData mLanguageSource;
- public static Object mLanguageSourceObject;
- public static LocalizationEditor mLanguageSourceEditor;
- public static Editor mCurrentInspector;
- static bool mIsParsing; // This is true when the editor is opening several scenes to avoid reparsing objects
- #endregion
-
- #region Variables GUI
-
- GUIStyle Style_ToolBar_Big, Style_ToolBarButton_Big;
-
- public GUISkin CustomSkin;
- static Vector3 mScrollPos_Languages;
- public static string mLanguages_NewLanguage = "";
- #endregion
- #region Styles
- public static GUIStyle Style_WrapTextField {
- get{
- if (mStyle_WrapTextField==null)
- {
- mStyle_WrapTextField = new GUIStyle(EditorStyles.textArea);
- mStyle_WrapTextField.wordWrap = true;
- mStyle_WrapTextField.fixedHeight = 0;
- }
- return mStyle_WrapTextField;
- }
- }
- static GUIStyle mStyle_WrapTextField;
- #endregion
- #region Inspector
- public void Custom_OnEnable( LanguageSourceData sourceData, SerializedProperty propSource)
- {
- bool ForceParse = mLanguageSource != sourceData;
- mLanguageSource = sourceData;
- mLanguageSourceEditor = this;
- mCurrentInspector = this;
- if (!LocalizationManager.Sources.Contains(mLanguageSource))
- LocalizationManager.UpdateSources();
- mProp_Assets = propSource.FindPropertyRelative("Assets");
- mProp_Languages = propSource.FindPropertyRelative("mLanguages");
- mProp_Google_WebServiceURL = propSource.FindPropertyRelative("Google_WebServiceURL");
- mProp_GoogleUpdateFrequency = propSource.FindPropertyRelative("GoogleUpdateFrequency");
- mProp_GoogleUpdateSynchronization = propSource.FindPropertyRelative("GoogleUpdateSynchronization");
- mProp_GoogleInEditorCheckFrequency = propSource.FindPropertyRelative("GoogleInEditorCheckFrequency");
- mProp_GoogleUpdateDelay = propSource.FindPropertyRelative("GoogleUpdateDelay");
- mProp_Google_SpreadsheetKey = propSource.FindPropertyRelative("Google_SpreadsheetKey");
- mProp_Google_SpreadsheetName = propSource.FindPropertyRelative("Google_SpreadsheetName");
- mProp_Google_Password = propSource.FindPropertyRelative("Google_Password");
- mProp_CaseInsensitiveTerms = propSource.FindPropertyRelative("CaseInsensitiveTerms");
- mProp_Spreadsheet_LocalFileName = propSource.FindPropertyRelative("Spreadsheet_LocalFileName");
- mProp_Spreadsheet_LocalCSVSeparator = propSource.FindPropertyRelative("Spreadsheet_LocalCSVSeparator");
- mProp_Spreadsheet_LocalCSVEncoding = propSource.FindPropertyRelative("Spreadsheet_LocalCSVEncoding");
- mProp_Spreadsheet_SpecializationAsRows = propSource.FindPropertyRelative("Spreadsheet_SpecializationAsRows");
- mProp_OnMissingTranslation = propSource.FindPropertyRelative("OnMissingTranslation");
- mProp_AppNameTerm = propSource.FindPropertyRelative("mTerm_AppName");
- mProp_IgnoreDeviceLanguage = propSource.FindPropertyRelative("IgnoreDeviceLanguage");
- mProp_GoogleLiveSyncIsUptoDate = propSource.FindPropertyRelative("GoogleLiveSyncIsUptoDate");
- mProp_AllowUnloadingLanguages = propSource.FindPropertyRelative("_AllowUnloadingLanguages");
- if (!mIsParsing)
- {
- if (string.IsNullOrEmpty(mLanguageSource.Google_SpreadsheetKey))
- mSpreadsheetMode = eSpreadsheetMode.Local;
- else
- mSpreadsheetMode = eSpreadsheetMode.Google;
- mCurrentViewMode = mLanguageSource.mLanguages.Count>0 ? eViewMode.Keys : eViewMode.Languages;
- UpdateSelectedKeys();
- if (ForceParse || mParsedTerms.Count < mLanguageSource.mTerms.Count)
- {
- mSelectedCategories.Clear();
- ParseTerms(true, false, true);
- }
- }
- ScheduleUpdateTermsToShowInList();
- LoadSelectedCategories();
- //UpgradeManager.EnablePlugins();
- }
- void OnDisable()
- {
- //LocalizationManager.LocalizeAll();
- SaveSelectedCategories();
- mLanguageSourceEditor = null;
- if (mCurrentInspector==this) mCurrentInspector = null;
- }
- void UpdateSelectedKeys()
- {
- // Remove all keys that are not in this source
- string trans;
- for (int i=mSelectedKeys.Count-1; i>=0; --i)
- if (!mLanguageSource.TryGetTranslation(mSelectedKeys[i], out trans))
- mSelectedKeys.RemoveAt(i);
- // Remove all Categories that are not in this source
- /*var mCateg = mLanguageSource.GetCategories();
- for (int i=mSelectedCategories.Count-1; i>=0; --i)
- if (!mCateg.Contains(mSelectedCategories[i]))
- mSelectedCategories.RemoveAt(i);
- if (mSelectedCategories.Count==0)
- mSelectedCategories = mCateg;*/
- if (mSelectedScenes.Count==0)
- mSelectedScenes.Add (Editor_GetCurrentScene());
- }
- public override void OnInspectorGUI()
- {
- // Load Test:
- /*if (mLanguageSource.mTerms.Count<40000)
- {
- mLanguageSource.mTerms.Clear();
- for (int i=0; i<40020; ++i)
- mLanguageSource.AddTerm("ahh"+i.ToString("00000"), eTermType.Text, false);
- mLanguageSource.UpdateDictionary();
- }*/
- //Profiler.maxNumberOfSamplesPerFrame = -1; // REMOVE ---------------------------------------------------
- mIsParsing = false;
- //#if UNITY_5_6_OR_NEWER
- // serializedObject.UpdateIfRequiredOrScript();
- //#else
- // serializedObject.UpdateIfDirtyOrScript();
- //#endif
- if (mLanguageSource.mTerms.Count<1000)
- Undo.RecordObject(target, "LanguageSource");
- //GUI.backgroundColor = Color.Lerp (Color.black, Color.gray, 1);
- //GUILayout.BeginVertical(LocalizeInspector.GUIStyle_Background);
- //GUI.backgroundColor = Color.white;
-
- if (GUILayout.Button("Language Source", LocalizeInspector.GUIStyle_Header))
- {
- Application.OpenURL(LocalizeInspector.HelpURL_Documentation);
- }
- InitializeStyles();
- GUILayout.Space(10);
- //GUI.backgroundColor = Color.Lerp(GUITools.LightGray, Color.white, 0.5f);
- //GUILayout.BeginVertical(LocalizeInspector.GUIStyle_Background);
- //GUI.backgroundColor = Color.white;
- OnGUI_Main();
- //GUILayout.EndVertical();
- GUILayout.Space (10);
- GUILayout.FlexibleSpace();
- GUITools.OnGUI_Footer("I2 Localization", LocalizationManager.GetVersion(), LocalizeInspector.HelpURL_forum, LocalizeInspector.HelpURL_Documentation, LocalizeInspector.HelpURL_AssetStore);
- //GUILayout.EndVertical();
- serializedObject.ApplyModifiedProperties();
- if (Event.current.type == EventType.Repaint)
- {
- mTestAction = eTest_ActionType.None;
- mTestActionArg = null;
- mTestActionArg2 = null;
- }
- }
- #endregion
- }
- }
|