Ejemplo n.º 1
0
        private void PrepareInputSubs(out SubtitleInfo langSub, out SubtitleInfo timingSub)
        {
            ITranslator translator;

            string translationFileName = LanguageSrtFile + ".trans";
            bool   transFileExists     = (File.Exists(translationFileName));

            if (!string.IsNullOrWhiteSpace(_translationText) || transFileExists)
            {
                if (transFileExists)
                {
                    _translationText = File.ReadAllText(translationFileName);
                }
                translator = new SrtParserTranslator(_translationText);
            }
            else
            {
                if (_bingTranslator == null && !string.IsNullOrWhiteSpace(MSSearchSecret))
                {
                    _bingTranslator = new BingTranslator(MSSearchClientID, MSSearchSecret);
                }

                _bingTranslator.ClientSecret = MSSearchSecret;
                _bingTranslator.ClientId     = MSSearchClientID;
                translator = _bingTranslator;
            }

            langSub   = new SubtitleInfo(translator);
            timingSub = new SubtitleInfo(translator);

            langSub.LoadSrtFile(LanguageSrtFile, SelectedEncoding);
            timingSub.LoadSrtFile(TimingSrtFile, Encoding.ASCII);

            try
            {
                langSub.Translate();

                TranslationText = langSub.GetTranslatedSrtString();
                if (!transFileExists)
                {
                    File.WriteAllText(LanguageSrtFile + ".trans", TranslationText);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Translation error: " + ex.Message);
            }
        }