Мы работаем над созданием файлов XLIFF для отправки файлов в стороннюю систему перевода.
Файлы XLIFF содержат сообщения, которые нам необходимо перевести.Проблема в том, что эти сообщения могут содержать
- HTML-теги
- Фрагменты кода (например, усы или переменные php)
Нам не нужен HTML иликод для перевода.Чтобы быть более точным, мы хотим, чтобы переводчики не редактировали его, и для этого нам нужно обернуть непереводимые элементы в специальные XLIFF 1.2 теги - bpt, ept и ph.
Например,
Hello, click <a href="example.com">here</a>.
будет преобразован в
Hello, click <bpt i=1><a href="example.com>"</bpt>here<ept i=1></a></ept>
Или
This is {% mustache_var %}
Становится
This is <ph>{% mustache_var %}</ph>
Это очень простые примеры, у вас могут быть вложенные html-теги или фрагменты кода внутри html-тегов.
В настоящее время мы выполняем это преобразование с помощью набора базового синтаксического анализатора (написанного на PHP с нуля) для переноса содержимого HTML и регулярных выражений для переноса фрагментов кода.Однако этот код довольно сложен и труден для изменения.
Мне было интересно, есть ли какие-либо инструменты с открытым исходным кодом (предпочтительно в PHP) для этого преобразования - упаковка непереводимого контента в формате XLIFF?Или лучше написать лексический парсер, используя для этой задачи что-то вроде https://www.antlr.org/?
Цените любые советы.