Команда lint:xliff
Команда lint:xliff проверяет XLIFF-файлы переводов на корректность.
XLIFF - это формат файлов, который Symfony использует для хранения переводов.
Команда читает указанный файл или директорию и сообщает об ошибках
в структуре XML, неверных тегах или отсутствующих атрибутах.
Если ошибок нет, команда завершается успешно и выводит сообщение о том,
что файл корректен.
Первым параметром передаётся путь к файлу или директории с XLIFF-файлами. Если путь не указан, команда проверяет все файлы переводов в проекте.
Синтаксис
php bin/console lint:xliff [path]
Пример
Давайте проверим один XLIFF-файл перевода:
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
<body>
<trans-unit id="1">
<source>hello</source>
<target>hello</target>
</trans-unit>
</body>
</file>
</xliff>
Выполним команду для этого файла:
php bin/console lint:xliff translations/messages.en.xlf
Результат выполнения команды:
[OK] The file "translations/messages.en.xlf" is valid.
Пример
Давайте проверим директорию со всеми переводами:
php bin/console lint:xliff translations/
Результат выполнения команды:
[OK] All 3 XLIFF files are valid.
Пример
Давайте посмотрим, что произойдёт, если в XLIFF-файле есть ошибка.
Например, пропущен закрывающий тег trans-unit:
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
<body>
<trans-unit id="1">
<source>hello</source>
<target>hello</target>
</body>
</file>
</xliff>
Выполним команду:
php bin/console lint:xliff translations/messages.en.xlf
Результат выполнения команды:
[ERROR] The file "translations/messages.en.xlf" is not valid: Element 'trans-unit': This element is not expected.
Смотрите также
-
команда
lint:yaml,
которая проверяет синтаксис YAML-файлов -
команда
lint:twig,
которая проверяет синтаксис Twig-шаблонов -
команда
lint:container,
которая проверяет корректность контейнера зависимостей -
команда
debug:translation,
которая показывает состояние переводов в приложении