|
1 | 1 | using System.Diagnostics; |
2 | 2 | using Nikse.SubtitleEdit.Core.Common; |
| 3 | +using Nikse.SubtitleEdit.Core.Translate; |
3 | 4 | using Nikse.SubtitleEdit.PluginLogic; |
4 | 5 | using Nikse.SubtitleEdit.PluginLogic.Helpers; |
5 | 6 |
|
@@ -113,19 +114,39 @@ await Task.Run(async () => |
113 | 114 |
|
114 | 115 | // try sending each line individually to avoid messing up with the line that |
115 | 116 | // doesn't require fixing which tends to happen when using less capable models |
| 117 | + |
| 118 | + var formatting = new Formatting(); |
| 119 | + |
| 120 | + // todo: |
| 121 | + // - skip hi text e.g.: (Footsteps approaching) |
| 122 | + // - for narrator text like: "narrator: hello world", only process "hello world" |
116 | 123 | for (var i = 0; i < lines.Count; i++) |
117 | 124 | { |
118 | 125 | string line = lines[i]; |
119 | 126 |
|
120 | 127 | // remove formatting before sending as some models also remove formattings unintentionally |
121 | | - var st = new StrippableText(line); |
122 | | - st.StrippedText = await lmStudioClient.SendAsync(st.StrippedText).ConfigureAwait(false); |
123 | | - lines[i] = st.MergedString; |
| 128 | + // var st = new StrippableText(line); |
| 129 | + // st.StrippedText = await lmStudioClient.SendAsync(st.StrippedText).ConfigureAwait(false); |
| 130 | + // lines[i] = st.MergedString; |
| 131 | + |
| 132 | + line = formatting.SetTagsAndReturnTrimmed(line, "en"); |
| 133 | + line = await lmStudioClient.SendAsync(line).ConfigureAwait(false); |
| 134 | + line = formatting.ReAddFormatting(line); |
| 135 | + if (line.StartsWith("- ", StringComparison.Ordinal) && !lines[i].Contains('-')) |
| 136 | + { |
| 137 | + line = line.TrimStart('-').Trim(); |
| 138 | + } |
| 139 | + |
| 140 | + lines[i] = line; |
124 | 141 | } |
125 | 142 |
|
126 | 143 | string result = string.Join(Environment.NewLine, lines); |
| 144 | + result = Utilities.AutoBreakLine(result); |
127 | 145 |
|
128 | | - if (!result.Equals(paragraph.Text, StringComparison.Ordinal)) |
| 146 | + var beforeFixCommaCount = Utilities.CountTagInText(paragraph.Text, ','); |
| 147 | + var afterFixCommaCount = Utilities.CountTagInText(result, ','); |
| 148 | + |
| 149 | + if (beforeFixCommaCount != afterFixCommaCount) |
129 | 150 | { |
130 | 151 | progress.Report((new ListViewItem(new[] { paragraph.Text, result }) |
131 | 152 | { |
|
0 commit comments