diff options
| author | chai <215380520@qq.com> | 2024-05-19 17:03:57 +0800 |
|---|---|---|
| committer | chai <215380520@qq.com> | 2024-05-19 17:03:57 +0800 |
| commit | cf58771365b5953c6eac548b172aae880d1f0acd (patch) | |
| tree | a49757a4b5c447cbf877584d482367a6bfe33b10 /Thronefall_1_57/Decompile/I2.Loc/Localize.cs | |
| parent | eed315deae356ddfb17f28305e7cde6cdfc43313 (diff) | |
* rename
Diffstat (limited to 'Thronefall_1_57/Decompile/I2.Loc/Localize.cs')
| -rw-r--r-- | Thronefall_1_57/Decompile/I2.Loc/Localize.cs | 464 |
1 files changed, 0 insertions, 464 deletions
diff --git a/Thronefall_1_57/Decompile/I2.Loc/Localize.cs b/Thronefall_1_57/Decompile/I2.Loc/Localize.cs deleted file mode 100644 index 5fc8fac..0000000 --- a/Thronefall_1_57/Decompile/I2.Loc/Localize.cs +++ /dev/null @@ -1,464 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using UnityEngine; -using UnityEngine.Events; - -namespace I2.Loc; - -[AddComponentMenu("I2/Localization/I2 Localize")] -public class Localize : MonoBehaviour -{ - public enum TermModification - { - DontModify, - ToUpper, - ToLower, - ToUpperFirst, - ToTitle - } - - public string mTerm = string.Empty; - - public string mTermSecondary = string.Empty; - - [NonSerialized] - public string FinalTerm; - - [NonSerialized] - public string FinalSecondaryTerm; - - public TermModification PrimaryTermModifier; - - public TermModification SecondaryTermModifier; - - public string TermPrefix; - - public string TermSuffix; - - public bool LocalizeOnAwake = true; - - private string LastLocalizedLanguage; - - public bool IgnoreRTL; - - public int MaxCharactersInRTL; - - public bool IgnoreNumbersInRTL = true; - - public bool CorrectAlignmentForRTL = true; - - public bool AddSpacesToJoinedLanguages; - - public bool AllowLocalizedParameters = true; - - public bool AllowParameters = true; - - public List<UnityEngine.Object> TranslatedObjects = new List<UnityEngine.Object>(); - - [NonSerialized] - public Dictionary<string, UnityEngine.Object> mAssetDictionary = new Dictionary<string, UnityEngine.Object>(StringComparer.Ordinal); - - public UnityEvent LocalizeEvent = new UnityEvent(); - - public static string MainTranslation; - - public static string SecondaryTranslation; - - public static string CallBackTerm; - - public static string CallBackSecondaryTerm; - - public static Localize CurrentLocalizeComponent; - - public bool AlwaysForceLocalize; - - [SerializeField] - public EventCallback LocalizeCallBack = new EventCallback(); - - public bool mGUI_ShowReferences; - - public bool mGUI_ShowTems = true; - - public bool mGUI_ShowCallback; - - public ILocalizeTarget mLocalizeTarget; - - public string mLocalizeTargetName; - - public string Term - { - get - { - return mTerm; - } - set - { - SetTerm(value); - } - } - - public string SecondaryTerm - { - get - { - return mTermSecondary; - } - set - { - SetTerm(null, value); - } - } - - private void Awake() - { - UpdateAssetDictionary(); - FindTarget(); - if (LocalizeOnAwake) - { - OnLocalize(); - } - } - - private void OnEnable() - { - OnLocalize(); - } - - public bool HasCallback() - { - if (LocalizeCallBack.HasCallback()) - { - return true; - } - return LocalizeEvent.GetPersistentEventCount() > 0; - } - - public void OnLocalize(bool Force = false) - { - if ((!Force && (!base.enabled || base.gameObject == null || !base.gameObject.activeInHierarchy)) || string.IsNullOrEmpty(LocalizationManager.CurrentLanguage) || (!AlwaysForceLocalize && !Force && !HasCallback() && LastLocalizedLanguage == LocalizationManager.CurrentLanguage)) - { - return; - } - LastLocalizedLanguage = LocalizationManager.CurrentLanguage; - if (string.IsNullOrEmpty(FinalTerm) || string.IsNullOrEmpty(FinalSecondaryTerm)) - { - GetFinalTerms(out FinalTerm, out FinalSecondaryTerm); - } - bool flag = I2Utils.IsPlaying() && HasCallback(); - if (!flag && string.IsNullOrEmpty(FinalTerm) && string.IsNullOrEmpty(FinalSecondaryTerm)) - { - return; - } - CurrentLocalizeComponent = this; - CallBackTerm = FinalTerm; - CallBackSecondaryTerm = FinalSecondaryTerm; - MainTranslation = ((string.IsNullOrEmpty(FinalTerm) || FinalTerm == "-") ? null : LocalizationManager.GetTranslation(FinalTerm, FixForRTL: false)); - SecondaryTranslation = ((string.IsNullOrEmpty(FinalSecondaryTerm) || FinalSecondaryTerm == "-") ? null : LocalizationManager.GetTranslation(FinalSecondaryTerm, FixForRTL: false)); - if (!flag && string.IsNullOrEmpty(FinalTerm) && string.IsNullOrEmpty(SecondaryTranslation)) - { - return; - } - LocalizeCallBack.Execute(this); - LocalizeEvent.Invoke(); - if (AllowParameters) - { - LocalizationManager.ApplyLocalizationParams(ref MainTranslation, base.gameObject, AllowLocalizedParameters); - } - if (!FindTarget()) - { - return; - } - bool flag2 = LocalizationManager.IsRight2Left && !IgnoreRTL; - if (MainTranslation != null) - { - switch (PrimaryTermModifier) - { - case TermModification.ToUpper: - MainTranslation = MainTranslation.ToUpper(); - break; - case TermModification.ToLower: - MainTranslation = MainTranslation.ToLower(); - break; - case TermModification.ToUpperFirst: - MainTranslation = GoogleTranslation.UppercaseFirst(MainTranslation); - break; - case TermModification.ToTitle: - MainTranslation = GoogleTranslation.TitleCase(MainTranslation); - break; - } - if (!string.IsNullOrEmpty(TermPrefix)) - { - MainTranslation = (flag2 ? (MainTranslation + TermPrefix) : (TermPrefix + MainTranslation)); - } - if (!string.IsNullOrEmpty(TermSuffix)) - { - MainTranslation = (flag2 ? (TermSuffix + MainTranslation) : (MainTranslation + TermSuffix)); - } - if (AddSpacesToJoinedLanguages && LocalizationManager.HasJoinedWords && !string.IsNullOrEmpty(MainTranslation)) - { - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.Append(MainTranslation[0]); - int i = 1; - for (int length = MainTranslation.Length; i < length; i++) - { - stringBuilder.Append(' '); - stringBuilder.Append(MainTranslation[i]); - } - MainTranslation = stringBuilder.ToString(); - } - if (flag2 && mLocalizeTarget.AllowMainTermToBeRTL() && !string.IsNullOrEmpty(MainTranslation)) - { - MainTranslation = LocalizationManager.ApplyRTLfix(MainTranslation, MaxCharactersInRTL, IgnoreNumbersInRTL); - } - } - if (SecondaryTranslation != null) - { - switch (SecondaryTermModifier) - { - case TermModification.ToUpper: - SecondaryTranslation = SecondaryTranslation.ToUpper(); - break; - case TermModification.ToLower: - SecondaryTranslation = SecondaryTranslation.ToLower(); - break; - case TermModification.ToUpperFirst: - SecondaryTranslation = GoogleTranslation.UppercaseFirst(SecondaryTranslation); - break; - case TermModification.ToTitle: - SecondaryTranslation = GoogleTranslation.TitleCase(SecondaryTranslation); - break; - } - if (flag2 && mLocalizeTarget.AllowSecondTermToBeRTL() && !string.IsNullOrEmpty(SecondaryTranslation)) - { - SecondaryTranslation = LocalizationManager.ApplyRTLfix(SecondaryTranslation); - } - } - if (LocalizationManager.HighlightLocalizedTargets) - { - MainTranslation = "LOC:" + FinalTerm; - } - mLocalizeTarget.DoLocalize(this, MainTranslation, SecondaryTranslation); - CurrentLocalizeComponent = null; - } - - public bool FindTarget() - { - if (mLocalizeTarget != null && mLocalizeTarget.IsValid(this)) - { - return true; - } - if (mLocalizeTarget != null) - { - UnityEngine.Object.DestroyImmediate(mLocalizeTarget); - mLocalizeTarget = null; - mLocalizeTargetName = null; - } - if (!string.IsNullOrEmpty(mLocalizeTargetName)) - { - foreach (ILocalizeTargetDescriptor mLocalizeTarget in LocalizationManager.mLocalizeTargets) - { - if (mLocalizeTargetName == mLocalizeTarget.GetTargetType().ToString()) - { - if (mLocalizeTarget.CanLocalize(this)) - { - this.mLocalizeTarget = mLocalizeTarget.CreateTarget(this); - } - if (this.mLocalizeTarget != null) - { - return true; - } - } - } - } - foreach (ILocalizeTargetDescriptor mLocalizeTarget2 in LocalizationManager.mLocalizeTargets) - { - if (mLocalizeTarget2.CanLocalize(this)) - { - this.mLocalizeTarget = mLocalizeTarget2.CreateTarget(this); - mLocalizeTargetName = mLocalizeTarget2.GetTargetType().ToString(); - if (this.mLocalizeTarget != null) - { - return true; - } - } - } - return false; - } - - public void GetFinalTerms(out string primaryTerm, out string secondaryTerm) - { - primaryTerm = string.Empty; - secondaryTerm = string.Empty; - if (FindTarget()) - { - if (mLocalizeTarget != null) - { - mLocalizeTarget.GetFinalTerms(this, mTerm, mTermSecondary, out primaryTerm, out secondaryTerm); - primaryTerm = I2Utils.GetValidTermName(primaryTerm); - } - if (!string.IsNullOrEmpty(mTerm)) - { - primaryTerm = mTerm; - } - if (!string.IsNullOrEmpty(mTermSecondary)) - { - secondaryTerm = mTermSecondary; - } - if (primaryTerm != null) - { - primaryTerm = primaryTerm.Trim(); - } - if (secondaryTerm != null) - { - secondaryTerm = secondaryTerm.Trim(); - } - } - } - - public string GetMainTargetsText() - { - string primaryTerm = null; - string secondaryTerm = null; - if (mLocalizeTarget != null) - { - mLocalizeTarget.GetFinalTerms(this, null, null, out primaryTerm, out secondaryTerm); - } - if (!string.IsNullOrEmpty(primaryTerm)) - { - return primaryTerm; - } - return mTerm; - } - - public void SetFinalTerms(string Main, string Secondary, out string primaryTerm, out string secondaryTerm, bool RemoveNonASCII) - { - primaryTerm = (RemoveNonASCII ? I2Utils.GetValidTermName(Main) : Main); - secondaryTerm = Secondary; - } - - public void SetTerm(string primary) - { - if (!string.IsNullOrEmpty(primary)) - { - FinalTerm = (mTerm = primary); - } - OnLocalize(Force: true); - } - - public void SetTerm(string primary, string secondary) - { - if (!string.IsNullOrEmpty(primary)) - { - FinalTerm = (mTerm = primary); - } - FinalSecondaryTerm = (mTermSecondary = secondary); - OnLocalize(Force: true); - } - - internal T GetSecondaryTranslatedObj<T>(ref string mainTranslation, ref string secondaryTranslation) where T : UnityEngine.Object - { - DeserializeTranslation(mainTranslation, out var value, out var secondary); - T val = null; - if (!string.IsNullOrEmpty(secondary)) - { - val = GetObject<T>(secondary); - if ((UnityEngine.Object)val != (UnityEngine.Object)null) - { - mainTranslation = value; - secondaryTranslation = secondary; - } - } - if ((UnityEngine.Object)val == (UnityEngine.Object)null) - { - val = GetObject<T>(secondaryTranslation); - } - return val; - } - - public void UpdateAssetDictionary() - { - TranslatedObjects.RemoveAll((UnityEngine.Object x) => x == null); - mAssetDictionary = (from o in TranslatedObjects.Distinct() - group o by o.name).ToDictionary((IGrouping<string, UnityEngine.Object> g) => g.Key, (IGrouping<string, UnityEngine.Object> g) => g.First()); - } - - internal T GetObject<T>(string Translation) where T : UnityEngine.Object - { - if (string.IsNullOrEmpty(Translation)) - { - return null; - } - return GetTranslatedObject<T>(Translation); - } - - private T GetTranslatedObject<T>(string Translation) where T : UnityEngine.Object - { - return FindTranslatedObject<T>(Translation); - } - - private void DeserializeTranslation(string translation, out string value, out string secondary) - { - if (!string.IsNullOrEmpty(translation) && translation.Length > 1 && translation[0] == '[') - { - int num = translation.IndexOf(']'); - if (num > 0) - { - secondary = translation.Substring(1, num - 1); - value = translation.Substring(num + 1); - return; - } - } - value = translation; - secondary = string.Empty; - } - - public T FindTranslatedObject<T>(string value) where T : UnityEngine.Object - { - if (string.IsNullOrEmpty(value)) - { - return null; - } - if (mAssetDictionary == null || mAssetDictionary.Count != TranslatedObjects.Count) - { - UpdateAssetDictionary(); - } - foreach (KeyValuePair<string, UnityEngine.Object> item in mAssetDictionary) - { - if (item.Value is T && value.EndsWith(item.Key, StringComparison.OrdinalIgnoreCase) && string.Compare(value, item.Key, StringComparison.OrdinalIgnoreCase) == 0) - { - return (T)item.Value; - } - } - T val = LocalizationManager.FindAsset(value) as T; - if ((bool)(UnityEngine.Object)val) - { - return val; - } - return ResourceManager.pInstance.GetAsset<T>(value); - } - - public bool HasTranslatedObject(UnityEngine.Object Obj) - { - if (TranslatedObjects.Contains(Obj)) - { - return true; - } - return ResourceManager.pInstance.HasAsset(Obj); - } - - public void AddTranslatedObject(UnityEngine.Object Obj) - { - if (!TranslatedObjects.Contains(Obj)) - { - TranslatedObjects.Add(Obj); - UpdateAssetDictionary(); - } - } - - public void SetGlobalLanguage(string Language) - { - LocalizationManager.CurrentLanguage = Language; - } -} |
