Новое в Symfony 7.2: Линтер переводов
lint:translations
для проверки валидности содержимого переводов.Линтеры — инструменты статического анализа кода, используемые для выявления ошибок, таких как синтаксические и стилистические проблемы. Symfony включает множество команд линтеров для проверки конфигурационных файлов YAML (lint:yaml
), контейнерных сервисов (lint:container
), шаблонов Twig (lint:twig
) и даже синтаксиса файлов перевода XLIFF (lint:xliff
).
В Symfony 7.2 мы добавляем новый линтер для проверки содержимого переводов. В отличие от команды lint:xliff
, новая команда lint:translations
проверяет все ваши переводы, независимо от того, какой из поддерживаемых форматов перевода используется:
php bin/console lint:translations
# вы также можете проверить только некоторые из поддерживаемых локалей
php bin/console lint:translations --locale=en --locale=tr
Эта команда будет особо полезна при использовании синтаксиса ICU MessageFormat в переводах. Этот синтаксис мощный, но сложный, поэтому нередко можно пропустить закрывающую скобку (}
), забыть о ключе other
при использовании множественного числа и т. д.
php bin/console lint:translations
--------- -------------------------------- --------
Locale Domains Valid?
--------- -------------------------------- --------
ar validators, security, messages Yes
bn messages, validators No
de validators, security, messages Yes
en validators, security, messages Yes
es validators, security, messages Yes
tr validators, security, messages Yes
--------- -------------------------------- --------
Errors for locale "bn" and domain "messages"
--------------------------------------------
Translation key "post.num_comments" is invalid:
[ERROR] Invalid message format (error #65807): msgfmt_create: message formatter
creation failed: U_DEFAULT_KEYWORD_MISSING