действительно борюсь с этим.
Я недавно установил сценарий оболочки bash для извлечения, объединения и дедупликации строк для перевода из страниц просмотра всего веб-сайта (используется инфраструктура MVC), это выглядит примерно так:
for x in *.php; do xgettext --no-wrap --language=PHP -e --flag=_:1:pass-c-format -a "$x" -o "${x%.php}.pot"; done
msgcat -u -s --output-file=$WEBSITENAME-concat.pot *.pot
msguniq -u --output-file=$WEBSITENAME-unique.pot $WEBSITENAME-concat.pot
msgmerge -s -v -U $WEBSITENAME.po $WEBSITENAME-unique.pot
Вышеупомянутое работает абсолютно нормально, за исключением этих двух вещей в порядке преодоления трудностей:
На протяжении всего исходного кода веб-сайта я тщательно следил за тем, чтобы все строки, которые необходимо перевести, были окружены функцией _ ('строка для перевода здесь'), но xgettext strong > команда извлекает практически все строки в файле из того, что я могу сказать, а не только те, которые окружены функцией _ (''). Это означает, что полученный в результате файл .pot содержит имена переменных, URL-адреса, строки формата, параметры функций, данные конфигурации и другие несоответствующие строки, которые не следует передавать нашим переводчикам. Из-за размера веб-сайта удалять их вручную нецелесообразно - мы рассматриваем почти 80 000 строковых записей, и это только первый веб-сайт из числа, которое мне нужно будет обработать таким же образом в течение следующих 6. недели! Как можно настроить xgettext на извлечение только строк, предназначенных для перевода?
Во многих извлеченных строках есть разрывы строк, которые вставляются в строки как \ n. Есть ли способ настроить xgettext, чтобы этого не происходило, или простой способ их удалить?
Я читал документацию и искал в Интернете часами, а то и днями, пытаясь найти решение, в частности, для проблемы №. 1, и был бы очень признателен гуру gettext за помощь! Заранее спасибо..