123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- using System.Collections.Generic;
- using System.Text;
- namespace XUnity.AutoTranslator.Plugin.Core.Batching
- {
- public class TranslationBatch
- {
- public TranslationBatch()
- {
- Trackers = new List<TranslationLineTracker>();
- }
- public List<TranslationLineTracker> Trackers { get; private set; }
- public int TotalLinesCount { get; set; }
- public void Add( TranslationJob job )
- {
- var lines = new TranslationLineTracker( job );
- Trackers.Add( lines );
- TotalLinesCount += lines.LinesCount;
- }
- public bool MatchWithTranslations( string allTranslations )
- {
- var lines = allTranslations.Split( '\n' );
- if( lines.Length != TotalLinesCount ) return false;
- int current = 0;
- foreach( var tracker in Trackers )
- {
- var builder = new StringBuilder( 32 );
- for( int i = 0 ; i < tracker.LinesCount ; i++ )
- {
- var translation = lines[ current++ ];
- builder.Append( translation );
- // ADD NEW LINE IF NEEDED
- if( !( i == tracker.LinesCount - 1 ) ) // if not last line
- {
- builder.Append( '\n' );
- }
- }
- var fullTranslation = builder.ToString();
- tracker.RawTranslatedText = fullTranslation;
- }
- return true;
- }
- public string GetFullTranslationKey()
- {
- var builder = new StringBuilder();
- for( int i = 0 ; i < Trackers.Count ; i++ )
- {
- var tracker = Trackers[ i ];
- builder.Append( tracker.Job.Key.GetDictionaryLookupKey() );
- if( !( i == Trackers.Count - 1 ) )
- {
- builder.Append( '\n' );
- }
- }
- return builder.ToString();
- }
- }
- }
|