В нашей команде мы приступили к ревизии опубликованного перевода Нового Завета. Изначально мы были оптимистичны, надеясь, что процесс не займёт много времени и не потребует множества изменений. Однако сейчас мы обнаружили, что было изменено более 90% стихов.
Всю работу по ревизии мы вели вне Paratext. Причин для этого много, и я не буду на них останавливаться здесь. Тем не менее, поскольку мы приближаемся к финишу, нам нужно импортировать работу обратно в Paratext.
Наш текст структурирован очень просто: его можно представить как таблицу, где первый столбец содержит ссылку на стих (например: Марка 1:1), а второй столбец — содержание стиха в виде обычного текста. Здесь нет заголовков, маркеров абзацев, сносок или чего-либо подобного. Я хотел взять существующий USFM и обновить его новым текстом. Я разработал некоторый код для этого, в основном используя usfm-grammar. Я взял существующий USFM, преобразовал его в JSON, изменил JSON для обновления перевода, а затем преобразовал перевод обратно в USFM с помощью того же инструмента.
Однако я замечаю, что сохранение заголовков, абзацев и перекрёстных ссылок — задача непростая. Я потратил на это день-два (включая процесс принятия решения об этом подходе), и мне не хочется тратить много времени на программирование, если это не лучшее использование моего времени. Когда я импортировал результат обратно в Paratext, программа жаловалась на недействительный USFM. Похоже, что usfm-grammar может генерировать недействительный USFM.
Я посмотрел библиотеки для записи USFM. Я нашёл довольно много вариантов для разбора USFM и преобразования USFM в другие форматы, но usfm-grammar была единственной библиотекой, которую я нашёл, способной записывать USFM, преобразуя JSON в USFM.
Сейчас я рассматриваю два варианта:
- Продолжить разработку инструмента, который может объединять ревизии в виде обычного текста с существующим USFM.
- или… по сути начать новый проект в Paratext, импортируя обычный текст как USFM, не пытаясь объединить его с существующими заголовками и другой информацией в текущем переводе.
Я уже пробовал вариант 2. Как вы можете представить, было довольно легко сгенерировать вывод в таком виде:
\id MRK
\c 1
\p
\v 1 the first verse
\v 2 the second verse
\v 3 the third verse
\v 4 etc
Какой совет вы бы мне дали? В настоящее время я склоняюсь к варианту 2 и просто вручную добавлю обратно заголовки и перекрёстные ссылки. Заголовки всё равно потребуют ручной ревизии.