Kaynağa Gözat

feature merge

Scrublord1336 6 yıl önce
ebeveyn
işleme
963d98cad7

+ 14 - 8
src/XUnity.AutoTranslator.Plugin.Core/AutoTranslationPlugin.cs

@@ -450,13 +450,16 @@ namespace XUnity.AutoTranslator.Plugin.Core
 
                ui.SetText( text );
 
-               if( isTranslated )
+               if( Settings.EnableUIResizing )
                {
-                  info?.ResizeUI( ui );
-               }
-               else
-               {
-                  info?.UnresizeUI( ui );
+                  if( isTranslated )
+                  {
+                     info?.ResizeUI( ui );
+                  }
+                  else
+                  {
+                     info?.UnresizeUI( ui );
+                  }
                }
             }
             catch( NullReferenceException )
@@ -1176,11 +1179,14 @@ namespace XUnity.AutoTranslator.Plugin.Core
       private void ToggleTranslation()
       {
          _isInTranslatedMode = !_isInTranslatedMode;
+         var objects = ObjectExtensions.GetAllRegisteredObjects();
+
+         Logger.Current.Info( $"Toggling translations of {objects.Count} objects." );
 
          if( _isInTranslatedMode )
          {
             // make sure we use the translated version of all texts
-            foreach( var kvp in ObjectExtensions.GetAllRegisteredObjects() )
+            foreach( var kvp in objects )
             {
                var ui = kvp.Key;
                try
@@ -1205,7 +1211,7 @@ namespace XUnity.AutoTranslator.Plugin.Core
          else
          {
             // make sure we use the original version of all texts
-            foreach( var kvp in ObjectExtensions.GetAllRegisteredObjects() )
+            foreach( var kvp in objects )
             {
                var ui = kvp.Key;
                try

+ 4 - 0
src/XUnity.AutoTranslator.Plugin.Core/Configuration/Settings.cs

@@ -55,6 +55,8 @@ namespace XUnity.AutoTranslator.Plugin.Core.Configuration
       public static string MigrationsTag;
       public static bool EnableBatching;
       public static bool TrimAllText;
+      public static bool EnableUIResizing;
+      public static bool EnableObjectTracking;
 
       public static bool CopyToClipboard;
       public static int MaxClipboardCopyCharacters;
@@ -99,6 +101,8 @@ namespace XUnity.AutoTranslator.Plugin.Core.Configuration
          ForceSplitTextAfterCharacters = Config.Current.Preferences[ "Behaviour" ][ "ForceSplitTextAfterCharacters" ].GetOrDefault( 0 );
          CopyToClipboard = Config.Current.Preferences[ "Behaviour" ][ "CopyToClipboard" ].GetOrDefault( false );
          MaxClipboardCopyCharacters = Config.Current.Preferences[ "Behaviour" ][ "MaxClipboardCopyCharacters" ].GetOrDefault( 450 );
+         EnableUIResizing = Config.Current.Preferences[ "Behaviour" ][ "EnableUIResizing" ].GetOrDefault( true );
+         EnableObjectTracking = Config.Current.Preferences[ "Behaviour" ][ "EnableObjectTracking" ].GetOrDefault( true );
          EnableBatching = Config.Current.Preferences[ "Behaviour" ][ "EnableBatching" ].GetOrDefault( true );
          TrimAllText = Config.Current.Preferences[ "Behaviour" ][ "TrimAllText" ].GetOrDefault( Types.AdvEngine == null );
          

+ 5 - 1
src/XUnity.AutoTranslator.Plugin.Core/Extensions/ObjectExtensions.cs

@@ -3,6 +3,8 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading;
+using UnityEngine;
+using XUnity.AutoTranslator.Plugin.Core.Configuration;
 using UnityEngine.UI;
 using XUnity.AutoTranslator.Plugin.Core.Constants;
 using XUnity.AutoTranslator.Plugin.Core.Utilities;
@@ -37,6 +39,8 @@ namespace XUnity.AutoTranslator.Plugin.Core.Extensions
 
       public static TranslationInfo GetTranslationInfo( this object obj, bool isAwakening )
       {
+         if( !Settings.EnableObjectTracking ) return null;
+
          if( !obj.SupportsStabilization() ) return null;
 
          var info = obj.Get<TranslationInfo>();
@@ -72,7 +76,7 @@ namespace XUnity.AutoTranslator.Plugin.Core.Extensions
          }
       }
 
-      public static IEnumerable<KeyValuePair<object, object>> GetAllRegisteredObjects()
+      public static List<KeyValuePair<object, object>> GetAllRegisteredObjects()
       {
          lock( Sync )
          {