Browse Source

removed conditionals for whitespace feature

Scrublord1336 6 years ago
parent
commit
bfc183c7ed

+ 3 - 14
src/XUnity.AutoTranslator.Plugin.Core/Configuration/Settings.cs

@@ -13,6 +13,7 @@ namespace XUnity.AutoTranslator.Plugin.Core.Configuration
       // cannot be changed
       public static readonly string DefaultLanguage = "en";
       public static readonly string DefaultFromLanguage = "ja";
+      public static readonly string EnglishLanguage = "en";
       public static readonly int MaxErrors = 5;
       public static readonly float ClipboardDebounceTime = 1f;
       public static readonly int MaxTranslationsBeforeShutdown = 8000;
@@ -123,10 +124,10 @@ namespace XUnity.AutoTranslator.Plugin.Core.Configuration
          UseStaticTranslations = Config.Current.Preferences[ "Behaviour" ][ "UseStaticTranslations" ].GetOrDefault( true );
          OverrideFont = Config.Current.Preferences[ "Behaviour" ][ "OverrideFont" ].GetOrDefault( string.Empty );
 
-         // special handling because of P/Invoke / exe name handling
+         // special handling because of enum parsing
          try
          {
-            WhitespaceRemovalStrategy = Config.Current.Preferences[ "Behaviour" ][ "WhitespaceRemovalStrategy" ].GetOrDefault( GetDefaultWhitespaceHandlingStrategy() );
+            WhitespaceRemovalStrategy = Config.Current.Preferences[ "Behaviour" ][ "WhitespaceRemovalStrategy" ].GetOrDefault( WhitespaceHandlingStrategy.TrimPerNewline );
          }
          catch( Exception e )
          {
@@ -191,17 +192,5 @@ namespace XUnity.AutoTranslator.Plugin.Core.Configuration
          }
          return defaultUserAgent;
       }
-
-      public static WhitespaceHandlingStrategy GetDefaultWhitespaceHandlingStrategy()
-      {
-         string exe = Path.GetFileNameWithoutExtension( Kernel32.ApplicationPath );
-         if( exe.StartsWith( "charastudio", StringComparison.OrdinalIgnoreCase )
-            || exe.StartsWith( "koikatu", StringComparison.OrdinalIgnoreCase ) )
-         {
-            // for legacy reasons, lets not change all the keys of existing translations
-            return WhitespaceHandlingStrategy.AllOccurrences;
-         }
-         return WhitespaceHandlingStrategy.TrimPerNewline;
-      }
    }
 }

+ 0 - 13
src/XUnity.AutoTranslator.Plugin.Core/Debugging/Kernel32.cs

@@ -8,9 +8,6 @@ namespace XUnity.AutoTranslator.Plugin.Core.Debugging
 {
    public static class Kernel32
    {
-      [DllImport( "kernel32.dll", CharSet = CharSet.Unicode )]
-      public static extern int GetModuleFileNameW( HandleRef hModule, StringBuilder buffer, int length );
-
       [DllImport( "kernel32.dll", SetLastError = true )]
       public static extern bool AllocConsole();
 
@@ -35,15 +32,5 @@ namespace XUnity.AutoTranslator.Plugin.Core.Debugging
 
       [DllImport( "kernel32.dll", ExactSpelling = true, SetLastError = true )]
       public static extern bool CloseHandle( IntPtr handle );
-
-      public static string ApplicationPath
-      {
-         get
-         {
-            StringBuilder stringBuilder = new StringBuilder( 260 );
-            GetModuleFileNameW( new HandleRef( null, IntPtr.Zero ), stringBuilder, stringBuilder.Capacity );
-            return stringBuilder.ToString();
-         }
-      }
    }
 }

+ 7 - 0
src/XUnity.AutoTranslator.Plugin.Core/Extensions/StringExtensions.cs

@@ -220,6 +220,7 @@ namespace XUnity.AutoTranslator.Plugin.Core.Extensions
          else // if( Settings.WhitespaceHandlingStrategy == WhitespaceHandlingStrategy.TrimPerNewline )
          {
             var lines = text.Split( NewlinesCharacters, StringSplitOptions.RemoveEmptyEntries );
+            var lastLine = lines.Length - 1;
             for( int i = 0 ; i < lines.Length ; i++ )
             {
                var line = lines[ i ].Trim( WhitespacesAndNewlines );
@@ -228,6 +229,12 @@ namespace XUnity.AutoTranslator.Plugin.Core.Extensions
                   var c = line[ j ];
                   builder.Append( c );
                }
+
+               // if source language is ENGLISH; Add space, if not last line, so words are not merged
+               if( Settings.FromLanguage == Settings.EnglishLanguage && i != lastLine )
+               {
+                  builder.Append( ' ' );
+               }
             }
          }
          return builder.ToString();