Новое в 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 мы расширили эту команду новыми опциями.
Настраиваемые префиксы и поведение обновления
- Pull Request: [FrameworkBundle] Add
--no-fill
option totranslation:extract
command #58506 Jawira Portugal
По умолчанию, когда команда 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