Пример #1
0
        private void TranslateViaGoogle(bool onlySelectedLines, bool useGoogle)
        {
            if (!IsSubtitleLoaded)
            {
                DisplaySubtitleNotLoadedMessage();
                return;
            }

            bool isAlternateVisible = SubtitleListview1.IsAlternateTextColumnVisible;
            ReloadFromSourceView();
            using (var googleTranslate = new GoogleTranslate())
            {
                SaveSubtitleListviewIndices();
                string title = _language.GoogleTranslate;
                if (!useGoogle)
                    title = _language.MicrosoftTranslate;
                if (onlySelectedLines)
                {
                    var selectedLines = new Subtitle { WasLoadedWithFrameNumbers = _subtitle.WasLoadedWithFrameNumbers };
                    foreach (int index in SubtitleListview1.SelectedIndices)
                        selectedLines.Paragraphs.Add(_subtitle.Paragraphs[index]);
                    title += " - " + _language.SelectedLines;
                    googleTranslate.Initialize(selectedLines, title, useGoogle, GetCurrentEncoding());
                }
                else
                {
                    googleTranslate.Initialize(_subtitle, title, useGoogle, GetCurrentEncoding());
                }
                if (googleTranslate.ShowDialog(this) == DialogResult.OK)
                {
                    _subtitleListViewIndex = -1;

                    MakeHistoryForUndo(_language.BeforeGoogleTranslation);
                    if (onlySelectedLines)
                    {
                        // we only update selected lines
                        int i = 0;
                        foreach (int index in SubtitleListview1.SelectedIndices)
                        {
                            _subtitle.Paragraphs[index] = googleTranslate.TranslatedSubtitle.Paragraphs[i];
                            i++;
                        }
                        ShowStatus(_language.SelectedLinesTranslated);
                    }
                    else
                    {
                        _subtitleAlternate = new Subtitle(_subtitle);
                        _subtitleAlternateFileName = _fileName;
                        _fileName = null;
                        _subtitle.Paragraphs.Clear();
                        foreach (var p in googleTranslate.TranslatedSubtitle.Paragraphs)
                            _subtitle.Paragraphs.Add(new Paragraph(p));
                        ShowStatus(_language.SubtitleTranslated);
                    }
                    ShowSource();

                    if (!onlySelectedLines)
                    {
                        SubtitleListview1.ShowAlternateTextColumn(_languageGeneral.OriginalText);
                        SubtitleListview1.AutoSizeAllColumns(this);
                        SetupAlternateEdit();
                    }
                    SubtitleListview1.Fill(_subtitle, _subtitleAlternate);
                    ResetHistory();
                    RestoreSubtitleListviewIndices();
                    _converted = true;
                    SetTitle();
                    //if (googleTranslate.ScreenScrapingEncoding != null)
                    //    SetEncoding(googleTranslate.ScreenScrapingEncoding);
                    SetEncoding(Encoding.UTF8);
                    if (!isAlternateVisible)
                    {
                        toolStripMenuItemShowOriginalInPreview.Checked = false;
                        Configuration.Settings.General.ShowOriginalAsPreviewIfAvailable = false;
                        audioVisualizer.Invalidate();
                    }
                }
            }
        }
Пример #2
0
        private void TranslateViaGoogle(bool onlySelectedLines, bool useGoogle)
        {
            if (IsSubtitleLoaded)
            {
                ReloadFromSourceView();
                var googleTranslate = new GoogleTranslate();
                _formPositionsAndSizes.SetPositionAndSize(googleTranslate);
                SaveSubtitleListviewIndexes();
                string title = _language.GoogleTranslate;
                if (!useGoogle)
                    title = _language.MicrosoftTranslate;
                if (onlySelectedLines)
                {
                    var selectedLines = new Subtitle { WasLoadedWithFrameNumbers = _subtitle.WasLoadedWithFrameNumbers };
                    foreach (int index in SubtitleListview1.SelectedIndices)
                        selectedLines.Paragraphs.Add(_subtitle.Paragraphs[index]);
                    title += " - " + _language.SelectedLines;
                    googleTranslate.Initialize(selectedLines, title, useGoogle, GetCurrentEncoding());
                }
                else
                {
                    googleTranslate.Initialize(_subtitle, title, useGoogle, GetCurrentEncoding());
                }
                if (googleTranslate.ShowDialog(this) == DialogResult.OK)
                {
                    _subtitleListViewIndex = -1;

                    MakeHistoryForUndo(_language.BeforeGoogleTranslation);
                    if (onlySelectedLines)
                    { // we only update selected lines
                        int i = 0;
                        foreach (int index in SubtitleListview1.SelectedIndices)
                        {
                            _subtitle.Paragraphs[index] = googleTranslate.TranslatedSubtitle.Paragraphs[i];
                            i++;
                        }
                        ShowStatus(_language.SelectedLinesTranslated);
                    }
                    else
                    {
                        _subtitleAlternate = new Subtitle(_subtitle);
                        _subtitleAlternateFileName = _fileName;
                        _fileName = null;
                        _subtitle.Paragraphs.Clear();
                        foreach (Paragraph p in googleTranslate.TranslatedSubtitle.Paragraphs)
                            _subtitle.Paragraphs.Add(new Paragraph(p));
                        ShowStatus(_language.SubtitleTranslated);
                    }
                    ShowSource();

                    if (!onlySelectedLines)
                    {
                        SubtitleListview1.ShowAlternateTextColumn(Configuration.Settings.Language.General.OriginalText);
                        SubtitleListview1.AutoSizeAllColumns(this);
                        SetupAlternateEdit();
                    }
                    SubtitleListview1.Fill(_subtitle, _subtitleAlternate);
                    ResetHistory();
                    RestoreSubtitleListviewIndexes();
                    _converted = true;
                    SetTitle();
                    //if (googleTranslate.ScreenScrapingEncoding != null)
                    //    SetEncoding(googleTranslate.ScreenScrapingEncoding);
                    SetEncoding(Encoding.UTF8);
                }
                _formPositionsAndSizes.SavePositionAndSize(googleTranslate);
            }
            else
            {
                MessageBox.Show(_language.NoSubtitleLoaded, Title, MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }