В нашей компании работают люди из разных стран, которые переводят тексты на свой родной язык. Несколько лет назад мы разработали инструмент для перевода. С помощью этого инструмента переводчики и люди, которым нужны переводы, могут справиться с этим процессом перевода лучше, чем отправлять электронные письма.
Теперь мы хотим улучшить инструмент и автоматизировать переводы с помощью таких инструментов, как Google или Deepl, чтобы нашим переводчикам не приходилось переводить, просто проверьте. Это, надеюсь, сэкономит им много времени. Но у нас есть некоторые трудности в обработке сложного HTML-контента, такого как статьи. Я попробовал DeepL и, похоже, вернул более точный и естественный перевод. Но это перевод контента внутри тегов HTML. Например, атрибуты href переводятся, поэтому ссылки не будут работать. Вне зависимости от того, пользуюсь ли я Google или DeepL, я бы хотел извлечь предложения, чтобы мне не платили HTML-символы.
Я прочитал:
Временное удаление HTML из строки для Google Translate API для снижения стоимости
Исключить теги HTML при переводе с помощью Google Translate API
https://stackoverflow.com/a/1732454/5126638
Извлечение предложений из HTML в PHP
У нас есть код PHP, который очищает все теги HTML с помощью strip_tags () и разбивает текст результата на предложения. После этого каждое предложение проверяется в БД. Предложения, которые уже переведены, заменяются (str_replace ()) внутри исходного HTML-текста. Таким образом, я получаю контент HTML, переведенный на другой язык.
Я ожидал, что правильно переведу любой HTML, но автономные теги нарушают логику. Код работает с такими вещами, как:
<p><ul><li>Article about our web page</li></ul></p>
Но не могу справиться:
<p><ul><li>Article about our <strong>web page</strong></li></ul></p>
При удалении тегов HTML предложение «Статья о нашей веб-странице». После перевода, он пытается заменить в исходный текст и терпит неудачу. Из-за того, что str_replace не может найти это предложение, в середине есть <strong>
.
Как я могу улучшить свой код для перевода полного HTML-контента?
Я проверил, и Google Translate правильно обработал это. Как они делают эту работу? Разработана ли какая-либо библиотека?
РЕДАКТИРОВАТЬ: Некоторые примеры:
<tr align="left" valign="middle">
<td height="22"><strong>Identification time</strong></td>
<td height="22">< 0.5 Sec.</td>
</tr>
<tr align="left" valign="middle">
<td height="22"><strong>Power supply</strong></td>
<td>DC 5 V / 1.0 A (included)</td>
</tr>
<tr align="left" valign="middle">
<td height="22"><strong>Temp. operation</strong></td>
<td>-30º C ~ +60º C</td>
</tr>