Способы упаковки HTML и фрагментов кода в файлы XLIFF с использованием PHP - PullRequest
1 голос
/ 01 мая 2019

Мы работаем над созданием файлов XLIFF для отправки файлов в стороннюю систему перевода.

Файлы XLIFF содержат сообщения, которые нам необходимо перевести.Проблема в том, что эти сообщения могут содержать

  1. HTML-теги
  2. Фрагменты кода (например, усы или переменные php)

Нам не нужен HTML иликод для перевода.Чтобы быть более точным, мы хотим, чтобы переводчики не редактировали его, и для этого нам нужно обернуть непереводимые элементы в специальные XLIFF 1.2 теги - bpt, ept и ph.

Например,

Hello, click <a href="example.com">here</a>.

будет преобразован в

Hello, click <bpt i=1>&lt;a href="example.com>"</bpt>here<ept i=1>&lt;/a></ept>

Или

This is {% mustache_var %}

Становится

This is <ph>{% mustache_var %}</ph>

Это очень простые примеры, у вас могут быть вложенные html-теги или фрагменты кода внутри html-тегов.

В настоящее время мы выполняем это преобразование с помощью набора базового синтаксического анализатора (написанного на PHP с нуля) для переноса содержимого HTML и регулярных выражений для переноса фрагментов кода.Однако этот код довольно сложен и труден для изменения.

Мне было интересно, есть ли какие-либо инструменты с открытым исходным кодом (предпочтительно в PHP) для этого преобразования - упаковка непереводимого контента в формате XLIFF?Или лучше написать лексический парсер, используя для этой задачи что-то вроде https://www.antlr.org/?

Цените любые советы.

...