Это сообщение об ошибке (исключении) в программе, скорее всего, в Subtitle Edit (судя по `Nikse.SubtitleEdit`). Давайте разберем его по частям:
1. "Индекс находился вне границ массива." (Index was outside the bounds of the array.)
* Что это значит: Это классическая ошибка программирования. Представьте, что у вас есть список (массив) из 5 элементов, пронумерованных от 0 до 4. Если программа попытается обратиться к элементу с номером -1, 5, 6 или любым другим, которого нет в этом диапазоне, возникнет такая ошибка. Программа пытается получить доступ к данным по "адресу" (индексу), которого не существует в данном массиве.
2. Трассировка стека (Stack Trace):
Это "путь", который прошла программа перед тем, как произошла ошибка. Он читается снизу вверх (от более ранних вызовов к последнему, где ошибка и возникла).
* `в Nikse.SubtitleEdit.Forms.Translate.AutoTranslate.<buttonTranslate_Click>d__33.MoveNext()`
* Похоже, ошибка произошла после того, как вы нажали кнопку, связанную с автоматическим переводом (`buttonTranslate_Click`) в форме перевода (`Forms.Translate.AutoTranslate`).
* `- Конец трассировка стека из предыдущего расположения, где возникло исключение -`
* Это стандартная фраза, означающая, что ошибка была "поймана" и "переброшена" дальше.
* `в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()`
* Системный код .NET для обработки и переброски исключений.
* `в Nikse.SubtitleEdit.Forms.Translate.MergeAndSplitHelper.<MergeAndTranslateIfPossible>d__4.MoveNext()`
* Ошибка произошла внутри функции, которая пытается объединить строки и перевести их, если это возможно (`MergeAndTranslateIfPossible`).
* `в Nikse.SubtitleEdit.Forms.Translate.MergeAndSplitHelper.SplitMultipleLines(MergeResult mergeResult, String translatedText, String language)`
* Эта функция, вызванная предыдущей, пытается разделить переведенный текст (`translatedText`) на несколько строк (`SplitMultipleLines`).
* `в Nikse.SubtitleEdit.Forms.Translate.MergeAndSplitHelper.SplitContinuous(String text, MergeResultItem item, String language)`
* Эта функция, в свою очередь, пытается разделить непрерывный текст (`SplitContinuous`).
* `в Nikse.SubtitleEdit.Forms.Translate.MergeAndSplitHelper.GetTwoPartsByPct(String text, Double pctCharLength1, Double pctCharLength2)`
* Вот здесь и произошла изначальная ошибка. Эта функция, судя по названию (`GetTwoPartsByPct` - получить две части по процентам), пытается разделить некий текст (`text`) на две части, основываясь на процентном соотношении длин (`pctCharLength1`, `pctCharLength2`). Вероятно, при расчете индексов для разделения текста на основе этих процентов, один из вычисленных индексов вышел за пределы длины самого текста.
Простыми словами:
Вы использовали функцию автоматического перевода в программе Subtitle Edit. Программа, пытаясь обработать переведенный текст (скорее всего, чтобы правильно разбить его на строки субтитров), столкнулась с проблемой. В какой-то момент она пыталась "отрезать" кусок текста или обратиться к его символу по номеру, который оказался либо слишком большим (больше, чем символов в тексте), либо отрицательным. Это произошло в части кода, отвечающей за разделение текста на две части на основе процентного соотношения.
Что можно сделать (с точки зрения пользователя):
1. Обновить программу: Убедитесь, что у вас установлена последняя версия Subtitle Edit. Возможно, эта ошибка уже исправлена разработчиками.
2. Изменить текст: Если ошибка возникает на конкретном тексте субтитров, попробуйте немного изменить его перед переводом. Возможно, какая-то необычная комбинация символов, очень длинная или очень короткая строка вызывает сбой в алгоритме разделения.
3. Попробовать другой сервис перевода: Если Subtitle Edit позволяет выбирать разные движки/сервисы для автоперевода, попробуйте другой.
4. Сообщить разработчику: Если ошибка повторяется, стоит сообщить о ней разработчику Subtitle Edit (Nikolaj Lynge Olsson), приложив этот текст ошибки и, если возможно, файл субтитров, на котором она возникает. Это поможет ему исправить баг.
5. Временное решение: Попробовать переводить меньшими кусками или вручную корректировать разбиение после перевода, если автоматика сбоит.
Это определенно ошибка в коде программы, а не ваша вина как пользователя.