public void Translating_ValidSub_Passes()
        {
            var validSub           = SubtitleContainer.GetSubtitleFromFile(SubtitleContainer.ValidShortSubtitleName);
            var validSubClone      = (ISubtitle)validSub.Clone();
            var subtitleTranslator = new SubtitleTranslatorAction(validSub, new CultureInfo("no"));

            subtitleTranslator.PerformAction(
                () =>
            {
                Assert.True(
                    validSub.Items.Count == validSubClone.Items.Count,
                    "Item count after translation changed");

                var hasDifferentLines = false;
                for (var i = 0; i < validSub.Items.Count; i++)
                {
                    if (!string.Equals(validSub.Items[i].ToString(), validSubClone.Items[i].ToString()))
                    {
                        hasDifferentLines = true;
                        break;
                    }
                }

                Assert.True(hasDifferentLines);
            });
        }
Exemplo n.º 2
0
        public void PerformAction()
        {
            var subtitleCreator = new SubtitleCreator();
            var subtitle        = subtitleCreator.CreateFromFile(File.OpenRead(_sourceFile));

            if (_timeOffset != 0)
            {
                Console.WriteLine("Offsetting your subtitle by " + _timeOffset + " seconds");

                var timeOffsetAction = new SubtitleTimeOffsetAction(TimeSpan.FromSeconds(_timeOffset), subtitle);
                timeOffsetAction.PerformAction();
            }

            if (!string.IsNullOrEmpty(_language))
            {
                var culture          = new CultureInfo(_language);
                var translatorAction = new SubtitleTranslatorAction(subtitle, culture);

                var reset = new ManualResetEvent(false);

                Console.WriteLine("Translating your subtitle to " + culture.EnglishName);
                Console.WriteLine("Please wait...");

                translatorAction.PerformAction(
                    () =>
                {
                    SaveSubtitleToOutput(subtitle, _destination);
                    reset.Set();
                });

                reset.WaitOne();
            }
            else
            {
                SaveSubtitleToOutput(subtitle, _destination);
            }
        }