public void TranslateWithAcmeFileTest() { using (var AcmeStream = File.OpenRead(Utils.TestInputPath + @"\tov_skits.zip")) using (var ACME1 = new ACME1(AcmeStream, Encoding.GetEncoding("ISO-8859-1"))) { using (var InputStream = File.OpenRead(Utils.TestInputPath + @"\VC001US.TO8CHTX")) using (var OutputStream = File.Open(Utils.TestOutputPath + @"\VC001ES.TO8CHTX", FileMode.Create)) { var TO8CHTX = new TO8CHTX(InputStream); TO8CHTX.TranslateWithAcmeFile(ACME1.Files["T3@VC001"]); TO8CHTX.SaveTo(OutputStream); } using (var EnglishInputStream = File.OpenRead(Utils.TestInputPath + @"\VC001US.TO8CHTX")) using (var SpanishInputStream = File.OpenRead(Utils.TestOutputPath + @"\VC001ES.TO8CHTX")) { var EnglishTO8CHTX = new TO8CHTX(EnglishInputStream); var SpanishTO8CHTX = new TO8CHTX(SpanishInputStream); //Console.WriteLine("------------------------------"); //ACME1.Files["T3@VC001"].Entries[0] //Console.WriteLine(SpanishTO8CHTX.Entries[0].TextTranslated); EnglishTO8CHTX.TranslateWithAcmeFile(ACME1.Files["T3@VC001"]); for (int n = 0; n < EnglishTO8CHTX.Length; n++) { var EnglishEntry = EnglishTO8CHTX.Entries[n]; var SpanishEntry = SpanishTO8CHTX.Entries[n]; Assert.AreEqual(EnglishEntry.Title, SpanishEntry.Title); Assert.AreEqual(EnglishEntry.Talker, SpanishEntry.Talker); Assert.AreEqual(EnglishEntry.TextTranslated, SpanishEntry.TextTranslated); Assert.AreEqual(EnglishEntry.TextOriginal, SpanishEntry.TextOriginal); } } } }
protected void HandleEntry(Regex SelectAll, Func <String, String, String> ReplaceSuffixName, FPS4.Entry EnglishEntry) { //Console.WriteLine(Thread.CurrentThread.ManagedThreadId); using (EnglishEntry) { //Console.WriteLine("[1]"); var BaseName = SelectAll.Match(EnglishEntry.Name).Groups[1].Value; var SpanishName = ReplaceSuffixName(EnglishEntry.Name, "ES"); Console.WriteLine("{0} : {1}", SpanishName, Thread.CurrentThread.ManagedThreadId); var ACMEFiles = ACME1.FilesByIndex.Where(Item => Item.Name.Contains(BaseName)); if (ACMEFiles.Count() == 1) { //Console.WriteLine("[2]"); var EsTempFile = TestOutputFolder + @"\" + SpanishName; #if REUSE_PAK if (!File.Exists(EsTempFile)) #endif { using (var CompressedSkitPAKStream = File.Open(EsTempFile, FileMode.Create)) { //Console.WriteLine("[3]"); var ACMEFile = ACMEFiles.ElementAt(0); //Console.WriteLine(SpanishName); using (var SkitPAK = new FPS4(TalesCompression.DecompressStream(EnglishEntry.Open()))) using (var chtx = new TO8CHTX(SkitPAK[3].Open())) { //Console.WriteLine("[4]"); try { chtx.TranslateWithAcmeFile(ACMEFile); } catch (Exception Exception) { Console.Error.WriteLine(Exception); Console.ReadKey(); } //Console.WriteLine("[5]"); using (var NewChtxStream = new MemoryStream()) using (var SkitPAKStream = new MemoryStream()) { chtx.Save(NewChtxStream); SkitPAK[3].SetStream(NewChtxStream); //Console.WriteLine("[6]"); SkitPAK.Save(SkitPAKStream); TalesCompression.EncodeFile(SkitPAKStream, CompressedSkitPAKStream); } } } } var SpanishEntry = PAK.CreateEntry(SpanishName, File.Open(EsTempFile, FileMode.Open)); } else { Console.WriteLine("WARNING. Untranslated Skit: ACMEFiles.Count() : {0} : {1}", ACMEFiles.Count(), BaseName); var SpanishEntry = PAK.CreateEntry(SpanishName, EnglishEntry.Open()); } } }