ソースを参照

optional object tracking

Scrublord1336 6 年 前
コミット
07b5fee8c1

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

@@ -413,13 +413,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 )
@@ -879,11 +882,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
@@ -908,7 +914,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

@@ -50,6 +50,8 @@ namespace XUnity.AutoTranslator.Plugin.Core.Configuration
       public static int ForceSplitTextAfterCharacters;
       public static bool EnableMigrations;
       public static string MigrationsTag;
+      public static bool EnableUIResizing;
+      public static bool EnableObjectTracking;
 
       public static bool CopyToClipboard;
       public static int MaxClipboardCopyCharacters;
@@ -93,6 +95,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 );
 
          BaiduAppId = Config.Current.Preferences[ "Baidu" ][ "BaiduAppId" ].GetOrDefault( "" );
          BaiduAppSecret = Config.Current.Preferences[ "Baidu" ][ "BaiduAppSecret" ].GetOrDefault( "" );

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

@@ -4,6 +4,7 @@ using System.Linq;
 using System.Text;
 using System.Threading;
 using UnityEngine;
+using XUnity.AutoTranslator.Plugin.Core.Configuration;
 using XUnity.AutoTranslator.Plugin.Core.Utilities;
 
 namespace XUnity.AutoTranslator.Plugin.Core.Extensions
@@ -15,6 +16,8 @@ namespace XUnity.AutoTranslator.Plugin.Core.Extensions
 
       public static TranslationInfo GetTranslationInfo( this object obj, bool isAwakening )
       {
+         if( !Settings.EnableObjectTracking ) return null;
+
          if( obj is GUIContent ) return null;
 
          var info = obj.Get<TranslationInfo>();
@@ -50,7 +53,7 @@ namespace XUnity.AutoTranslator.Plugin.Core.Extensions
          }
       }
 
-      public static IEnumerable<KeyValuePair<object, object>> GetAllRegisteredObjects()
+      public static List<KeyValuePair<object, object>> GetAllRegisteredObjects()
       {
          lock( Sync )
          {