public void SaveTest() { using (var InputStream = File.OpenRead(Utils.TestInputPath + @"\VC001US.TO8CHTX")) using (var OutputStream = File.Open(Utils.TestOutputPath + @"\VC001US.TO8CHTX", FileMode.Create)) { var TO8CHTX = new TO8CHTX(InputStream); foreach (var Entry in TO8CHTX.Entries) { Entry.TextOriginal = ""; //Entry.TextTranslated = ""; } TO8CHTX.SaveTo(OutputStream); } using (var OutputStream = File.Open(Utils.TestOutputPath + @"\TEST.TO8CHTX", FileMode.Create)) { var TO8CHTX = new TO8CHTX(); TO8CHTX.Entries.Add(new TO8CHTX.Entry() { Title = CharacterMapping.Instance.Map("Title Test"), TextOriginal = CharacterMapping.Instance.Map("Text Original"), TextTranslated = CharacterMapping.Instance.Map("¡¿Esto es una prueba en ESPAÑOL o en Español?!"), Talker = TalesOfVesperiaUtils.Formats.Packages.TO8CHTX.Talker.Yuri, }); TO8CHTX.SaveTo(OutputStream); } }
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); } } } }
private void Handle1() { Patcher.TempFS.CreateDirectory("CHAT_ES", 0777, false); Patcher.Action("Translating Skits...", () => { Patcher.ProgressHandler.AddProgressLevel("Traduciendo skits", OriginalChatSvo.Count(), () => { Patcher.ParallelForeach("Translating", OriginalChatSvo, (ChatSvoEntry) => ChatSvoEntry.Name, (ChatSvoEntry) => { var Match = ChatSvoEntry.Name.RegexMatch(@"^(VC\d+B?)(UK)\.DAT$"); if (Match != null) { var CompleteFile = Match[0].Value; var ChatId = Match[1].Value; var EsFile = PreppendTempFile + ChatId + "ES.DAT"; Console.WriteLine("{0}...", ChatId); if (!Patcher.TempFS.Exists(EsFile)) { var Fps4 = new FPS4(TalesCompression.DecompressStream(OriginalChatSvo[CompleteFile].Open())); { var Chtx = new TO8CHTX(); Chtx.Load(Fps4["3"].Open()); // Translate { foreach (var Entry in Patcher.EntriesByRoom["skits/" + ChatId].Values) { int TextId = int.Parse(Entry.text_id) - 1; if (TextId >= 0) { //Chtx[TextId].Title = ""; //Chtx[TextId].Title = TextProcessor.Instance.ProcessAndDetectPitfalls(Chtx[TextId].Title, Entry.texts.es[0].TrimEnd(' ', '\t', '\n', '\r', '.')); //Chtx[TextId].Title = TextProcessor.Instance.ProcessAndDetectPitfalls(Chtx[TextId].Title, Entry.texts.es[0]); Chtx[TextId].Title = ""; Chtx[TextId].TextOriginal = ""; Chtx[TextId].TextTranslated = TextProcessor.Instance.ProcessAndDetectPitfalls(Chtx[TextId].TextTranslated, Entry.texts.es[1]); } } } //ChtxStream.SetLength(0); var ChtxStream = new MemoryStream(); Chtx.SaveTo(ChtxStream); ChtxStream.Position = 0; Fps4["3"].SetStream(ChtxStream); } Patcher.TempFS.WriteAllBytes(EsFile, TalesCompression.CreateFromVersion(Patcher.CompressionVersion, Patcher.CompressionFallback).EncodeBytes(Fps4.Save(false).ToArray())); Console.WriteLine("{0}...Ok", ChatId); } else { Console.WriteLine("{0}...Exists", ChatId); } } Patcher.ProgressHandler.IncrementLevelProgress(); }); }); }); }