mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-11-25 04:33:04 +01:00
parent
3b7fdef52a
commit
1a6d3bf01b
@ -61,7 +61,7 @@ namespace Nikse.SubtitleEdit.Core.AutoTranslate
|
|||||||
var input = "{ " + modelJson + " \"prompt\": \"" + prompt + "\\n\\n" + Json.EncodeJsonText(text.Trim()) + "\", \"stream\": false }";
|
var input = "{ " + modelJson + " \"prompt\": \"" + prompt + "\\n\\n" + Json.EncodeJsonText(text.Trim()) + "\", \"stream\": false }";
|
||||||
var content = new StringContent(input, Encoding.UTF8);
|
var content = new StringContent(input, Encoding.UTF8);
|
||||||
content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");
|
content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");
|
||||||
var result = await _httpClient.PostAsync(string.Empty, content, cancellationToken);
|
var result = await _httpClient.PostAsync(string.Empty, content, cancellationToken).ConfigureAwait(false);
|
||||||
var bytes = await result.Content.ReadAsByteArrayAsync();
|
var bytes = await result.Content.ReadAsByteArrayAsync();
|
||||||
var json = Encoding.UTF8.GetString(bytes).Trim();
|
var json = Encoding.UTF8.GetString(bytes).Trim();
|
||||||
if (!result.IsSuccessStatusCode)
|
if (!result.IsSuccessStatusCode)
|
||||||
|
@ -2942,6 +2942,12 @@ namespace Nikse.SubtitleEdit.Core.Settings
|
|||||||
settings.Tools.BatchConvertOcrLanguage = subNode.InnerText;
|
settings.Tools.BatchConvertOcrLanguage = subNode.InnerText;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
subNode = node.SelectSingleNode("BatchConvertTranslateEngine");
|
||||||
|
if (subNode != null)
|
||||||
|
{
|
||||||
|
settings.Tools.BatchConvertTranslateEngine = subNode.InnerText;
|
||||||
|
}
|
||||||
|
|
||||||
subNode = node.SelectSingleNode("WaveformBatchLastFolder");
|
subNode = node.SelectSingleNode("WaveformBatchLastFolder");
|
||||||
if (subNode != null)
|
if (subNode != null)
|
||||||
{
|
{
|
||||||
@ -9096,6 +9102,7 @@ namespace Nikse.SubtitleEdit.Core.Settings
|
|||||||
textWriter.WriteElementString("BatchConvertMkvLanguageCodeStyle", settings.Tools.BatchConvertMkvLanguageCodeStyle);
|
textWriter.WriteElementString("BatchConvertMkvLanguageCodeStyle", settings.Tools.BatchConvertMkvLanguageCodeStyle);
|
||||||
textWriter.WriteElementString("BatchConvertOcrEngine", settings.Tools.BatchConvertOcrEngine);
|
textWriter.WriteElementString("BatchConvertOcrEngine", settings.Tools.BatchConvertOcrEngine);
|
||||||
textWriter.WriteElementString("BatchConvertOcrLanguage", settings.Tools.BatchConvertOcrLanguage);
|
textWriter.WriteElementString("BatchConvertOcrLanguage", settings.Tools.BatchConvertOcrLanguage);
|
||||||
|
textWriter.WriteElementString("BatchConvertTranslateEngine", settings.Tools.BatchConvertTranslateEngine);
|
||||||
textWriter.WriteElementString("WaveformBatchLastFolder", settings.Tools.WaveformBatchLastFolder);
|
textWriter.WriteElementString("WaveformBatchLastFolder", settings.Tools.WaveformBatchLastFolder);
|
||||||
textWriter.WriteElementString("ModifySelectionRule", settings.Tools.ModifySelectionRule);
|
textWriter.WriteElementString("ModifySelectionRule", settings.Tools.ModifySelectionRule);
|
||||||
textWriter.WriteElementString("ModifySelectionText", settings.Tools.ModifySelectionText);
|
textWriter.WriteElementString("ModifySelectionText", settings.Tools.ModifySelectionText);
|
||||||
|
@ -198,6 +198,7 @@ namespace Nikse.SubtitleEdit.Core.Settings
|
|||||||
public string BatchConvertMkvLanguageCodeStyle { get; set; }
|
public string BatchConvertMkvLanguageCodeStyle { get; set; }
|
||||||
public string BatchConvertOcrEngine { get; set; }
|
public string BatchConvertOcrEngine { get; set; }
|
||||||
public string BatchConvertOcrLanguage { get; set; }
|
public string BatchConvertOcrLanguage { get; set; }
|
||||||
|
public string BatchConvertTranslateEngine { get; set; }
|
||||||
public string WaveformBatchLastFolder { get; set; }
|
public string WaveformBatchLastFolder { get; set; }
|
||||||
public string ModifySelectionText { get; set; }
|
public string ModifySelectionText { get; set; }
|
||||||
public string ModifySelectionRule { get; set; }
|
public string ModifySelectionRule { get; set; }
|
||||||
@ -526,6 +527,7 @@ namespace Nikse.SubtitleEdit.Core.Settings
|
|||||||
BatchConvertTsScreenHeight = 1080;
|
BatchConvertTsScreenHeight = 1080;
|
||||||
BatchConvertOcrEngine = "Tesseract";
|
BatchConvertOcrEngine = "Tesseract";
|
||||||
BatchConvertOcrLanguage = "en";
|
BatchConvertOcrLanguage = "en";
|
||||||
|
BatchConvertTranslateEngine = LibreTranslate.StaticName;
|
||||||
BatchConvertTsOverrideHAlign = "center"; // left center right
|
BatchConvertTsOverrideHAlign = "center"; // left center right
|
||||||
BatchConvertTsOverrideHMargin = 5; // pct
|
BatchConvertTsOverrideHMargin = 5; // pct
|
||||||
BatchConvertTsFileNameAppend = ".{two-letter-country-code}";
|
BatchConvertTsFileNameAppend = ".{two-letter-country-code}";
|
||||||
|
41
src/ui/Forms/BatchConvert.Designer.cs
generated
41
src/ui/Forms/BatchConvert.Designer.cs
generated
@ -200,6 +200,8 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
this.progressBar1 = new System.Windows.Forms.ProgressBar();
|
this.progressBar1 = new System.Windows.Forms.ProgressBar();
|
||||||
this.labelStatus = new Nikse.SubtitleEdit.Controls.NikseLabel();
|
this.labelStatus = new Nikse.SubtitleEdit.Controls.NikseLabel();
|
||||||
this.labelError = new Nikse.SubtitleEdit.Controls.NikseLabel();
|
this.labelError = new Nikse.SubtitleEdit.Controls.NikseLabel();
|
||||||
|
this.nikseComboBoxTranslateModel = new Nikse.SubtitleEdit.Controls.NikseComboBox();
|
||||||
|
this.nikseLabelModel = new Nikse.SubtitleEdit.Controls.NikseLabel();
|
||||||
this.groupBoxConvertOptions.SuspendLayout();
|
this.groupBoxConvertOptions.SuspendLayout();
|
||||||
this.groupBoxAutoTranslate.SuspendLayout();
|
this.groupBoxAutoTranslate.SuspendLayout();
|
||||||
this.contextMenuStripOptions.SuspendLayout();
|
this.contextMenuStripOptions.SuspendLayout();
|
||||||
@ -284,6 +286,8 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
//
|
//
|
||||||
// groupBoxAutoTranslate
|
// groupBoxAutoTranslate
|
||||||
//
|
//
|
||||||
|
this.groupBoxAutoTranslate.Controls.Add(this.nikseLabelModel);
|
||||||
|
this.groupBoxAutoTranslate.Controls.Add(this.nikseComboBoxTranslateModel);
|
||||||
this.groupBoxAutoTranslate.Controls.Add(this.labelTarget);
|
this.groupBoxAutoTranslate.Controls.Add(this.labelTarget);
|
||||||
this.groupBoxAutoTranslate.Controls.Add(this.comboBoxTarget);
|
this.groupBoxAutoTranslate.Controls.Add(this.comboBoxTarget);
|
||||||
this.groupBoxAutoTranslate.Controls.Add(this.labelSource);
|
this.groupBoxAutoTranslate.Controls.Add(this.labelSource);
|
||||||
@ -2361,7 +2365,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
this.comboBoxFilter.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.comboBoxFilter.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.comboBoxFilter.DropDownWidth = 335;
|
this.comboBoxFilter.DropDownWidth = 335;
|
||||||
this.comboBoxFilter.FormattingEnabled = true;
|
this.comboBoxFilter.FormattingEnabled = true;
|
||||||
this.comboBoxFilter.Items.AddRange(new object[] {
|
this.comboBoxFilter.Items.AddRange(new string[] {
|
||||||
"All files",
|
"All files",
|
||||||
"SubRip .srt files without BOM header",
|
"SubRip .srt files without BOM header",
|
||||||
"Files with subtitle with more than two lines",
|
"Files with subtitle with more than two lines",
|
||||||
@ -2576,6 +2580,39 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
this.labelError.TabIndex = 10;
|
this.labelError.TabIndex = 10;
|
||||||
this.labelError.Text = "labelError";
|
this.labelError.Text = "labelError";
|
||||||
//
|
//
|
||||||
|
// nikseComboBoxTranslateModel
|
||||||
|
//
|
||||||
|
this.nikseComboBoxTranslateModel.BackColor = System.Drawing.SystemColors.Window;
|
||||||
|
this.nikseComboBoxTranslateModel.BackColorDisabled = System.Drawing.Color.FromArgb(((int)(((byte)(240)))), ((int)(((byte)(240)))), ((int)(((byte)(240)))));
|
||||||
|
this.nikseComboBoxTranslateModel.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(173)))), ((int)(((byte)(179)))));
|
||||||
|
this.nikseComboBoxTranslateModel.BorderColorDisabled = System.Drawing.Color.FromArgb(((int)(((byte)(120)))), ((int)(((byte)(120)))), ((int)(((byte)(120)))));
|
||||||
|
this.nikseComboBoxTranslateModel.ButtonForeColor = System.Drawing.SystemColors.ControlText;
|
||||||
|
this.nikseComboBoxTranslateModel.ButtonForeColorDown = System.Drawing.Color.Orange;
|
||||||
|
this.nikseComboBoxTranslateModel.ButtonForeColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(120)))), ((int)(((byte)(215)))));
|
||||||
|
this.nikseComboBoxTranslateModel.DropDownHeight = 400;
|
||||||
|
this.nikseComboBoxTranslateModel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDown;
|
||||||
|
this.nikseComboBoxTranslateModel.DropDownWidth = 221;
|
||||||
|
this.nikseComboBoxTranslateModel.FormattingEnabled = true;
|
||||||
|
this.nikseComboBoxTranslateModel.Location = new System.Drawing.Point(11, 169);
|
||||||
|
this.nikseComboBoxTranslateModel.MaxLength = 32767;
|
||||||
|
this.nikseComboBoxTranslateModel.Name = "nikseComboBoxTranslateModel";
|
||||||
|
this.nikseComboBoxTranslateModel.SelectedIndex = -1;
|
||||||
|
this.nikseComboBoxTranslateModel.SelectedItem = null;
|
||||||
|
this.nikseComboBoxTranslateModel.SelectedText = "";
|
||||||
|
this.nikseComboBoxTranslateModel.Size = new System.Drawing.Size(221, 21);
|
||||||
|
this.nikseComboBoxTranslateModel.TabIndex = 116;
|
||||||
|
this.nikseComboBoxTranslateModel.TabStop = false;
|
||||||
|
this.nikseComboBoxTranslateModel.UsePopupWindow = false;
|
||||||
|
//
|
||||||
|
// nikseLabelModel
|
||||||
|
//
|
||||||
|
this.nikseLabelModel.AutoSize = true;
|
||||||
|
this.nikseLabelModel.Location = new System.Drawing.Point(11, 153);
|
||||||
|
this.nikseLabelModel.Name = "nikseLabelModel";
|
||||||
|
this.nikseLabelModel.Size = new System.Drawing.Size(39, 13);
|
||||||
|
this.nikseLabelModel.TabIndex = 117;
|
||||||
|
this.nikseLabelModel.Text = "Model:";
|
||||||
|
//
|
||||||
// BatchConvert
|
// BatchConvert
|
||||||
//
|
//
|
||||||
this.AllowDrop = true;
|
this.AllowDrop = true;
|
||||||
@ -2821,5 +2858,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
private Controls.NikseComboBox comboBoxTarget;
|
private Controls.NikseComboBox comboBoxTarget;
|
||||||
private Nikse.SubtitleEdit.Controls.NikseLabel labelSource;
|
private Nikse.SubtitleEdit.Controls.NikseLabel labelSource;
|
||||||
private Controls.NikseComboBox comboBoxSource;
|
private Controls.NikseComboBox comboBoxSource;
|
||||||
|
private Controls.NikseLabel nikseLabelModel;
|
||||||
|
private Controls.NikseComboBox nikseComboBoxTranslateModel;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -413,6 +413,9 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
checkBoxDrawing.Text = LanguageSettings.Current.AssaResolutionChanger.ChangeResolutionDrawing;
|
checkBoxDrawing.Text = LanguageSettings.Current.AssaResolutionChanger.ChangeResolutionDrawing;
|
||||||
labelSource.Text = LanguageSettings.Current.GoogleTranslate.From;
|
labelSource.Text = LanguageSettings.Current.GoogleTranslate.From;
|
||||||
labelTarget.Text = LanguageSettings.Current.GoogleTranslate.To;
|
labelTarget.Text = LanguageSettings.Current.GoogleTranslate.To;
|
||||||
|
nikseLabelModel.Text = LanguageSettings.Current.AudioToText.Model;
|
||||||
|
nikseLabelModel.Visible = false;
|
||||||
|
nikseComboBoxTranslateModel.Visible = false;
|
||||||
groupBoxAutoTranslate.Text = LanguageSettings.Current.Main.VideoControls.AutoTranslate;
|
groupBoxAutoTranslate.Text = LanguageSettings.Current.Main.VideoControls.AutoTranslate;
|
||||||
|
|
||||||
labelSource.Left = comboBoxSource.Left - labelSource.Width - 5;
|
labelSource.Left = comboBoxSource.Left - labelSource.Width - 5;
|
||||||
@ -733,13 +736,14 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
_autoTranslatorEngines = new List<IAutoTranslator>
|
_autoTranslatorEngines = new List<IAutoTranslator>
|
||||||
{ // only add local APIs
|
{ // only add local APIs
|
||||||
new LibreTranslate(),
|
new LibreTranslate(),
|
||||||
|
new OllamaTranslate(),
|
||||||
new NoLanguageLeftBehindServe(),
|
new NoLanguageLeftBehindServe(),
|
||||||
new NoLanguageLeftBehindApi(),
|
new NoLanguageLeftBehindApi(),
|
||||||
new OllamaTranslate(),
|
|
||||||
};
|
};
|
||||||
nikseComboBoxEngine.Items.Clear();
|
nikseComboBoxEngine.Items.Clear();
|
||||||
nikseComboBoxEngine.Items.AddRange(_autoTranslatorEngines.Select(p => p.Name).ToArray<object>());
|
nikseComboBoxEngine.Items.AddRange(_autoTranslatorEngines.Select(p => p.Name).ToArray<object>());
|
||||||
nikseComboBoxEngine.SelectedIndex = 0;
|
nikseComboBoxEngine.SelectedIndex = 0;
|
||||||
|
nikseComboBoxEngine.Text = Configuration.Settings.Tools.BatchConvertTranslateEngine;
|
||||||
var targetLanguageIsoCode = AutoTranslate.EvaluateDefaultTargetLanguageCode(CultureInfo.CurrentCulture.TwoLetterISOLanguageName);
|
var targetLanguageIsoCode = AutoTranslate.EvaluateDefaultTargetLanguageCode(CultureInfo.CurrentCulture.TwoLetterISOLanguageName);
|
||||||
AutoTranslate.SelectLanguageCode(comboBoxTarget, targetLanguageIsoCode);
|
AutoTranslate.SelectLanguageCode(comboBoxTarget, targetLanguageIsoCode);
|
||||||
}
|
}
|
||||||
@ -1735,7 +1739,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var res = RunAutoTranslate(subtitle).Result;
|
var res = RunAutoTranslate(subtitle);
|
||||||
subtitle = res.Subtitle;
|
subtitle = res.Subtitle;
|
||||||
}
|
}
|
||||||
catch (Exception exception)
|
catch (Exception exception)
|
||||||
@ -1789,7 +1793,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var res = RunAutoTranslate(subtitle).Result;
|
var res = RunAutoTranslate(subtitle);
|
||||||
subtitle = res.Subtitle;
|
subtitle = res.Subtitle;
|
||||||
}
|
}
|
||||||
catch (Exception exception)
|
catch (Exception exception)
|
||||||
@ -1922,7 +1926,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var res = RunAutoTranslate(parameter.Subtitle).Result;
|
var res = RunAutoTranslate(parameter.Subtitle);
|
||||||
parameter.Subtitle = res.Subtitle;
|
parameter.Subtitle = res.Subtitle;
|
||||||
|
|
||||||
var newFileName = FileNameHelper.GetFileNameWithTargetLanguage(parameter.FileName, null, null, parameter.Format, res.Source.TwoLetterIsoLanguageName, res.Target.TwoLetterIsoLanguageName);
|
var newFileName = FileNameHelper.GetFileNameWithTargetLanguage(parameter.FileName, null, null, parameter.Format, res.Source.TwoLetterIsoLanguageName, res.Target.TwoLetterIsoLanguageName);
|
||||||
@ -1971,7 +1975,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
public TranslationPair Target { get; set; }
|
public TranslationPair Target { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<TranslateResult> RunAutoTranslate(Subtitle subtitle)
|
private TranslateResult RunAutoTranslate(Subtitle subtitle)
|
||||||
{
|
{
|
||||||
var engine = GetCurrentEngine();
|
var engine = GetCurrentEngine();
|
||||||
engine.Initialize();
|
engine.Initialize();
|
||||||
@ -2007,22 +2011,37 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
engine.Name == NoLanguageLeftBehindApi.StaticName || // NLLB seems to miss some text...
|
engine.Name == NoLanguageLeftBehindApi.StaticName || // NLLB seems to miss some text...
|
||||||
engine.Name == NoLanguageLeftBehindServe.StaticName;
|
engine.Name == NoLanguageLeftBehindServe.StaticName;
|
||||||
|
|
||||||
|
if (_autoTranslator.Name == OllamaTranslate.StaticName && !string.IsNullOrEmpty(nikseComboBoxTranslateModel.Text))
|
||||||
|
{
|
||||||
|
Configuration.Settings.Tools.OllamaModel = nikseComboBoxTranslateModel.Text;
|
||||||
|
}
|
||||||
|
|
||||||
|
_autoTranslator.Initialize();
|
||||||
|
|
||||||
var index = 0;
|
var index = 0;
|
||||||
while (index < subtitle.Paragraphs.Count && !_abort)
|
while (index < subtitle.Paragraphs.Count && !_abort)
|
||||||
{
|
{
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
var linesMergedAndTranslated = await MergeAndSplitHelper.MergeAndTranslateIfPossible(subtitle, translatedSubtitle, source, target, index, engine, forceSingleLineMode, CancellationToken.None);
|
|
||||||
|
var task = Task.Run(async () => await MergeAndSplitHelper.MergeAndTranslateIfPossible(subtitle, translatedSubtitle, source, target, index, engine, forceSingleLineMode, CancellationToken.None).ConfigureAwait(false));
|
||||||
|
task.Wait();
|
||||||
|
|
||||||
|
var linesMergedAndTranslated = task.Result;
|
||||||
if (linesMergedAndTranslated > 0)
|
if (linesMergedAndTranslated > 0)
|
||||||
{
|
{
|
||||||
index += linesMergedAndTranslated;
|
index += linesMergedAndTranslated;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
forceSingleLineMode = true;
|
||||||
var p = subtitle.Paragraphs[index];
|
var p = subtitle.Paragraphs[index];
|
||||||
var f = new Formatting();
|
var f = new Formatting();
|
||||||
var unformattedText = f.SetTagsAndReturnTrimmed(p.Text, source.Code);
|
var unformattedText = f.SetTagsAndReturnTrimmed(p.Text, source.Code);
|
||||||
|
|
||||||
var translation = await _autoTranslator.Translate(unformattedText, source.Code, target.Code, CancellationToken.None);
|
var task2 = Task.Run(async () => await _autoTranslator.Translate(unformattedText, source.Code, target.Code, CancellationToken.None).ConfigureAwait(false));
|
||||||
|
task2.Wait();
|
||||||
|
|
||||||
|
var translation = task2.Result;
|
||||||
translation = translation
|
translation = translation
|
||||||
.Replace("<br />", Environment.NewLine)
|
.Replace("<br />", Environment.NewLine)
|
||||||
.Replace("<br/>", Environment.NewLine);
|
.Replace("<br/>", Environment.NewLine);
|
||||||
@ -3536,6 +3555,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
|
|
||||||
Configuration.Settings.Tools.BatchConvertOcrEngine = _ocrEngine;
|
Configuration.Settings.Tools.BatchConvertOcrEngine = _ocrEngine;
|
||||||
Configuration.Settings.Tools.BatchConvertOcrLanguage = _ocrLanguage;
|
Configuration.Settings.Tools.BatchConvertOcrLanguage = _ocrLanguage;
|
||||||
|
Configuration.Settings.Tools.BatchConvertTranslateEngine = nikseComboBoxEngine.Text;
|
||||||
|
|
||||||
UpdateRtlSettings();
|
UpdateRtlSettings();
|
||||||
}
|
}
|
||||||
@ -4207,6 +4227,9 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
comboBoxSource.SelectedIndex = 0;
|
comboBoxSource.SelectedIndex = 0;
|
||||||
|
|
||||||
FillComboWithLanguages(comboBoxTarget, _autoTranslator.GetSupportedTargetLanguages());
|
FillComboWithLanguages(comboBoxTarget, _autoTranslator.GetSupportedTargetLanguages());
|
||||||
|
|
||||||
|
var targetLanguageIsoCode = AutoTranslate.EvaluateDefaultTargetLanguageCode(CultureInfo.CurrentCulture.TwoLetterISOLanguageName);
|
||||||
|
AutoTranslate.SelectLanguageCode(comboBoxTarget, targetLanguageIsoCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void FillComboWithLanguages(NikseComboBox comboBox, IEnumerable<TranslationPair> languages)
|
public static void FillComboWithLanguages(NikseComboBox comboBox, IEnumerable<TranslationPair> languages)
|
||||||
@ -4228,6 +4251,24 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
{
|
{
|
||||||
_autoTranslator = GetCurrentEngine();
|
_autoTranslator = GetCurrentEngine();
|
||||||
linkLabelPoweredBy.Text = string.Format(LanguageSettings.Current.GoogleTranslate.PoweredByX, _autoTranslator.Name);
|
linkLabelPoweredBy.Text = string.Format(LanguageSettings.Current.GoogleTranslate.PoweredByX, _autoTranslator.Name);
|
||||||
|
|
||||||
|
if (_autoTranslator.Name == OllamaTranslate.StaticName)
|
||||||
|
{
|
||||||
|
var models = Configuration.Settings.Tools.OllamaModels.Split(',').ToList();
|
||||||
|
nikseComboBoxTranslateModel.Items.Clear();
|
||||||
|
foreach (var model in models)
|
||||||
|
{
|
||||||
|
nikseComboBoxTranslateModel.Items.Add(model);
|
||||||
|
}
|
||||||
|
nikseComboBoxTranslateModel.Text = Configuration.Settings.Tools.OllamaModel;
|
||||||
|
nikseLabelModel.Visible = true;
|
||||||
|
nikseComboBoxTranslateModel.Visible = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
nikseLabelModel.Visible = false;
|
||||||
|
nikseComboBoxTranslateModel.Visible = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private IAutoTranslator GetCurrentEngine()
|
private IAutoTranslator GetCurrentEngine()
|
||||||
|
Loading…
Reference in New Issue
Block a user