xgettext — присоединиться к существующим в результате множеству комментариев в моем файле банка

У меня есть сценарий сборки, который сканирует исходный каталог (PHP) и выполняет xgettext --join-existing ... для обновленного перевода и сохранения в файл банка, например

find . -type f -name '*.php' -not -path './vendor/*' |
xargs xgettext --join-existing --keyword=_e --keyword=_x
--keyword=__ --from-code=UTF-8 --default-domain=myapp
--output=languages/myapp/myapp.pot

Я не знаю, почему после нескольких раз рефакторинга и сборки кода в файле pot будет что-то вроде этого

#: src/Member/Auth.php:196
#: src/Member/Auth.php:135
msgid "Login failed!"msgstr ""
  1. Почему в комментарии две строки источника / строки? (Я думаю, это произошло из-за того, что мы переместили сообщение в источнике.)

  2. Итак, как заставить xgettext игнорировать, если в том же файле обновлено содержимое?

  3. Или я не должен рекомендовать использовать --join-existing в сценарии сборки? (Но иногда у нас есть ручной элемент в файле банка, так как решить?)

1

Решение

Звучит логично, что xgettext добавляет информацию (даже ссылку на источник), потому что она явно установлена ​​с опцией --join-existing, Но следующие обходные пути могут помочь.


Обходной путь 1

Удалите предыдущие ссылки на источники из файла банка с помощью sed перед сборкой нового банка:

sed -i.old '/^#: /d' languages/myapp/myapp.pot

Обходной путь 2

Не используйте опцию --join-existing и поместите элементы руководства в фиктивный файл php.

1

Другие решения

Будет ли здесь проблема при использовании PoEdit? Это приложение с графическим интерфейсом и кнопкой «Обновить». Poedit сканирует все файлы и собирает все переводимые строки. Я очень долго им пользовался, и он отлично справляется со своей работой.

0

По вопросам рекламы [email protected]