Beispiel #1
0
        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);
                            }
                        }
                }
        }
Beispiel #2
0
        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());
                }
            }
        }