Новое в Symfony 7.2: Улучшенный экстрактор переводов

Источник: «New in Symfony 7.2: Improved Translation Extractor»
В Symfony 7.2 улучшена команда извлечения переводов, позволяющая настраивать префиксы, изменять поведение обновлений и сортировать контент.

Symfony предоставляет команду translation:extract для извлечения всего переводимого содержимого из шаблонов Twig и PHP кода (например, форм):

# извлекает весь контент, который должен быть переведён на турецкий язык,
# и выводит его, но не обновляет каталог переводов
php bin/console translation:extract --dump-messages tr

# обновляет каталог переводов на корейский язык, добавляя всё недостающее содержимое
# в сравнении с переводимым содержимым приложения
php bin/console translation:extract --force ko

В Symfony 7.2 мы расширили эту команду новыми опциями.

Настраиваемые префиксы и поведение обновления

По умолчанию, когда команда translation:extract находит новое содержимое, она создаёт новую запись для перевода, используя то же самое содержимое в качестве исходного и ожидающего перевода. Например, если в приложении используется формат XLIFF для переводов, а в шаблонах вместо реального содержимого используются ключи перевода, в каталоге переводов появятся такие записи:

<trans-unit id="IsTxDdZ" resname="notification.comment_created">
<source>notification.comment_created</source>
<target>__notification.comment_created</target>
</trans-unit>

Префикс __ добавляется, чтобы помочь быстро обнаружить непереведённый контент в приложении. В Symfony 7.2 этот префикс можно настроить с помощью новой опции --prefix:

php bin/console translation:extract --force --prefix="**MISSING**" ko

Кроме того, при создании новых записей в каталоге переводов можно оставить поле ожидающее перевода полностью пустым:

php bin/console translation:extract --force --no-fill ko

При добавлении параметра --no-fill новая запись будет выглядеть следующим образом:

<trans-unit id="IsTxDdZ" resname="notification.comment_created">
<source>notification.comment_created</source>
<target></target>
</trans-unit>

Настраиваемая сортировка содержимого перевода

Команда translation:extract включает опцию --sort для отображения переведённого содержимого в алфавитном порядке (ASC или DESC) при выводе сообщений в терминале:

php bin/console translation:extract --dump-messages --sort=desc tr

В Symfony 7.2 мы расширили эту опцию, чтобы она также применялась к файлам каталога переводов. При использовании этой опции в сочетании с опцией --force теперь можно сортировать содержимое каталога переводов в алфавитном порядке:

php bin/console translation:extract --force --sort=desc tr
php bin/console translation:extract --force --sort=asc ko

Комментарии


Дополнительные материалы

Предыдущая Статья

Понимание разницы между объектами File и Blob

Следующая Статья

Игнорирование определённых типов исключений в Laravel