diff --git a/LanguageBaseEnglish.xml b/LanguageBaseEnglish.xml
index a38e3ed70..9eb913136 100644
--- a/LanguageBaseEnglish.xml
+++ b/LanguageBaseEnglish.xml
@@ -1069,6 +1069,8 @@ To use an API key, go to "Options -> Settings -> Tools" to enter your Goog
Clipboard contains source text!
Go to translator and translate, then copy the results to the clipboard and click this button again.
Start "{0}" web server
+ "{0}" requires a web server running locally!
+ Read more?
Google vs Microsoft translate
diff --git a/src/ui/Forms/Main.cs b/src/ui/Forms/Main.cs
index fc269914c..8ee574ed7 100644
--- a/src/ui/Forms/Main.cs
+++ b/src/ui/Forms/Main.cs
@@ -1926,10 +1926,11 @@ namespace Nikse.SubtitleEdit.Forms
toolStripMenuItemSelectedLines.Text = _language.Menu.ContextMenu.SelectedLines;
toolStripMenuItemAutoTranslate.Text = _language.Menu.AutoTranslate.Title;
- genericTranslateToolStripMenuItem.Text = _language.Menu.AutoTranslate.AutoTranslate + " (OLD)";
+ genericTranslateToolStripMenuItem.Text = _language.Menu.AutoTranslate.AutoTranslate;
autotranslateNLLBToolStripMenuItem.Text = _language.Menu.AutoTranslate.AutoTranslate;
autotranslateViaCopypasteToolStripMenuItem.Text = _language.Menu.AutoTranslate.AutoTranslateViaCopyPaste;
translateToolStripMenuItem.Text = _language.Menu.AutoTranslate.AutoTranslate;
+ translateToolStripMenuItem.Visible = false; //TODO: remove old generic tranlsate in SE 4.0.3 or newer
toolStripMenuItemTranslateSelected.Text = _language.Menu.ContextMenu.TranslateSelectedLines;
adjustDisplayTimeForSelectedLinesToolStripMenuItem.Text = _language.Menu.ContextMenu.AdjustDisplayDurationForSelectedLines;
fixCommonErrorsInSelectedLinesToolStripMenuItem.Text = _language.Menu.ContextMenu.FixCommonErrorsInSelectedLines;
@@ -24510,8 +24511,17 @@ namespace Nikse.SubtitleEdit.Forms
}
}
+ private Panel _videoControlsHorizontal;
+ private NikseComboBox _videoControlsHorizontalMode;
+
private void SetLayout(int layout)
{
+ if (_videoControlsHorizontal == null && (layout == 7 || layout == 8))
+ {
+ _videoControlsHorizontal = new Panel();
+ _videoControlsHorizontalMode = new NikseComboBox();
+ }
+
var isLarge = _subtitle.Paragraphs.Count > 1000;
if (isLarge)
{
diff --git a/src/ui/Forms/Translate/AutoTranslate.cs b/src/ui/Forms/Translate/AutoTranslate.cs
index ba55fd1cd..eb9d00ed7 100644
--- a/src/ui/Forms/Translate/AutoTranslate.cs
+++ b/src/ui/Forms/Translate/AutoTranslate.cs
@@ -558,21 +558,14 @@ namespace Nikse.SubtitleEdit.Forms.Translate
SeLogger.Error(exception);
if (linesTranslate == 0)
{
- if (engineType == typeof(NoLanguageLeftBehindApi) || engineType == typeof(NoLanguageLeftBehindServe))
+ if (engineType == typeof(NoLanguageLeftBehindApi) || engineType == typeof(NoLanguageLeftBehindServe) || engineType == typeof(LibreTranslate))
{
- var dr = MessageBox.Show($"Facebook NLLB via {_autoTranslator.Name} requires an API running locally!" + Environment.NewLine
- + Environment.NewLine
- + "Read more?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
- if (dr == DialogResult.Yes)
- {
- UiUtil.ShowHelp("#translation");
- }
- }
- else if (engineType == typeof(LibreTranslate))
- {
- var dr = MessageBox.Show($"{_autoTranslator.Name} requires an API running locally!" + Environment.NewLine
- + Environment.NewLine
- + "Read more?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
+ var dr = MessageBox.Show(
+ string.Format(LanguageSettings.Current.GoogleTranslate.XRequiresALocalWebServer, _autoTranslator.Name)
+ + Environment.NewLine
+ + Environment.NewLine + LanguageSettings.Current.GoogleTranslate.ReadMore,
+ MessageBoxButtons.YesNoCancel, MessageBoxIcon.Error);
+
if (dr == DialogResult.Yes)
{
UiUtil.ShowHelp("#translation");
diff --git a/src/ui/Logic/Language.cs b/src/ui/Logic/Language.cs
index 645c7d1ca..e4d67f67a 100644
--- a/src/ui/Logic/Language.cs
+++ b/src/ui/Logic/Language.cs
@@ -1326,6 +1326,8 @@ namespace Nikse.SubtitleEdit.Logic
TranslateBlockClipboardError1 = "Clipboard contains source text!",
TranslateBlockClipboardError2 = "Go to translator and translate, then copy the results to the clipboard and click this button again.",
StartWebServerX = "Start \"{0}\" web server",
+ XRequiresALocalWebServer = "\"{0}\" requires a web server running locally!",
+ ReadMore = "Read more?",
};
GoogleOrMicrosoftTranslate = new LanguageStructure.GoogleOrMicrosoftTranslate
diff --git a/src/ui/Logic/LanguageDeserializer.cs b/src/ui/Logic/LanguageDeserializer.cs
index ab3f047be..f5a30529b 100644
--- a/src/ui/Logic/LanguageDeserializer.cs
+++ b/src/ui/Logic/LanguageDeserializer.cs
@@ -2812,6 +2812,12 @@ namespace Nikse.SubtitleEdit.Logic
case "GoogleTranslate/StartWebServerX":
language.GoogleTranslate.StartWebServerX = reader.Value;
break;
+ case "GoogleTranslate/XRequiresALocalWebServer":
+ language.GoogleTranslate.XRequiresALocalWebServer = reader.Value;
+ break;
+ case "GoogleTranslate/ReadMore":
+ language.GoogleTranslate.ReadMore = reader.Value;
+ break;
case "GoogleOrMicrosoftTranslate/Title":
language.GoogleOrMicrosoftTranslate.Title = reader.Value;
break;
diff --git a/src/ui/Logic/LanguageStructure.cs b/src/ui/Logic/LanguageStructure.cs
index ca4229675..1364020b2 100644
--- a/src/ui/Logic/LanguageStructure.cs
+++ b/src/ui/Logic/LanguageStructure.cs
@@ -1148,6 +1148,8 @@
public string TranslateBlockClipboardError1 { get; set; }
public string TranslateBlockClipboardError2 { get; set; }
public string StartWebServerX { get; set; }
+ public string XRequiresALocalWebServer { get; set; }
+ public string ReadMore { get; set; }
}
public class GoogleOrMicrosoftTranslate