действительно борется с этим.
Недавно я установил скрипт оболочки 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
Вышесказанное работает абсолютно отлично, за исключением этих двух вещей в порядке трудности преодоления:
Во всем исходном коде веб-сайта я старался, чтобы все строки, которые необходимо перевести, были окружены функцией _ ('строка для перевода здесь') , но * 1012 Команда * xgettext извлекает практически все строки в файле из того, что я могу сказать, а не только те, которые окружены функцией _ ('') . Это означает, что мой результирующий файл .pot содержит имена переменных, URL-адреса, строки формата, параметры функций, данные конфигурации и другие неподходящие строки, которые не должны передаваться нашим переводчикам. Из-за размера сайта удалить их вручную нецелесообразно - мы рассматриваем почти 80 000 строковых записей, и это только первый веб-сайт из числа, который мне нужно будет обработать аналогичным образом в течение следующих 6 недель! Как настроить xgettext на извлечение только строк, предназначенных для перевода?
У многих извлеченных строк есть разрывы строк, которые вставляются как \ n в строках. Есть ли способ настроить xgettext , чтобы не делать этого, или простой способ удалить их?
Я часами и днями перебирал документацию и искал в интернете, пытаясь найти решение, особенно проблемы нет. 1, и был бы очень признателен за помощь от gettext гуру! Заранее спасибо ..