123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- using System;
- using System.IO;
- using System.Text;
- using System.Threading;
- using XUnity.AutoTranslator.Plugin.ExtProtocol;
- namespace Lec.ExtProtocol
- {
- class Program
- {
- static void Main( string[] args )
- {
- // Implementation of this is based off of texel-sensei's LEC implementation
- try
- {
- if( args.Length == 0 )
- {
- Console.WriteLine( "This program is automatically run during a game session if LEC is selected, and will be automatically stopped afterwards. This program cannot be run independently." );
- Console.WriteLine( "Press any key to exit." );
- Console.ReadKey();
- return;
- }
- var powerTranslatorPathPayload = args[ 0 ];
- var powerTranslatorPath = Encoding.UTF8.GetString( Convert.FromBase64String( powerTranslatorPathPayload ) );
- var dllPath = Path.Combine( powerTranslatorPath, @"Nova\JaEn\EngineDll_je.dll" );
- using( var translator = new LecTranslationLibrary( dllPath ) )
- {
- using( var stdout = Console.OpenStandardOutput() )
- using( var writer = new StreamWriter( stdout ) )
- using( var stdin = Console.OpenStandardInput() )
- using( var reader = new StreamReader( stdin ) )
- {
- writer.AutoFlush = true;
- while( true )
- {
- var receivedPayload = reader.ReadLine();
- if( string.IsNullOrEmpty( receivedPayload ) ) return;
- var message = ExtProtocolConvert.Decode( receivedPayload ) as TranslationRequest;
- if( message == null ) return;
- var translatedTexts = new string[ message.UntranslatedTexts.Length ];
- for( int i = 0; i < message.UntranslatedTexts.Length; i++ )
- {
- var untranslatedText = message.UntranslatedTexts[ i ];
- var translatedText = translator.Translate( untranslatedText );
- translatedTexts[ i ] = translatedText;
- }
- var response = new TranslationResponse
- {
- Id = message.Id,
- TranslatedTexts = translatedTexts
- };
- var translatedPayload = ExtProtocolConvert.Encode( response );
- writer.WriteLine( translatedPayload );
- }
- }
- }
- }
- catch( Exception )
- {
- // "Graceful shutdown"
- }
- }
- }
- }
|